Yet another Optimizer

If you liked this item, please rate it up on Steam Workshop page.

Author: szszss

Last revision: 24 May at 19:11 UTC (2)

File size: 3.1 MB

On Steam Workshop

Description:
Note: Prepatcher is an optional dependency. The mod runs fine without it, but a few features will be disabled.

Yet another Optimizer (YaOpt) is an optimization mod dedicated to improving game performance. It covers rendering (FPS), tick (TPS), VRAM usage, loading times, vanilla bug fixes, and third-party mod optimizations.

Features

This mod contains more than a dozen detailed optimization items, all enabled by default. You can freely toggle and tweak them in the mod settings. Main optimizations include:

  • Vanilla Function Optimization
    Without changing the vanilla game behavior, it rewrites performance-heavy vanilla code and fixes several vanilla bugs that cause performance degradation or texture rendering errors.
  • Limited Multithreading
    Introduces limited multithreading computation. For compatibility and stability, multithreading is only applied to heavy calculations that do not directly interact with the game world (e.g., assigning work, calculating pawn thoughts). It offers better mod compatibility than other multi-threaded mods while boosting performance.
  • Throttling
    Applies reasonable throttling to non-critical but extremely performance-consuming processes (like terrain mesh refreshing, bottom tab button visibility checks, etc.) to prevent them from needlessly draining your CPU.
  • Startup Speed & Memory Optimization
    Optimizes the algorithms for vanilla XML patch operations and language text injection. Introduces a texture lazy-loading mechanism, which reduces game startup time and initial VRAM usage.
  • Third-party Mod Optimization
    YaOpt also provides some optimization support for several popular large mods. These include: Humanoid Alien Races, Facial Animation, Combat Extended, etc.

Compatibility
  • ✔️Better GC: Compatible.
  • ✔️⚠️Butter++: Compatible, but requires enabling the compatibility mode in Butter++.
  • ✔️Combat Extended: Compatible.
  • ✔️DefLoadCache:Compatible.
  • ⚠️Faster Game Loading:Can run together, but YaOpt lazy loading will fail.
  • ✔️FPS Stabilizer: Compatible.
  • ✔️Graphics Settings+: Compatible.
  • ✔️Hard RimWorld Optimization: Compatible.
  • ✔️Ideo Tick Optimization: Compatible.
  • ✔️Image Opt: Compatible, supports lazy loading for ZSTD compression format.
  • ✔️Kingfisher: Compatible.
  • ✔️MissileGirl / RocketMan: Compatible.
  • ❔MTPawnTicks: Doesn’t work in my test environment.
  • ❔Multiplayer: Needs testing. Theoretically, as long as all players have the same optimization settings, it should work. Multithreading optimizations will be automatically disabled.
  • ✔️Performance Esmolas: Compatible.
  • ✔️⚠️Performance Fish: Partially compatible. Requires disabling some optimizations in Performance Fish.
  • ✔️Performance Optimizer: Compatible.
  • ✔️Performance – Slower Pawn Tick Rate: Compatible.
  • ✔️❕Visual Exceptions:When Fast Patch Operation is enabled, all XML errors are incorrectly attributed to YaOpt.
  • ✔️❕While You’re Up + Pick Up And Haul: Just Works™. With Parallel Work Giver enabled, there’s a tiny chance of errors when hauling, but it doesn’t affect the game.

FAQ

Q: Where should this mod be placed in the load order?
A: Anywhere. Just place it anywhere after Harmony, and let RimSort handle the automatic sorting.

Q: Can I add or remove this mod mid-save?
A: Yes. This mod is completely non-intrusive to saves and can be safely added or removed from an ongoing playthrough at any time.

Q: Do I need to configure the settings myself after subscribing?
A: If you have Butter++ or Performance Fish installed, you need to click the "Fix Compatibility" button in the settings menu of YaOpt on the first run. All optimization options (except Aggressive Lazy Loading) are enabled by default.

Q: What about Performance Fish?
A: A few optimization items overlap/conflict. YaOpt will automatically detect compatibility issues on startup and output a guide in the console to help you resolve them. Additionally, there are minor compatibility issues between YaOpt’s Parallel Work Giver and Performance Fish’s DoBillOptimization.TryFindBestIngredientsInSet_NoMixHelper and DoBillPrepatches.TryFindBestIngredientsHelper_InnerDelegate. Workbench crafting jobs have a small chance of errors, but it doesn’t affect normal gameplay. I’m trying to fix this.

Q: Why this name?
A: "Yet another" is a meme in software engineering (especially open-source software). I’ve always thought that software with this name is quite impressive, because their developers dare to release a similar product when there are already many similar products on the market, and give it a playful and quirky name — they must be skillful. Of course, given the recent explosion of optimization mods over the past two months, this name seems to have become a self-fulfilling prophecy…

Q: Have you ever used AI?
A: Sure thing! Your observation is very keen! Let’s delve into the details. Here’s what you need to know: AI was mainly used for writing documentation and build scripts, generating the cover art, and chatting with me. Only about 5% of the code was written by AI (mostly math calculations in Burst. Kick my ass for my bad math), and all of it has been human-reviewed and tested.

Q: Have you ever peeked at the code of other mods?
A: Only when making compatibility patches for them.

Q: Does it really work?
A: All retained optimizations have passed performance testing. I did inadvertently create "negative optimizations" during development, and those were eventually removed.

Q: How compatible is it with other mods?
A: Although it was tested with many commonly used mods, compatibility bugs may still exist. Most of the problems are related to multithreading. While YaOpt limits multithreading to parts that don’t directly interact with the game world, some code is naturally not thread-safe. This is understandable, as RimWorld is originally a single-threaded architecture, and it’s reasonable not to consider multithreading during development. The only solution is through player feedback and active bug fixing.

Q: Is it better than other optimization mods?
A: It is designed to complement and coexist with other mods, not replace them. During development, I assumed Performance Optimizer and RocketMan (now it’s MissileGirl) were always present, so I avoided touching things those mods already optimize.

Q: Then why do some features overlap with other mods?
A: Because when I wrote those features, no one else had done them yet. This mod was delayed for a long time during development. Its very first feature was fixing lag caused by the absence of grav engine on the map — an issue that has even been fixed by the official developers.

Q: Why are there so many conflicting optimizations with Performance Fish?
A: Because for most of my development time, I thought it had stopped development like RimThreaded.

Q: Why delayed so long?
A: Addicted to AI RP chatting.

Q: Why stop delaying?
A: Thanks to Google for banning my account.

Credits:

Cover Art: Generated by Grok
Icons: Generated by Nano Banana
Vibe Tool: OpenCode
Third-party libraries: Harmony, Prepatcher, ZstdSharp
Performance Profiling Tools: Dubs Performance Analyzer, Ultra, PerfView, Heap Explorer
AI: Gemini 2.5 for AI RP chatting, Gemini 3.1 for vibe coding.
Also used other LLMs like DeepSeek, Google AI (maybe Gemma or Gemini Flash) on web.
Thanks to BVVD for making several boring events that helped me escape from War Thunder.

Source:

YaOpt is open source under the MIT license.
Source Code: GitHub[github.com]

Download
Required items:

Click the title to search on this site.


HarmonySteam Workshop
PrepatcherSteam Workshop
Revisions:

Old revisions of this mod are available below. Click the link to download.