Yeah, if i leave the original mesh names in the call to customization_item_wear, it doesn't crash; it does nothing. In fact, the Lua call halts, which means there's an error, but i don't get the text of it.
 
Okay, round two.
 
Cyrus item str2 files are in customize_item.vpp_pc
head: custmesh_-629684167.str2_pc & custmesh_-629684167f.str2_pc
body: custmesh_871704894.str2_pc & custmesh_871704894f.str2_pc
These contain ccmesh, cpeg, gcmesh, and gpeg files.
 
Mary's character str2 file is in characters.vpp_pc
both: gang_female_mary_high.str2_pc
This contains cpeg, gpeg, and matlib files. No mesh files; that's worrying.
 
I delete the files inside -629684167. I replace them with the @streams.xml and the 3 mary_head_high files. I edit @streams.xml to remove references to the body files.
Then i repeat the process for the body in 871704894 , keeping the body files and removing references to the head files.
I repack both files and put them in the root, along with everything else remaining as in my last post.
 
Ah, but i need to update an asm file. Gibbed's tool doesn't support adding or removing files from the list, only updating their packed size. But i can export the ASM as XML.
 
This is what it contains for the body file:
	
	
	
		Code:
	
	
		    <ContainerEntry>
      <Name>custmesh_871704894f</Name>
      <Type>10</Type>
      <Flags>Unknown7</Flags>
      <DataOffset>6144</DataOffset>
      <Parent />
      <Extra />
      <CompressedSize>707782</CompressedSize>
      <Sizes>
        <PrimitiveSize>
          <CPUSize>4456</CPUSize>
          <GPUSize>244420</GPUSize>
        </PrimitiveSize>
        <PrimitiveSize>
          <CPUSize>395</CPUSize>
          <GPUSize>786432</GPUSize>
        </PrimitiveSize>
      </Sizes>
      <Primitives>
        <PrimitiveEntry>
          <Name>cyrus_hires.ccmesh_pc</Name>
          <Type>9</Type>
          <Allocator>0</Allocator>
          <Flags>IsSplit</Flags>
          <SplitIndex>0</SplitIndex>
          <CPUSize>4456</CPUSize>
          <GPUSize>244420</GPUSize>
          <Unknown7>0</Unknown7>
        </PrimitiveEntry>
        <PrimitiveEntry>
          <Name>cyrus_hires.cpeg_pc</Name>
          <Type>10</Type>
          <Allocator>0</Allocator>
          <Flags>IsSplit</Flags>
          <SplitIndex>0</SplitIndex>
          <CPUSize>395</CPUSize>
          <GPUSize>786432</GPUSize>
          <Unknown7>0</Unknown7>
        </PrimitiveEntry>
      </Primitives>
    </ContainerEntry>
	 
  
This is what's in character_containers.asm_pc for mary:
	
	
	
		Code:
	
	
		  <ContainerEntry>
      <Name>gang_female_mary_high</Name>
      <Type>8</Type>
      <Flags>Unknown7</Flags>
      <DataOffset>6144</DataOffset>
      <Parent />
      <Extra />
      <CompressedSize>1288954</CompressedSize>
      <Sizes>
        <PrimitiveSize>
          <CPUSize>294</CPUSize>
          <GPUSize>1059504</GPUSize>
        </PrimitiveSize>
        <PrimitiveSize>
          <CPUSize>1568</CPUSize>
          <GPUSize>0</GPUSize>
        </PrimitiveSize>
        <PrimitiveSize>
          <CPUSize>394</CPUSize>
          <GPUSize>1092288</GPUSize>
        </PrimitiveSize>
        <PrimitiveSize>
          <CPUSize>2912</CPUSize>
          <GPUSize>0</GPUSize>
        </PrimitiveSize>
      </Sizes>
      <Primitives>
        <PrimitiveEntry>
          <Name>mary_head_high.cpeg_pc</Name>
          <Type>16</Type>
          <Allocator>0</Allocator>
          <Flags>IsSplit</Flags>
          <SplitIndex>0</SplitIndex>
          <CPUSize>294</CPUSize>
          <GPUSize>1059504</GPUSize>
          <Unknown7>0</Unknown7>
        </PrimitiveEntry>
        <PrimitiveEntry>
          <Name>mary_head_high.matlib_pc</Name>
          <Type>22</Type>
          <Allocator>0</Allocator>
          <Flags />
          <SplitIndex>0</SplitIndex>
          <CPUSize>1568</CPUSize>
          <GPUSize>0</GPUSize>
          <Unknown7>0</Unknown7>
        </PrimitiveEntry>
        <PrimitiveEntry>
          <Name>mary_body_high.cpeg_pc</Name>
          <Type>16</Type>
          <Allocator>0</Allocator>
          <Flags>IsSplit</Flags>
          <SplitIndex>0</SplitIndex>
          <CPUSize>394</CPUSize>
          <GPUSize>1092288</GPUSize>
          <Unknown7>0</Unknown7>
        </PrimitiveEntry>
        <PrimitiveEntry>
          <Name>mary_body_high.matlib_pc</Name>
          <Type>22</Type>
          <Allocator>0</Allocator>
          <Flags />
          <SplitIndex>0</SplitIndex>
          <CPUSize>2912</CPUSize>
          <GPUSize>0</GPUSize>
          <Unknown7>0</Unknown7>
        </PrimitiveEntry>
      </Primitives>
    </ContainerEntry>
	 
  
