PDA

View Full Version : How to add a custom string resource (STBL) to something


plasticbox
21st Feb 2016, 7:03 PM
I'm using a custom(ised) object for this example but this also applies to, say, tuning mods or anything else that needs custom strings.

If you need to manage a lot of strings and their translations, you might be better off using something like DP's STBL Editor (http://modthesims.info/download.php?t=564576) -- but when you just need to add one string in the course of editing other stuff too, this is is probably a quicker way.

For general resource naming conventions (why/when to set the high bits and so on), see the Maxis CC guide (http://forums.thesims.com/en_US/discussion/779844/maxis-documentation) (see also link in sticky in Modding Discussion in case they ever move that).

The most recent version of s4pe is available here (https://github.com/s4ptacle/Sims4Tools/releases).

--

The object in my example already has strings for the name and description, but the description reads "**DEBUG**" so I'm changing it to a custom one instead:



First create a new STBL (string table) resource: in the top menu, select Resource > Add.

http://thumbs2.modthesims2.com/img/1/7/8/2/8/2/MTS_plasticbox-1605720-decohammer_stbl-add-menu.JPG



This opens a popup to specify what you want to add exactly. In the first field type "st" and select "STBL 0x220557DA" from the dropdown that comes up, in the second field put "0x80000000" for the group, then put a sensible name in the Name field, hit the FNV64 button, and change the first two digits of the instance (third field) to the locale that you use (00 for US English). See this post (http://forums.thesims.com/en_US/discussion/859729) for a list of locale codes + some other info on STBL.

http://thumbs2.modthesims2.com/img/1/7/8/2/8/2/MTS_plasticbox-1605721-decohammer_stbl-add.JPG



Now you will need a new, unique key to use for your description. Go to top menu > Tools > FNV hash, type a name to use for the string hash key in the top field, hit Calculate, hit "Set High Bit". Copy the value from FNV32 (in my case, "0xC4CAFFDB"). You can also use tools like fogity's toolbox (http://modthesims.info/showpost.php?p=4732780) for this, or an online calculator like this one (http://fnvhash.github.io/fnv-calculator-online/).

http://thumbs2.modthesims2.com/img/1/7/8/2/8/2/MTS_plasticbox-1605722-decohammer_stbl-calchash.JPG



Select the newly added STBL and hit "Grid". In the data grid window that opens, hit the three buttons next to "Entries" to add a new entry.

http://thumbs2.modthesims2.com/img/1/7/8/2/8/2/MTS_plasticbox-1605723-decohammer_stbl-edit.JPG



Paste your FNV32 hash into the KeyHash field and type the text you want into the StringValue field.

http://thumbs2.modthesims2.com/img/1/7/8/2/8/2/MTS_plasticbox-1605724-decohammer_stbl-edit-add.JPG



Hit "OK", hit "Commit". Now the preview of your STBL shows the newly added entry.

http://thumbs2.modthesims2.com/img/1/7/8/2/8/2/MTS_plasticbox-1605725-decohammer_stbl-edit-done.JPG



To use this as a description for an obect, open the COBJ resource and in "DescriptionHash", paste the key of your new string entry (0xC4CAFFDB in this case. Or if the string is referred to in some XML tuning, paste the key in there.






When you're done adding all the strings you need and have made sure there's no leftover typos in them, and you want to upload your mod somewhere, you (probably) need to create STBLs for the other languages too. Copy the one you have, rightclick > paste, and change the locale code in the instance to match the missing locales as you go. A list of the locale codes that are currently supported is in the Maxis post (http://forums.thesims.com/en_US/discussion/859729) linked above.

Again this is the simple manual way -- see the link above (STBL Editor) for a tool that can generate the translations automatically.