
Steam news
Full Steam announcements and update articles for this title.
Hello, Railroaders! It's been a busy month for us here on the Railroader Dev Team. We've got three things to share with you today.
First, it's Train Fest here on Steam, which means it's a great time to pick up Railroader for 25% off!
Second, we'll have a booth at the National Train Show in Chattanooga, TN, USA, August 1st and 2nd. If you're in the area, come by and say hello! Also: I'll be presenting Railroader in Meeting Room 6 at 4pm, Saturday. (From what we understand this is included in the train show admission.)
And third, we've made some incredible progress on the forthcoming update in the past few weeks. It's been a very exciting time for the dev team to see all of this work coming together. There's still a lot to share there, but in this post I want to focus on one aspect of it: Map Modding.
One of the biggest requested features for Railroader has been map modding. Like official modding support in general — which is a focus of this update — we've wanted to add map modding, but we knew that it would be a really big lift for our small team. Railroader's map wasn't built for modding, and part of the reason is that I didn't want to try to design a modding system for something that wasn't fully defined yet. Now that the Maintenance of Way features have matured in development, we feel more confident that we know what a map modding system needs to support.
Still: there's a lot going on in the Railroader map! There's track, industries, signals, scenery, animated scenery, roads, water, trees and vegetation. We could make it possible to mod these things through a file format like JSON, but without an editor we don't see that as an acceptable solution. The most responsible approach seemed to be to not commit to building map modding. Maybe in a few years, we thought.
In the year plus that the MoW Update has been in development, there's been a lot of change in the modding community, and at the same time internally we've been putting a lot of work into the official modding infrastructure. The former created pressure to find a solution, while the latter gave us more confidence to approach the problem. The Railroader community has attracted some very talented modders, and both they and the players who use their mods have told us the same thing: they need stability.
So we knew that we needed to build map modding, but we also knew that we didn't have the resources to build the complete solution right away. It would need to be incremental. Perhaps, if we could release a map editor with the basics and add to it in follow-up updates, that would be of value to the community. The feedback we received was very positive. We took on the challenge and we're glad we did. We think you will be, too.
We're approaching map modding and the map editor by creating the core elements first. Map tile data and map object data have been moved to asset packs (our mod packaging system). The map editor is a part of the game itself. Although a dedicated editor can be nice, in our testing we've found that seeing the game world exactly as it appears in the game itself is extremely helpful, particularly when laying trackwork.
Our plan is for the map editor and modding system to support the following with the MoW Update:
In-editor terrain fetching
Track, industries, and scenery objects (buildings, etc.)
Masks: shapes which are used to change the heightmap or vegetation in an area
The editor runs in single player only, but modded maps can be played multiplayer as long as the other players have the mod installed
The following are not planned for the initial release, but we do plan to add support for them in the future:
Progressions/milestones
Signs
Signals & CTC
Roads & rivers
Crossing signals and crossing pads
One of the parts of this system that I'm most excited about is that it allows you to create map mods of other map mods. For example, you can add industries and track to another map, remove track, or reuse the tiles from another map but nothing else.
We've ported the base game's terrain, track, and industries to this new system, but much of the scenery (signs, crossings, rivers, roads) has not been ported. What this means is that you can create a mod based on the base game terrain, track and industries; it just wouldn't contain those unported scenery objects. We plan to move more of the base map into the new system over time, however.
We're planning to release 2026.1, including Maintenance of Way, Map Modding, Equipment Modding, and more, on an experimental branch within the next couple of months, once we are confident that it is ready. A lot has changed since 2025.1, and a little more testing now will help us better support all of you once it is publicly available.
As always, we appreciate your support. Railroader has come a long way and — not unlike the game itself — we've still got a boiler full of steam!
- Adam and the Railroader Dev Team
157 years ago, the driving of the golden spike marked the meeting of the Central Pacific and Union Pacific Railroads at Promontory Summit – the first transcontinental railroad in the United States.
We're celebrating that remarkable accomplishment today with two things: our biggest sale on Railroader to date (25%!), and a video overview of the MOW mechanics in our forthcoming update.
It took about six years to complete the transcontinental railroad, and while the MOW update hasn't been in progress for six years, it sure feels like a long time. To us as well as you! It is critically important to us that we get this next update right, in particular its modding features, and that is taking time. As always, we thank you for your patience and support!
A quick aside: we focus on various performance aspects with every update, but this update has seen significant work in that area. This video was fully recorded on a laptop GPU, which we think gives you a nice idea of how the MOW Update of Railroader might look on your system – and not a high-end gaming rig.
A big thank you to Sam, the newest member of the Railroader team, for creating this video. Without further ado, here's the video. More to come!
Hello Railroaders!
We wanted to give you an update on where things stand with the MoW Update. The beginning of this year has been particularly productive, and while we are happy with the state of the game, there is still more to do before it is ready for an experimental release. In this post we’ll give you a clear view of where we are and what’s left to do. Thank you for your patience – we know that it has been a long wait!
Here’s some of what we’re currently working on:
Testing and refining Maintenance of Way
New wages system for Auto Engineer crews and MoW work crews
Redesigned save system that groups saves by railroad — no more autosaves cluttering up your Load Game screen!
A new car styles system, including making it possible to define multiple colors for cars that are designed for it. Previously, when a car arrived at interchange it would have an independently selected random color and reporting mark. Now, the color will be informed by the reporting mark. Modders will be able to define these styles, too.
Updating some of our older building models, and adding a few new ones.
Adding an on-line ballast and concrete source/customer as an additional source for your MoW material needs.
Modding documentation. In parallel with MoW, modding of rolling stock has been a big focus. We’ve been working on documentation of the Definition and Components system that is the foundation of rolling stock in the game, as well as for Relay, our embedded scripting language.
Railroader Asset Development Kit: A Unity project to help with building asset packs.
Here’s what we haven’t started yet but plan to finish before we release an experimental build:
Add an on-line industry providing railroad ties
Improve visibility into the state of MoW related aspects like material requirements, materials on hand, and materials on order
Get sound for the crossing bell
A video to introduce the concepts behind MoW
This will be a big release for us. It includes a number of foundational changes, which we see as important for the future of Railroader, but there are also numerous new things that we think really enrich the game. (The release notes have 60+ items.) The foundational work has taken time to get right and while there is a lot more we want to do, we need to draw the line somewhere.
That’s a quick look at what we’ve been up to. Thank you for your support. This release cycle has been a challenging one but we're happy to be able to share that we can see a clear path to that experimental release!
Hello Railroaders!
Can you believe it’s been almost two years since Railroader was released in Early Access? Some of you have been with us since before it was called Railroader! Many of you have joined us along the way, and some of you have only just become familiar with the game. Whether you’re an old head or a greenhorn, we want to sincerely thank you for your support. We’ve been fortunate to hear from many of you over the last couple years how much Railroader has meant to you. Our small dev team feels a lot of responsibility as stewards of the game.
In our last development update we covered some of the features we’ve been working on to support the Maintenance of Way (MoW) update, including enhanced car loads, expanded industry at Hewitt, and the interchange at Almond.
What have we been up to since then, you ask? We’ve been thinking a lot about modding!
Modding has been a remarkable, unofficial part of Railroader since not long after it was released. We’ve been amazed at what modders have created, and continue to create for the game. While official modding support is on our roadmap, it’s something we have thought of as one of the last big features before Railroader leaves Early Access, simply because we don’t want to break mods, and we don’t want modding support to prevent us from making necessary changes to the base game. In working on the car loads feature, however, it became clear that to build it right we would need to build toward official modding support.
Before we get into details, it’s important to acknowledge that modding is very broad topic. Mods run the gamut: they change parts of cars, introduce new cars and engines, add or change track or industries, scenery, augment the UI. Some even aim to create whole new maps.
As much as we want to provide support and tooling for all of these facets of modding, the reality is that that’s not possible at this point with our limited resources. Map modding in particular is one that we’d love to support but due to the richness of the game and complex features like signals/CTC, map progression, etc., let alone the editing UI, it’s not practical to support map modding without some pretty significant limitations, which we don’t see as a great solution.
Our plan for this update in terms of modding support is that it will focus on two areas of modding, but we plan to continue to consider how we can expand our support for modding in the future.
Railroader has unofficially supported adding new equipment to the game through asset packs since day one – it’s part of our internal development workflow – but there have been some critical aspects missing, namely dependency management and support for encoding mods in save games and handling them in multiplayer.
To improve this, we have been working on revamping asset packs with the following: (technical details incoming!)
Asset packs now have strong identifiers in the format: domain/identifier. All built-in asset packs use the domain rr.
Asset packs now have versions.
Asset packs can define versioned dependencies and will be loaded in dependency order.
Definitions (equipment, scenery, etc.) in a pack must have unique identifiers within the domain. If the game defines rr/ls-280-c46 (the C-46 Consolidation), you could define your-name/ls-280-c46. This simplifies creating variants of existing equipment and helps avoid conflicts.
Asset packs with a matching name no longer override other
Including mod information in save games.
This is a big one: Railroader now has its own scripting language! It’s called Relay.
Relay scripts can be used to:
Manipulate definition data during the loading process, similar to Factorio’s modding system. For example, a Data.rl script in an asset pack can change values on any equipment in the game, add or remove components, or create whole new variants of existing equipment. All without having to duplicate the asset files.
Add scripts to control components on equipment in response to property changes. Example: show or hide a ‘stakes’ model on a flat car based on whether it is appropriate for the car’s current load.
Extend the UI: add controls to existing windows, create new windows, or create console slash commands. Main.rl scripts are used for this.
Some of you are probably wondering: why create our own language? In short, creating our own language enables us to better control the performance impact of the in-game scripting system, offer a modern syntax, and maintain a safe, sandboxed scripting environment.
We think these two areas of modding support offer some pretty exciting possibilities.
Here are a few examples of Relay in action. Remember that this is still in development – we welcome your feedback!
You could create a mod to change the prices of cars, or adjust their capacity using a Data.rl file:
func onDefine(data) {
// Change the price on the lightweight steel passenger car:
data.modify("rr/pb-osgbrad-lightweight-steel-1915", (obj) => {
obj\\ = 900
})
// Create a "high capacity" variant:
data.modifyAs("rr/pb-osgbrad-lightweight-steel-1915",
"imtzo/pb-osgbrad-lightweight-steel-1915-highcap",
(obj) => {
var metadata = obj\
var definition = obj\
metadata\ = "High Capacity Steel Coach"
var slot0 = definition\\
slot0\ += 20
definition\ += 2000
})
}
You could create a model with customizable parts. Suppose I had created a new engine with a toggle-able superheater detail model.
In a script component on the engine:
var observer = null
func onModelLoad(car) {
var superheater = car.components\
// Observe the property and update component enabled states:
observer = car.properties.observe("showSuperheater", true, (value) => {
superheater.enabled = value
})
}
func onModelUnload(car) {
observer?.dispose()
observer = null
}
And in Main.rl in the asset pack:
from railroader import ui
func onModLoad(ctx) {
// Add a toggle to the customize UI:
ui.extend("carInspector.equipment.customize")
.matching({"identifier": "imtzo/my-engine"})
.with((builder) => {
builder.fieldToggle("Superheater",
() => { return car.properties\ },
(value) => { car.properties\ = value }
})
}
These are only a couple examples. Relay can also be used to create windows and add slash-commands to the console. A calculator summoned with /calc?
Perhaps you can see why this has taken some time to build. We’re very excited to see what you build with it, and see it as being useful not only for modders, but also some of the more advanced railroads – you know who you are – who can use some basic scripting to help automate parts of your railroad!
We’re still hard at work on this, although we hope to get to a point where we can release an experimental branch soon. While this experimental might be a little rough around the edges, we think it is important to get this work out there and get feedback to shape it before it is released on the main branch.
Of course this release has a load of other enhancements, but those will need to wait for another post. Until then, thank you as always for your patience and support!
Previous update posts for this update cycle:
Railroader has coupled up to Rail Route, the railroad design and dispatching strategy game, for a railroading bundle!
Take command behind the signal board in Rail Route, where you’ll design, expand, and automate your own rail network - then jump into the cab in Railroader to haul freight, run passenger services, and feel the power of classic American locomotives in the golden age of rail.
https://store.steampowered.com/bundle/60052/Running_the_Railroad/Move trains across the grade with this incredible double-header today!
Hello Railroaders!
Progress continues on our Maintenance of Way (MoW) update! In our last update we shared a number of items, including that we are reworking track construction milestones to work with the MoW system: MoW trains will build the track and need to be supplied with ties, track, and ballast. Lots and lots of ballast.
Today we'll look at what we've been up to as we continue to work toward releasing MoW on an experimental branch!
Load models are an area that we've been needing to improve upon, and MoW has helped bring that to the forefront during our testing. One of the challenges with load models has been that our system required each car to be configured for each type of load model, which meant that if we were to add tie models to our gondolas, we'd need to do that for each gondola. New track load model? Update the gondolas. Adding a ties load model? Update the gondolas. This quickly becomes rather tedious, particularly if we need to make changes later, and it's also not modding-friendly in that it requires modifying the cars to add new load models, creating conflicts. We needed a better system.
The solution we've built enables us to define a "load volume" within rolling stock. The load volume describes the available space for the load within that car. Railroader can then find an appropriate load model at runtime and put it in place. This makes it possible to provide varying models for the same loads, without needing to configure each car for each possible load model.
Here are some of the MoW load models:
Not all loads can simply sit in a gondola though. Break bulk loads like dimensional lumber are often sent by flat car, with stakes securing the load. If the load isn't specific to the car, how can we include stakes? After all, the stakes are specific to the car, placed in the pockets along the side.
To address this we've created a way to toggle detail models on cars depending on certain properties of the car, including whether the load model calls for stakes.
There are certainly much simpler ways to build these things that would have been faster to build, but we think they're worth the investment now to make Railroader more flexible in the future.
On the topic of loads – now that we have better volume information, Railroader now takes density into consideration when determining how many pounds of a load are in a car. No more 50T boxcars of dimensional lumber – it isn't desert ironwood!
We've created a new MoW car for your forthcoming maintenance needs. Like all good MoW equipment it's repurposed – this one from a box car. We really like how it turned out.
Gondolas are now purchasable, and a very basic MoW train is part of new Company mode games.
Speaking of new equipment, we're adding an ore car for the Alarka Copper Co. mines!
Perhaps you've noticed above: we've revamped our rolling stock to include more prototypical car data, as well as the reporting mark and number!
In our last post we mentioned what a ridiculous number of cars of ballast it would take to build 13 miles of railroad (1,429, in real life). We heard from a number of you who were very much up for the challenge, so we've added in a setting for construction realism. We're also including a lower realism setting.
We're aiming to find a good location for an on-line ballast producer, or perhaps other MoW loads. This would make for a fun alternative to running all of those cars through the interchange.
On a related note, we've made a key enhancement to how construction works. Previously, the MoW "crew" would use the cars as storage, working from it as they go. Now, they gradually unload the car while construction continues. This frees up your cars more quickly to get them filled back up again.
This has been a challenging update cycle – a lot is changing, and we are still working on significant adjustments. Nevertheless, we are confident that these changes are necessary and important for the future of Railroader.
Thank you for reading! We know that many of you are eager to take the new MoW features for a spin. We're working hard on it and plan to put it up on an experimental branch as soon as it's ready!
Hello Railroaders!
Today we are happy to share our progress on the Maintenance of Way (MoW) update we've been hard at work on. We knew this was going to be a big update, and as we have playtested and iterated on MoW that has certainly proven true. It's also driven us to revisit some aspects of Railroader's milestone progression and the map itself.
We think it's important to note that none of this has happened in a vacuum, so to speak. Since we announced that we were working on MoW we've received tons of great ideas and feedback. Thank you! This is one of those features that makes it challenging to balance wide open vision with what we can make real, and will mesh with the rest of the game.
In our last update on MoW we shared that you'll use ballast, ties, and rail to maintain your tracks. One thing we didn't share at that time was our thinking on how the core MoW mechanic of the work train would be a very cool way to do construction milestones. Instead of spotting a few batches of cars next to the missing track, what if you had to purchase and supply loads to the work train as it made its way down the line? This is the direction we're taking for the MoW update, and we're very excited about the richness and challenge it adds to Railroader.
What loads are needed to rebuild the Ela bridge? Or build from Bryson Bridge to Alarka Junction? We dug into our sources, textbooks and historical records including the Tennessee Valley Authority and Southern Railway's own historical numbers for rebuilding the line to come up with the "at the time" resources. Based on those numbers we estimated the loads to build the 13 miles of railroad between Bryson and Fontana Lake and came up with:
22 cars of rails
139 cars of ties
1,429 cars of ballast
Total load cost: $335,039
Well. As exciting as it was to imagine moving 1,590 cars to and from the interchange, we decided that for the vast majority of players this was not anywhere in the realm of realistic or practical. By scaling those numbers we've arrived at car counts and costs that are both practical and substantial:
10 cars of rails
20 cars of ties
200 cars of ballast
Total load cost: $15,080
(Note that for simplicity I've omitted costs and loads to construct the bridges in these example milestones.)
Keep in mind that we are still very much in the development/playtesting phase and these numbers are almost guaranteed to change before we release the MoW update, but we wanted to give you an idea of what we're thinking about. What do you think? Let us know in the comments.
Rethinking the milestones in terms of construction materials has also caused us to rethink the boundaries of those milestones, and even the reward for accomplishing a milestone, which is generally satisfaction of reaching a goal and access to more customers. We understand that for many players the western end of the map, with its lower customer density and heavy grades, may be too much to tackle. To address this we are making the following adjustments:
Changing the Bryson Bridge to Fontana milestone to run only as far as Alarka Junction, and adding a second milestone from Alarka Junction (past the spur to Robinson Gap) to Almond. The Nantahala milestone will begin after Almond.
Dramatically reworking Nantahala Talc & Limestone at Hewitt to provide more traffic.
Adding an interchange and small freight house at Almond. (This is a big one. We have wanted to do something like this for a long time now.)
Others?
Our goal in making these changes is to provide more options for your railroad, as well as to make expansion more rewarding.
Below: expanded Nantahala Talc & Limestone with placeholder scenery buildings.
We've also been busy with some of the more challenging details of MoW. For example, dynamically displaying signs to reflect speed restrictions due to poor track conditions.
In some circumstances displaying signs that make sense and don't overwhelm the player poses a real challenge!
In addition we are planning on looking at supporting MoW load storage, reevaluating starting equipment, and so forth. Like we said: it's a big feature, but we think the wait will be worth it!
As with previous updates we've been continuing to work on equipment model updates, as well as new scenery structures, including a revamped turntable bridge.
Speaking of the turntable: we have added a control window to allow "remote control", as well as a new overlay interface which allows you to drag the bridge to the desired position, which it will automatically turn to. Hat tip to the Century of Steam team for inspiring us to improve the turntable interaction!
Drag and drop turntable rotation:
Using the window to manually control the turntable, shown at 3X speed:
Although we don't officially support modding, we wanted to provide a heads-up that this update will change the map terrain data format to one that uses the RIFF format and improves terrain data load times. We expect this to simplify creating/manipulating the terrain data in mods, as we know some of you are keen to do. We'll share more details about the format once this update is available on an experimental branch.
That's all we have to share for now. Naturally we've got a number of smaller enhancements and bug fixes queued up, and perhaps a surprise or two. We don't yet know when this update will be available on an experimental branch, but rest assured that we want you to have it as soon as possible.
Thank you for reading and for supporting Railroader!
About
This page aggregates Steam news feeds, patch notes, and developer announcements for Railroader, sourced from official Steam community posts.
Major updates, balance changes, and seasonal events often correlate with player-count spikes — cross-reference announcements here with the live charts on the main Railroader statistics page.
Articles link back to Steam for full changelogs. SteamScope refreshes news entries as new posts are published to the game's Steam hub.