Railwright


Build smarter train stations. An in-game train station blueprint generator for Factorio 2.1, inspired by BurnySc2's original Train Station Blueprint Creator.

Content
5 days ago
2.1
65
Trains

Changelog

Version: 0.3.8
Date: 02. 08. 2026
  Major Features:
    - Added optional runtime-managed dynamic names for item and fluid stations.
    - Generated dynamic-name stations include one dedicated Railwright station-name combinator with blueprint configuration tags.
  Changes:
    - Dynamic station naming is marked experimental; a default-off per-player mod setting controls whether its per-station generator checkbox is shown.
    - The existing Station name field is used as the textual base or suffix after the selected resource icon.
    - Exactly one positive item or fluid signal renames the stop using Factorio rich text, such as [item=iron-ore] Load or [fluid=crude-oil] Unload.
    - No resource signal preserves the last valid dynamic name, or the configured station name before the first valid signal.
    - Multiple different resource signals are treated as ambiguous and never selected arbitrarily.
    - The marker reads only its input circuit connectors and uses a reserved direct output-red connection to identify one train stop.
    - Player, robot, script, revive, removal, save, and configuration-change lifecycles are handled by focused runtime code.
    - The custom entity, item, and recipe temporarily reuse vanilla decider-combinator visuals and audio assets.
  Compatibility:
    - Dynamic station naming is disabled by default and requires both experimental access and the per-station checkbox; existing generated stations are unchanged.
    - The marker recipe is unlocked by circuit-network technology and does not require Space Age.
  Bugfixes:
    - Added deterministic copper-wire chains between generated item and fluid station power poles.
    - Corrected loading-station branch belts so staggered transitions feed into the longitudinal collector without changing unloading topology.
    - Moved Madzuri arithmetic combinators to geometry-derived service positions so all chest and outer-inserter rows remain placeable and wired.
  Notes:
    - Railwright runtime scripting performs the train-stop rename; blueprint circuit logic alone cannot rename a stop.
Version: 0.3.7
Date: 01. 08. 2026
  Bugfixes:
    - Prevented the Railwright window from crashing when a saved or default entity prototype is missing from the current mod set.
    - Missing optional loader selections now fall back to inserter transfer mode instead of passing an invalid loader name to the GUI.
    - Newly created player settings now pass through the same prototype validation as migrated settings.
  Community:
    - Thanks to @dtrauma for reporting the Blueprint Sandbox compatibility problem in GitHub issue #13.
Version: 0.3.6
Date: 17. 07. 2026
  Changes:
    - Added a live blueprint summary showing layout, direction, lanes, and selected train size.
    - Added immediate feedback for invalid train-size and stacker-lane values.
    - Contextual station controls now hide when their parent feature is disabled or not applicable.
    - Added focused tooltips for train sizing, dynamic limits, balanced loading, and stacker options.
    - Improved the experimental diagonal presentation with a visible caution below its controls.
    - Prevented development scripts and executable file types from entering Mod Portal archives.
    - Added optional support for Deadlock compact loaders as an alternative item-transfer method.
    - Loader stations use wagon-to-loader, loader-to-chest, and chest-to-belt chains in both directions.
  Bugfixes:
    - Fixed compact loaders facing the wrong direction in loading and unloading stations on both sides of the train.
    - Replaced inserter-style belt collectors on compact-loader stations with direct staggered splitter chains.
    - Moved front-locomotive refuelling equipment clear of the train stop so all ghosts can be placed.
  Known Issues:
    - Diagonal stackers remain experimental while more train lengths, lane counts, and mod combinations are tested.
    - Loader-based loading stations can look offset in the blueprint preview, but align correctly when placed in the world. Somehow. We have no idea why this works either.
    - Inserter-based item stations have a minor belt-routing issue planned for a later release.
Version: 0.3.5
Date: 17. 07. 2026
  Major Features:
    - Restored diagonal stacker generation as an experimental feature using Factorio 2.1 native rail-planner geometry.
    - Added a per-player mod setting that controls whether the experimental diagonal option appears in the Railwright stacker menu; the option is shown by default.
  Changes:
    - Added an experimental diagonal checkbox for both Left-Right and Right-Left stacker directions.
    - Reworked diagonal signal placement around signal locations reported by Factorio's native rail ends.
    - All lane-entry chain signals now use the first incoming diagonal anchor, and all lane-exit signals use the final incoming diagonal anchor.
    - Corrected the entrance and outer-exit chain signals to use the proper side of the rail.
    - Adjusted diagonal holding-lane sizing for train length and wide stacker fans.
    - Removed the hidden /railwright-experimental-diagonal command; experimental access is now controlled through Settings > Mod settings > Per player.
    - Added a native PowerShell build script that creates and validates a Factorio-compatible ZIP in the dist directory.
    - Local PowerShell builds now include a separate dist/debug-commands.txt reference for diagnostic testing.
    - Removed unreachable compatibility-era diagonal code and unused runtime helpers.
    - Dynamic train limits now use Factorio prototype inventory and fluid capacities instead of assuming vanilla container sizes.
    - Madzuri loading thresholds now use the selected inserter prototype and the generating force's researched capacity bonuses.
    - Batched temporary rail-surface chunk generation for diagonal geometry construction.
    - Added architectural comments throughout the Lua modules to document responsibilities and non-obvious invariants.
  Bugfixes:
    - Fixed diagonal signals appearing on the wrong side of incoming and outgoing rails.
    - Fixed staggered lane signal indices that placed signals on unintended diagonal rail segments.
    - Fixed short Left-Right holding lanes and excessively long Right-Left holding lanes at higher lane counts.
  Known Issues:
    - Diagonal stackers remain experimental while more train lengths, lane counts, and mod combinations are tested.
