Hey! Please use this thread for discussion / problem solving in regards to body missing (hole) or body clipping through outfits.
I will start by sharing what i know.
I. FundamentalsYou will need the knowledge of the game file structure to find files and their location. This is needed to edit partcutdesc as well to prepare files_to_patch correctly. While Meta injector got the option to let the program decide it fails when there are multiple files with the same name (example slider customization files).
To acquire that knowledge sniff around using paz_browser, you can find it Black Desert Online Modding Tools also that thread contains useful information on modding.
Here is a dirty short :
Example of file containing model
PEW_00_UB_0010.pac
/\/\-------------- PEW - class name abbreviation
---------/\/\-------- UB - body part short, in this
-----/\/\----/\/\/\ -- 00 , 0010 - numbers specific to outfit
File like this would be placed in
/character/model/1_PC/3_PEW/armor/9_Upperbody/PEW_00_UB_0010.pac
Green - all player models share this path
Blue - folder representing class
Yellow - some kind of classification , can be armor, nude , event , weapon
Red - body part folder - UB goes to upperbody , LB to lowerbody etc .
Not casesesitive
List of Class name abbreviations : WIP
"1_PHM" - Warrior
"2_PHW" - Sorceress
"3_PEW" - Ranger
"4_PGM" - Berserker
"5_PBW" - Tamer
"6_PKM" - Musa
"7_PVW" - Valkyrie
"8_PWM" - Wizard
"8_PWW" - Witch
"9_PEM" - Archer
"11_PGW" - Guardian
"13_PNW" - Kunoichi
"13_PNM" - Ninja
"14_PLW" - Shai
"15_PDW" - Dark Knight
"16_PCM" - Striker
"16_PCW" - Mystic
"17_PSW" - Lahn
"22_PKWW" - Maehwa
-------------------------------
List of possible Body Parts :
9_upperbody - chestpiece
10_lowerbody - chestpiece lower part
11_hand
12_foot
13_hel - stands for helm probably
14_sho - shoulders ? - just another slot used for chestpiece
15_underup - again chestpiece part generally used when outfit got some skin tight fabric that covers the body under the outfit
19_cloak
38_underwear
39_earring
40_glasses
41_piercing
MODELS ARE ALWAYS CLASS SPECIFIC, textures can be shared between classes and even genders!
Devs make outfits roughly modelling them on top of the body. Then they do morphing and see how the models behave when scaled via sliders. Often body ends up clipping through outfit. They could improve the outfit, but it is easier to delete problematic parts of the body. (sometimes it is necessary by design when the outfit is meant to squeeze the body, especially common in the breast area). They create sort of a mask that tells the game which parts of the body to not display when outfit or outfit part is worn. That is the "hole" we experience when stripping off the outfit.
The mask is stored in one of the pac of the outfit (most of the time) or in texture file with "_ao" at the end (rarely, underwear use them).
Generally the mask should be in file representing given outfit part so torso area cuts should be in UB - Upperbody but it's not given. When outfit is one part it still has multiple pac files and any of those can store the mask , trial and error is required.
Finally i would like to point out that because devs only test the outfits for vanilla sliders it possible to have clipping happen just because you use wider sliders then intended. In that case it's not possible to fix it by restoring the mask. The clipping can be also caused by custom mesh (the one with 3D nipples / vagina) and there is no fix to that.
So you read all that but still don't know what is causing your issue. Let's perform a quick test.
1. Backup your partcutdesc.xml
2a. You have hole in body - patch in empty partcutdesc.xml
or
2b. The Body is clipping - remove partcutdesc.xml from files to patch it will force default one to be used instead.
3. Check the problematic outfit in game.
- IF above fixes your issue. then your issue can be fixed by properly editing your partcutdesc.xml
- IF the issue was "hole" but it was NOT fixed then there should be _ao file that you need to edit.
- IF the issue was body clipping, then it can't be fixed (unless you are patching in a modified _ao file for that outfit which is unlikely)
It is a formatted text file and any text editor will open it. It's good to use something like notedpad++ that recognizes the formatting - applies colors and lets you collapse blocks making working with the file much easier.
The file tells the game where to look for pac files containing aforementioned mask information to hide body parts. WE CAN USE THIS!
Note: It also plays role in whatever underwear is being loaded under the outfit, but i don't know details.
Lets inspect the file.
<!-- text within those brackets (yellow) brackets is considered a comment and is ignored by game -->
We notice the file consists of blocks like this
<BasicCutType Name="Event">
<Path>1_Pc/1_PHM/Event_costume</Path>
<Path>1_Pc/3_PEW/Event_costume</Path>
<Path>1_Pc/9_PEM/Event_costume</Path>
<Path>1_Pc/11_PGW/Event_costume</Path>
</BasicCutType>
<BasicCutType Name="Upperbody">
<Path>1_Pc/1_PHM/Armor/9_Upperbody</Path>
<Path>1_Pc/4_PGM/Armor/9_Upperbody</Path>
<Path>1_Pc/6_PKM/Armor/9_Upperbody</Path>
</BasicCutType>
We can guess game searches for a given keyword representing the name of the "cut" and reads the paths where the files are located.
By removing given <Path> ... </Path> (delete or mark as comment) we can interrupt the game from reading the file that contains the mask and those creating the hole in the body. But it is troublesome as a whole lot outfits will be affected and start clipping unless we strip them.
Luckily it was discovered that we can define the "Cut" with different syntax :
<CutType Name="Upperbody">
<File>1_pc/4_pgm/armor/9_upperbody/pgm_00_ub_0001.pac</File>
<File>1_pc/4_pgm/armor/9_upperbody/pgm_00_ub_0003.pac</File>
<File>1_pc/4_pgm/armor/9_upperbody/pgm_00_ub_0004.pac</File>
</CutType>
The Name needs to be the same, we use CutType instead of BasicCutType and <File> Instead of <Path>. Then within the <File> </File> we need to put "addresses" to all files that are located in given <Path> </Path>. Yes, that is a lot of files but if we do so, we have same functionality as ealier except now we can interrupt a specific outfit from having "cut" underneath.
Resorepless appears to leave old "BasicCutType" in , while placing "CutType" with the same name at beginning of the file. It appears the first instance of "CutType" is being read.
There might be more to editing partcutdesc.xml but i don't know. I had issues in the past but never found the source.
1. First of all we need pre-prepared partcutdesc.xml that had the path references replaced with file references. I unfortunately don't have such file, its a ton of work. Best we can do is use one from resorepless which doesn't cover the new classes, but i'm not bothered by clipping on classes i don't play.
2. Find pac file names that make the outfit or outfit part. You should already have it if you are using mod for it, just a manner or using correct class and body part symbols. Check I. Fundamentals for more.
3. Search for each of the files in partcutdesc and mark the lines as comment <!-- -->. It should be easy for outfits that have separate chest , boot and gloves part. In this case if your feet are missing you just need to find _foot_ pac file referance and mark is as comment. In case of all in one outfits the mask for feet may be in any of the files that make that outfit.
If your partcutdesc got <Path> references then you probably won't find the files. In that case you may search for path where the file is located. Example file pgm_00_ub_0001.pac is located character/model/1_pc/4_pgm/armor/9_upperbody/pgm_00_ub_0001.pac , then you search for 4_pgm/armor/9_upperbody and mark as comment but be warned this will cause clipping for other outfits so not advised unless you make most outfits nude.
Mark as comment like this:
<CutType Name="Upperbody">
<File>1_pc/4_pgm/armor/9_upperbody/pgm_00_ub_0001.pac</File>
<!-- <File>1_pc/4_pgm/armor/9_upperbody/pgm_00_ub_0003.pac</File> this line is ignored -->
<File>1_pc/4_pgm/armor/9_upperbody/pgm_00_ub_0004.pac</File>
</CutType>
VI. Fixing it - Body clipping through outfits.
Body poking out of the outfit is mostly caused by broken partcutdesc.xml i.e. result of whole <Path> being removed when trying to fix hole on another outfit.
1. Find the file name for the outfit and search for it in partcutdesc.xml, if its marked as comment - easy just remove the comment wrapping. But probably you won't find anything and that is the main problem.
2. Search for the file location within the partcutdesc.xml example: 4_pgm/armor/9_upperbody . Again if its marked as comment unmark it.
*If you found it but it was not marked then you will have multiple instances of "CutType"/ "BasicCutType" with same Name and only the first one is being used. Remember to edit the first one in next step.
3. You dind't find any of above. Extract default partcutdesc.xml from the game (it is region specific and changes with patches). Search for file location in it. Now we know name of "CutType" block that should contain the link to the pac file. Find it in your partcutdesc and add new line with the file adress following the formating you have in that block <Path> or <File>.
(If you dont have the block at all then you need new partcutdesc)
VII. The _ao Files.
Those are texture files with yellow background and some green shape drawn on it. That shape respresents the hole that is being cut in the body so just make the whole texture yellow. If there are other collors / shades of yellow then those are used to create shadows on body under the outfit.
I will start by sharing what i know.
I. Fundamentals
To acquire that knowledge sniff around using paz_browser, you can find it Black Desert Online Modding Tools also that thread contains useful information on modding.
Here is a dirty short :
Example of file containing model
PEW_00_UB_0010.pac
/\/\-------------- PEW - class name abbreviation
---------/\/\-------- UB - body part short, in this
-----/\/\----/\/\/\ -- 00 , 0010 - numbers specific to outfit
File like this would be placed in
/character/model/1_PC/3_PEW/armor/9_Upperbody/PEW_00_UB_0010.pac
Green - all player models share this path
Blue - folder representing class
Yellow - some kind of classification , can be armor, nude , event , weapon
Red - body part folder - UB goes to upperbody , LB to lowerbody etc .
Not casesesitive
List of Class name abbreviations : WIP
"1_PHM" - Warrior
"2_PHW" - Sorceress
"3_PEW" - Ranger
"4_PGM" - Berserker
"5_PBW" - Tamer
"6_PKM" - Musa
"7_PVW" - Valkyrie
"8_PWM" - Wizard
"8_PWW" - Witch
"9_PEM" - Archer
"11_PGW" - Guardian
"13_PNW" - Kunoichi
"13_PNM" - Ninja
"14_PLW" - Shai
"15_PDW" - Dark Knight
"16_PCM" - Striker
"16_PCW" - Mystic
"17_PSW" - Lahn
"22_PKWW" - Maehwa
-------------------------------
List of possible Body Parts :
9_upperbody - chestpiece
10_lowerbody - chestpiece lower part
11_hand
12_foot
13_hel - stands for helm probably
14_sho - shoulders ? - just another slot used for chestpiece
15_underup - again chestpiece part generally used when outfit got some skin tight fabric that covers the body under the outfit
19_cloak
38_underwear
39_earring
40_glasses
41_piercing
MODELS ARE ALWAYS CLASS SPECIFIC, textures can be shared between classes and even genders!
II. How holes are born.
Devs make outfits roughly modelling them on top of the body. Then they do morphing and see how the models behave when scaled via sliders. Often body ends up clipping through outfit. They could improve the outfit, but it is easier to delete problematic parts of the body. (sometimes it is necessary by design when the outfit is meant to squeeze the body, especially common in the breast area). They create sort of a mask that tells the game which parts of the body to not display when outfit or outfit part is worn. That is the "hole" we experience when stripping off the outfit.
The mask is stored in one of the pac of the outfit (most of the time) or in texture file with "_ao" at the end (rarely, underwear use them).
Generally the mask should be in file representing given outfit part so torso area cuts should be in UB - Upperbody but it's not given. When outfit is one part it still has multiple pac files and any of those can store the mask , trial and error is required.
Finally i would like to point out that because devs only test the outfits for vanilla sliders it possible to have clipping happen just because you use wider sliders then intended. In that case it's not possible to fix it by restoring the mask. The clipping can be also caused by custom mesh (the one with 3D nipples / vagina) and there is no fix to that.
III. Quick test.
So you read all that but still don't know what is causing your issue. Let's perform a quick test.
1. Backup your partcutdesc.xml
2a. You have hole in body - patch in empty partcutdesc.xml
or
2b. The Body is clipping - remove partcutdesc.xml from files to patch it will force default one to be used instead.
3. Check the problematic outfit in game.
- IF above fixes your issue. then your issue can be fixed by properly editing your partcutdesc.xml
- IF the issue was "hole" but it was NOT fixed then there should be _ao file that you need to edit.
- IF the issue was body clipping, then it can't be fixed (unless you are patching in a modified _ao file for that outfit which is unlikely)
IV. PARTCUTDESC.XML - The one to rule them all.
It is a formatted text file and any text editor will open it. It's good to use something like notedpad++ that recognizes the formatting - applies colors and lets you collapse blocks making working with the file much easier.
The file tells the game where to look for pac files containing aforementioned mask information to hide body parts. WE CAN USE THIS!
Note: It also plays role in whatever underwear is being loaded under the outfit, but i don't know details.
Lets inspect the file.
<!-- text within those brackets (yellow) brackets is considered a comment and is ignored by game -->
We notice the file consists of blocks like this
<BasicCutType Name="Event">
<Path>1_Pc/1_PHM/Event_costume</Path>
<Path>1_Pc/3_PEW/Event_costume</Path>
<Path>1_Pc/9_PEM/Event_costume</Path>
<Path>1_Pc/11_PGW/Event_costume</Path>
</BasicCutType>
<BasicCutType Name="Upperbody">
<Path>1_Pc/1_PHM/Armor/9_Upperbody</Path>
<Path>1_Pc/4_PGM/Armor/9_Upperbody</Path>
<Path>1_Pc/6_PKM/Armor/9_Upperbody</Path>
</BasicCutType>
We can guess game searches for a given keyword representing the name of the "cut" and reads the paths where the files are located.
By removing given <Path> ... </Path> (delete or mark as comment) we can interrupt the game from reading the file that contains the mask and those creating the hole in the body. But it is troublesome as a whole lot outfits will be affected and start clipping unless we strip them.
Luckily it was discovered that we can define the "Cut" with different syntax :
<CutType Name="Upperbody">
<File>1_pc/4_pgm/armor/9_upperbody/pgm_00_ub_0001.pac</File>
<File>1_pc/4_pgm/armor/9_upperbody/pgm_00_ub_0003.pac</File>
<File>1_pc/4_pgm/armor/9_upperbody/pgm_00_ub_0004.pac</File>
</CutType>
The Name needs to be the same, we use CutType instead of BasicCutType and <File> Instead of <Path>. Then within the <File> </File> we need to put "addresses" to all files that are located in given <Path> </Path>. Yes, that is a lot of files but if we do so, we have same functionality as ealier except now we can interrupt a specific outfit from having "cut" underneath.
Resorepless appears to leave old "BasicCutType" in , while placing "CutType" with the same name at beginning of the file. It appears the first instance of "CutType" is being read.
There might be more to editing partcutdesc.xml but i don't know. I had issues in the past but never found the source.
V. Fixing it - removing holes.
1. First of all we need pre-prepared partcutdesc.xml that had the path references replaced with file references. I unfortunately don't have such file, its a ton of work. Best we can do is use one from resorepless which doesn't cover the new classes, but i'm not bothered by clipping on classes i don't play.
2. Find pac file names that make the outfit or outfit part. You should already have it if you are using mod for it, just a manner or using correct class and body part symbols. Check I. Fundamentals for more.
3. Search for each of the files in partcutdesc and mark the lines as comment <!-- -->. It should be easy for outfits that have separate chest , boot and gloves part. In this case if your feet are missing you just need to find _foot_ pac file referance and mark is as comment. In case of all in one outfits the mask for feet may be in any of the files that make that outfit.
If your partcutdesc got <Path> references then you probably won't find the files. In that case you may search for path where the file is located. Example file pgm_00_ub_0001.pac is located character/model/1_pc/4_pgm/armor/9_upperbody/pgm_00_ub_0001.pac , then you search for 4_pgm/armor/9_upperbody and mark as comment but be warned this will cause clipping for other outfits so not advised unless you make most outfits nude.
Mark as comment like this:
<CutType Name="Upperbody">
<File>1_pc/4_pgm/armor/9_upperbody/pgm_00_ub_0001.pac</File>
<!-- <File>1_pc/4_pgm/armor/9_upperbody/pgm_00_ub_0003.pac</File> this line is ignored -->
<File>1_pc/4_pgm/armor/9_upperbody/pgm_00_ub_0004.pac</File>
</CutType>
VI. Fixing it - Body clipping through outfits.
Body poking out of the outfit is mostly caused by broken partcutdesc.xml i.e. result of whole <Path> being removed when trying to fix hole on another outfit.
1. Find the file name for the outfit and search for it in partcutdesc.xml, if its marked as comment - easy just remove the comment wrapping. But probably you won't find anything and that is the main problem.
2. Search for the file location within the partcutdesc.xml example: 4_pgm/armor/9_upperbody . Again if its marked as comment unmark it.
*If you found it but it was not marked then you will have multiple instances of "CutType"/ "BasicCutType" with same Name and only the first one is being used. Remember to edit the first one in next step.
3. You dind't find any of above. Extract default partcutdesc.xml from the game (it is region specific and changes with patches). Search for file location in it. Now we know name of "CutType" block that should contain the link to the pac file. Find it in your partcutdesc and add new line with the file adress following the formating you have in that block <Path> or <File>.
(If you dont have the block at all then you need new partcutdesc)
VII. The _ao Files.
Those are texture files with yellow background and some green shape drawn on it. That shape respresents the hole that is being cut in the body so just make the whole texture yellow. If there are other collors / shades of yellow then those are used to create shadows on body under the outfit.
Last edited: