───────────────────────────────────────────────────────────duplicate texture n (2011):a texture that is exactly the same as another, both in content and name, yet is applied to a different subject, and given its own uniquely named .str2_pc packfile.
Why is that a problem?
(Game loads modded texture, uses it for every instance)
Long answer: If you want to mod/edit one of those textures that has (or "is") a duplicate, the game will load only one instance of a texture with that name, and apply it over all the others. So if you want to change the texture of a weapon, or a tattoo, and that texture is a duplicate, any other weapon or tattoo that uses that original texture & texture name will be changed.
The game gives priority to higher resolution, then (if they're the same resolution) load order.
So if you keep the same resolution, and mod the first loaded instance, you might as well have made it bigger, because all the others are now using that texture.
Currently, this tutorial is a work-in-progress, and just a copy/paste from my "Ask Volition!" thread where (with the GREAT help of [V] Knobby) got rid of the pesky duplicate tattoos by changing the name of 1, essentially freeing up that slot to be filled by whatever texture you'd want, at any rez, without the other instance (say, a forearm tattoo of the same thing) being replaced as well.
What I did was rename the texture inside "tattoo_Rforarm_12.str2_pc" (which is the same texture that's found in tattoo_Rforarm_5.str2_pc, and is actually the "lower chest" tattoo PURPLE FAIRY, despite the str2's name), and get the game to read it separately, renaming the internal file from "tat_arm_fair" to "tat_arm_swam" (just for testing purposes), and getting it to load both, without one overwriting the other.
(The following copy/pasted from Duplicate & Uneditable tattoo textures?, post 10)
It worked! I can't believe it!
Here's the steps I took to get this working for anyone who is wondering, though outside of custom tattoo duplicates, I don't see how this will be too useful. >_<
Files I used said:tattoo_Rforarm_12.str2_pc
#1. Hex edit .str2_pc file to change the name of both the .cvbm_pc and .gvbm_pc file, without adding/inserting new characters (try to keep it the same length as vanilla).
#2. Extract newly edited .str2_pc file.
#3. Open up resulting .cvbm_pc file in hex editor, and change the name of the .tga file accordingly.
#4. Unpack .cvbm_pc file (using Scanti's texture utilities for SRTT) to get a .DDS file.
--EDIT .DDS FILE--
#5. Repack .cvbm_pc (again using Scanti's texture utilities).
#6. Repack .str2_pc file
#7. Open up relevant .asm_pc file in hex editor (in my case, customize_player.asm_pc), find the old texture name (since mine is a duplicate, the 2nd instance was the one I wanted; it was immediately after the .str2_pc's name), edit it accordingly. Save.
#8. Open up relevant .xtbl (for me, customization_compositing.xtbl), find correct reference, edit accordingly. Save.
#9. Put all in game directory. Done!
I've attached a .7z with the exact files I'm using in my game directory, so feel free to pick 'em apart to see what I did, and consider the tattoo a pre-release (not to be distributed anywhere else other than this post in this thread on this forum). It replaces the "PURPLE FAIRY" lower chest tattoo, but not the one for the right lower arm!
Though, if you are running a mod that uses customize_player.asm_pc (many do), you'll have to hex edit the one (AFTER you back it up!) you're using and locate the 2nd instance of the text "tat_arm_fair" (should be after the text "tattoo_Rforarm_12"), and replace the letters "fair" with "swam", so it matches the texture. Otherwise, either you'll crash on load, or the tattoo will be invisible.
Can't thank you enough for guiding me, Mike, really appreciate it.
(end of copy/paste)
NOTE: Test this at your own peril!
If you're running mods that also have any of these files, you're gonna get all kinds of fucked.
I recommend doing this on a clean, mod-less Saints Row IV first.
Otherwise, you'll have to update whatever customize_player.asm_pc you have (which may not work, if it reads your new str2_pc's insides and sees the name of a file that doesn't exist in the game's library), then hex edit it to replace the original texture name with yours, and that could get...tricky.