Six rules stop almost every train deadlock in Satisfactory before it happens: Path Signals on every junction, Block Signals on straight track, never mixed on the same block’s entrances, no bidirectional single track once a second train is running, a power budget that assumes 110 MW per accelerating locomotive rather than the 25 MW idle number, and freight-car counts based on the platform’s fixed load time, not a guess. The rest of this guide is the mechanism behind each rule, because “just follow the rule” breaks down the first time your factory outgrows a simple point-to-point line.
Quick Start: 6 Rules to Stop Deadlocks Before They Start
These six rules, in order of how often they actually cause a stuck train, prevent nearly every deadlock a growing rail network runs into:
- Path Signals on every junction. The official wiki lists junctions and bidirectional rails as Path Signals’ best use case for exactly this reason: multiple trains can cross simultaneously as long as their reserved paths don’t intersect, which a Block Signal can’t do [1].
- Block Signals on straight track, spaced ~1.5 train-lengths apart. Tighter spacing causes constant start-stop braking; wider spacing wastes a whole block on one train [2].
- Never mix signal types on the same block’s entrances. Every signal feeding into one block must be the same type — all Block or all Path. Mixing them is a common cause of “why is this signal stuck red” support threads [1].
- Kill bidirectional single track the moment a second train shares it. A route locks in the instant a train leaves its station and can’t be recalculated mid-journey [2] — that’s exactly what makes shared bidirectional track dangerous (next section).
- Budget locomotives at 110 MW, not 25 MW. A grid sized for idle draw brownouts the second three or four trains accelerate out of stations at once [3].
- Size freight cars off the platform’s load time, not a guess. The 27.08-second transfer lockout per platform is usually the real throughput ceiling, not the car’s 32-slot hold [4].
Block Signals vs. Path Signals: What Each One Actually Reserves
A Block Signal reserves an entire block for one train at a time; a Path Signal reserves only the specific path a train is taking through that block, letting other trains use the rest of it simultaneously. That distinction is the whole reason Path Signals exist.
Coffee Stain’s wiki describes a Block Segment as a strictly binary system: “there is either a train inside the segment, or no train inside the segment” [1]. The moment any part of a train enters a block, every Block Signal feeding into that block turns red, and it stays red until the entire train has cleared it — regardless of whether the train is using 5% or 95% of the physical track inside that block. A train also only looks one segment ahead, slowing down if the next one is occupied rather than planning further out [2].
Path Signals solve the specific failure case that creates: a four-way junction where two trains want to cross without ever touching each other’s rail. Instead of treating the whole junction as one reservable unit, a Path Signal auto-subdivides it into individual paths and only turns red for paths that actually overlap with a reserved one. It also looks ahead to the signal beyond the junction, so a train won’t enter an intersection it can’t fully clear [1].
There’s one sharp edge here worth flagging before it costs you a jam: Path Signals treat a manually-driven train as occupying the entire block, not just its path — so if you’re hand-piloting a train through a Path-Signal junction, every automated train waiting on that junction sees the whole thing as red until you’re clear [1].
| Aspect | Block Signal | Path Signal |
|---|---|---|
| What it reserves | The entire block | Only the train’s specific path through the block |
| Best used on | Straight double-track segments, station approaches | Junctions, crossings, bidirectional track |
| Multiple trains in one block | Never — one train locks the whole block | Yes, if their reserved paths don’t intersect |
| Manually-driven train | Blocks the segment as normal | Blocks the entire block, not just its path |
The takeaway the table doesn’t fully capture: this isn’t a matter of taste. Block Signals on a junction with more than two approaches will eventually deadlock, because two trains can both get a green at the same instant and meet inside a block neither of them can exit. Path Signals are the fix built specifically for that case — use them at every junction, no exceptions.
The One-Way Loop Rule: Why a Single Bidirectional Track Deadlocks
A single bidirectional track deadlocks because a train’s route locks in the moment it leaves its station and cannot be recalculated mid-journey [2] — so once two trains have each committed to using the same stretch of track from opposite ends, neither one has any way to back out, reroute, or yield. They meet in the middle and sit there.
The first time I ran a single shared track between two iron outposts and added a second train to it, both trains left their stations within seconds of each other, each with a route that assumed the track ahead was theirs. They met about halfway, each showing a red signal behind them and a red signal ahead, and neither had a valid next move. That’s not a bug — it’s the direct, predictable consequence of a routing system that commits at departure and never revisits the decision [2].
Coffee Stain’s own modding documentation is blunt about the fix: run one-way parallel tracks instead of a shared bidirectional line, because trains on separate one-way tracks never compete for the same segment in opposite directions at all — the conflict is structurally impossible, not just signaled around [2]. A one-way loop (one track per direction, joined into a circuit) also scales better than bidirectional track for a second reason that has nothing to do with signals: arriving and departing trains use different rail, so one train pulling into a station never blocks another pulling out.
That doesn’t mean bidirectional single track is always wrong. It’s the mechanism, not a blanket rule, that matters: a shared track only stays deadlock-proof while exactly one train ever uses it. The instant a second train enters rotation on that same line, you’ve created the exact departure-lock scenario above, and it’s a matter of when — not if — two trains commit to opposite ends of the same block at the same time.
Junction Design: Path Signals In, Block Signals Spaced Behind Them
Every junction — anywhere two or more tracks merge, cross, or split — gets Path Signals on its entrances. Every straight segment between junctions gets Block Signals, spaced roughly 1.5 train-lengths apart [1][2]. That’s the whole decision tree:
- Is this a merge, crossing, or fork? → Path Signal on every entrance to it.
- Is this a straight run with no branches? → Block Signals, ~1.5 train-lengths apart, to avoid both excessive braking (too close) and wasted capacity (too far) [2].
- Is the track bidirectional? → Signals face both directions (up to two signals per track joint, one per direction) [1] — but treat this as a stopgap, not a destination; see the one-way loop rule above.
- Are all the signals feeding into one block the same type? → They must be. A block with one Path Signal entrance and one Block Signal entrance on the same block is a misconfiguration, not a hybrid — fix it before it produces a signal that’s stuck red for no visible reason [1].

Placement matters as much as type. A signal placed right past a station’s exit clears the junction behind a waiting train instead of letting it block the mainline while it waits for a platform to free up — a small detail that’s easy to skip on a first build and expensive to retrofit once ten trains are running through the same junction.
How Many Freight Cars Do You Actually Need?
Usually fewer than you’d guess, because the platform’s fixed 27.08-second load/unload lockout — not the freight car’s 32-slot hold — is what actually caps your throughput [4][5]. Adding a longer train often buys you nothing if the belt feeding it can’t refill 32 stacks before the platform’s next lockout window closes anyway.
The official wiki gives the exact formula. Time to Fill (TtF) — how long a platform needs to top off one freight car — is (Stack Size × 32) ÷ Belt Speed + 0.4513 minutes, where 0.4513 minutes is the fixed 27.08-second lockout baked into every transfer [4]. Run the numbers on two Mk.5 belts and the spread is dramatic: Quickwire, at a 500-item stack size, takes 10.71 minutes to fill one car; Computers, at a 50-item stack size, take just 1.48 minutes [4]. A high-stack-size item needs a much longer round trip (or more cars in rotation) to avoid a train sitting at a half-empty platform doing nothing.
| Item | Stack size | Time to fill 1 car (2× Mk.5 belts) | What this means for car count |
|---|---|---|---|
| Computers | 50 | 1.48 min | Fast fill — throughput is bottlenecked by the 27.08s lockout itself, not belt speed |
| Quickwire | 500 | 10.71 min | Slow fill — a single car can comfortably outrun most round-trip times; more cars help only if the route is long |
| Quickwire (Mk.3 belts) | 500 | 30.08 min | Belt speed is now the real bottleneck, not the platform — upgrade belts before adding cars |

