City block design: sizing, rail, roboports and power

A city block is a factory divided into regular squares, each separated by a rail grid. The idea is older than Factorio itself, but the numbers that make one work — how large each block should be, how many lanes the ring needs, how far apart roboports and power poles sit — are specific to the game's mechanics. This page works through those numbers from the version 2.1.12 data so a block can be sized from first principles rather than copied.

Rail and network figures computed from game version 2.1.12, updated 2026-08-22.

What a city block actually is

A city block base is built on a regular grid. Rails run along every grid line, forming a mesh of squares. Each square — the block — holds one production area: smelting, circuits, oil processing, science, or a dedicated sub-factory. Trains move materials between blocks along the grid; construction robots build and repair within blocks; power runs along the rail corridors.

The advantage over a main bus is scalability without re-planning. A bus must be widened when it saturates, and widening a bus means moving every tap along its length. A city block adds capacity by adding blocks. The disadvantage is up-front cost: the rail grid, intersections, roboports and power distribution must be built before the first block produces anything, and trains have turnaround time that belts do not.

Rail cost: what the grid is made from

The rail recipe in version 2.1.12 produces 2 rails from 1 stone, 1 iron stick, 1 steel plate. That is 0.50 stone, 0.50 iron sticks and 0.50 steel plate per rail. Rails stack to 100 per inventory slot, so a single cargo wagon with 40 slots can carry up to 4000 rails — enough for 2000 rail tiles at two rails per tile of track.

ComponentIngredients per unit
Rail signal 1.00 electronic circuit, 5.00 iron plate
Rail chain signal 1.00 electronic circuit, 5.00 iron plate
Train stop 5.00 electronic circuit, 6.00 iron plate, 6.00 iron stick, 3.00 steel plate

Signals and chain signals have the same ingredient cost, but they are not interchangeable. Rail signals divide track into blocks for normal following; chain signals reserve a path through an intersection and must be placed at every entrance to one. A grid intersection needs chain signals on all four approaches and regular signals on the exits. The exact count depends on the intersection design; what can be said from the recipe is that each signal costs one circuit and five iron plates, so a four-way intersection with chain signals on every approach is roughly eight signals — eight circuits and forty plates per crossing, before the rails themselves.

2-lane versus 4-lane rail

A 2-lane grid uses one track in each direction along every corridor. It is cheaper to build, occupies less width, and handles the throughput of most bases up to a few hundred SPM. Its limitation is that every train shares the same corridor, so a stopped train at a station blocks every train behind it until the train ahead departs.

A 4-lane grid uses two tracks in each direction, with one pair typically reserved for through traffic and the other for local station access. It roughly doubles rail cost and corridor width but prevents local stops from blocking express trains. The crossover from 2-lane to 4-lane is usually driven by train density rather than raw item throughput: a single track can carry a surprising number of items per minute if trains run unimpeded, but intersections and station stops create gaps that compound as the network grows.

The train throughput page covers the detailed math; the city-block implication is that the lane count should be chosen before the first block is placed, because adding lanes to an existing grid means rebuilding every intersection. A base expected to stay below a few hundred SPM is almost always fine with 2-lane. A megabase targeting 1000 SPM or more should plan 4-lane from the start.

Intersection types

Three intersection shapes are common on a city-block grid. The roundabout uses continuous curved rail and treats the crossing as a single block; it is compact but has low throughput because every train must wait for its turn. The cross-intersection with chain signalling allows opposing through trains to pass simultaneously but blocks on turning moves. The stack-interchange (a flyover-style grade-separated crossing) eliminates crossing conflicts entirely but is much larger and more expensive.

For a 2-lane grid, a well-signalled cross-intersection is the standard choice: it fits in the corridor width, handles four-way traffic correctly with chain signals, and can be upgraded later if needed. Roundabouts are useful at the network edges where train density is low. Grade-separated interchanges are used on 4-lane grids at high-traffic junctions where even a correctly signalled cross-intersection becomes a bottleneck.

Block sizing

The size of each block is the most consequential layout decision. Too small and the rail grid dominates the map, intersections are everywhere, and trains spend more time accelerating and braking than moving. Too large and robots have to fly long distances within a block, walking to out-of-network areas takes time, and the block becomes difficult to fill coherently.

Block side (tiles) Interior (2-lane ring) Interior (4-lane ring) Roboports to cover
96 80×80 64×64 4
128 112×112 96×96 9
160 144×144 128×128 16
192 176×176 160×160 16

The ring width is a layout convention rather than a data value: a 2-lane corridor with signals, poles and a wall occupies roughly eight tiles; a 4-lane corridor roughly sixteen. The interior column is the buildable area left inside that ring.

Common city-block sizes are 128 or 160 tiles per side. A 128-tile block with a 2-lane ring leaves a 112-tile square interior, large enough for a beaconed smelting column, a full circuit block, or an oil processing setup. A 160-tile block with a 4-lane ring leaves a 128-tile interior, suitable for large sub-factories. The 96-tile size is compact but tight for beaconed blocks; the 192-tile size is generous but robots spend noticeable time crossing it.

Block size versus train and robot time

A locomotive's top speed is 1.2 tiles per tick, or 72.0 tiles per second. Crossing a 128-tile block at top speed takes about 1.8 seconds; crossing a 192-tile block takes 2.7 seconds. That is transit time only; acceleration, braking and intersection waiting add more. Larger blocks mean longer transit times between adjacent stations, which reduces the effective throughput of each train.

Construction robots face a similar trade-off. A roboport's logistics radius is 25 tiles and construction radius is 55 tiles. A ghost at the far corner of a 192-tile block is up to 136 tiles from the nearest roboport if roboports are spaced at the no-overlap distance; a robot flying to that ghost spends several seconds in transit each way. Closer roboport spacing — overlapping the logistics areas — reduces robot flight time at the cost of more roboports.

Roboport spacing

A roboport covers a 110-tile square for construction (ghosts, repairs, upgrades) and a smaller 50-tile square for logistic robot requests. The two radii have different layout roles: construction coverage must extend to every tile of the block so robots can build it; logistics coverage must extend to every chest that needs robot-mediated item transfer.

The no-overlap spacing for a connected logistics network is 50 tiles between roboports, because the logistics radius of 25 must reach the next roboport. That is the minimum spacing for a connected network; it is not the optimal spacing for construction. A 50-tile grid leaves the corners of each square only just within construction range, and robots assigned to far-corner ghosts fly the full radius to reach them.

The practical compromise is to place roboports at half the construction radius — roughly 56 tiles apart — along the block interior, which overlaps both construction and logistics areas and keeps maximum robot flight distance short. The table's roboport count at no-overlap spacing is a lower bound; a block that uses heavy robot logistics usually doubles it.

Each roboport holds 7 robot slots and costs 45 steel plate, 45 gears and 45 advanced circuits (read from the recipe in recipes.json). That cost is high enough that spacing matters; a 128-tile block at no-overlap spacing uses 9 roboports, while overlapping coverage uses roughly four times as many.

Power distribution

Power runs along the rail corridors. Big electric poles have a wire reach of 32 tiles, so a single pole placed at each intersection and midway between them covers the grid lines. Within a block, substations with a supply area radius of 9 tiles and wire reach of 18 tiles distribute power to machines without cluttering the build area. A 128-tile block interior needs roughly 49 substations for full coverage at no-overlap spacing.

PoleSupply radiusWire reachUse
Big electric pole232Long-distance grid backbone
Substation918Wide-area block coverage
Medium electric pole3.59Local taps and dense areas

The backbone runs on big poles because their 32-tile wire reach keeps pole count low along long corridors. Substations fill the block interiors because their 9-tile supply radius covers a large area with few poles. Medium poles are used for local taps where a substation's coverage is overkill or where machines are densely packed and a closer connection is easier to route.

Beaconed versus non-beaconed blocks

