Rail Signal Planner


[QoL] Automatically place rail signals on rails and intersections.

Utilities
4 days ago
0.17 - 2.0
27.1K
Logistics Trains
Owner:
LeonSkills
Source:
https://github.com/LeonSkills/Factori...
Homepage:
https://github.com/LeonSkills/FactorioMods
License:
MIT
Created:
5 years ago
Latest Version:
2.0.2 (4 days ago)
Factorio version:
0.17 - 2.0
Downloaded by:
27.1K users

TLDR:

Automatically places rail (chain) signal on rails on the (mostly) correct places. Will mark existing signals for deconstruction/upgrade if needed, and places ghost signals where needed.

Works both when building rails, taking signals out of your inventory when needed (disabled by default), or by selecting rails using the rail signal planner selection tool.

The planner is found on the shortcut bar (ALT + P by default, can be changed in the control settings).

I do heavily recommend to check the signals this mod places. Do not fully rely on it as it might not be optimal (or just not possible at all to be optimal).
Placement of signals is not always perfect, but it should prevent any deadlock, while still maintaining decent throughput.
Lots of scenarios have been tested and in about of 99% of 'normal' scenarios the signals are correct and optimal.

Please report any behaviour that might be incorrect.

How to use the planner
Place a single rail signal on the track to indicate their direction.
Then drag the planner over the blocks of rails to place rail signals and chain signals ghosts on the correct places.
The mod will automatically includes adjacent blocks that it detects might influence the selected rails or need signalling themselves. It assumes everything outside of this network is signalled correctly.
It will mark any incorrect signals for deconstruction or for upgrade.

The settings menu can be opened through the mod gui button on the top left, or by right clicking the planner in your inventory.
There you can set max train length (to indicate how much space should be left free after a crossing) and the rail signal distance (the distance signals should be placed apart from at long stretches. By default it is set to 20, the length of a train with 3 cars. I don't recommend setting it lower than 10, the length of a curve is about 9).
For modded rails a setting can be stored per rail type if this rail has a rail planner.

Placing signals while manually placing rails
It is also possible to build the signals at the same time as you build the rails, this can be toggled in the menu.
It similar behaviour as the planner. Except it will automatically build the signals that are within reach distance of the player, if they have the signal in their inventory.

https://i.imgur.com/rgZXpfG.mp4

Some examples

Full album, if you're on pc and don't want to open every video individually
Straight rails
It removes all signals on a bidirectional rail, except for at crossings

A simple crossing
Two way crossing
Two way intersection
Roundabout
It checks the direction of a rail based on the existing rails. If there are no signals in front or behind a rail, it marks it as bidirectional, so sometimes you need to drag over twice if your first signalling wasn't quite complete yet.

A simple crossing
One way to bidirectional
One way to bidirectional while holding shift
Normally it ignores all double signals. When holding shift it doesn't ignore them, so it marks all rails in front and behind of it as bidirectional.

Stacker
Passing point on bidirectional rail
A u-turn from bidirectional to bidirectional

Note: These pictures were made with the initial release. Placements might have changed

Added compatibilities
Cargo ships (Best to avoid using this tool around rail bridges, as those rails are marked as bidirectional by the Cargo ships mod)
Naked rails. The two added rails use the same settings as the vanilla rails.

Limitations
By default does not place signals on rails that can't be build by a rail planner.

Supported Locale
German/Deutsch (de)
English (en)
Dutch/Nederlands (nl)
Russian/Pусский (ru)

Contributors
LeonSkills - author
Medium9 - German translations
Badway - Russian translations
Danura30082 - French translations