Hello, in this tutorial I will show you how to stream addon clothes and ped props using GTAUtil and FiveM subdir file mapping.
Requirements :
Knowledge requirements :
- Basic command-line usage
- Environnment variables
Download GTAUtil, extract in somewhere on your computer and add the extracted folder to your %PATH% so the executable is accessible from any location.
Some useful informations for this tutorial :
components
HEAD : 0, // Head
BERD : 1, // Beard
HAIR : 2, // Hair
UPPR : 3, // Arms
LOWR : 4, // Pants
HAND : 5, // Parachute, bag, etc...
FEET : 6, // Foots
TEEF : 7, // Tie, scarf, necklace, etc..
ACCS : 8, // T-Shirt
TASK : 9, // Bulletproof, bag, etc...
DECL : 10, // Decals
JBIB : 11, // Vest, sweat, jacket, etc...
props
HEAD : 0, // head
EYES : 1, // eyes
EARS : 2, // ears
MOUTH : 3, // mouth
LEFT_HAND : 4, // lhand
RIGHT_HAND : 5, // rhand
LEFT_WRIST : 6, // lwrist
RIGHT_WRIST : 7, // rwrist
HIP : 8, // hip
LEFT_FOOT : 9, // lfoot
RIGHT_FOOT : 10, // rfoot
UNK_604819740 : 11, // ???
UNK_2358626934 : 12, // ???
1 - Creating the project directory
gtautil genpeddefs --create --output project --targets mp_m_freemode_01,mp_f_freemode_01
We just told gtautil to create a project folder named folder targeting base dlc component / props.
It looks like we are specifying the target models here but we are not. In fact we specify the target folders / ymts names without extension.
In a skin menu this will be the first group of items in the list, starting from drawable 0 for each component / prop.
In our case this will match
\models\cdimages\streamedpeds_mp.rpf\mp_*_freemode_01.ymt \models\cdimages\streamedpeds_mp.rpf\mp_*_freemode_01\* \models\cdimages\streamedpedprops.rpf\mp_*_freemode_01_p\*
mp_m_freemode_01 folder is for ped components and mp_m_freemode_01_p folder is for ped props, same for female.
- The program is hardcoded to search for mp freemode models.
- I don’t managed to get it working with another dlc.
- Hairs will not be hidden by new hats / helmets, I have yet to find how to do this.
2 - Adding mods to your project directory
Let’s say we want to add the following mods to our project :
- https://fr.gta5-mods.com/player/toby-price-dakar-replica-outfit-freemode-male-2k (complete outfit)
- https://fr.gta5-mods.com/player/jacket-alpinestars-freemode-male-model-replace-pelizaro (jacket)
- https://fr.gta5-mods.com/player/agv-2-models-replace-freemode-male (helmet)
Download all these mods and extract them somewhere in your computer.
You will have to move the files to project folder and rename them.
Start with 0.ydd for every different component / prop
For the textures, in the ydd folders create folders 0, 1, 2 etc… Inside these : 0.ytd, 1.ytd etc…
1 - Toby Price Dakar replica outfit
Boots\feet_001_u.ydd => project\mp_m_freemode_01\components\feet\0.ydd
Boots\feet_diff_001_e_uni.ytd => project\mp_m_freemode_01\components\feet\0\0.ytd
Jacket\jbib_000_u.ydd => project\mp_m_freemode_01\components\jbib\0.ydd
Jacket\jbib_diff_000_a_uni.ytd => project\mp_m_freemode_01\components\jbib\0\0.ytd
Pants\lowr_001_r.ydd => project\mp_m_freemode_01\components\lowr\0.ydd
Pants\lowr_diff_001_a_whi.ytd => project\mp_m_freemode_01\components\lowr\0\0.ytd
2 - Jacket Alpinestars
jbib_011_u.ydd => project\mp_m_freemode_01\components\jbib\1.ydd
jbib_diff_011_a_uni.ytd => project\mp_m_freemode_01\components\jbib\1\0.ytd
3 - AGV
p_head_010.ydd => project\mp_m_freemode_01_p\props\head\0.ydd
p_head_diff_010_a.ytd => project\mp_m_freemode_01_p\props\head\0\0.ytd
p_head_diff_010_b.ytd => project\mp_m_freemode_01_p\props\head\0\1.ytd
3 - Create FiveM resource from project folder, reserving 200 drawables for each component and prop
gtautil genpeddefs --input project --output build --reserve 200 --reserveprops 200 --fivem
Why “reserving” drawables ? Because everytime you will add new mods your component ids will be shifted and all your saved outfits messed up so it prevents that.
But of course if you have any outfit saving system based on component / drawable ids it will screw up your saves the first time you do this.
Move the build folder to your server resources directory (rename it to clothes or something like that) and start it in your server.cfg.
For your convenience it also generate json files which contains informations about empty reserved drawable slots.
Enjoy
Special thanks to @FuraXx and @SuperCoolNinja for testing