The practical rule this produces: calculate your Time to Fill first, compare it to your round-trip duration, and only add freight cars once TtF is shorter than the round trip — otherwise you’re paying for empty cargo slots that never fill before the train leaves [4]. And don’t confuse the two 32/48 numbers that show up in this math: the freight car holds 32 item stacks, but the freight platform‘s own internal buffer holds 48 — a separate, larger number by design, meant to pre-stage more than one car’s worth so the platform isn’t starved during its own lockout window [5]. If belts keep backing up at the platform regardless of car count, the wiki’s own fix is an Industrial Storage Container as an external buffer, which absorbs the 27.08-second lockout without ever stalling the belt feeding it [4].
Power Budgeting the Rail Network
An Electric Locomotive draws a minimum of 25 MW just sitting idle, and up to 110 MW while accelerating or climbing a grade [3] — budget your rail grid for the 110 MW figure, because that’s the number that actually brownouts a shared power line when three or four trains leave their stations within seconds of each other.
Regenerative braking claws some of that back: a locomotive can generate up to 33 MW while braking, which nets out to a gain of roughly 8 MW once you subtract its own 25 MW idle draw [3]. That’s a real but modest offset — it won’t cover a network scaling from 2 trains to 10 without dedicated power capacity added alongside the track itself. Treat locomotive power the same way you’d treat a new production line: multiply the worst-case draw (110 MW) by your peak simultaneous-departure count, not the average, because deadlocks and station queues have a habit of stacking multiple trains’ acceleration spikes into the same few seconds.
If your framerate is already dropping before you’ve even scaled the rail network up, fix that first — a factory-wide slowdown makes signal timing and junction behavior harder to read and debug. Our best Satisfactory PC settings guide covers the render-distance and foliage settings that matter most once a save has a few thousand buildings in it.
If You Already Know Factorio’s Signal System, Here’s the Mental Model Swap
The core difference to unlearn: Factorio’s block-signal network revolves around a single anti-deadlock discipline applied consistently across every junction, while Satisfactory splits that job between two distinct signal types (Block and Path) that you have to place correctly depending on context. Neither is “harder” — they’re solving the same block-reservation problem with different levels of granularity.
If you’ve already sunk hours into getting Factorio’s signal logic to click, our Factorio train signals breakdown covers the one rule that eliminates nearly every deadlock in that game — useful context for why Satisfactory needed a second signal type (Path Signals) where Factorio gets by with one. The two games also diverge on load timing: Factorio’s platform-arrival windows behave differently from Satisfactory’s fixed 27.08-second lockout, which is exactly the kind of assumption that breaks a build if you carry it over unexamined — see our Factorio Space Age platform timing comparison if you’re planning throughput math across both games.
Rail Network Priorities by Player Type
The right first move on a rail network depends heavily on where you are in a playthrough — the advice below is genuinely different per player type, not the same tips relabeled:
| Player type | Priority |
|---|---|
| New player | Build one-way loops from day one, even for a single train. Retrofitting bidirectional track into loops later means re-laying rail through a built-up factory — avoid the rework entirely. |
| Casual player | Default to Path Signals everywhere and skip the block-vs-path decision tree — a slightly less optimal signal choice costs you nothing meaningful below a handful of trains, and it removes an entire category of “why is my train stuck” debugging. |
| Hardcore / optimiser | Run the Time to Fill formula per item before committing car counts, and track peak simultaneous-departure power draw explicitly rather than sizing power off idle averages. |
| Completionist | Audit every block for mixed signal types before scaling past 5-6 trains on one grid — a single mismatched signal is easy to miss visually and gets exponentially harder to trace as train count grows. |
Common Deadlock Scenarios and Fixes
| Symptom | Likely cause | Fix |
|---|---|---|
| Two trains stopped nose-to-nose on a straight section | Bidirectional single track with a second train added after routes had already locked in [2] | Convert to a one-way loop; there is no signal configuration that fixes this on shared bidirectional track once two trains are running |
| A train stopped inside a junction, blocking everything behind it | Its reserved exit block is occupied by a manually-driven train, which Path Signals treat as blocking the whole block, not just a path [1] | Avoid manually driving through active Path-Signal junctions during automated operation, or clear the junction fully before switching to manual |
| A signal is permanently red with no train nearby | Mixed signal types feeding into the same block, or a missing/invalid connection [1] | Check every entrance signal into that block is the same type; rebuild the signal if it shows an error state |
| Trains constantly braking and re-accelerating on a straight run | Block Signals spaced too closely together [2] | Re-space signals to roughly 1.5 train-lengths apart |
| A freight car regularly leaves half-empty | Round-trip duration is shorter than the item’s Time to Fill [4] | Add a car or slow the route down — don’t add platforms, since TtF is a belt-speed/stack-size problem, not a platform-count problem |
FAQ
Should I just use Path Signals everywhere and skip Block Signals entirely?
You can, and for a small network it’s the safer default — but it’s not strictly optimal. Block Signals are simpler to reason about on long straight runs with no branches, and the official guidance specifically recommends them there, reserving Path Signals for junctions and bidirectional track [1]. Using Path Signals everywhere won’t break anything; it just adds a layer of path-reservation logic to segments that didn’t need it.
Why did my train stop dead in the middle of an intersection?
Almost certainly a manually-driven train sitting somewhere in that block. Path Signals reserve individual paths for automated trains, but they treat a manually-driven train as occupying the entire block — so an automated train can be mid-turn through a junction, see its exit suddenly blocked, and have nowhere to go [1]. This is the single most common cause of a train stuck inside an intersection rather than waiting cleanly behind a red signal.
Can I mix Block and Path Signals feeding into the same block?
No — every signal entering one block has to be the same type [1]. The reason this matters more than it sounds: the two signal types use different reservation logic under the hood, and a block fed by both loses the guarantee either type is supposed to provide. It won’t always throw an obvious error; sometimes it just produces a signal that stays red with no visible train nearby.
Do I actually need Industrial Storage Containers on every freight platform?
Only where the 27.08-second lockout is your real bottleneck — which is most high-throughput lines, but not every one. If your belt is already slower than the platform’s fill rate (like the Quickwire-on-Mk.3-belts example above, at 30 minutes to fill one car), the container buys you nothing, because the belt was never going to overwhelm the platform in the first place. Add the buffer once you’ve confirmed belt speed isn’t your actual limit [4].
Is a bidirectional single track ever a reasonable choice?
Only while exactly one train ever runs on it. The deadlock risk isn’t about bidirectional track itself — it’s about two trains committing to opposite ends of the same shared block, which can’t happen with a single train. The moment a second train joins that line, the arithmetic changes and a one-way loop stops being optional.
Sources
- Coffee Stain Studios. Train Signals. Official Satisfactory Wiki
- Satisfactory Modding Documentation. Train / Train Signal Manual
- Coffee Stain Studios. Electric Locomotive. Official Satisfactory Wiki
- Coffee Stain Studios. Tutorial: Train Throughput. Official Satisfactory Wiki
- Coffee Stain Studios. Freight Platform. Official Satisfactory Wiki
- xGamingServer. Satisfactory Roadmap 2026: Updates, 1.1 and 1.2
Verified against Satisfactory Update 1.2, promoted to the Stable branch June 2, 2026 [6]. Signal and freight-platform mechanics have been stable since Update 8 — if a future patch changes lockout timing or pathfinding behavior, treat the car-count math above as a starting point to re-check, not a permanent constant.
I've been playing video games for over 20 years, spanning everything from early PC titles to modern open-world games. I started Switchblade Gaming to publish the kind of accurate, well-researched guides I always wanted to find — built on primary sources, tested in-game, and kept up to date after patches. I currently focus on Minecraft and Pokémon GO.
