- Version 1.19.10 - 18 August 2026
- 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.
- Version 1.19 - 9 August 2026
Updated default mapThe default, bundled OpenStreetMap data has been updated to a newer planet database. It also includes a huge amount of data that was removed in previous versions. Building footprints are now visible at the highest zoom if they are mapped in OpenStreetMap. It also includes nearly all POIs defined in OpenStreetMap as map labels in the highest zoom. Due to the newer version of the data, and these new, additional data layers, the bundled map size is now a bit over twice the size of the previous version, requiring 55GB of storage. The format used for OpenStreetMap tile data is now based on industry standards rather than a proprietary undocumented format. This means that motivated players can produce their own maps using open source tools and replace the bundled vector map data with them if desired.To comply with the way the OpenStreetMap ecosystem handles vector tile proce…
- Devblog for May 2026 - 29 May 2026
Raster layers are now implemented in the new 1.19 map renderer. They use the same raster data as the current version, but adapted to the new coordinate system, which required a lot more work than anticipated.All the work cleaning up coordinate handling paid off in the end, with some major new features enabled by it. For example in 1.19 it will be possible to rotate the map. The map system is now capable of supporting any number of map data sources, both raster and vector. Players can create new map sources, reorder them and apply basic color filters from the UI, even to sub-layers for vector maps.And finally an HTTP map source adaptor was implemented. This data source allows to use HTTP tile servers using the same standards used in web maps. You can for example find a source of satellite tiles and use it in the game.Check the devblog for all the details:https://carloscarrasco.com/nimby-…
- Devblog for March 2026 - 1 April 2026
Version 1.19 is shaping up to be one of the largest, most significant updates to the game. It will bring a long overdue redesigned train motion physics simulation with the aim of once for all fix all the inconsistent timing situations in the context of schedules and line legs.Linux will become a supported OS! It will receive the same level of support as Windows, with simultaneous builds provided for both OS.And finally but most importantly, 1.19 will update the game map, but it won't be a mere refresh of OpenStreetMap data. The lower level of the map system is being replaced with industry standard tools and formats, so it will become possible to replace the game map by motivated modders and players if desired.Read more in https://carloscarrasco.com/nimby-rails-march-2026/
- Version 1.18.30 - 21 February 2026
- 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. B…
- Version 1.18.27 - 12 February 2026
- 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
- Version 1.18.26 - 11 February 2026
- 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
- Version 1.18 - 9 February 2026
Version 1.18 is finally released. This version has been a long time under development, also with a very long beta period, due to the complexity of its main feature, NimbyScript. Until 1.17 game mods have been limited to changing textures and adding new static rules (in the form of new trains, tracks, etc), with no new mechanics possible. NimbyScript adds programmability to game mods, allowing them to add new mechanics to the simulation.Some signal and script mods are already available in the Workshop, and more will appear in the future. I want to thank all mod developers (scripting or not) for their hard work in providing mods for my game. NimbyScript, its API and signal mods have been designed with their feedback over the past few months. Signal texture mods Mods can now offer new textures (or collections of textures) for signals. In 1.18 the visuals of signals have been completely mad…
- Devblog for September 2025 - 1 October 2025
Signal scripting is finally in a finished enough state to create new signals! During September a lot of decisions to adjust NimbyScript for general usability were made, and the first 3 examples of real new signaling features were implemented: custom path reservation boundaries, custom signal checks, and the holy grail, path changing signals with no restrictions, fully independent of lines and schedules. Read and see more in the devblog:https://carloscarrasco.com/nimby-rails-september-2025/
- Version 1.17.11 - 5 August 2025
- Fix: saved file validator was too strict flagging as corrupted some files with salvageable but invalid buildings or signals
- Version 1.17 - 31 July 2025
Version 1.17 has been releasedGameplay wise this is a very small version. It is intended as a public test of the future scripting system, NimbyScript, with the top level logic of path signals and balises now being implemented in NimbyScript rather than the native C++ code. This test was successful in the beta branch and it is now being deployed for all players. NimbyScript will be used for custom signal logic and other functionality in future versions.But to make this version a little more exciting it includes a couple extra features.Dynamic brakingTrains are now capable for braking for some dynamic simulation obstacles: (potentially) red signals and other train tails.When a train is approaching a signal, and it is within braking distance, it will start checking it in advance, and will start braking if it would become a stop signal at that moment in time. To remain compatible with exist…
- Version 1.17 is now in the beta branch - 10 July 2025
Version 1.17 is now ready for testing the beta branch!Gameplay wise this is a very small version. It is intended as a public test of the future scripting system, NimbyScript, with the top level logic of path signals and balises now being implemented in NimbyScript rather than the native C++ code. If this test is successful, by not introducing instability or performance issues, then future versions of the game will make it possible for players to use NimbyScript for custom signal logic and other functionality. For for now, in 1.17, NimbyScript is read only and the new Control editor is very bare bones.To make this version a little more exciting it includes a couple extra features, and a few more will be implemented during the beta period.Recolorable UIIt is now possible to change the colors of the UI:To access the new settings for this feature, go to Options and select Interface.Alert li…
- Devblog for June 2025 - 30 June 2025
Development in June was focused again on NimbyScript. The language has progressed to the point of being usable, but it's still lacking some basic features. One of these features, memory ownership (think lists, allocating memory, etc) is a very complex subject and it is for now being postponed. 1.17 will feature NimbyScript, but it will be as a non-editable preview, since it's still too immature and any code written in its current state would be invalidated in the future. But not everything will be a technical test. Two often requested features will also be implemented: recolorable UI and an alert log. Read more in the full devblog: https://carloscarrasco.com/nimby-rails-june-2025/
- Devblog for May 2025 - 1 June 2025
The past two months have been almost solely focused on developing NimbyScript, the future scripting language for NIMBY Rails. It has been quite hard to get started, with some very lofty goals to achieve, and a lot of reading and experimentation was needed. Read on for the programming nerd adventures in NimbyScript. WARNING: this is an extremely technical post of little to no interest to most players. NimbyScript is nowehere near finished. Once NimbyScript is ready for being introduced in the game it will get a proper guide. This post is NOT the guide for NimbyScript. https://carloscarrasco.com/nimby-rails-may-2025/
- Version 1.16.16 - 9 April 2025
- 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
- Version 1.16 - 2 April 2025
Version 1.16 has been released! This version is a direct continuation of 1.14, with new, optional features in the schedule system for advanced players. And for everybody, this release also marks the first time NIMBY Rails has a proper collision system, so you must now pay attention to train physical size and footprint when designing your track layouts. Unassigned trains The schedule system now has the capability of setting trains to become unassigned at the end of an order. This means the train stays in the tracks, stopped, but has no orders and no schedule. Unassigned trains a have new capability: they can become assigned to any shift, as long as a set of rules apply: The shift must be currently unassigned The train must be enabled to run the shift The current sim time-of-week must match the stopping time (be between arrival and departure times) of a stop in a run in the shift The curr…
- Version 1.16 is now in the beta branch - 7 March 2025
Version 1.16 is now ready for testing in the beta branch! This version is a direct continuation of 1.14, with new, optional features in the schedule system for advanced players. And for everybody, this release also marks the first time NIMBY Rails has a proper collision system, so you must now pay attention to train physical size and footprint when designing your track layouts. Unassigned trains The schedule system now has the capability of setting trains to become unassigned at the end of an order. This means the train stays in the tracks, stopped, but has no orders and no schedule. What is the use of this seemingly useless feature? Unassigned trains a have huge, new capability: they can become assigned to any shift, as long as a set of (strict) rules apply. Basically, if an unassigned train is located on the right platform at the right time, it can become assigned to any shift schedul…
- Devblog for February 2025 - 2 March 2025
Work in 1.16 has continued in the month of February. Stacked train stops (sequences of stops for the same platform(s)) were not fully compatible with the new train logic in 1.16 and have been reviewed with a new, clearer set of rules which avoids some pitfalls. Train collision has been finally overhauled with a new system that performs real geometric intersection tests. And a new, very major technical capability for the game is introduced at the end of the post, but its release will have to wait for a future version. Read about it in the dev blog post: https://carloscarrasco.com/nimby-rails-february-2025/
- Devblog for January 2025 - 30 January 2025
The first devblog of the year is up, and it reveals the focus of v1.16: dynamic schedules. Or, in 1.16 terms, dynamic train dispatching. Trains can now be enabled in multiple shifts, and shifts can contain timetable "holes" which allow the trains to hop into a different shift, following a set of rules. These new systems are all optional and build up from the existing schedule system, so you can use them as little or as much as you want, including not using them at all. This is still a work in progress, but the basics of the system are already implemented. To take a look and for a more detailed explanation see the full blog post: https://carloscarrasco.com/nimby-rails-january-2025/
- Version 1.15.17 - 27 January 2025
- 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