About the Game
NIMBY Rails is a management sandbox for railways you build in the real world. Design train tracks, set up lines, and get that stock rolling to make money and serve the needs of the population. Do you have strong opinions on rail projects and want to test your own ideas? This game was made for you.
- The world is your canvas. Design and play on a fully detailed real world map with 1cm resolution. A rail link from Lisbon to Shanghai? Anchorage to Buenos Aires? Cape Town to Rabat? Why not!
- Your tracks will need to respect real, existing roads and streets. Too many crossings may make your designs not viable.
- Streamlined circulation mechanics so you don't get bogged down by the details. Build and run a large network easily.
- Only as complex as you want it. Easily build stations with automatic double track and automatic entrance/exit signaling, and link them in a couple clicks with automatic double tracks.
- But do you have your own ideas about signals? Want to dive into detailed station design? Have a flying junction concept you are dying to test? Just disable the automatic aids in the track editor and individually control every every track, signal and building if you desire to do so.
- Trams, subways, commuter, regional and high speed trains. Tunnels, viaducts and ground tracks with a variety trade offs on the environment, train speed, and your company wallet.
- Simulated train and station demand, down to simulating individual passengers. Passengers can, and will, engage in train trips that make them board multiple trains, waiting in transfer stations.
- Demand flow based on time of day and time of week, with time zone support. Find it boring when night time comes and the stations are deserted? No problem, start a new line ten time zones away.
- Passengers will continuously rate their experience based on the trip time and the fares you impose on them, with effects on the demand of the stations they visit.
- Single player and offline first.
- Optional cooperative multiplayer: build together in real time with friends and others you invite to your hosted server session.
Screenshots
32 imagesVersion Information
Steam Patch Notes
Official update history
On the site: Build 24696017
Up to date
- Map rotation binding can now be toggled between shift + vertical wheel, alt + vertical wheel, and horizontal wheel
- Fix: population palette mods did not always apply on loading a game
- Fix: Linux native builds could not join Windows multiplayer hosted sessions, and could host sessions for Windows clients
- Fix: Linux saves backup folder was not created on game launch and defaulted to the game install folder
- Fix: Linux IME window position was incorrect. IME has been verified running as a Wayland client under KWin and Niri, and as a X11 client under XWayland, with Fcitx5. Other combinations are not tested and are not reasonable to test at the moment due to the fragmented nature of the Linux desktop ecosystem.
View on Steam
- Fix: population palette mods did not always apply on loading a game
- Fix: Linux native builds could not join Windows multiplayer hosted sessions, and could host sessions for Windows clients
- Fix: Linux saves backup folder was not created on game launch and defaulted to the game install folder
- Fix: Linux IME window position was incorrect. IME has been verified running as a Wayland client under KWin and Niri, and as a X11 client under XWayland, with Fcitx5. Other combinations are not tested and are not reasonable to test at the moment due to the fragmented nature of the Linux desktop ecosystem.
- Stop selection signals now again perform a (possibly redundant and unnecessary) goal stop selection at the last possible moment, both from a stop or a pass-by.
- Fix: queue_train_drive_to() was fully resetting the Motion::drive component and zeroing the stored waiting signal ID. If the train was positioned exactly at or an infinitesimal distance distance ahead of the signal (which is legal) it caused the train to skip the signal wait.
- Fix: dead end point mode tracks set as parallel of a point mode track did a poor job of matching the tangent of the parent track
- Fix: push-pull capability was cached in the Motion Dynamics instance, but it could become stale after certain editing operations. Now this flag is never cached and it is instead always calculated on demand. It is now also possible to check this flag in the train editor, as additional information in the "Composition" item. By hovering the mouse over this new text a debug report with all the flags involved in the push-pull decision is also displayed.
- Fix: queue_train_drive_to() called for trains in a timed stop should not try to start a drive, it should just store the new_destination component. Additionally when finishing a timed stop, check if a new_destination component already exists in Motion, and do not create a new one for the next line destination (but still advance the run_dispatch state).
- Fix: in some cases, do not extend lifetimes when the result of an expression has value storage, fixing some too strict compiler errors in statements like m = m + k.
- Fix: display "description" for Vec struct fields as a tooltip on the title header
- Fix: train lateness information in the ended_drive component was being cleared in some cases
- Fix: train lateness accounting was off by a factor of 10x due to some extra zero
- Fix: just dispatched trains had a lingering, useless dispatch_cooldown component
View on Steam
- Fix: queue_train_drive_to() was fully resetting the Motion::drive component and zeroing the stored waiting signal ID. If the train was positioned exactly at or an infinitesimal distance distance ahead of the signal (which is legal) it caused the train to skip the signal wait.
- Fix: dead end point mode tracks set as parallel of a point mode track did a poor job of matching the tangent of the parent track
- Fix: push-pull capability was cached in the Motion Dynamics instance, but it could become stale after certain editing operations. Now this flag is never cached and it is instead always calculated on demand. It is now also possible to check this flag in the train editor, as additional information in the "Composition" item. By hovering the mouse over this new text a debug report with all the flags involved in the push-pull decision is also displayed.
- Fix: queue_train_drive_to() called for trains in a timed stop should not try to start a drive, it should just store the new_destination component. Additionally when finishing a timed stop, check if a new_destination component already exists in Motion, and do not create a new one for the next line destination (but still advance the run_dispatch state).
- Fix: in some cases, do not extend lifetimes when the result of an expression has value storage, fixing some too strict compiler errors in statements like m = m + k.
- Fix: display "description" for Vec struct fields as a tooltip on the title header
- Fix: train lateness information in the ended_drive component was being cleared in some cases
- Fix: train lateness accounting was off by a factor of 10x due to some extra zero
- Fix: just dispatched trains had a lingering, useless dispatch_cooldown component
- Fix: script operator precedence for "!" and unary "-" was incorrect. You might need to review your code if you used these operators without parentheses.
- Fix: crash when loading saves with potentially invalid demand curves
- Fix: show again reservations on the map but only if the map reservation mode is enabled
View on Steam
- Fix: crash when loading saves with potentially invalid demand curves
- Fix: show again reservations on the map but only if the map reservation mode is enabled
- Remove debug display of train reservations on the map
- Fix: shared simulation multiplayer did not properly sync train motion state
- Fix: wrong auto scroll listing position in some cases
- Fix: more instances of possible crashes while pausing the game, disabling train mods, and then editing trains which were using these mods
- Fix: rare crash while rebuilding timetables
View on Steam
- Fix: shared simulation multiplayer did not properly sync train motion state
- Fix: wrong auto scroll listing position in some cases
- Fix: more instances of possible crashes while pausing the game, disabling train mods, and then editing trains which were using these mods
- Fix: rare crash while rebuilding timetables
- Fix: saved file validator was too strict flagging as corrupted some files with salvageable but invalid buildings or signals
View on Steam
- Fix: hang in train simulator when combining stop selection signals, platforms in series with the first platform being occupied, switches in the middle of platforms and trains too long for the stop area and being forced to stop over the switch
- Fix: crash while visualizing pax path routes on the map and at the same time deleting tracks or stations involved in said routes
- Fix: attempting work around for crash in the train info window accounting tab, which cannot be reproduced reliably
- Fix: station editor stop signal pick mode should not display signal buttons if signals are not visible
- Fix: some trains stopped at signals had incorrect signal stop time stats
View on Steam
- Fix: crash while visualizing pax path routes on the map and at the same time deleting tracks or stations involved in said routes
- Fix: attempting work around for crash in the train info window accounting tab, which cannot be reproduced reliably
- Fix: station editor stop signal pick mode should not display signal buttons if signals are not visible
- Fix: some trains stopped at signals had incorrect signal stop time stats
- New keybind (unassigned by default) to promote the current track selection to a new station. Combine with Shift to instead assign the tracks as platforms of the nearest station. Combine with Alt to instead demote platforms into normal track.
- Fix: pasting stations in the clipboard with Ctrl-Shift-V sometimes did not properly register as a new station and the station nameplate did not show up (cosmetic issue)
- Fix: straight guide disappears on zoom in when track node is offscreen
- Fix: changing building type of selected building must reset its decal
View on Steam
- Fix: pasting stations in the clipboard with Ctrl-Shift-V sometimes did not properly register as a new station and the station nameplate did not show up (cosmetic issue)
- Fix: straight guide disappears on zoom in when track node is offscreen
- Fix: changing building type of selected building must reset its decal
- Object drop downs in "Flat" mode like those used for trains, lines or schedules will now refuse to display the listing if there are more than 1000 items. This *only* affects drop downs and *only* for the "Flat" mode. Every other listing or mode is still able to display 1000 items or more.
- Fix major performance regression in saves with many thousands of trains while having the line editor basics or the shift basics panel open (this fix is related to the previous change)
- Fix rare crash on enabling/disabling plots
- Fix multiplayer hang and potential crash when creating orders with lines with no reference train
View on Steam
- Fix major performance regression in saves with many thousands of trains while having the line editor basics or the shift basics panel open (this fix is related to the previous change)
- Fix rare crash on enabling/disabling plots
- Fix multiplayer hang and potential crash when creating orders with lines with no reference train
- Fix: syncing line and schedule edits in multiplayer did not properly refresh shift runs in some cases
View on Steam
- Fix multiplayer crash while deleting orders until an order list is empty
- Fix crash after interacting with the file picker to import/export demand curves to files
View on Steam
- Fix crash after interacting with the file picker to import/export demand curves to files
- Speedup track editing in situations involving many parallel and branched tracks
- Fix: branch-track-branch constructions should not create and invalid inner track. The resulting inner node now behaves like a point mode track but can be parented to tangent mode tracks
- Fix: some complex track builds involving many parallel tracks and branches were not loading properly
- Fix: branch tips should not be eligible as parallel parent nodes
View on Steam
- Fix: branch-track-branch constructions should not create and invalid inner track. The resulting inner node now behaves like a point mode track but can be parented to tangent mode tracks
- Fix: some complex track builds involving many parallel tracks and branches were not loading properly
- Fix: branch tips should not be eligible as parallel parent nodes
- Fix: possible crash when splitting platform tracks
- Fix: when clicking built one node stations the track editor opened instead of the station window
- Fix: built one node stations had 0 capacity, with various negative consequences
View on Steam
- Fix: when clicking built one node stations the track editor opened instead of the station window
- Fix: built one node stations had 0 capacity, with various negative consequences
Current Release
Build 24696017
Uploaded Sep 29, 2026
System Requirements
OS
Windows 10 64bit
CPU
Dual core, 2 Ghz+
RAM
8 GB RAM
GPU
Intel HD 5000
How to Install
1
Download all files
2
Extract the .ZIP file to a folder (use WinRAR or 7-Zip)
3
Run NIMBYRails.exe to play
Troubleshooting tips
• Run Redist/_CommonRedist installers if game won't start
• Add folder to Windows Defender exclusions
• Run as administrator
Download
Direct link available
Archive password
Needed when extracting (WinRAR / 7-Zip) — not a site login.
You May Also Like
View AllDownload NIMBY Rails for PC with a direct link or via torrent. Get the full version of NIMBY Rails for free. NIMBY Rails is a Simulation released by Weird and Wry.