Skip to content

GPT-5.6 Sol Beats Factorio: How to Run It

GPT-5.6 Sol can beat Factorio on peaceful mode in 13.5h game time. Autorio setup, three traps, and what a ferry-finished rocket actually proves.

5 min readBeginner

Forget the AGI headlines – this rocket was hand-carried

Everyone is saying GPT-5.6 Sol can beat Factorio on peaceful mode like the factory problem is solved. Wrong take. Ryan Madden’s Oct 31, 2026 run is weirder than the headlines: a low-thinking Codex agent finished a no-biter map in 13.5 hours of game time, used belts where GPT-5.5 froze, then closed the endgame by walking iron between lines it never properly linked.

Not a pure-automation victory lap. A long-horizon stress test – and you can run a cut-down version yourself.

No news recap here. Scaffold, commands, map traps, and when burning tokens on a rocket profile is dumb.

What actually dropped

Per Madden’s write-up, GPT-5.6 Sol sat inside Codex at low thinking. A game manager plus a small Python library forced human GUI limits: player reach, fog of war. No pixel vision. No free remote build.

Early and mid production charts looked clean. Madden meant to stop after blue science; Sol looked steady enough that he let it keep going. Scaling pain showed up later than expected. The silo only counted a launch after repeated manual ferrying between disconnected production pockets.

Community chatter stuck on the absurd part: the agent will haul state in inventory forever instead of redrawing the graph. Same move coding agents pull when they duct-tape broken module boundaries and ship.

Hands-on: spin up Autorio and aim for a rocket

Reusable stack: ryanmadden/autorio. As of the public README (check it before you clone – paths change), first-run expectations are concrete: macOS, full Steam Factorio (demo not supported), Node.js 22+, Python 3, logged-in Codex CLI. Open Steam before you launch.

  1. Clone, then npm ci and npm run build.
  2. Smoke the whole path: ./autorio start smoke – Codex should craft one gear while the manager records production and exits clean.
  3. Short factory goal next: ./autorio start automation --model YOUR_MODEL (twenty new iron plates).
  4. Peaceful-style rocket profile: ./autorio start rocket --model YOUR_MODEL --seconds 28800. Pass the model explicitly so runs stay comparable; thinking defaults to low and maps to Codex model_reasoning_effort.
  5. Watch with ./autorio watch RUN_ID, stop with ./autorio stop RUN_ID, compare with ./autorio compare. Dashboard: http://127.0.0.1:3000/.
# minimal progression
npm ci && npm run build
./autorio start smoke
./autorio start automation --model gpt-5.6-sol
./autorio start rocket --model gpt-5.6-sol --seconds 28800
./autorio list

The rocket benchmark ignores victory speeches. Completion scores only when the game’s recorded launch count rises. Silo observe fields include rocket.ready; launch still walks the character into reach and can reject if game rules block it.

Pro tip: Hands off the client during scored runs. Human clicks skew wall-clock and tick metrics. Use --manual only while debugging the Python client.

Common pitfalls that kill a run

Platform mismatch first. Off the documented macOS + graphical Steam path, pathfinder, window, and OBS pieces fight you. Older headless write-ups are a different architecture – not a flip of one flag.

  • Calling it “peaceful” when bases are off. Turns out the rocket profile (README benchmark maps) is base Factorio only – Space Age, Quality, Elevated Rails disabled – enemy-base generation off, seed 424242, permanent noon. Everyday peaceful still spawns biters that fight if poked. You’re measuring logistics under zero defense load. Don’t extrapolate to combat or Space Age.
  • Letting inventory become the bus. If the tooling allows endless carry, agents will walk state forever. Prompt or score for belt connectivity when you want real factories.
  • Ignoring cache economics. Coverage of Madden’s numbers puts the viral run near 250M input tokens with ~95% cached and 1.5M output – about $52 at API pricing. Cold context is a different budget.
  • Trusting exit codes. Autorio treats independent telemetry as ground truth. “Rocket launched” without a counter bump is a fail.

Don’t skip smoke. A bad RCON password or Factorio not ready burns agent time before the first plate.

Performance: what 13.5 hours actually means

Signal Detail
Game time to rocket 13.5 h (no bases, low thinking Sol, Oct 31 2026 run)
vs GPT-5.5 Belts finally used; prior attempts stalled on logistics basics
vs casual human First playthroughs often 30+ h; sharp humans ~5 h; speedruns far lower
Endgame style Manual ferrying over clean bus links
Token bill (reported) ~250M in (mostly cached) + 1.5M out ≈ $52
Model knobs GPT-5.6 Sol as of docs: large context, effort ladder including low; promo rates $4 / $20 per 1M (cached input $0.40)

Full 60× timelapse on YouTube if you want the visual texture – box-feeding habits and all.

Is 13.5 hours “fast”? Under human-like action limits for a first autonomous full launch – yes. Elegant megabase design – no. Where it actually breaks: local machines work, global connectivity still fails.

When NOT to use this

Need a coding-agent sanity check only? smoke or automation is enough – skip the multi-hour rocket burn. Care about combat, pollution, or Space Age? This profile deletes those axes on purpose. Budget assumes uncached multi-hundred-million-token loops? Walk away. And a ferry-finished rocket is not proof the model “understands factories.” It proved tenacity under a permissive recovery strategy.

FAQ

Did GPT-5.6 Sol really beat Factorio on peaceful mode?

Headline goal: yes – rocket, ~13.5 h game time, no biters, low thinking in Codex. Fine print: bases disabled; late game hand-carried.

Can I reproduce this without Madden’s exact machine?

Closest path is Autorio with Steam Factorio, Codex auth, and the rocket benchmark. Start with smoke. Model IDs and thinking flags move; pin the Sol/effort combo you mean and log them. Linux-only headless means you’re rebuilding stack pieces – not the documented one-box macOS path.

Why didn’t it just fix the belts at the end?

Local craft/build loops cleared mid-game. Global topology – joining distant production graphs without inventory-as-bus – still broke, so under time pressure the agent picked a working kludge. Multi-file refactors show the same pattern: patch symptom, ship, never redraw architecture. Reward “any rocket” and you select for ferrying. Reward sustained belt throughput with zero manual inserts after a cutoff tick and you select for something harder.

Clone Autorio, run ./autorio start smoke today, then decide whether a rocket profile is worth your token budget – not the timeline’s.