Shoter Rail Signal Planner

by shoter

Provides a tool to automatically place chain and rail signals on rails and intersections. Based on Rail Signal Planner by LeonSkills (https://github.com/LeonSkills/FactorioMods), used under the MIT License.

Utilities
3 hours ago
2.0
0
Logistics Trains

Changelog

Version: 2.0.0
Date: 2026-08-17
  Info:
    - Initial release of Shoter Rail Signal Planner, a fork of Rail Signal Planner by LeonSkills.
    - Version numbering restarts here and is independent from the original mod.
  Features:
    - Selection tool that places rail signals and rail chain signals on rails and intersections.
    - Works out where a chain signal is needed and where a plain rail signal is enough, so merges
      and intersections do not deadlock.
    - Optionally places signals automatically while you are building rails with a rail planner.
    - Configurable train length and rail signal spacing, stored separately per rail planner.
    - "One-way rails only" mode that refuses to signal rails that would become bidirectional.
    - Supports the 2.0 curved rails, elevated rails and legacy rails.
    - Signals within reach are built from your inventory; anything further away is left as ghosts,
      upgrade orders or deconstruction orders so construction robots finish the job.
    - Existing signals are respected: they are restored and then marked for upgrade or removal
      rather than being replaced silently, which keeps the changes in the undo queue.
    - Reverse-select with the tool to cancel queued signal work, or alt-reverse-select to
      deconstruct signals.
    - Settings menu reachable from the top left button, a shortcut, or right clicking the planner.
    - Remote interface for other mods to register custom rails:
      remote.call("RailSignalPlanner", "add_supported_rail", rail_name, rail_planner_name?)
  Bugfixes:
    - Fixed a crash when restoring a signal at a position that stopped accepting signals after the
      rail layout changed, for example when merging two rail lines into one.
    - Fixed existing ghost signals being deleted instead of restored after the planner ran.
    - Fixed crashes when a signal entity failed to be created and the result was used anyway.
    - Fixed a helper removing the last entry of a list when the entry it was asked to remove was
      not present, which could sever unrelated connections in the signal graph.
    - Fixed a crash when a rail was replaced by another mod and no unique replacement was found.
    - Fixed block length being measured from the wrong rail, and curved rails never being
      recognised, so the distance used to decide how far to look for exits was far too small.
    - Fixed a signal only ever recording the first rail it was attached to.