notadoctor Posted March 1 Share Posted March 1 I was wondering if anybody was able to help me understand this context more? From the research that I have done I have understand the items under "<hash_E2489C4F>" are the 12 components (jbib, uppr, lowr, etc.). I also understand that item under <hash_4A9222A> are the extra textures. However I don't understand what the value aspect means. Then for the lower half, I have an idea which is that those value=1 through value=11 are those also of the 12 components however add how many actually are there, for example: Hair: 0/1 https://i.imgur.com/BeTzeUo https://i.imgur.com/Ubjk9th Link to comment Share on other sites More sharing options...
LeeC22 Posted March 2 Share Posted March 2 (edited) This is some info I found online a while back. [spoiler] <?xml version="1.0" encoding="UTF-8"?> <CPedVariationInfo> <bHasTexVariations value="false" /> <!--is there more than one texture for a drawable? false if only 1 texture for each drawable. True if more.--> <bHasDrawblVariations value="false" /> <!--Do they have more than one drawable for a section? E.g. uppr/lowr, etc.--> <bHasLowLODs value="false" /> <!--Unsure how this works. It's possible GTA has a default LOD file that can be used if this is true--> <bIsSuperLOD value="false" /> <!--What components that are enabled/disabled. The number will always be the lowest on the left and then following number going up by +1. 255 means disabled and starts at 0--> <!--As you can see below, 0 255 1, if I were to enable the 2nd option the 1 would be moved and the current 1 would be 2. e.g. (0 255 1) becomes (0 1 2)--> <!--Another example would be (4 5 6 255 255 255 7) becomes (4 5 6 7 255 8 9) so 7 becomes 9 because two more slots got enabled.--> <!--I will provide info on what each component uses as name/ID at the bottom of the page--> <availComp>0 255 1 2 3 255 255 255 4 255 255 255</availComp> <!--Component data is the container of the enabled/disabled components. this one will have more items added to it as we enable or disable components..--> <!--The items follow the same order as above meaning that if we enable a componen, the item will have to go in the same order--> <!--Example would be (0 255 1) if we enable slot 2 we would need to add an item in between the two existing items--> <aComponentData3 itemType="CPVComponentData"> <!--Items contain two things, roughly: the amount of models in a given componen and the amount of textures for the given model.--> <!--numAvailTex need to update with the amount of texture in a component, this can be by looking at how many items are in the <aTexData itemType="CPVTextureData"> part--> <Item> <!--Component 0--> <numAvailTex value="2" /> <aDrawblData3 itemType="CPVDrawblData"> <!--The item inside aDrawblData3 is models or drawables, meaning that if we/add remove we change the number of available models--> <!--So if we were to add more models we would need another item added below this item, but still in the same XML item, e.g. the same component--> <!--The values usually stay the same, e.g. propMask can be set to 1 as default (if further changes are needed we can manually change the XML)--> <Item> <!--Drawable 1--> <propMask value="17" /> <!--propMask seems to change what is used for the drawable name ending. E.g. _u or _r. 1, 5, 9 being _u and 17+ being _r--> <numAlternatives value="0" /> <aTexData itemType="CPVTextureData"> <!--This item defines the amount of textures in a given model--> <!--If we define 6 textures in the UI, it should have 6 items inside aTexData--> <!--TexId needs to be changable and I will be providing a list with what each ID means--> <Item> <!--Texture 1--> <texId value="1" /> <!--texId 1 equals to _whi in the texture name. Bottom of page has each texId and their name reference--> <distribution value="255" /> </Item> <Item> <!--Texture 2--> <texId value="1" /> <!--texId 1 equals to _whi in the texture name. Bottom of page has each texId and their name reference--> <distribution value="255" /> </Item> </aTexData> <clothData> <ownsCloth value="false" /> </clothData> </Item> </aDrawblData3> </Item> <!--This component has more than one drawable and multiple textures--> <Item> <!--Component 1--> <numAvailTex value="6" /> <!--Two drawables with three textures each, six in total--> <aDrawblData3 itemType="CPVDrawblData"> <Item> <!--Drawable 1--> <propMask value="25" /> <numAlternatives value="0" /> <aTexData itemType="CPVTextureData"> <Item> <!--Texture 1--> <texId value="1" /> <distribution value="255" /> </Item> <Item> <!--Texture 2--> <texId value="1" /> <distribution value="255" /> </Item> <Item> <!--Texture 3--> <texId value="1" /> <distribution value="255" /> </Item> </aTexData> <clothData> <ownsCloth value="false" /> </clothData> </Item> <Item> <!--Drawable 2--> <propMask value="25" /> <numAlternatives value="0" /> <aTexData itemType="CPVTextureData"> <Item> <!--Texture 1--> <texId value="1" /> <distribution value="255" /> </Item> <Item> <!--Texture 2--> <texId value="1" /> <distribution value="255" /> </Item> <Item> <!--Texture 3--> <texId value="1" /> <distribution value="255" /> </Item> </aTexData> <clothData> <ownsCloth value="false" /> </clothData> </Item> </aDrawblData3> </Item> <Item> <!--Component 2--> <numAvailTex value="3" /> <aDrawblData3 itemType="CPVDrawblData"> <Item> <propMask value="17" /> <numAlternatives value="0" /> <aTexData itemType="CPVTextureData"> <Item> <texId value="1" /> <distribution value="255" /> </Item> <Item> <texId value="1" /> <distribution value="255" /> </Item> <Item> <texId value="1" /> <distribution value="255" /> </Item> </aTexData> <clothData> <ownsCloth value="false" /> </clothData> </Item> </aDrawblData3> </Item> <Item> <!--Component 3--> <numAvailTex value="6" /> <aDrawblData3 itemType="CPVDrawblData"> <Item> <propMask value="1" /> <numAlternatives value="0" /> <aTexData itemType="CPVTextureData"> <Item> <texId value="0" /> <distribution value="255" /> </Item> <Item> <texId value="0" /> <distribution value="255" /> </Item> <Item> <texId value="0" /> <distribution value="255" /> </Item> </aTexData> <clothData> <ownsCloth value="false" /> </clothData> </Item> <Item> <propMask value="17" /> <numAlternatives value="0" /> <aTexData itemType="CPVTextureData"> <Item> <texId value="1" /> <distribution value="255" /> </Item> <Item> <texId value="1" /> <distribution value="255" /> </Item> <Item> <texId value="1" /> <distribution value="255" /> </Item> </aTexData> <clothData> <ownsCloth value="false" /> </clothData> </Item> </aDrawblData3> </Item> <Item> <!--Component 4--> <numAvailTex value="4" /> <aDrawblData3 itemType="CPVDrawblData"> <Item> <propMask value="1" /> <numAlternatives value="0" /> <aTexData itemType="CPVTextureData"> <Item> <texId value="0" /> <distribution value="255" /> </Item> <Item> <texId value="0" /> <distribution value="255" /> </Item> <Item> <texId value="0" /> <distribution value="255" /> </Item> </aTexData> <clothData> <ownsCloth value="false" /> </clothData> </Item> <Item> <propMask value="1" /> <numAlternatives value="0" /> <aTexData itemType="CPVTextureData"> <Item> <texId value="0" /> <distribution value="255" /> </Item> </aTexData> <clothData> <ownsCloth value="false" /> </clothData> </Item> </aDrawblData3> </Item> </aComponentData3> <aSelectionSets itemType="CPedSelectionSet" /> <!--This part I don't know much about other than we match the amount of components, the ID and the drawable count--> <compInfos itemType="CComponentInfo"> <!--We add more items depending on the amount of available components that follow the same rules. E.g. they have to be listen in the correct order--> <!--Check the bottom of the page for ID explaination--> <Item> <hash_2FD08CEF>none</hash_2FD08CEF> <hash_FC507D28>none</hash_FC507D28> <hash_07AE529D>0 0 0 0 0</hash_07AE529D> <flags value="0" /> <inclusions>0</inclusions> <exclusions>0</exclusions> <hash_6032815C>PV_COMP_HEAD</hash_6032815C> <hash_7E103C8B value="0" /> <hash_D12F579D value="0" /> <!--Component ID, in this case HEAD so ID 0--> <hash_FA1F27BF value="0" /> <!--Drawable number, since only 1 is available it's 0--> </Item> <Item> <hash_2FD08CEF>none</hash_2FD08CEF> <hash_FC507D28>none</hash_FC507D28> <hash_07AE529D>0 0 0 0 0</hash_07AE529D> <flags value="0" /> <inclusions>0</inclusions> <exclusions>0</exclusions> <hash_6032815C>PV_COMP_HEAD</hash_6032815C> <hash_7E103C8B value="0" /> <hash_D12F579D value="2" /> <!--Component ID, in this case HAIR so ID 2--> <hash_FA1F27BF value="0" /> <!--Drawable number--> </Item> <Item> <hash_2FD08CEF>none</hash_2FD08CEF> <hash_FC507D28>none</hash_FC507D28> <hash_07AE529D>0 0 0 0 0</hash_07AE529D> <flags value="0" /> <inclusions>0</inclusions> <exclusions>0</exclusions> <hash_6032815C>PV_COMP_HEAD</hash_6032815C> <hash_7E103C8B value="0" /> <hash_D12F579D value="2" /> <hash_FA1F27BF value="1" /> <!--Drawable number, since 2 are available it's 1 since we're on the 2nd--> </Item> <Item> <hash_2FD08CEF>none</hash_2FD08CEF> <hash_FC507D28>none</hash_FC507D28> <hash_07AE529D>0 0 0 0 0</hash_07AE529D> <flags value="0" /> <inclusions>0</inclusions> <exclusions>0</exclusions> <hash_6032815C>PV_COMP_HEAD</hash_6032815C> <hash_7E103C8B value="0" /> <hash_D12F579D value="3" /> <!--Component ID, in this case UPPR so ID 3--> <hash_FA1F27BF value="0" /> </Item> <Item> <hash_2FD08CEF>none</hash_2FD08CEF> <hash_FC507D28>none</hash_FC507D28> <hash_07AE529D>0 0 0 0 0</hash_07AE529D> <flags value="0" /> <inclusions>0</inclusions> <exclusions>0</exclusions> <hash_6032815C>PV_COMP_HEAD</hash_6032815C> <hash_7E103C8B value="0" /> <hash_D12F579D value="4" /> <hash_FA1F27BF value="0" /> </Item> <Item> <hash_2FD08CEF>none</hash_2FD08CEF> <hash_FC507D28>none</hash_FC507D28> <hash_07AE529D>0 0 0 0 0</hash_07AE529D> <flags value="0" /> <inclusions>0</inclusions> <exclusions>0</exclusions> <hash_6032815C>PV_COMP_HEAD</hash_6032815C> <hash_7E103C8B value="0" /> <hash_D12F579D value="4" /> <hash_FA1F27BF value="1" /> </Item> <Item> <hash_2FD08CEF>none</hash_2FD08CEF> <hash_FC507D28>none</hash_FC507D28> <hash_07AE529D>0 0 0 0 0</hash_07AE529D> <flags value="0" /> <inclusions>0</inclusions> <exclusions>0</exclusions> <hash_6032815C>PV_COMP_HEAD</hash_6032815C> <hash_7E103C8B value="0" /> <hash_D12F579D value="8" /> <hash_FA1F27BF value="0" /> </Item> <Item> <hash_2FD08CEF>none</hash_2FD08CEF> <hash_FC507D28>none</hash_FC507D28> <hash_07AE529D>0 0 0 0 0</hash_07AE529D> <flags value="0" /> <inclusions>0</inclusions> <exclusions>0</exclusions> <hash_6032815C>PV_COMP_HEAD</hash_6032815C> <hash_7E103C8B value="0" /> <hash_D12F579D value="8" /> <hash_FA1F27BF value="1" /> </Item> </compInfos> <!--Prop info is used to add data to props, scroll down to the bottom of the page to see where props are defined then scroll back up here--> <propInfo> <numAvailProps value="4" /> <aPropMetaData itemType="CPedPropMetaData"> <!--The way this works is mostly the same as above. We set an amount of props with the amount of textures.--> <!--This is the first item in the prop list, e.g. head prop with 3 textures as can be seen in <aAnchors itemType="CAnchorProps">--> <Item> <audioId>none</audioId> <expressionMods>0 0 0 0 0</expressionMods> <texData itemType="CPedPropTexData"> <!--the prop texture. Items would have to be added depending on the amount of textures defined. In this case it's prop 1 with 3 textures, so there is 3 items.--> <Item> <!--Item 1 / texture 1--> <inclusions>0</inclusions> <exclusions>0</exclusions> <!--TexId is set to match the number the texture is. in this case it's the first texture so it's 0 since we start at 0, not 1.--> <texId value="0" /> <!--For some reason texId is just the number and not like texId in components. e.g. this goes up with each different texture--> <inclusionId value="0" /> <exclusionId value="0" /> <distribution value="255" /> </Item> <Item> <!--Item 2 / texture 2--> <inclusions>0</inclusions> <exclusions>0</exclusions> <texId value="1" /> <!--Texure 2, for some reason texId is just the number and not like texId in components. e.g. this goes up with each different texture--> <inclusionId value="0" /> <exclusionId value="0" /> <distribution value="255" /> </Item> <Item> <!--Item 3 / texture 3--> <inclusions>0</inclusions> <exclusions>0</exclusions> <texId value="2" /> <inclusionId value="0" /> <exclusionId value="0" /> <distribution value="255" /> </Item> </texData> <!--renderFlags will be set as a toggle. if on we add <renderFlags>PRF_ALPHA</renderFlags> if off we leave it as below--> <renderFlags /> <!-- <renderFlags>PRF_ALPHA</renderFlags> --> <propFlags value="0" /> <flags value="0" /> <!--anchorId matches the ID that can be found in the list below.--> <!--In this case it's anchor head and has ID 0--> <!--HEAD: 0, // head--> <anchorId value="0" /> <!--Goes up with the amount of props we have. This one is prop 1, so therefor the ID is 0 since we start at 0 not 1--> <!--Since we have 3 props defined, we will end at propid 2--> <propId value="0" /> <hash_AC887A91 value="0" /> </Item> <!--Prop #2 for head--> <!--Follow the same rules as above--> <Item> <audioId>none</audioId> <expressionMods>0 0 0 0 0</expressionMods> <texData itemType="CPedPropTexData"> <Item> <inclusions>0</inclusions> <exclusions>0</exclusions> <texId value="0" /> <inclusionId value="0" /> <exclusionId value="0" /> <distribution value="255" /> </Item> <Item> <inclusions>0</inclusions> <exclusions>0</exclusions> <texId value="1" /> <inclusionId value="0" /> <exclusionId value="0" /> <distribution value="255" /> </Item> <Item> <inclusions>0</inclusions> <exclusions>0</exclusions> <texId value="2" /> <inclusionId value="0" /> <exclusionId value="0" /> <distribution value="255" /> </Item> </texData> <renderFlags /> <propFlags value="0" /> <flags value="0" /> <anchorId value="0" /> <propId value="1" /> <hash_AC887A91 value="0" /> </Item> <!--Prop #3 for head--> <!--Follow the same rules as above--> <Item> <audioId>none</audioId> <expressionMods>0 0 0 0 0</expressionMods> <texData itemType="CPedPropTexData"> <Item> <inclusions>0</inclusions> <exclusions>0</exclusions> <texId value="0" /> <inclusionId value="0" /> <exclusionId value="0" /> <distribution value="255" /> </Item> </texData> <renderFlags /> <propFlags value="0" /> <flags value="0" /> <anchorId value="0" /> <propId value="2" /> <!--Last prop for HEAD--> <hash_AC887A91 value="0" /> </Item> <!--New item with new anchorId, in this case we're not on the ANCHOR_EYES prop--> <!--It works the same as above, other than the value for anchorId is 1--> <Item> <audioId>none</audioId> <expressionMods>0 0 0 0 0</expressionMods> <texData itemType="CPedPropTexData"> <Item> <inclusions>0</inclusions> <exclusions>0</exclusions> <texId value="0" /> <inclusionId value="0" /> <exclusionId value="0" /> <distribution value="255" /> </Item> <Item> <inclusions>0</inclusions> <exclusions>0</exclusions> <texId value="1" /> <inclusionId value="0" /> <exclusionId value="0" /> <distribution value="255" /> </Item> <Item> <inclusions>0</inclusions> <exclusions>0</exclusions> <texId value="2" /> <inclusionId value="0" /> <exclusionId value="0" /> <distribution value="255" /> </Item> </texData> <!--In this case we have alpha applied as you can see with this flag--> <renderFlags>PRF_ALPHA</renderFlags> <propFlags value="0" /> <flags value="0" /> <anchorId value="1" /> <!--ID 1 since we're working on eyes--> <propId value="0" /> <hash_AC887A91 value="0" /> </Item> </aPropMetaData> <!--Here we define the amount of props for a given model and how many textures they have--> <aAnchors itemType="CAnchorProps"> <Item> <!--This is pretty straight forward. the number defines the amount of textures, and the more we add the more there is to pick from--> <!--7 would mean there is 7 textures. 4 7 would mean there is two items, one with 4 textures and one with 7--> <props>3 3 1</props> <!--The anchor point means where the prop will be attached to. I will provide the different ID's and names for each anchor point at the bottom of the page so we can add/remove as needed--> <anchor>ANCHOR_HEAD</anchor> </Item> <!--The same goes here, 3 meaning 3 textures and there is only one prop--> <Item> <props>3</props> <anchor>ANCHOR_EYES</anchor> </Item> </aAnchors> </propInfo> <dlcName /> </CPedVariationInfo> <!--ANCHOR_ points 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, // ??? --> <!--Component list 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... --> <!--texID list 0 = '_uni' (universal) 1 = '_whi' (white) 2 = '_bla' (black) 3 = '_chi' (chinese) 4 = '_lat' (latino) 5 = '_ara' (arabic) 6 = '_bal' (baltic) 7 = '_jam' (jamaican) 8 = '_kor' (korean) 9 = '_ita' (italian) 10 = '_pak' (pakistani - resembles indians mostly, like shopkeepers) --> [/spoiler] Edit: I don't know what the spoiler tags should look like, not like this apparently. *shrug* Edited March 2 by LeeC22 notadoctor 1 Link to comment Share on other sites More sharing options...
notadoctor Posted March 3 Author Share Posted March 3 Honestly that was very helpful I appreciate it LeeC22 1 Link to comment Share on other sites More sharing options...
notadoctor Posted March 3 Author Share Posted March 3 On 3/2/2022 at 1:04 AM, LeeC22 said: This is some info I found online a while back. [spoiler] <?xml version="1.0" encoding="UTF-8"?> <CPedVariationInfo> <bHasTexVariations value="false" /> <!--is there more than one texture for a drawable? false if only 1 texture for each drawable. True if more.--> <bHasDrawblVariations value="false" /> <!--Do they have more than one drawable for a section? E.g. uppr/lowr, etc.--> <bHasLowLODs value="false" /> <!--Unsure how this works. It's possible GTA has a default LOD file that can be used if this is true--> <bIsSuperLOD value="false" /> <!--What components that are enabled/disabled. The number will always be the lowest on the left and then following number going up by +1. 255 means disabled and starts at 0--> <!--As you can see below, 0 255 1, if I were to enable the 2nd option the 1 would be moved and the current 1 would be 2. e.g. (0 255 1) becomes (0 1 2)--> <!--Another example would be (4 5 6 255 255 255 7) becomes (4 5 6 7 255 8 9) so 7 becomes 9 because two more slots got enabled.--> <!--I will provide info on what each component uses as name/ID at the bottom of the page--> <availComp>0 255 1 2 3 255 255 255 4 255 255 255</availComp> <!--Component data is the container of the enabled/disabled components. this one will have more items added to it as we enable or disable components..--> <!--The items follow the same order as above meaning that if we enable a componen, the item will have to go in the same order--> <!--Example would be (0 255 1) if we enable slot 2 we would need to add an item in between the two existing items--> <aComponentData3 itemType="CPVComponentData"> <!--Items contain two things, roughly: the amount of models in a given componen and the amount of textures for the given model.--> <!--numAvailTex need to update with the amount of texture in a component, this can be by looking at how many items are in the <aTexData itemType="CPVTextureData"> part--> <Item> <!--Component 0--> <numAvailTex value="2" /> <aDrawblData3 itemType="CPVDrawblData"> <!--The item inside aDrawblData3 is models or drawables, meaning that if we/add remove we change the number of available models--> <!--So if we were to add more models we would need another item added below this item, but still in the same XML item, e.g. the same component--> <!--The values usually stay the same, e.g. propMask can be set to 1 as default (if further changes are needed we can manually change the XML)--> <Item> <!--Drawable 1--> <propMask value="17" /> <!--propMask seems to change what is used for the drawable name ending. E.g. _u or _r. 1, 5, 9 being _u and 17+ being _r--> <numAlternatives value="0" /> <aTexData itemType="CPVTextureData"> <!--This item defines the amount of textures in a given model--> <!--If we define 6 textures in the UI, it should have 6 items inside aTexData--> <!--TexId needs to be changable and I will be providing a list with what each ID means--> <Item> <!--Texture 1--> <texId value="1" /> <!--texId 1 equals to _whi in the texture name. Bottom of page has each texId and their name reference--> <distribution value="255" /> </Item> <Item> <!--Texture 2--> <texId value="1" /> <!--texId 1 equals to _whi in the texture name. Bottom of page has each texId and their name reference--> <distribution value="255" /> </Item> </aTexData> <clothData> <ownsCloth value="false" /> </clothData> </Item> </aDrawblData3> </Item> <!--This component has more than one drawable and multiple textures--> <Item> <!--Component 1--> <numAvailTex value="6" /> <!--Two drawables with three textures each, six in total--> <aDrawblData3 itemType="CPVDrawblData"> <Item> <!--Drawable 1--> <propMask value="25" /> <numAlternatives value="0" /> <aTexData itemType="CPVTextureData"> <Item> <!--Texture 1--> <texId value="1" /> <distribution value="255" /> </Item> <Item> <!--Texture 2--> <texId value="1" /> <distribution value="255" /> </Item> <Item> <!--Texture 3--> <texId value="1" /> <distribution value="255" /> </Item> </aTexData> <clothData> <ownsCloth value="false" /> </clothData> </Item> <Item> <!--Drawable 2--> <propMask value="25" /> <numAlternatives value="0" /> <aTexData itemType="CPVTextureData"> <Item> <!--Texture 1--> <texId value="1" /> <distribution value="255" /> </Item> <Item> <!--Texture 2--> <texId value="1" /> <distribution value="255" /> </Item> <Item> <!--Texture 3--> <texId value="1" /> <distribution value="255" /> </Item> </aTexData> <clothData> <ownsCloth value="false" /> </clothData> </Item> </aDrawblData3> </Item> <Item> <!--Component 2--> <numAvailTex value="3" /> <aDrawblData3 itemType="CPVDrawblData"> <Item> <propMask value="17" /> <numAlternatives value="0" /> <aTexData itemType="CPVTextureData"> <Item> <texId value="1" /> <distribution value="255" /> </Item> <Item> <texId value="1" /> <distribution value="255" /> </Item> <Item> <texId value="1" /> <distribution value="255" /> </Item> </aTexData> <clothData> <ownsCloth value="false" /> </clothData> </Item> </aDrawblData3> </Item> <Item> <!--Component 3--> <numAvailTex value="6" /> <aDrawblData3 itemType="CPVDrawblData"> <Item> <propMask value="1" /> <numAlternatives value="0" /> <aTexData itemType="CPVTextureData"> <Item> <texId value="0" /> <distribution value="255" /> </Item> <Item> <texId value="0" /> <distribution value="255" /> </Item> <Item> <texId value="0" /> <distribution value="255" /> </Item> </aTexData> <clothData> <ownsCloth value="false" /> </clothData> </Item> <Item> <propMask value="17" /> <numAlternatives value="0" /> <aTexData itemType="CPVTextureData"> <Item> <texId value="1" /> <distribution value="255" /> </Item> <Item> <texId value="1" /> <distribution value="255" /> </Item> <Item> <texId value="1" /> <distribution value="255" /> </Item> </aTexData> <clothData> <ownsCloth value="false" /> </clothData> </Item> </aDrawblData3> </Item> <Item> <!--Component 4--> <numAvailTex value="4" /> <aDrawblData3 itemType="CPVDrawblData"> <Item> <propMask value="1" /> <numAlternatives value="0" /> <aTexData itemType="CPVTextureData"> <Item> <texId value="0" /> <distribution value="255" /> </Item> <Item> <texId value="0" /> <distribution value="255" /> </Item> <Item> <texId value="0" /> <distribution value="255" /> </Item> </aTexData> <clothData> <ownsCloth value="false" /> </clothData> </Item> <Item> <propMask value="1" /> <numAlternatives value="0" /> <aTexData itemType="CPVTextureData"> <Item> <texId value="0" /> <distribution value="255" /> </Item> </aTexData> <clothData> <ownsCloth value="false" /> </clothData> </Item> </aDrawblData3> </Item> </aComponentData3> <aSelectionSets itemType="CPedSelectionSet" /> <!--This part I don't know much about other than we match the amount of components, the ID and the drawable count--> <compInfos itemType="CComponentInfo"> <!--We add more items depending on the amount of available components that follow the same rules. E.g. they have to be listen in the correct order--> <!--Check the bottom of the page for ID explaination--> <Item> <hash_2FD08CEF>none</hash_2FD08CEF> <hash_FC507D28>none</hash_FC507D28> <hash_07AE529D>0 0 0 0 0</hash_07AE529D> <flags value="0" /> <inclusions>0</inclusions> <exclusions>0</exclusions> <hash_6032815C>PV_COMP_HEAD</hash_6032815C> <hash_7E103C8B value="0" /> <hash_D12F579D value="0" /> <!--Component ID, in this case HEAD so ID 0--> <hash_FA1F27BF value="0" /> <!--Drawable number, since only 1 is available it's 0--> </Item> <Item> <hash_2FD08CEF>none</hash_2FD08CEF> <hash_FC507D28>none</hash_FC507D28> <hash_07AE529D>0 0 0 0 0</hash_07AE529D> <flags value="0" /> <inclusions>0</inclusions> <exclusions>0</exclusions> <hash_6032815C>PV_COMP_HEAD</hash_6032815C> <hash_7E103C8B value="0" /> <hash_D12F579D value="2" /> <!--Component ID, in this case HAIR so ID 2--> <hash_FA1F27BF value="0" /> <!--Drawable number--> </Item> <Item> <hash_2FD08CEF>none</hash_2FD08CEF> <hash_FC507D28>none</hash_FC507D28> <hash_07AE529D>0 0 0 0 0</hash_07AE529D> <flags value="0" /> <inclusions>0</inclusions> <exclusions>0</exclusions> <hash_6032815C>PV_COMP_HEAD</hash_6032815C> <hash_7E103C8B value="0" /> <hash_D12F579D value="2" /> <hash_FA1F27BF value="1" /> <!--Drawable number, since 2 are available it's 1 since we're on the 2nd--> </Item> <Item> <hash_2FD08CEF>none</hash_2FD08CEF> <hash_FC507D28>none</hash_FC507D28> <hash_07AE529D>0 0 0 0 0</hash_07AE529D> <flags value="0" /> <inclusions>0</inclusions> <exclusions>0</exclusions> <hash_6032815C>PV_COMP_HEAD</hash_6032815C> <hash_7E103C8B value="0" /> <hash_D12F579D value="3" /> <!--Component ID, in this case UPPR so ID 3--> <hash_FA1F27BF value="0" /> </Item> <Item> <hash_2FD08CEF>none</hash_2FD08CEF> <hash_FC507D28>none</hash_FC507D28> <hash_07AE529D>0 0 0 0 0</hash_07AE529D> <flags value="0" /> <inclusions>0</inclusions> <exclusions>0</exclusions> <hash_6032815C>PV_COMP_HEAD</hash_6032815C> <hash_7E103C8B value="0" /> <hash_D12F579D value="4" /> <hash_FA1F27BF value="0" /> </Item> <Item> <hash_2FD08CEF>none</hash_2FD08CEF> <hash_FC507D28>none</hash_FC507D28> <hash_07AE529D>0 0 0 0 0</hash_07AE529D> <flags value="0" /> <inclusions>0</inclusions> <exclusions>0</exclusions> <hash_6032815C>PV_COMP_HEAD</hash_6032815C> <hash_7E103C8B value="0" /> <hash_D12F579D value="4" /> <hash_FA1F27BF value="1" /> </Item> <Item> <hash_2FD08CEF>none</hash_2FD08CEF> <hash_FC507D28>none</hash_FC507D28> <hash_07AE529D>0 0 0 0 0</hash_07AE529D> <flags value="0" /> <inclusions>0</inclusions> <exclusions>0</exclusions> <hash_6032815C>PV_COMP_HEAD</hash_6032815C> <hash_7E103C8B value="0" /> <hash_D12F579D value="8" /> <hash_FA1F27BF value="0" /> </Item> <Item> <hash_2FD08CEF>none</hash_2FD08CEF> <hash_FC507D28>none</hash_FC507D28> <hash_07AE529D>0 0 0 0 0</hash_07AE529D> <flags value="0" /> <inclusions>0</inclusions> <exclusions>0</exclusions> <hash_6032815C>PV_COMP_HEAD</hash_6032815C> <hash_7E103C8B value="0" /> <hash_D12F579D value="8" /> <hash_FA1F27BF value="1" /> </Item> </compInfos> <!--Prop info is used to add data to props, scroll down to the bottom of the page to see where props are defined then scroll back up here--> <propInfo> <numAvailProps value="4" /> <aPropMetaData itemType="CPedPropMetaData"> <!--The way this works is mostly the same as above. We set an amount of props with the amount of textures.--> <!--This is the first item in the prop list, e.g. head prop with 3 textures as can be seen in <aAnchors itemType="CAnchorProps">--> <Item> <audioId>none</audioId> <expressionMods>0 0 0 0 0</expressionMods> <texData itemType="CPedPropTexData"> <!--the prop texture. Items would have to be added depending on the amount of textures defined. In this case it's prop 1 with 3 textures, so there is 3 items.--> <Item> <!--Item 1 / texture 1--> <inclusions>0</inclusions> <exclusions>0</exclusions> <!--TexId is set to match the number the texture is. in this case it's the first texture so it's 0 since we start at 0, not 1.--> <texId value="0" /> <!--For some reason texId is just the number and not like texId in components. e.g. this goes up with each different texture--> <inclusionId value="0" /> <exclusionId value="0" /> <distribution value="255" /> </Item> <Item> <!--Item 2 / texture 2--> <inclusions>0</inclusions> <exclusions>0</exclusions> <texId value="1" /> <!--Texure 2, for some reason texId is just the number and not like texId in components. e.g. this goes up with each different texture--> <inclusionId value="0" /> <exclusionId value="0" /> <distribution value="255" /> </Item> <Item> <!--Item 3 / texture 3--> <inclusions>0</inclusions> <exclusions>0</exclusions> <texId value="2" /> <inclusionId value="0" /> <exclusionId value="0" /> <distribution value="255" /> </Item> </texData> <!--renderFlags will be set as a toggle. if on we add <renderFlags>PRF_ALPHA</renderFlags> if off we leave it as below--> <renderFlags /> <!-- <renderFlags>PRF_ALPHA</renderFlags> --> <propFlags value="0" /> <flags value="0" /> <!--anchorId matches the ID that can be found in the list below.--> <!--In this case it's anchor head and has ID 0--> <!--HEAD: 0, // head--> <anchorId value="0" /> <!--Goes up with the amount of props we have. This one is prop 1, so therefor the ID is 0 since we start at 0 not 1--> <!--Since we have 3 props defined, we will end at propid 2--> <propId value="0" /> <hash_AC887A91 value="0" /> </Item> <!--Prop #2 for head--> <!--Follow the same rules as above--> <Item> <audioId>none</audioId> <expressionMods>0 0 0 0 0</expressionMods> <texData itemType="CPedPropTexData"> <Item> <inclusions>0</inclusions> <exclusions>0</exclusions> <texId value="0" /> <inclusionId value="0" /> <exclusionId value="0" /> <distribution value="255" /> </Item> <Item> <inclusions>0</inclusions> <exclusions>0</exclusions> <texId value="1" /> <inclusionId value="0" /> <exclusionId value="0" /> <distribution value="255" /> </Item> <Item> <inclusions>0</inclusions> <exclusions>0</exclusions> <texId value="2" /> <inclusionId value="0" /> <exclusionId value="0" /> <distribution value="255" /> </Item> </texData> <renderFlags /> <propFlags value="0" /> <flags value="0" /> <anchorId value="0" /> <propId value="1" /> <hash_AC887A91 value="0" /> </Item> <!--Prop #3 for head--> <!--Follow the same rules as above--> <Item> <audioId>none</audioId> <expressionMods>0 0 0 0 0</expressionMods> <texData itemType="CPedPropTexData"> <Item> <inclusions>0</inclusions> <exclusions>0</exclusions> <texId value="0" /> <inclusionId value="0" /> <exclusionId value="0" /> <distribution value="255" /> </Item> </texData> <renderFlags /> <propFlags value="0" /> <flags value="0" /> <anchorId value="0" /> <propId value="2" /> <!--Last prop for HEAD--> <hash_AC887A91 value="0" /> </Item> <!--New item with new anchorId, in this case we're not on the ANCHOR_EYES prop--> <!--It works the same as above, other than the value for anchorId is 1--> <Item> <audioId>none</audioId> <expressionMods>0 0 0 0 0</expressionMods> <texData itemType="CPedPropTexData"> <Item> <inclusions>0</inclusions> <exclusions>0</exclusions> <texId value="0" /> <inclusionId value="0" /> <exclusionId value="0" /> <distribution value="255" /> </Item> <Item> <inclusions>0</inclusions> <exclusions>0</exclusions> <texId value="1" /> <inclusionId value="0" /> <exclusionId value="0" /> <distribution value="255" /> </Item> <Item> <inclusions>0</inclusions> <exclusions>0</exclusions> <texId value="2" /> <inclusionId value="0" /> <exclusionId value="0" /> <distribution value="255" /> </Item> </texData> <!--In this case we have alpha applied as you can see with this flag--> <renderFlags>PRF_ALPHA</renderFlags> <propFlags value="0" /> <flags value="0" /> <anchorId value="1" /> <!--ID 1 since we're working on eyes--> <propId value="0" /> <hash_AC887A91 value="0" /> </Item> </aPropMetaData> <!--Here we define the amount of props for a given model and how many textures they have--> <aAnchors itemType="CAnchorProps"> <Item> <!--This is pretty straight forward. the number defines the amount of textures, and the more we add the more there is to pick from--> <!--7 would mean there is 7 textures. 4 7 would mean there is two items, one with 4 textures and one with 7--> <props>3 3 1</props> <!--The anchor point means where the prop will be attached to. I will provide the different ID's and names for each anchor point at the bottom of the page so we can add/remove as needed--> <anchor>ANCHOR_HEAD</anchor> </Item> <!--The same goes here, 3 meaning 3 textures and there is only one prop--> <Item> <props>3</props> <anchor>ANCHOR_EYES</anchor> </Item> </aAnchors> </propInfo> <dlcName /> </CPedVariationInfo> <!--ANCHOR_ points 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, // ??? --> <!--Component list 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... --> <!--texID list 0 = '_uni' (universal) 1 = '_whi' (white) 2 = '_bla' (black) 3 = '_chi' (chinese) 4 = '_lat' (latino) 5 = '_ara' (arabic) 6 = '_bal' (baltic) 7 = '_jam' (jamaican) 8 = '_kor' (korean) 9 = '_ita' (italian) 10 = '_pak' (pakistani - resembles indians mostly, like shopkeepers) --> [/spoiler] Edit: I don't know what the spoiler tags should look like, not like this apparently. *shrug* I'm not sure if I missed over it or it was not mentioned, but what is "<distribution value="255" />" referring to, if you happen to know. And also but having the value at 255, doesn't that mean that there would be no texture? So if that is set to 0, that indicates that there is a texture there now or am I completely wrong? Link to comment Share on other sites More sharing options...
LeeC22 Posted March 4 Share Posted March 4 9 hours ago, notadoctor said: I'm not sure if I missed over it or it was not mentioned, but what is "<distribution value="255" />" referring to, if you happen to know. And also but having the value at 255, doesn't that mean that there would be no texture? So if that is set to 0, that indicates that there is a texture there now or am I completely wrong? I honestly don't know, I have done very little with Ped editing, I was mainly a script modder when I was still modding the game. I have just collected all kinds of reference info over the past 8 - 9 years, even on topics I don't deal with that much. You'd probably need to find a ped modder for more clarification on this file but as everyone seems to have scuttled off into their own Discord, you probably won't get the info on here. Link to comment Share on other sites More sharing options...
notadoctor Posted March 4 Author Share Posted March 4 11 hours ago, LeeC22 said: I honestly don't know, I have done very little with Ped editing, I was mainly a script modder when I was still modding the game. I have just collected all kinds of reference info over the past 8 - 9 years, even on topics I don't deal with that much. You'd probably need to find a ped modder for more clarification on this file but as everyone seems to have scuttled off into their own Discord, you probably won't get the info on here. I picked it up last Friday and have gotten so much more knowledge and even since this post, I went deep diving to find out. Couldn't find anything of distribution however other questions got answered that I didn't even think were going to be questions at the time. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now