Factorio: Best config.ini for UPS (Updates Per Second) Optimization

The primary goal for UPS optimization is reducing the Update Cycle Time. Factorio is deterministic and single-threaded for its core logic to ensure stability, but it offloads rendering and certain map functions to other threads. By modifying the config.ini, you can ensure that the game isn’t wasting CPU cycles on unnecessary graphical effects or waiting on slow RAM/Disk I/O for sprites.

Hardware Compatibility & Expectations

  • RAM Speed & Latency: Factorio is extremely sensitive to memory latency. Fast RAM (especially with tight timings) is the single best hardware upgrade for UPS.
  • CPU Cache: CPUs with large L3 caches (like the Ryzen 7800X3D) perform exceptionally well because they reduce the need for the CPU to wait on RAM.
  • GPU: In late-game, the GPU is rarely the bottleneck, but “Video Memory” settings in the config can prevent the CPU from hitching while managing textures.

Backup and Preparation

Before editing, ensure you have a clean backup.

  1. Completely exit Factorio.
  2. Navigate to your AppData folder (path below).
  3. Copy config.ini and save it as config.ini.bak.
  4. Open the original with Notepad++.

File Location

The configuration file is located in your local data directory: %AppData%\Factorio\config\config.ini

Best config.ini Settings for UPS Optimization

Search for these specific lines under the [graphics] and [other] sections. These settings reduce the “Render Thread” overhead and optimize memory management:

[graphics]
video-memory-usage=all
texture-compression=true
show-clouds=false
show-fog=false
show-animated-water=false
show-smoke=false
show-decoratives=false

[other]
cache-sprite-atlas=true
max-threads=0

Pro Tip: Setting max-threads=0 allows the game to automatically detect and use all available CPU threads for non-deterministic tasks like map revealing and rendering. If you notice micro-stutters, you can manually set this to your physical core count (e.g., 8).

Key Parameters Explained

ParameterRecommended ValueImpact
video-memory-usageallKeeps all sprites in VRAM, preventing the CPU from “swapping” textures from the disk during base travel.
show-decorativesfalseDisables grass, rocks, and small debris. This significantly reduces the number of entities the game has to manage on screen.
cache-sprite-atlastrueSpeeds up loading times and reduces RAM-to-GPU transfer stutters during long sessions.
texture-compressiontrueReduces the size of sprites in memory, which is vital for systems with less than 8GB of VRAM.
show-clouds / fogfalseRemoves purely aesthetic layers that consume GPU and CPU cycles during rendering.

In-Game Optimization (The Real UPS Gain)

While the config helps, the way you build your factory has a much larger impact on UPS. Follow these “Golden Rules” for Megabases:

  • Solar over Nuclear: Nuclear power requires complex fluid and heat pipe calculations. Solar power is calculated as a single mathematical equation, regardless of how many panels you have.
  • Direct Insertion: Move items directly from one machine to another (e.g., Copper Wire into Green Circuits) to avoid using belts or inserters.
  • Beacons & Modules: Use Productivity 3 and Speed 3 modules. 1 machine running at 500% speed costs significantly less UPS than 5 machines running at 100%.
  • Disable Pollution & Biters: Biters require pathfinding and AI calculations. In a Megabase, use console commands to delete them and disable pollution.
    • /c game.map_settings.pollution.enabled = false
    • /c game.forces["enemy"].kill_all_units()

Troubleshooting & Common Fixes

  • Low FPS but 60 UPS: This means your simulation is fine, but your GPU is struggling. Lower the MSAA and Shadow Quality in-game.
  • Low UPS but CPU usage is low: This is normal. Factorio’s main logic loop runs on one core. One core being at 100% and others at 5% will show low “Total CPU Usage” even if you are bottlenecked.
  • Multiplayer Desync: If you edit the config, ensure your friends use similar max-threads settings. While usually safe, extreme thread differences can occasionally lead to desyncs on very old hardware.

Frequently Asked Questions (FAQ)

Does “Low Graphics” improve UPS?

Only if your GPU was so slow that it was holding back the CPU (rare). However, disabling Decoratives and Smoke does save CPU cycles spent on “Entity Management.”

Should I use Belts or Bots for UPS?

In modern versions (1.1+), belts are highly optimized. However, for extreme Megabases (10k+ SPM), Direct Insertion and short-distance Bots (in isolated networks) are still technically superior.

Does “Show Time Usage” help?

Yes. Press F4 and enable show-time-usage. This will show you exactly which system (Electric, Inserters, Transport Lines) is eating your UPS.

Conclusion and Expected Results

By manually refining your config.ini and following Megabase building principles, you are stripping away every unnecessary calculation. You can expect a much smoother camera experience when zooming out, the ability to scale your factory 20-30% further before seeing UPS drops, and faster save/load times.

Leave a Comment