Version: 0.3.4
Date: 16. 07. 2026
  Bugfixes:
    - Fixed an internal issue affecting stacker generation.
Version: 0.3.3
Date: 16. 07. 2026
  Changes:
    - Removed the diagonal stacker option while that layout remains unreliable.
    - Existing saved diagonal stacker selections automatically use the supported parallel stacker layout.
    - Simplified the stacker menu by hiding station-only options such as station name, double-headed trains, and including a train in the blueprint.
    - Left-Right and Right-Left parallel stackers remain available and unchanged.
  Known Issues:
    - Diagonal stackers are temporarily unavailable while a reliable Factorio 2.1 layout is still being worked out.
  Community:
    - If you have a reliable way to generate diagonal stackers with modern Factorio 2.1 rails, contributions and pull requests are very welcome on GitHub.
Version: 0.3.2
Date: 16. 07. 2026
  Major Features:
    - Added a dedicated Right-Left parallel stacker layout based on a manually built Factorio 2.1 reference.
  Changes:
    - Right-Left stackers are now confirmed working with Factorio 2.1 native rails.
    - Right-Left stackers now use their own rail layout instead of reusing the Left-Right layout in reverse.
    - Added the correct Right-Left entrance and exit curves, vertical connections, and lane signal placement.
    - Preserved chain signals at both outer ends of the Right-Left stacker reference layout.
    - Trains included in Right-Left stacker blueprints now face the correct travel direction.
    - Left-Right stacker generation remains unchanged from the confirmed working 0.3.1 layout.
  Known Issues:
    - Diagonal stackers are still under active development and may generate lanes that are longer than necessary or place some rail signals incorrectly.
    - Improvements to diagonal stacker sizing and signal placement are being worked on for a future update.
Version: 0.3.1
Date: 16. 07. 2026
  Bugfixes:
    - Fixed Left-Right stacker signal placement so the lane signals now line up correctly with the generated rails.
  Changes:
    - Left-Right stackers are now confirmed working with Factorio 2.1 native rails.
    - Adjusted signal placement to match the way Factorio positions modern rail pieces when generated blueprints are created.
    - Right-Left stackers are still being worked on and may not generate correctly yet.
Version: 0.3.0
Date: 16. 07. 2026
  Major Features:
    - Rebuilt the stacker system around Factorio 2.1 native rail pieces.
  Changes:
    - Added a new native Left-Right parallel stacker layout and native diagonal stacker generation.
    - Added scalable stacker layouts for configurable train lengths and lane counts.
    - Replaced the old compatibility rail setup with the current Factorio 2.1 rail system.
    - Removed the unsupported Left-Left and Right-Right stacker directions; existing saved settings using them automatically fall back to Left-Right.
  Compatibility:
    - Stacker generation no longer depends on legacy rail prototypes.
Version: 0.2.3
Date: 16. 07. 2026
  Bugfixes:
    - Fixed the packaged Mod Portal thumbnail by replacing the invalid lowercase thumbnail.png with a valid PNG image.
    - Prevented future releases from packaging invalid PNG artwork by validating PNG structure and CRC data in CI.
  Changes:
    - Release validation now checks both thumbnail.png and the 56px shortcut icon before packaging.
    - The final ZIP is also revalidated to ensure the exact published PNG files are valid.
Version: 0.2.2
Date: 16. 07. 2026
  Changes:
    - Replaced the legacy top-of-screen Railwright button with a native Factorio shortcut-bar button.
    - Railwright can now be shown, hidden, and reordered through Factorio's shortcut-bar configuration.
    - Existing saves automatically remove the old top-bar launcher when upgrading to this version.
  Graphics:
    - Added support for a dedicated 56px Railwright shortcut icon.
Version: 0.2.1
Date: 16. 07. 2026
  Major Features:
    - Added item loading and unloading station generation with configurable station behavior.
    - Added fluid loading and unloading stations.
    - Added vertical and diagonal stacker generation.
  Features:
    - Added runtime prototype pickers for inserters, chests, belts, splitters, pumps, storage tanks, and pipes.
    - Added inserter filters and logistic requester/buffer chest configuration.
    - Added chest limits, belt-flow controls, Madzuri-style balancing, circuit wiring, refuelling, train limits, enable conditions, and lamps.
    - Added configurable train length, double-headed trains, station sides, pump sides, tank columns, and stacker lanes.
    - Added persistent per-player settings with migration-friendly defaults.
  Changes:
    - Split blueprint generation into dedicated item, fluid, stacker, common, and builder modules.
    - Added automatic Lua syntax validation and Factorio-compatible ZIP packaging in GitHub Actions.
    - Added automatic GitHub releases and Factorio Mod Portal uploads for releases created from main.
  Compatibility:
    - Uses the prototypes loaded by the running game so compatible entities and items from other mods can be selected natively.
    - Current stacker templates use Factorio's compatibility rail prototypes while modern 2.1 rail geometry is developed.
Version: 0.1.0
Date: 16. 07. 2026
  Major Features:
    - First working in-game release of Railwright for Factorio 2.1.
  Features:
    - Added the Railwright configuration window and top-bar button.
    - Added item loading and unloading station generation.
    - Added configurable locomotive and cargo-wagon counts, double-headed trains, station sides, and optional train placement.
    - Added native prototype selectors for inserters, chests, and transport belts.
    - Added direct blueprint creation in the player's cursor.