Factorio 2.1: Surface-Aware Multithreading
In January 2026, Wube Software released **Version 2.1**, the post-Space Age technical overhaul. The headline feature, **Surface-Aware Multithreading (SAM)**, finally allows dedicated servers to utilize high-core-count CPUs by processing different planetary surfaces (Nauvis, Vulcanus, Fulgora, etc.) on separate threads. This marks the most significant architectural change since the game's release.
🚀 The SAM Revolution
- Asynchronous Planets: In 2.0, the main loop waited for every planet to finish its tick. In 2.1, planets can drift slightly ahead of the main tick if they have low entity counts, reducing the bottleneck.
- Core Affinity: Admins can now "Pin" heavy surfaces (like a Nauvis mega-factory) to specific high-speed CPU cores.
- Logistics Buffering: Space Platform logic is now handled on a dedicated IO thread, preventing lag during inter-planetary travel.
Configuring SAM for 2026 Dedis
To enable the new multithreading logic on a Headless server, you must modify your server-settings.json or use the 2.1 launch flags.
📊 Planet Pinning
Use --surface-threads 4 to allocate 4 dedicated threads. This is the sweet spot for a standard Space Age playthrough (Nauvis + 3 Expansion Planets).
⚡ Lock-Step Delta
Set sam_max_drift=5. This keeps the different planetary threads within 5 ticks of each other, ensuring that circuit network signals between planets remain accurate.
Inter-planetary UPS Optimization
While multithreading helps, the "Updates Per Second" (UPS) of a 2.1 server is still limited by the slowest planet.
2026 Meta: Use the "Ghost-Logistics" technique. By de-rendering inactive space platforms (/platform_ghost_mode true), you can save up to 10 UPS for your planetary surfaces.
Surface Resource Allocation (Example):
| Surface | Thread Priority | Reasoning |
|---|---|---|
| Nauvis | High / Real-time | Main production hub; highest entity count. |
| Gleba | Medium | Complex decay logic; CPU intensive but low entity count. |
| Space Platforms | Low / Background | Linear movement; low logic complexity. |
# Launch command for high-performance 2.1 server
./factorio --start-server "world.zip" \
--surface-threads 8 \
--thread-priority "Nauvis:Core1-2,Gleba:Core3,Vulcanus:Core4" \
--use-zstd-compression true
Does 2.1 support old mods?
Most mods require a **2.1-Manifest update**. Mods that interact with the "Surface API" must be rewritten to handle the new asynchronous thread safety locks.
Can I host 2.1 on my old 4-core VPS?
You can, but you won't benefit from the multithreading. For a Space Age world, we recommend at least an **8-core/16-thread CPU** to see a significant UPS improvement.
Why is my Gleba surface lagging?
Check your **Fruit-Decay Logic**. Version 2.1 introduced a heuristic cache for decay; if you have 100,000+ spoiled items on the ground, the cache will overflow regardless of your CPU cores.
Next Steps
- Fixing Inter-planetary Logistics Desync (2.1 Patch)
- Space Age Hardware & RAM Guide
- Back to Factorio Wiki Home
UPS-Guaranteed Hosting: Supercraft’s **Automata-MAX** nodes feature 16-core Ryzen 9 CPUs and pre-configured SAM pinning. We offer the only hosting platform that monitors your per-surface UPS in real-time.