A beaconed block arranges machines in compact rectangles ringed by beacons. Each beacon draws 480 kW continuously and covers a 3-tile supply radius. Beaconed blocks have higher power density and higher throughput per tile than non-beaconed ones, but they require the beacon supply area to be planned into the block geometry: machines must be within range, beacons must have power, and the rows must leave room for belt feed and output.

A non-beaconed block uses direct-feed assemblers or furnaces with no module transmission. It is cheaper, lower-power, and easier to lay out, but it needs more machines for the same throughput. The decision interacts with block size: a beaconed circuit block fits comfortably in a 128-tile block; the same rate without beacons may fill a 160-tile block. If the grid is sized at 128, beaconing is effectively required to fill high-throughput blocks. If the grid is sized at 160 or 192, non-beaconed blocks have room to grow.

Train loading and wagon capacity

A cargo wagon holds 40 stacks. At iron ore's stack size of 50, one wagon carries 2000 ore; at a circuit stack size of 200, one wagon carries 8000 circuits. A fluid wagon carries 50.0k units of fluid. These capacities set how many wagons a block needs to request per delivery.

The relationship to belt throughput is what determines whether a block is train-fed or belt-fed. A turbo belt moves 60.0 items per second; a single cargo wagon of circuits at 8000 items is the equivalent of 133 seconds of full turbo belt flow. Trains carry vastly more per delivery but deliver in bursts; belts carry less continuously. The train-throughput ratio page works through the burst-versus-continuous comparison; the city-block point is that every block must have enough buffer chests to absorb a wagon's burst without stalling the train.

When city block makes sense versus a main bus

A main bus is the right structure for a base that is still discovering what it needs. It is cheap to start, easy to tap, and its throughput is straightforward to reason about. It becomes painful when the bus needs more lanes than the factory has width, when taps are so frequent that the bus is a tangle of underground belts, or when production of one item needs to scale independently of everything else.

A city block is the right structure when production needs to scale in independent units, when train logistics are already in place, and when the builder is willing to pay the up-front grid cost. It is almost always the right structure for a megabase because adding a block does not require rearranging existing production. It is usually the wrong structure for a first base because the rail network, signalling and robot logistics require infrastructure that a new base does not yet have.

The practical crossover is around the point where a main bus would need to be eight or more belts wide for a single material, or where different production areas need to scale at different rates. Before that point, the bus is simpler. After it, the grid's independent scaling wins. Many bases use both: a bus for early and mid-game production, with a city-block rail network added on the side for high-throughput or independent sub-factories.

Station and train length planning

Every block that receives or ships materials needs at least one train station. A station's platform must be long enough for the train configuration that services it, and trains on a city-block grid should use a single standard length so that any platform can accept any train. The table below shows approximate lengths for common configurations, using the planning convention that a locomotive occupies 8 tiles and a cargo wagon 7 tiles. These lengths are not exposed in data/2.1 (the extracted data contains max speed but not collision length); they are the widely used build convention.

Configuration Locomotives Wagons Approx. length (tiles) Cargo slots
1-2-0 1 2 22 80
1-4-0 1 4 36 160
2-4-2 4 4 60 160
2-8-2 4 8 88 320

A 1-4-0 train — one locomotive, four wagons — is the most common single-direction city-block configuration. It is short enough to fit in a standard station bay, carries four wagon loads, and reverses using a loop or a terminus. A 2-4-2 configuration adds a locomotive at each end, allowing bidirectional travel without turning around, at the cost of two extra locomotives and a longer platform. Bidirectional trains simplify intersection design (no loops needed) but reduce network capacity because a single track can carry only one train at a time on a given segment.

The station platform should include margin beyond the train's collision length for the train stop itself, inserters or loaders, and a buffer of at least a few tiles so a train braking into the station does not overshoot the stop. A common rule is to add one wagon length of margin; for a 1-4-0 train that brings the platform to roughly five wagon lengths plus the locomotive. The station bay sits inside the block interior or in a widened section of the rail corridor, never on the through track itself.

Signal spacing on the grid

