Oxygen Not Included: Best settings.json for Liquid Logic FPS

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$).

Setup & File Navigation

  1. Directory Path: Press Win + R, type %USERPROFILE%\Documents\Klei\OxygenNotIncluded\, and hit Enter.
  2. The Target: Open settings.json. If you have the “Fast Track” optimization mod (highly recommended in 2026), you may also see a mod_settings.json.
  3. 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

ParameterRecommended ValueTechnical Purpose
VSyncfalseThe Latency Fix. Frees the CPU from syncing with the GPU.
FrameCap60Prevents the CPU from over-working on useless frames.
ResolutionScale1.0Keeps UI text sharp while reducing the pixel-fill overhead.
AutomationVisualsfalseReduces the draw calls for complex logic sensor grids.
HighQualityFluidfalseSimplifies 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:

  1. The “Pipe Spaghetti” Eradicator: Every segment of pipe is an individual “entity” that checks its contents every tick. In your settings, ensure HighQualityFluid is false. 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.
  2. 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}$).
  3. 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.
  4. 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.
  5. 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.

Leave a Comment