CC String Merge
v0.1.0Faster Sim menus and much faster loading in The Sims 3 when you have thousands of CC files. One string table per language instead of tens of thousands, with a full undo.
Clicking a Sim takes a moment when you have thousands of CC files? That comes from the string tables, the names and descriptions of your CC. Every CC object brings its own, usually 23 of them, one per language, and the Sim's pie menu looks up thousands of names on every click.
CC String Merge moves all those strings into one table per language. The game finds strings by their key, not by the table they are in, so no text changes in game.
Without the tool
Every CC file brings its own string tables, usually 23. With 6,282 files that was about 150,000 tables to search.
With CC String Merge
The same files, minus their strings, plus one strings package with one table per language. The text in game stays the same, and a name lookup takes 0.7 µs instead of 52 µs.
How much faster

Your own Sim's menu
How to use it
- Close The Sims 3. The tool refuses to run while the game is open.
- Decide whether to use merge mode. Pick one:
- Merge mode off (the default, recommended if you like adding and removing CC one file at a time). The strings are merged, your CC files stay as they are, and you can still delete a single item by deleting its file.
- Merge mode on (recommended for the best performance). The CC packages are merged as well, so the game loads much faster with thousands of files, but you can no longer remove a single item by deleting its file. More under "Merge mode, for thousands of CC files" below.
- Download
CCStringMerge.exeand start it. For merge mode off, double-click it. For merge mode on, start it asCCStringMerge.exe --mergeinstead (for example from a shortcut with--mergeadded to its target). It usesDocuments\Electronic Arts\The Sims 3\Mods\Packagesby itself. Or drop any folder of CC onto it. - Type
Yand press Enter. It first shows what it would change; nothing happens before you say yes.
Windows says "Windows protected your PC"? Click More info, then Run anyway. The exe is new and not code-signed, so Windows doesn't know it yet.
SmellyMods CC String Merge 0.1.0 Reading C:\Users\You\Documents\Electronic Arts\The Sims 3\Mods\Packages\CC ... reading 6282 / 6282 Folder: C:\Users\You\Documents\Electronic Arts\The Sims 3\Mods\Packages\CC Mode: one strings package Packages to rewrite: 6232 (3419.7 MB) Packages with only strings: 0 (moved to the backup, their strings live on in CCStringMerge_Strings.package) Packages without strings: 42 (not touched) String tables: 150203 -> 23 (one per language) Strings: 295885 Same string in two packages: 33087 (kept once) Same key, different text: 2976 (the first one in name order is kept) Same key, one text empty: 103 (the real text is kept)
Originals go to: C:\Users\You\Documents\Electronic Arts\The Sims 3\CCStringMerge backups Type Y and press Enter to go ahead: Y writing 6232 / 6232 checking every resource and string against the backup ... Done. Backup and report: C:\Users\You\Documents\Electronic Arts\The Sims 3\CCStringMerge backups\2026-11-06_132134 To undo, drop that folder onto the program. Press Enter to close.
That's all. Start the game as usual.
The tool's own safety net. The originals go into a backup folder outside Mods, and nothing is deleted. After the run the tool checks every resource and every string against the backup, and on any mismatch it puts everything back by itself.
New CC later? It works right away, just without the speed-up. Run the tool again and it adds the new strings. Removed CC? Its strings stay in the strings package. That does no harm.
Undo
Drop the run's backup folder (The Sims 3\CCStringMerge backups\<date>) onto CCStringMerge.exe. Your Mods folder is back as it was.
SmellyMods CC String Merge 0.1.0 Undoing the run in C:\Users\You\Documents\Electronic Arts\The Sims 3\CCStringMerge backups\2026-11-06_132134 Type Y and press Enter to undo: Y Undone. Press Enter to close.
More details
Merge mode, for thousands of CC files
CCStringMerge.exe --merge also merges all CC packages into a few big CCStringMerge_Merged_NNN.package files (1 GB each; change it with --part-size <MB>). The game then has fewer files to open too. If two packages hold the same resource, the first one in name order is kept, and the report lists every case.
Is merge mode worth it?
The strings package already fixes the slow menu. Merge mode fixes loading: with thousands of CC files it cut loading the save from over three minutes to half a minute, and the main menu came up almost four times sooner.
The cost: you can no longer remove one item by deleting its file (undo the run, delete the file, run the tool again). With a few hundred CC files the default is enough; with thousands, merge mode saves minutes on every start.
What exactly it changes
- Takes the string tables out of every CC package and writes them into one
CCStringMerge_Strings.packagein that folder. Every other resource is copied byte for byte, and your files keep their names and folders, so you can still remove one item by deleting its file. - Moves the originals into a backup folder outside Mods (
The Sims 3\CCStringMerge backups\<date>), so the game never loads them twice. Nothing is deleted. - Checks every resource and every string against the backup afterwards. On any mismatch it puts everything back by itself.
What it leaves alone
- Script mods (packages with a
.dllassembly inside, such as NRaas), packages from other games, and anything that does not read cleanly. The report lists each one and the reason. .sims3packfiles and the launcher'sDCCache: only.packagefiles in the folder you give it are read.
All measurements
One PC, one save, 6,282 CC packages from ATS3 and MTS (3.4 GB, about 150,000 string tables), each setup started two or three times. Loading times are wall-clock. The menu times are the script work that builds the menu: for another Sim the median over the other Sims on the lot, for your own Sim its own menu with 608 entries.
| No tool | Strings package (default) | Merge mode | |
|---|---|---|---|
| Your own Sim's pie menu | 949-1,200 ms | 207-211 ms | 142 ms |
| Another Sim's pie menu | 590-633 ms | 135-138 ms | 102 ms |
| One string lookup | 52 µs | 0.7 µs | 0.7 µs |
| Game start to main menu | 106-108 s | 78 s | 29 s |
| Loading the save | 219-225 s | 194 s | 29-31 s |
| Game memory (virtual, peak) | 2.7 GB | 2.5 GB | 2.5-2.8 GB |
| Files in Mods | 6,282 | 6,283 | 13 |
Every string was still found in all three setups (3,000 sampled), and undo gave back all 6,282 files byte for byte.
Undo in detail
Drop the run's backup folder onto CCStringMerge.exe, or run CCStringMerge.exe --undo "<that folder>". Undo newer runs before older ones.
Before changing anything, the undo checks that the files it wrote are still unchanged. If you edited or replaced one since then, it stops and changes nothing. With --force it moves those files to <backup>\changed-since and undoes anyway. If you deleted a CC file since then, the undo doesn't bring it back; its original stays in the backup.
All options
CCStringMerge.exe [folder] [--merge] [--part-size MB] [--dry-run] [--undo RUN_FOLDER] [--force] [--yes]
--dry-run shows the report and changes nothing. --yes skips the question and the "press Enter" at the end.
Windows and antivirus warnings, checksum
The exe is not code-signed. Windows SmartScreen may say "Windows protected your PC": click More info, then Run anyway. Some antivirus programs flag every PyInstaller exe at first. If you prefer, run the source instead (python ccstringmerge.py, Python 3.8 or newer, no other packages needed).
To make sure your download is the file we built, check its SHA-256 against the checksum in the download box above.
Please link, don't re-upload
Share the link to this page instead of uploading the exe elsewhere. That way everyone gets fixes and can check the checksum.
Changelog
-
0.1.0
- First public release.
- Default mode moves the string tables of all CC packages into one strings package;
--mergealso merges the packages into 1 GB parts. - Backup outside Mods, a check of every resource and string after each run, automatic rollback on any mismatch, undo by dropping the backup folder onto the exe.