How I create object overrides:
First of all, I couldn’t have figured out how to do any of this if it weren’t for melbrewer. She guided me to this thread over at MTS. All of the instructions in this tutorial come from plasticbox. I felt like it might be easier for people to follow a tutorial w/ pics and longer explanations, so I made this to save others some of the frustration I had when I first tried to figure everything out. Here we go 🙂
Go into the game and find the name of the object you want to recolor. Make a note of it.
For this tutorial, I’ll choose “Puppet Theater Curtain” because it only has one IMG file to replace.
Go to this page:
*Remember that there are two pages of strings, so if you don’t find your object on the first page go to the second one and search:
On these pages you will be able to find the string name for the object you want to recolor.
If you are using Google Chrome you can click on the 3 bars in the upper right corner and choose “find,” then type the name of the object and it will take you right to it. That way you don’t have to scroll and search forever.
*Melbrewer helpfully suggested I add that in any browser on a Windows computer you can hit Ctrl+F and a search box will open in the browser and you can type in the name there and it will find it on the page for you.
As we can see in this screenshot, the string for “Puppet Theater Curtain” is
<Text Key=”3B0AF0D2″>Puppet Theater Curtain</Text>
Open S4PE. Choose “Open.” Within S4PE go to your program files and find the “data” folder inside the Sims4 folder. Then open the “client” folder (my path looks like this C:\Program Files (x86)\Origin Games\The Sims 4\Data\Client). Open “ClientFullBuild0”
*Important! Make sure you open “ClientFullBuild0” and not “ClientDeltaBuild0,” they are easy to confuse and “ClientDeltaBuild0” comes first.
Once your “ClientFullBuild0” is open in S4PE, click “Tools” and choose “Search”
Copy the number that’s in quotations in your string into the top search bar. In our case it’s 3B0AF0D2. Add a 0x in front of your number. So you should have 0x3B0AF0D2 in your search bar. Then click on “Enable Filter” and choose COBJ 0x319E4F1D from the drop down list.
Your search results should look like this:
Highlight the first entry (you can actually choose any file in the list and it will get you where we’re headed) in the list and click “Go to” You should see this:
After you see your COBJ that you highlighted, click on the Instance column to organize the list the way we need. Right underneath the highlighted COBJ file, you should see a OBJD file with the same instance number.
(With certain objects, the OBJD file isn’t right under the COBJ file, but it should be very close to it. I found this out while looking for rugs)
Click in the OBJD file line. It should show a list of text to the right like in the following pic.
In the text block on the right you should see a line that says
— TGIBlockList: Model (0x1) —
Copy and paste the 0xDC22747C5A113A13 into the “Instance” box at the bottom of S4PE. Then click the checkbox before the “Instance” box. Then click “Set, ” then click “Filter active.”
A screen like this should come up.
Click on the MLOD file that has a group of 0x00000000.
In the right hand text box there are “Chunk Entries.” We want the “Chunk Entries” that say “Shader:_____Phong” near the top. Scroll down until you find one like this:
We want the one that says “Diffuse Map”
For our curtain that is:
[0F]: Field: 0x6CC0FD85 (DiffuseMap); Key: 0x00B2D882-0x00000000-0xDC58F3816E69CA44
So 0x00B2D882-0x00000000-0xDC58F3816E69CA44 is the texture we want.
Highlight and copy the 0xDC58F3816E69CA44 part of that number.
Close the current open file in S4PE.
*there are chunk entries for each of the curtain recolors in the text list. We only need one of them because as soon as we find that one all the others will be right next to it.
If you are recoloring something like a bed, there will be more chunk entries listed under various “Shader:_____Phong”s that you will need to find. Find however many of them start with a different series of numbers. The Single Mission bed has 4 chunk entries I had to find to find all the IMG texture files. This also meant that I had to search through Full Client builds 6, 7, and 8 to find them all.
Just to be safe, scroll through all the “Shader:_____Phong” entries and make sure all the diffuse map files start with the same series of numbers/letters (except for the last few numbers/letters in each instance number), if they do, they will all be together, if they don’t you need to make note of the different number/letter series (I use notepad) so you can find them all.
*I’ve found that most of the object IMG files I’ve tried to find are in “ClientFullBuild7” or “ClientFullBuild8,” but they aren’t all there, I believe there are some IMG files in “ClientFullBuild6,” and “ClientFullBuild0,” and maybe some of the others.
You can paste the 0xDC58F3816E69CA44 instance number in the instance box, click the box to the left of it, click set, and then click “Filter active.” (or you can just scroll until you find the right number, it doesn’t take long)
In the case of our curtain, it worked because that IMG is in “ClientFullBuild7”. If nothing comes up, you can close “ClientFullBuild7” and open “ClientFullBuild8” and search there, etc.
Now we need to save our IMG files so that we can open them in Photoshop.
I create a new folder on my desktop named “whatever the object name is,” in this case, “PuppetTheaterCurtain,” and save the files there so I don’t get confused.
If I click on Export/Import via helper first, it doesn’t carry the name of the file with it. Because I don’t want to have to type all those numbers and letters out, I right click on each texture file (there are 9 for the curtain and they all have the same instance number except for the last 3 letters/numbers) and choose “Export” and then “To file”. After I’ve done this for all the IMG files I need, I go back and click on “Export/Import via helper” for each file. Then I can just replace the previously exported file with the “exported via helper” file for each texture and it will be in the right format and have the right name. We have to “Export/Import via helper” because just “Exporting to file” doesn’t create an openable dds file.
Here’s a pic to try to help explain, maybe it will help
There’s probably a better way to do this, but this is my first time using SPE in any form and I’m pretty much a newbie. Perhaps you guys already know a better way or can figure one out 🙂
*You could just rename the file to reflect whatever the texture is, but then when you repackage it you would have to do a few more steps instead of just importing the file and I don’t do it that way so I’m not much help. If you want to do it that way melbrewer367 shows how on her tumblr.
Go to the folder on your desktop that you created and saved your IMG.dds files to. Open one of the files in photoshop (or whichever paint program you use) and recolor it. Save it with the same name it already has.
(When I first start, I open all the textures of the object in Photoshop and then save them all as PSDs with the word “orig” added to the end of the file name. Then I go back into the folder that contains the textures and move all the original DDS files into a file called “Originals” and they never get edited or touched, that way I have them if I need them. Also, after I’m done editing, I can just save as a DDS into the main folder and all my recolors are right there where I need them and I don’t accidentally replace the originals.)
New Step 8 (added 12/4/14) thanks (again!) to melbrewer and plasticbox:
When all your textures are saved and ready, open S4PE and highlight and drag the all the dds files you saved in your project folder onto the main window.
A window like this will pop up:
Click Import. All the dds files will then be in S4PE. All you have to do then is click “File” and then “Save as” and save the file with the file name you want.
Voila! Your recolors/overrides are done and packaged up. The new package file you made will override the base game textures. Place it in your “Mods” folder and enjoy your new textures!
*you can only make as many recolors as the objects has originally. For instance, because our curtain has 9 color options, we can only have 9 custom overrides. The recolors you make will replace the original texture and become a default override
Here’s a quick override I did of the red curtain:
Please, please let me know if you have any questions. I’ve never tutorialized before and I might be confusing in some places. I know this can be confusing, don’t be afraid to ask if you need help!
*The info below is out of date, please see the new step 8 above instead 🙂
Go back to S4PE and find the IMG file for the texture you recolored. Right click on it and choose replace: Double click on the file in your folder that you recolored (it should have the exact same name as the one you are replacing). You should then see a preview of your recolor in the right hand side of S4PE. Choose “File” and then “Save” and wait for S4PE to save the file. After it’s done, close the program. Start up your game and enjoy your new recolors!