Okay so i still have very little understanding of how this works but i wanted to add new texture variations to existing npc models so i tried to figure it out based on what has been written here so far. Sadly, it wasn't too clearly understandable how you would figure out which item under hash_68AC8351 refers to which drawable and which item under hash_4A92222A refers to which texture. So here is what i have figured out:
-
the number of item entries (the ones then followed by "texId" in the next line) correlates directly to the number of textures for the drawable it refers to. in my case i wanted to add two extra textures for uppr_diff_000 to a_m_y_hipster_01. luckily, uppr_diff_000 is the only drawable to come with 6 textures (a-f) by default. so you know you're looking for the only entry with 6 items.
-
To add the extra textures, i named them uppr_diff_000_g_whi and uppr_diff_000_h_bla (because g and h come after f) and added them to the txd archive. Then i simply duplicated two item entries under hash_4A92222A in the .ymt file. Since they're basically the same, it doesn't matter which ones, as long as you add them at the end.
-
The only difference was the texId value. As it turns out, texId is skin color and 0 means universal, 1 means to match 1st head_diff (head_diff_000...), here caucasian and 2 means to match 2nd head_diff (head_diff_001...), here african american.
-
The item entries are sorted alphabetically, meaning the first item is a (here uppr_diff_000_a_whi), the second is b (here uppr_diff_000_b_whi), and so on.
-
At first, i messed up the texId values and for some reason, i had some head_diffs as texture choices in ENT. So if you see your ped wearing its face for clothing, check your texIds