Rail signals in Factorio become easier to understand when they are treated as boundaries between track blocks rather than decorations beside each junction. The train responds to the route and the blocks ahead. A crossing can be empty at one moment yet still be a poor place for a train to wait because it would obstruct another route. The first planning question is therefore where a complete train can stop without blocking something else. Signal choice follows that decision, rather than beginning with a memorised pattern placed around every rail intersection.
Inspect the blocks that the game actually creates
Hold the relevant signal tool and use the game's block visualisation. Follow the colours across connected rails instead of assuming that two lines crossing on screen belong to separate protected areas. The official signal documentation explains that blocks span connected rails even when a particular train cannot travel between every part. A large unexpected block can therefore influence traffic somewhere that initially looks unrelated to the stopped train.
Trace one intended route through the junction from approach to exit. Identify the boundary before the crossing and the next place where a train could wait. A signal does not need to sit exactly beside the most visually obvious piece of track. Its job depends on the protected section it creates. If the section includes more of the network than expected, inspect connections and placement before adding more signals. A controlled local change is easier to understand than a patchwork built around symptoms.
Use ordinary signals for an available stopping block
An ordinary rail signal considers the following block. The documented states distinguish an empty block, a reservation and an occupied or otherwise unavailable block. Signals also define direction through their placement relative to the track. Check both functions when a train cannot find a path. A route can look physically connected while its signal arrangement does not allow the direction the train needs. Use the in-game placement indicators rather than estimating the opposite position by eye.
Ask whether a full train can fit in the block beyond the signal without leaving its rear across a crossing or another route. The answer depends on the actual train length and layout. A green signal does not transform an inadequately sized waiting space into a useful one. The system can permit entry to an empty block while the resulting stop is still undesirable for the wider junction. This is why stopping-space planning comes before copying a signalling rule of thumb.
Read chain signals through the route beyond
A chain signal looks ahead through the connected exit conditions along the train's route. The official documentation describes its use in preventing entry to a crossing when the train cannot leave appropriately. That is the principle behind protecting a junction from becoming a waiting place. The chain signal is not simply a stronger ordinary signal. It solves a different question: whether entering the next shared section would lead to stopping somewhere that should remain clear.
A chain signal can display blue when some exits are available and others are not. The relevant train's path matters. Do not assume that blue means every train should either go or stop under one universal interpretation. Follow the intended exit. This helps explain why one movement can proceed while another waits at what seems to be the same junction. The visible colour is a summary of a route-dependent situation, not a complete route instruction for every possible train.
Design the exit and waiting space together
After the shared crossing, identify an appropriate block in which the entire train can wait. The ordinary signal defining that stopping space and the chain signals protecting the preceding shared area need to work as a system. If the exit block is too short, the rear can obstruct the junction even though the front has passed its boundary. If the block includes an unrelated busy section, trains may wait longer than the local picture suggests.
Check a route in each required direction. A layout intended for two-way use needs a different directional arrangement from a pair of dedicated one-way tracks. Mixing assumptions can produce a route that works for one train but not another. Before introducing more traffic, test that an automatic train can complete the intended circuit. A manual movement does not prove the automatic path is valid, because the control and pathfinding situation are different.
Diagnose a stopped train without removing every red signal
Read the train's state and trace the next unavailable block or destination. A red signal can be correctly protecting traffic rather than causing the underlying problem. Removing it may hide the immediate wait while creating another conflict. Start by finding what occupies or reserves the relevant section and whether the intended exit can clear. If the destination itself is unavailable, adding signals around the junction will not necessarily create a place for the train to go.
Inspect several stopped trains as a connected queue when necessary. One train may be waiting for another whose rear blocks a route elsewhere. The first visible red light is not always the origin of the blockage. Trace the dependency until you reach the place where a train could have waited differently or a route cannot clear. That point offers a more useful repair than repeatedly making whichever signal is nearest turn permissive.
Test the junction under the traffic it must handle
Run the actual train lengths and routes through the layout, including a case where an exit is occupied. A junction that works with one train may behave differently when two routes interact. Watch where trains stop and whether their complete length clears the shared area. The acceptance test should reflect the intended operation, not just one uninterrupted demonstration in an empty network. Make one change at a time so its effect remains visible.
Keep the result understandable for later expansion. A short note or recognisable layout can indicate which sections are shared and where waiting is intended. When longer trains or a new route are added, revisit that assumption. Factorio signalling is less mysterious when each boundary has a purpose. Understand the blocks, decide where trains may wait and use the signal type that expresses that plan. The junction's appearance is only the beginning; its usable stopping spaces determine how the traffic behaves.


What is your perspective?
Share a useful observation. Keep spoilers clearly signposted and follow our community guidelines.