Factorio: Engineering Addiction

Week 2 — Base Design Philosophy

Furnace stacks

A yellow belt runs at 15 items per second. A stone furnace takes 3.2 seconds to smelt one ore, so it takes about 48 stone furnaces — two rows of 24, one on each belt side — to fully consume a saturated yellow belt of ore.

  • steel and electric furnaces smelt in 1.6 seconds, half the time, so half as many furnaces (about 24) saturate the same yellow belt
  • inserters on both sides of the belt is what makes “two rows” the standard shape — a stack with furnaces on only one side wastes the other lane
  • this ratio, not vibes, is what “how many furnaces do I need” actually means

Footprint is a design variable

Smaller footprint means less travel and cheaper power/belt runs to build. It also means less room to add a second furnace row later without tearing out what’s already there.

  • footprint cost is paid once, at build time
  • footprint benefit (or regret) is paid continuously, every time the base needs to grow past what was planned
  • everything from here on is a different answer to that same trade-off

Spaghetti

The default. No plan, no named structure — belts and pipes go wherever the last problem needed them to go, crossing and doubling back as the base grows around whatever was already there.

  • fast to build, because there’s nothing to design first
  • not automatically bad at small scale — the problem is what it costs later, not what it costs now
  • the specific cost: nobody, including the person who built it, can trace a belt by eye once enough of it exists

Spaghetti, in practice

A tangle of crossing belts, pipes, and power poles feeding several machines with no visible organizing structure

Source: Factorio Wiki, CC BY-NC-SA 3.0.

Everything below this slide is a way of not ending up here by accident.

The bus

A small number of parallel belts, carrying the handful of intermediates almost everything else needs, run the length of the base — production branches split material off sideways instead of building their own supply line.

  • the fix for spaghetti’s actual cost: a belt’s contents and position are now readable on sight, because the bus’s lane order doesn’t change
  • a bootstrapping tool, not the most efficient layout — plan for 2-3x the capacity you think you need, since widening a bus later means rebuilding it
  • eventually outgrown: high-volume intermediates eat too many lanes, distant branches pull unevenly, and a hard width limit forces new branches further down its length, costing more time per branch, not less

The bus, in practice

A row of parallel belts running the length of a base, with production modules branching off to feed from specific lanes

Source: Factorio Wiki, CC BY-NC-SA 3.0.

Read a bus by lane, not by belt — the discipline that keeps it readable is exactly the discipline spaghetti never had.

Bot base

Logistics robots move items between named chest types instead of belts carrying them, and “provider” and “requester” aren’t the whole taxonomy — five distinct chest types is what actually makes the network legible.

  • passive provider: sits until something requests it. active provider: highest pickup priority, robots proactively empty it even with nothing requesting yet — for output that can’t afford to back up (a nuclear reactor’s spent fuel cells is the wiki’s own example)
  • storage: catch-all for anything unrequested, optionally filtered to one item. requester: pulls up to 1,000 request slots from the network — paste a recipe onto one to auto-request 30 seconds of its ingredients

Bot base: buffer chests

  • buffer: requests like a requester, but its stock is invisible to ordinary requesters and other buffer chests by default — only construction bots, personal requests, and a requester with “request from buffer chests” explicitly enabled can draw from it
  • stocking a buffer and expecting any nearby requester to pull from it is the standard beginner mistake this invisibility causes — a buffer is a reserve, not a fifth kind of passive provider

Bot base, continued

  • robots only travel where roboport coverage overlaps — two roboports connect their logistic ranges the same way two belts connect lanes
  • a logistic robot carries one item by default (four with the cargo-size research) at 3 tiles/second, dropping to 20% speed once network power runs low — trades belt-routing complexity for power draw and bot-count overhead, not for a free win
  • a careless active-provider chest full of the wrong thing gets emptied into storage immediately, by design — provider chests want a deliberate job, not “somewhere to put stuff”

Bot base, in practice

A repeating grid of logistic chests, each holding a different item type and fed by its own belt and pipe, laid out as a modular bot-supplied production block

Source: Factorio Wiki, CC BY-NC-SA 3.0.

Each chest here is a named request, not a generic buffer — the grid reads by chest type and contents, the same way a bus reads by lane.

Tileable base

A single production block, sized and shaped so it can be blueprinted once and stamped down again identically as many times as the base needs — the opposite of a bus’s “one long readable line,” this is “one small readable block, repeated.”

  • expansion is copy-paste, not redesign — the block that works at 10 copies works at 100, because each copy is self-contained
  • needs a shared grid to connect to: a belt or rail spine the blocks all align to, or the copies don’t line up
  • the community shorthand for this at full scale is “city blocks” — uniform blocks, commonly on the order of tens of tiles square, tiled across the whole base

Tileable base, in practice

A blueprint selection outlined around a row of identical production buildings and a power pole — the repeatable unit that gets stamped down again

Source: Factorio Wiki, CC BY-NC-SA 3.0.

The green outline is the actual unit of design here — not the individual machine, and not the whole base, just this one repeatable block.

Train base and megabases

Once one main bus can’t carry the volume a base needs, trains take over as the backbone between distant production areas and outposts — bulk cargo instead of belt lanes.

  • scales close to indefinitely once station and junction design is solid, but front-loads complexity into signalling, train limits, and stacker capacity that a bus never had to think about
  • “megabase” has no official definition, but the community’s rough benchmark is a base sustaining around 1,000 science packs a minute — past the point any single bus or bot network can keep up unassisted
  • most megabases combine all of the above: tileable blocks for production, trains between them, bots for local delivery inside each block

Train base, in practice

A train station with a locomotive and two wagons, inserters and chests loading and unloading ore automatically

Source: Factorio Wiki, CC BY-NC-SA 3.0.

This one station is the same idea as the bus’s “one branch” or the tileable block’s “one copy” — the repeatable unit, just moved onto rails.

The base doesn’t need a name. The trade-off it made does.

None of spaghetti, bus, bot, tileable, or train is “correct” — each answers the footprint trade-off differently, and most real bases mix more than one.

This week’s practical

Goal: compare two supplied bases — one spaghetti, one bus
Measure: actual throughput, and whether a fault can be traced by eye
Write up: which design coped better, and why

Keep the write-up. Assignment 1 asks you to diagnose a base under the same lens.