Performance patcher and setting editor for The Sims 3.
Download Latest Release | Changelog
Contact me on Tumblr | Discord
What you probably came here for. A collection of ASM patches to not only improve performance, but also fix bugs, enhance the game’s diagnostics and tweak the graphics.
See patches/README.md for technical details on how to write your own. There’s a lot of easy-to-use helper functions.
- Mimalloc Allocator - Replaces the Sims 3’s old crusty memory allocator with mimalloc for better memory management and performance.
- Requires a restart to apply.
- Oversized Thread Stack Fix - Reduces memory wasted by the game’s file-watcher threads. By "Just Harry".
- The game creates several dozen of these with oversized 1 MB stacks when they need <64 KB.
- Saves ~80-170 MB of virtual address space in the memory, depending on how many packs you have, how your mods/CC are setup and what your game version is.
- Requires a restart to apply.
- RefPack Decompressor Optimization - Completely rewrote the game’s refpack .package file decompressor with AVX2/SSE2 SIMD intrinsics.
- This is probably the most impactful patch - faster loading screens, less stuttering when streaming assets, optimisation of one of the heaviest functions in the game.
- Smooth Patch (Original Flavour) - LazyDuchess’s original Smooth Patch implementation ported to S3SS.
- Smooth Patch (Precise Flavour) - "Just Harry"’s fully rewritten tick-rate limiter using a hybrid sleep/busy-wait approach.
- Sleeps via
NtDelayExecutionfor sub-millisecond precision and finishes with a busy-wait spin loop for exact timing. - Default tick rate raised to 480 TPS, with presets at multiples of 60 (480/960) for smoother frame-pacing.
- Now includes a frame-rate limiter (default: 60 FPS) with a separate inactive window limit. Can be safely toggled on/off at any time.
- It is recommended you still use the original Smooth Patch’s .package file
- Sleeps via
- Timer Optimization - Increases/reduces timer resolution to 1ms.
- CPU Thread Optimization* - Optimizes thread placement for modern CPUs with P/E-cores or multiple CCXs.
- This also doubles as an ’Alder Lake patch’ for people using that series of CPU, so it is enabled by default.
- Requires a restart to apply.
- CreateFileW Random Access - Improves file I/O performance by hinting random access pattern.
- Requires a restart to apply.
- Startup Warning Dialog Fix* - Fixes a mod-related dialog so it always shows up correctly. By "Just Harry".
- If you didn’t see the dialog before and see it now, this is unrelated to the patch. You likely have a core mod for a slightly different version of the game. (Steam, EA App and Retail each have different internal version numbers.)
- The issues with this dialog were intensified by the Windows 11 25H2 update. If the patch isn’t enabled on this version, you’d potentially get a black screen and be unable to enter the game, without the dialog showing up at all.
- Hide Dialogue* sub-option patches the scanner callback so the dialog never gets created at all. Enabled by default. If you actually want to see the warning, turn this off and the patch will fall back to just making sure the dialog appears correctly.
- Expanded Crash Logs* - Enhances the game’s crash logs (
xcpt...txt) with much deeper diagnostic information. By "Just Harry".- Adds detailed access violation info (memory state, protection flags, read/write/DEP), S3SS version, and a full virtual memory statistics breakdown.
- No performance impact during normal gameplay.
- Enabled by default. Keep this enabled when reporting a crash!
- Uncompressed Sim Textures - Forces textures for Sims to be uncompressed during gameplay, like they are in CAS.
- This improves the graphical fidelity of Sims by avoiding lossy compression and by preventing compression artefacts.
- It is not recommended to use this patch unless you are also using DXVK, as otherwise the game may run out of memory or experience Error 12.
- Mirror Reflection Settings - Tunes how far away mirror reflections stay visible (base distance + size-scaled falloff).
- Each visible mirror is its own camera render, so pushing the range out with lots of mirrors in scene will impact performance. Batching patch in the future maybe. Patch idea from Boring Bones
- GC Finalizer Throttle - Prevents (or tries to) the garbage collector finalizer loop from blocking the simulation thread, reducing large stutters. Increases the frame threshold before triggering the blocking loop and caps it to one batch of finalizers per frame instead of an infinite loop.
- May slightly increase memory usage on very long play sessions
- GC_stop_world() Optimization - Early exit for a GC function called ~once per frame, very minor improvement, driveby patch.
- Chunky Patch - Disable GC_try_to_collect() - Removes the explicit garbage collection call from the simulation loop. GC profiling shows this function dominates simulation thread time. Should improve Simulate calls quite dramatically. Relies on
GC_mallocto trigger collection naturally when memory pressure requires it.- May increase memory usage
- Lot Streaming Optimizations - A collection of lot-streaming related patches to reduce stutter when visiting lots, each part is toggleable:
- Object Throttle - New! Spreads a lot's object building/loading across multiple frames instead of one big fps-tanking burst. Tunable objects-per-window and delay.
- Map View Blocker - Pauses lot streaming while in map view, so going in and out of map doesn't stutter if the same lots are loaded. Now fixed so it doesn't get stuck on.
- Lot Visibility Override - Stops lots loading/unloading based purely on camera view angle, so they only load around you.
- Optimized Streaming Settings - Enables/tweaks two hidden settings for lot LoD throttling and tweaks the camera speed threshold so lots load more smoothly when you stop moving. Makes lots load one by one instead of 8 at once
- Replaces the old separate Optimized Lot Streaming Settings, Lot Visibility Camera Override and Map View Lot Streaming Blocker patches.
- Disable Store Featured Items Download - Blocks the game from downloading featured store items listings, preventing hte FeaturedItems folder from filling up.
- Resolution Spoofer - Injects fake resolutions (1440p, 4K, 5K, 6K) for downsampling. Makes the game look real good!
- You’ll want a mod to fix the UI scaling as well.
- Uncompressed Compositor Textures - Forces material compositor textures to use uncompressed A8R8G8B8 instead of DXT1/DXT5. Similar to the Sim Textures patch but for other things, like objects. DXVK is recommended to avoid memory issues.
- Lighting Quality - Improves interior lighting, higher lightmap resolution, softer shadows, blur and a janky multisampler.
- I highly recommend playing with the various lighting settings in the settings tab alongside this patch.
- Requires updating lighting to see changes (e.g. by going in/out of map view or turning lights on/off).
- Some parts require a restart to take effect or will crash if changed in-game.
- Split-Level Lighting Fix - Makes lighting not stop at a single level. Lot-bound lights now contribute across lot/level boundaries in outdoor lighting and terrain lightmaps.
- May potentially cause some light near walls/floors to bleed through.
- Reload the lot or restart to see the change after toggling.
- All credits to Arro on Discord / Tumblr!
- Brady Bunch BEGONE - The engine fills unlit/dim rooms with a fake blue ambient (AKA "Brady Bunch Blue"). This allows it to be tweaked (default patch set it to zero)
- Reload the lot or toggle lights for rooms to refresh.
- Patch idea from Arro on Discord / Tumblr!
- WorldCache Size Uncap - Removes the 512MB limit on WorldCache files. May help with large CC worlds as it prevents cache-churning.
- May require you to increase the
WorldCompositorCacheSizeandSimWorldCompositorCacheSizein[Your Latest EP install directory (base-game if you have none)]/Default.inito have any effect. - Might have issues once the cache exceeds 2GB. Let me know if you get a crash when this happens.
- Still working on this, may replace with a more targeted patch that shouldn’t require a UI mod (using the pseudoresolution setting). This can also crash your game when set too high for your setup. It may also crash when using other Borderless Fullscreen implementations, but there’s some special handling to prevent this.
- May require you to increase the
- Animation Blend Tuning - Clamps animation blend (transition) durations to a min/max so transitions that snap can be smoothed out, or slow blends made snappier. Optional
forceBlendOutmakes the engine resolve a blend-out for every animation instead of just ones with the controller's flag set.- Clamps only touch positive durations, the engine's "no override" sentinel passes through untouched.
- All credits to @thepancake1!
Edit "Variable" settings in real-time without needing to restart the game.
Some package mods sometimes tweak some of these, so this can also be an easier way of developing a lighting mod, for instance.
Change things like:
- Bloom intensity and light colors
- Weather and time of day (snow in summer!)
- Shadow distances and quality
- Sunlight brightness
- And much more - organized by category with search
Note: Some settings may have unexpected effects. None are likely/able to corrupt your game, and all are temporary (since I removed the Options heading ones). If you find anything that seems wrong/doesn’t work how you think it does, send me a message!
View and edit config values from GraphicsRules.sgr.
This shows what’s actually loaded in memory (not just what’s in the file which can sometimes be wrong/changed after init) and includes hidden settings that don’t appear in the original files.
- Memory Monitor: Get warned when approaching the ~4GB limit (Error 12) so you can save before you crash and lose it all.
- Now uses
NtQueryInformationProcessfor more accurate virtual address space tracking. - Choose between an auto-dismiss overlay or a modal dialog that pauses gameplay.
- Includes detailed live memory statistics (page counts, protection flags, free span histogram) in a collapsible section.
- Now uses
- Borderless Window: Run the game in Borderless Fullscreen. (also known as Windowed Fullscreen, Borderless Windowed etc.)
- This can also fix some issues with screen recording software, game brightness etc, compared to regular Fullscreen.
- Custom UI keybind: Change the toggle key (default: Insert)
- Change UI Font Size: Make the ImGui font bigger/smaller
-
Install an ASI loader to your
The Sims 3\Game\Bindirectory:- dxwrapper or
- Ultimate ASI Loader
(wininet.dllfor Win32, included with some ASM mods like the original Smooth Patchhttps://modthesims.info/d/658759/smooth-patch-2-1.html)
-
Drop
Sims3SettingsSetter.asiintoThe Sims 3\Game\Bin.
Press Insert to open the UI (change this in Other/QoL tab)
File → Save Settings to make changes persistent. Some settings (QoL, patches) auto-save when changed. Some patches require a restart to apply, as listed above.
Green settings - Modified from the default and saved.
Yellow text - Modified but not saved for future restarts.
Settings are stored in Documents\Electronic Arts\The Sims 3\S3SS\S3SS.toml (or the localized equivalent, e.g. Die Sims 3).
If you’re upgrading from an older version that used an INI file, your settings should be automatically migrated on first launch.
- Only becomes available after loading into a world
- Right-click any setting to:
- Edit beyond min/max bounds
- Reset to default
- Clear override (removes it from the config)
- Copy address for reverse-engineering
- Toggle patches on/off
- Hover for descriptions and technical details
- Experimental patches marked with [EXPERIMENTAL] may be unsafe, more of a pre-release thing
- Edit any Config heading value
- Right-click to clear override
UI doesn’t open?
- Check for
S3SS_LOG.txtin the S3SS user folder (Documents\Electronic Arts\The Sims 3\S3SS) - send it to me if it exists - You can also try changing the keybind in
Documents\Electronic Arts\The Sims 3\S3SS\S3SS.tomlby modifying theUIToggleKeyvalue (See for IDs: https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes) - If there is no log file, your ASI loader isn’t working.
Settings tab stuck on ‘Initializing’?
- Wait until you’re fully in-game (past loading screen)
- If it doesn’t auto-initialize, use the manual initialize button.
- Send me your
S3SS_LOG.txt.
I get crashes when I use specific patches?
- Send me your
S3SS_LOG.txtand the latestxcpt...txtcrash log fromDocuments\Electronic Arts\The Sims 3.
Crashes at startup/first render (e.g. with a wrapper/translation-layer d3d9.dll)?
- You can run S3SS headless: set
disable_overlay = trueunder[qol.ui]inS3SS.toml(or tick "Disable Overlay" in the UI's Other/QoL tab if the UI works for you). This skips the ImGui UI entirely, patches and settings from the config still apply. The D3D9 hook is also skipped unless a borderless window mode is enabled (borderless works headless, but if you need the hook completely gone setmode = "disabled"under[qol.borderless_window]too). Set it back tofalseto get the UI back.
My settings keep resetting every time I restart the game?
- Settings are now saved to
Documents\Electronic Arts\The Sims 3\S3SS\S3SS.tomlwhich should hopefuly resolve this. - Check that this file exists and that S3SS has write permissions to your Documents folder. If it’s not appearing, you may need to run the game executable as an administrator.
You’ll need vcpkg, and to run vcpkg install --triplet=x86-windows-static.
Build from Sims3SettingsSetter.sln.
This tool features a modular patch system that makes adding custom patches very easy.
All patches auto-register and appear in the GUI, the system handles memory protection, change tracking, and restoration automatically, which makes reverse engineering and patching much simpler.
See patches/README.md for the full guide and breakdown.