Rail signals divide track into blocks; chain signals reserve paths through intersections. On the straight sections between intersections, signals should be spaced so that a train braking to a stop fits within a single block. If signals are too far apart, one stopped train blocks a long section of track; if they are too close, the overhead of signalling reduces throughput because each block can hold only one train.

The braking distance depends on train speed, weight and braking force, which are not fully exposed in data/2.1 (the locomotive entry provides max speed but not weight or braking force). The practical convention is to place signals roughly one train length apart on high-traffic corridors. For a 1-4-0 train at about 36 tiles, that means a signal every 36 tiles or closer; longer trains need wider spacing. At intersections, chain signals go on every approach and regular signals on every exit, which is a fixed rule independent of train length.

A useful sanity check is that a chain signal must be placed immediately before the intersection entry, and a regular signal immediately after the exit. If a regular signal is placed before the exit, a train can stop inside the intersection and block cross-traffic. If a chain signal is placed after the entry, it does not protect the crossing. Getting this wrong is the most common cause of city-block gridlock, and it is a placement discipline rather than a number to compute.

Expanding the grid without rebuilding

The principal advantage of a city-block layout is that new blocks are added by extending the grid, not by rearranging existing production. To preserve that property, the grid should be planned with two things fixed from the start: block size and lane count. Changing either after blocks are in place means moving intersections, roboports and power lines along every corridor.

Grid extension is straightforward in one direction: lay the next set of rail lines, place intersections at the grid points, add roboports and poles along the corridor, and zone the new block. Extending in two directions at once — adding a new row and column simultaneously — requires the new corner intersection to be built and signalled before trains can route through it. The grid itself does not care which blocks are filled; an empty block is just track waiting for a station, and trains will route around it.

This is also the layout's main cost discipline. Every grid line and intersection is built whether or not the adjacent block is used, and the rail, signal and roboport cost of an oversized grid can be substantial. The compromise most bases use is to build the rail skeleton a few blocks ahead of current production and extend it as new blocks are zoned, rather than paving a huge grid up front. That preserves the regular spacing without paying for unused rail.

Buffer chests and station loading

A train delivers materials in bursts: a full wagon arrives, unloads in seconds to minutes depending on inserter count, and departs. The block's consumers draw materials continuously. The difference between burst and continuous flow is absorbed by buffer chests at the station. A cargo wagon with 40 slots delivers up to 4000 iron plates per trip; the buffer must hold at least that much plus enough to supply the block while the next train is in transit.

For high-throughput blocks the chest count is set by unloading speed rather than capacity. A wagon unloaded by six to twelve fast or stack inserters fills its buffer chests in a few seconds; the same wagon unloaded by two inserters takes much longer, and the train occupies the platform for the duration. Faster unloading means shorter station dwell time, which means higher network throughput, because a train that is not sitting at a station is moving cargo. The train-throughput ratio page quantifies this; the layout implication is that every station should allocate enough chests and inserters along the platform to unload the wagon in one round of inserter swings.

Applies when…

  • Block and corridor dimensions are layout conventions informed by the in-game radii, not fixed values from the game data. Exact ring widths depend on wall, signal and belt placement choices.
  • Roboport counts assume a no-overlap grid at twice the logistics radius. Overlapping for shorter robot flights increases the count, typically by a factor of two to four.
  • Train transit times use the locomotive's maximum speed of 1.2 tiles/tick from machines.json. Acceleration, fuel bonuses and braking distance are not in the extracted data and would add to real-world times.
  • Rail cost per rail is derived from the recipe (1 stone + 1 iron stick + 1 steel plate produces 2 rails). Rails per tile is a game-mechanic constant (two rails per straight track tile).
  • Beacon power draw of 480 kW is per beacon regardless of whether machines are in range. The supply radius of 3 tiles is from machines.json; the number of machines covered depends on block geometry.
  • Wagon capacities assume normal-quality wagons and no stack-size research bonuses beyond the item stack sizes in items.json. Quality modules and research can increase these.

Related