So i'm going to split that into two. I'm not sure how much of this to overwrite the other entry with, but i'll give it a try.
 
Into the sections for custmesh_871704894 and custmesh_871704894f (the body) i put
	
	
	
		Code:
	
	
		      <Type>8</Type>
      <Flags>Unknown7</Flags>
      <DataOffset>6144</DataOffset>
      <Parent />
      <Extra />
      <CompressedSize>1288954</CompressedSize>
      <Sizes>
        <PrimitiveSize>
          <CPUSize>394</CPUSize>
          <GPUSize>1092288</GPUSize>
        </PrimitiveSize>
        <PrimitiveSize>
          <CPUSize>2912</CPUSize>
          <GPUSize>0</GPUSize>
        </PrimitiveSize>
      </Sizes>
      <Primitives>
        <PrimitiveEntry>
          <Name>mary_body_high.cpeg_pc</Name>
          <Type>16</Type>
          <Allocator>0</Allocator>
          <Flags>IsSplit</Flags>
          <SplitIndex>0</SplitIndex>
          <CPUSize>394</CPUSize>
          <GPUSize>1092288</GPUSize>
          <Unknown7>0</Unknown7>
        </PrimitiveEntry>
        <PrimitiveEntry>
          <Name>mary_body_high.matlib_pc</Name>
          <Type>22</Type>
          <Allocator>0</Allocator>
          <Flags />
          <SplitIndex>0</SplitIndex>
          <CPUSize>2912</CPUSize>
          <GPUSize>0</GPUSize>
          <Unknown7>0</Unknown7>
        </PrimitiveEntry>
      </Primitives>
	 
  
Then into the head files' sections, i'll put
	
	
	
		Code:
	
	
		      <Type>8</Type>
      <Flags>Unknown7</Flags>
      <DataOffset>6144</DataOffset>
      <Parent />
      <Extra />
      <CompressedSize>1288954</CompressedSize>
      <Sizes>
        <PrimitiveSize>
          <CPUSize>294</CPUSize>
          <GPUSize>1059504</GPUSize>
        </PrimitiveSize>
        <PrimitiveSize>
          <CPUSize>1568</CPUSize>
          <GPUSize>0</GPUSize>
        </PrimitiveSize>
      </Sizes>
      <Primitives>
        <PrimitiveEntry>
          <Name>mary_head_high.cpeg_pc</Name>
          <Type>16</Type>
          <Allocator>0</Allocator>
          <Flags>IsSplit</Flags>
          <SplitIndex>0</SplitIndex>
          <CPUSize>294</CPUSize>
          <GPUSize>1059504</GPUSize>
          <Unknown7>0</Unknown7>
        </PrimitiveEntry>
        <PrimitiveEntry>
          <Name>mary_head_high.matlib_pc</Name>
          <Type>22</Type>
          <Allocator>0</Allocator>
          <Flags />
          <SplitIndex>0</SplitIndex>
          <CPUSize>1568</CPUSize>
          <GPUSize>0</GPUSize>
          <Unknown7>0</Unknown7>
        </PrimitiveEntry>
      </Primitives>
	 
  
Then i convert it back to ASM and run Gibbed's updateasm tool to update the sizes and whatnot automatically, for the str2 files that i created. I can see that it recognizes my changes:
	
	
	
		Code:
	
	
		E:\Games\Steam Games (common)\saints row the third>".\Downloads\mod tools\gibbedvolition-rev96\Gibbed.SaintsRow3.UpdateASM.exe" customize_item.asm_pc .
=> 'custmesh_871704894f'
==> 'mary_body_high.cpeg_pc'
==> 'mary_body_high.matlib_pc'
=> 'custmesh_-629684167'
==> 'mary_head_high.cpeg_pc'
==> 'mary_head_high.matlib_pc'
=> 'custmesh_871704894'
==> 'mary_body_high.cpeg_pc'
==> 'mary_body_high.matlib_pc'
=> 'custmesh_-629684167f'
==> 'mary_head_high.cpeg_pc'
==> 'mary_head_high.matlib_pc'
	 
  
This still crashes. Are there other steps i need to take? Are mary's matlib files no substitute for cyrus's cmesh files?