The objective is to optimize the Cell-by-Cell Update Loop and increase the efficiency of the Job Scheduler to prevent the game from stuttering during high-speed time compression ($3\times$).
- Directory Path: Press
Win + R, type%USERPROFILE%\Documents\Klei\OxygenNotIncluded\, and hit Enter. - The Target: Open
settings.json. If you have the “Fast Track” optimization mod (highly recommended in 2026), you may also see amod_settings.json. - Critical Prep: Ensure the game is closed. ONI rewrites this file every time it shuts down, so manual edits must be done while the process is inactive.
Optimized “Thermal Stability” Configuration Table
| Parameter | Recommended Value | Technical Purpose |
VSync | false | The Latency Fix. Frees the CPU from syncing with the GPU. |
FrameCap | 60 | Prevents the CPU from over-working on useless frames. |
ResolutionScale | 1.0 | Keeps UI text sharp while reducing the pixel-fill overhead. |
AutomationVisuals | false | Reduces the draw calls for complex logic sensor grids. |
HighQualityFluid | false | Simplifies the sprite rendering of liquids in pipes. |
HowTo: Engineering the ONI Simulation Pipeline
Follow these GameEngineer.net technical steps to reclaim your FPS in late-game:
- The “Pipe Spaghetti” Eradicator: Every segment of pipe is an individual “entity” that checks its contents every tick. In your settings, ensure
HighQualityFluidisfalse. This doesn’t change the math, but it simplifies the Vertex Buffer ($V_{buf}$) for moving liquids, which reduces the GPU-to-CPU interrupt frequency. - The Vacuum Protocol: To improve performance, create vacuums where heat transfer isn’t needed. The engine spends massive cycles calculating $Q = \frac{k \cdot A \cdot \Delta T}{d}$ for every tile of gas. By removing the gas, you set the Thermal Conductivity ($k$) to zero, effectively removing those tiles from the CPU’s calculation queue ($Q_{queue}$).
- Optimizing Pathfinding ($P_{path}$): Duplicant pathfinding is the #1 FPS killer. In your base design, use Restrictive Doors to limit the areas Duplicants can explore. This shrinks the “Search Tree” the CPU has to navigate every time a Duplicant looks for a new job.
- Debris Consolidation: Loose debris on the floor (ore, coal, etc.) are entities with thermal properties. Use an Automatic Dispenser to drop all debris into a single tile of liquid. The engine then treats 5,000kg of material as a single entity calculation instead of 100 separate 50kg chunks.
- Critter Capping: In 2026, the “Critter AI” is still unoptimized for large ranches. Cap your ranches to the minimum required for resources. Every moving Shine Bug or Hatch requires a dedicated Brain Thread ($T_{brain}$), which compounds with your liquid logic lag.
Technical Explanation: The Cell-Update Grid ($G_{update}$)
Oxygen Not Included operates on a $1 \times 1$ tile grid. Every “Tick,” the engine must calculate the pressure, temperature, and composition of every tile.
$$Total\_Calculation = \sum (Tiles \times (Pressure + Temperature + Gas\_Mixing))$$
By engineering your settings.json to disable unnecessary automation visuals and capping the frame rate, you prioritize the Main Simulation Thread. Since ONI’s simulation is mostly serial (one calculation must happen after another), keeping your CPU’s Single-Core Clock at its maximum boost frequency is more important than having many cores.