Automated Rail Signal Placer


Automatically place correctly spaced rail signals between two selected points based on your train length.

Content
2 hours ago
2.1
6
Trains

Changelog

Version: 0.7.3
Date: 2026-07-21
  Changes:
    - Avoid legal-but-cramped signal positions beside unrelated rails at merges and crossings.
    - Keep user-selected endpoint positions unchanged while applying clearance to generated signals.
Version: 0.7.2
Date: 2026-07-21
  Bugfixes:
    - Reject final ghost positions unless a momentary real signal attaches to at least one rail.
    - Prevent orphan signals on elevated curves and during junction re-signalling.
    - Do not reuse detached signals or old planner ghosts on repeated runs.
Version: 0.7.1
Date: 2026-07-21
  Bugfixes:
    - Fixed valid second endpoints being rejected on the entry end of curves, ramps, and junction rails.
    - Route discovery now genuinely explores both physical directions from the first endpoint.
    - One-way versus paired two-way mode now remains correct whichever route direction reaches the second endpoint.
    - Paired endpoint ghosts now use the actual opposite signal side for every endpoint orientation.
Version: 0.7.0
Date: 2026-07-20
  Features:
    - Route discovery now tries both travel orientations from the first endpoint and chooses the shortest valid route.
    - Endpoint sides still determine one-way versus paired two-way output without requiring the first endpoint to face toward the route.
  Bugfixes:
    - Fixed valid retries being rejected after Ctrl+Z or signal removal when Factorio exposed the first endpoint through the opposite rail-end orientation.
    - Route search states now retain endpoint orientation independently, including across branches and merges.
    - Successful and cancelled plans leave no temporary endpoint signals behind.
Version: 0.6.2
Date: 2026-07-20
  Bugfixes:
    - Fixed the non-recoverable "Entity is not rail-signal" error when placing the first endpoint.
    - Temporary endpoints now use LuaEntity.silent_revive instead of reading rail-signal-only fields from an entity ghost.
    - Ghost revival preserves Factorio's internal ground or elevated rail attachment without creating a robot construction job.
    - Uses the Factorio 2.1 writable minable_flag property when locking temporary endpoint signals.
Version: 0.6.1
Date: 2026-07-20
  Bugfixes:
    - Endpoint placement no longer depends on the cursor ghost still being present when Factorio delivers the built-entity event.
    - The endpoint cursor is explicitly re-equipped after the first endpoint is accepted.
    - Q cancellation now listens to the real clear-cursor control instead of treating automatic cursor changes as cancellation.
    - Removed the built-event prototype filter and validate endpoint ghosts in the handler for compatibility with altered signal prototypes.
Version: 0.6.0
Date: 2026-07-20
  Features:
    - Consolidated the interface to one native Factorio shortcut-bar button.
    - Added a configurable Shift+P input and /rail-planner-settings command for the train settings window.
    - Endpoint ghosts are now replaced immediately by locked, non-minable temporary vanilla rail signals.
    - Temporary endpoints show actual rail-block behavior without creating construction jobs.
  Bugfixes:
    - Personal construction robots can no longer build an endpoint and invalidate the span before the second endpoint is placed.
    - Final signal ghosts are created only after both endpoints form a valid connected route.
    - Temporary endpoint signals are removed on completion, cancellation, configuration migration, and player removal.
Version: 0.5.0
Date: 2026-07-20
  Features:
    - Renamed the mod to Rail Signal Planner.
    - Replaced the floating screen GUI with two native Factorio shortcut-bar buttons.
    - Added a normal-signal shortcut for endpoint placement and a chain-signal shortcut for persistent train settings.
    - Replaced the cloned endpoint prototype with tagged ghosts of Factorio's real rail-signal prototype.
  Bugfixes:
    - Endpoint placement now uses Factorio's own signal snapping and validation on ground and elevated rails.
    - Removed the custom rail-signal prototype, eliminating collision-mask and rail-attachment conflicts with graphics and rail mods.
    - Migration removes the obsolete floating and top GUI buttons.
Version: 0.4.1
Date: 2026-07-20
  Bugfixes:
    - Restored the base rail-signal ground and elevated collision masks required by Factorio.
    - Fixed startup compatibility with Factorio HD Age: Base Game - Logistics and Factorio HD Age: Elevated Rails.
  Features:
    - Clicking an existing rail or chain signal while the tool is armed now reuses it as an endpoint.
    - Shared branch starting points no longer depend on overlapping rail-signal prototypes.
Version: 0.4.0
Date: 2026-07-20
  Features:
    - Added bounded shortest-path routing through left, straight, and right rail branches.
    - Added automatic one-way mode for same-side endpoints and paired two-way mode for opposite-side endpoints.
    - Protected divergence and merge boundaries from ordinary signal placement and removal.
    - Preserved signals that belong only to unselected branches.
    - Reused existing signals at desired positions and marked obsolete real route signals for robot deconstruction.
    - Kept signal removal orders and newly generated ghosts in one native undo group.
    - Allowed the temporary endpoint ghost to overlap existing signals so shared branch starting points can be reused.
Version: 0.3.0
Date: 2026-07-20
  Features:
    - Replaced the top GUI button with a persistent bottom-right rail-signal tool button.
    - Added right-click configuration with automatically saved per-player train settings.
    - Added left-click activation of a hidden, ghost-only rail-signal endpoint marker.
    - Made endpoint markers use a cloned rail-signal prototype for normal signal snapping and visualization.
    - Generated normal rail-signal ghosts at both endpoints as well as between them.
    - Grouped every generated signal ghost into one native Factorio undo item for single-step Ctrl+Z undo.
    - Added Q-to-cancel behavior and automatic cleanup of temporary markers.
Version: 0.2.0
Date: 2026-07-20
  Changes:
    - Targeted Factorio 2.1 exclusively.
    - Added a Mod Portal thumbnail and an MIT license file.
    - Changed automatic vanilla spacing to seven rail tiles per vehicle with zero default clearance.
    - Balanced generated blocks while guaranteeing that every generated block fits the configured train.
    - Tried both primary and alternate legal signal locations, including their rail layer.
    - Kept the first endpoint selected after a rejected second endpoint so placement mistakes are recoverable.
    - Added GUI selection status, explicit selection cancellation, button toggling, and Escape-to-close behavior.
    - Removed locale keys that could overwrite Factorio's shared gui.close and gui.cancel translations.
    - Added per-player storage cleanup, bounded numeric input, and clearer expert signaling guidance.
Version: 0.1.0
Date: 2026-07-20
  Features:
    - Added per-player GUI for locomotive count, wagon count, clearance, and manual spacing override.
    - Added two-endpoint normal rail signal workflow.
    - Added automatic regular rail-signal ghost placement on unbranched spans.
    - Added ground/elevated rail-layer handling.
    - Added /rail-span-reset command.