Ahoy, everyone, and welcome to our first diary post of 2025. I’m Captain Marek, and I am here to share the latest updates on our upcoming train feature. This time, we’re diving into the nuts and bolts (or should I say the wagons and modules) of train stations, loading/unloading, and train refueling. Just like our last post on train routing and signaling, this one is packed with innovation, so grab your conductor’s hat, and let’s get rolling!
Modular train stations
The first thing you need to know about train stations in Captain of Industry is that they are modular. Each module matches the size of a single train wagon – 5 tiles long – and can be configured to either load or unload. Why 5 tiles? This size was carefully chosen to match the reality of train sizes and to seamlessly integrate with existing COI infrastructure, such as storage units and cargo dock loading modules, which also share this 5-tile width. Placing multiple modules side by side works as intended, allowing your station to handle multiple wagons simultaneously.
There are three types of station modules, each designed to handle one of the three main cargo types: unit products, loose materials, and fluids. Naturally, there are also three corresponding wagon types. If you’re planning to run a train with mixed cargo, you’ll need to match the cargo types to the correct wagons – but don’t worry, it’s not as tricky as it sounds (more on that later). We’re also considering introducing a universal wagon type. Like trucks, these wagons could carry any cargo with slightly reduced capacity compared to fixed-cargo wagons. This option may appeal to players who prefer simplicity over specialization, allowing them to skip wagon-type management entirely. Plus, it opens the door to trains carrying different cargo on each leg of their journey, making for a more flexible and efficient train network.
Initially, we thought standalone station modules would be sufficient, but during internal testing, we discovered that grouping multiple modules into a single logical station made reasoning about stations easier. To formalize this concept, we introduced a dedicated building called the Station Office. This small addition makes station grouping implicit, and the office itself can be used for station configuration. It also opens up new possibilities, like creating stations without modules to function as waypoints, adding even more flexibility to your rail network.
Batch loading and unloading
Modular stations come with a nice innovative and realistic feature: batch loading and unloading! This mechanic allows trains to be fully loaded or unloaded even when the station has fewer modules than the train has wagons. Instead of requiring an enormous station to match the train’s length, the train moves incrementally, aligning a few wagons at a time with the available modules for loading or unloading. It’s efficient, flexible, and a game-changer for rail logistics!
In our previous post #45, we explained how signal-free routing allows for longer trains by eliminating the risk of stuck trains at intersections. Batch loading complements this beautifully, making long trains even more practical. With this mechanic, station size is no longer a limiting factor for train length! You could load a train with 100 wagons using just a single loading module. And if you need more throughput, simply expand the station by adding more modules – no need to reconfigure trains or schedules.
Now, you might be wondering: How does batch loading work with mixed wagon types? What if a train has different types of wagons that need to align with specific modules, but the wagons aren’t in the right order? Don’t worry, we’ve got it covered! The system ensures that wagons requiring service will be correctly aligned with the appropriate modules, while taking into account efficiency to allow loading of as many wagons as possible at the same time. While certain complex wagon arrangements may not work perfectly yet, we’re dedicated to improving the system with your help and feedback.
And as a cherry on top, terminus stations are supported too! If you want to use batch loading at your terminus station, you’ll just need to ensure there’s enough track beyond the station to accommodate the movement required to load the entire train. The good news? This extra track doesn’t need to be straight – it can be curved or even sloped, giving you plenty of flexibility in your station design.
Station groups and departure rules
So far, we’ve shown examples of train stations with just one track, but there’s much more you can do! Multiple stations can be grouped together in a train schedule, allowing trains to pick a station from the group based on three rules.
1. Closest reachable station
Trains will prioritize the closest station they can reach. This works well for busy multi-platform stations where arriving trains can choose an empty track from multiple choices. If a train detects that it can’t reach the initially chosen station because it’s occupied, it will automatically replan its route to another available station in the group.
2. Departure based on station module fill level
A train can be set to leave for a station only if certain conditions are met – such as when all (or any) of its modules are full or empty. This rule is particularly useful when a train delivers products to multiple stations, but the stations consume the product slowly. For example, by requiring a station's modules to be completely empty before a train departs towards that station, you ensure the train will be able to fully unload at the destination station and be ready for its next delivery. Without this rule, trains might either get stuck waiting to fully unload or only partially unload, leading to inefficient trips.
3. Train limit per station
You can set a limit on the number of trains allowed to approach a station at the same time, separately for each station within the group. By default, there’s no limit, but if you set one, trains will only head to a station if the number of approaching trains is below the set limit. Trains will also prefer stations with fewer approaching trains within the group. If all stations in the group are at their limit, trains will wait before departing. This limit applies globally to all trains and it can be also used to prevent traffic jams if the station is not built to accommodate too many waiting trains.
By combining these three rules, you can create a highly efficient and fully automated train delivery network.
Train refueling
We plan to include two types of locomotives for now: steam and diesel. Trains will be refueled at stations equipped with the corresponding fueling modules. Initially, we considered requiring locomotives to align with fueling modules, similar to how wagons align for loading. However, this added unnecessary complexity, so we dropped that idea (at least for now). At this point, locomotives automatically refuel from any available fuel modules within the station.
Thanks to this modular design, you can create dedicated refueling stations in strategic locations on the map, typically near fuel production sites. This approach eliminates the need to transport fuel to every station, making your train network more efficient and easier to manage.
Train construction
Trains are built in train depots, which function similarly to vehicle depots in many ways. However, unlike vehicle depots, designing a train requires selecting the order of locomotives and wagons, which directly impacts the train's final cost.
Each train depot has a limited internal capacity, which also determines the maximum length of trains it can construct. Adding extension modules to the depot can increase this capacity and length limit. Initially, trains were restricted to a length no greater than the depot itself, but we’ve since relaxed this rule, allowing for the construction of longer trains.
New UI
We are currently also developing a new UI for the game. Moving away from the old Unity UI system will unlock more advanced UI components, allow for better polish, and improve performance. A better layout system should also improve our iteration speed. As we undergo this revamp, we are working to improve components as we migrate them. We plan to share more details about this revamp in an upcoming post, but we've included a few examples here as well.
We extracted some of the information into floating panels that appear on hover (example below shows the maintenance). This allowed us to declutter the main windows but also to provide you with more information when you need them.
The UI of all machines was also overhauled. In addition to the visual improvements, you will be able to drag to reorder recipes. We also changed it so that recipes are selected through a separate picker as the number of recipes available keeps growing. This greatly reduces the visual clutter in the inspector window.
Here's another instance of a floater offering additional details regarding a machine’s output buffer.
Update on Update 3
We know many of you were looking forward to Update 3 by the end of March, and we truly appreciate your excitement. After careful consideration, we’ve decided to make this update even better. While we’re making significant progress, we couldn’t pass up the opportunity to include a few more high-impact features that we believe will make the game so much better.
Speaking of features, we’ve seen your questions about whether Update 3 will bring more than “just” trains, and the answer is a resounding yes! Alongside trains and the UI overhaul, we’re also working on brand-new chains and mechanics, particularly for the mid-to-late game. These additions will give you even more reasons to grow and scale your factory. We can’t wait to share the details as these features come together in the coming months.
With these exciting additions, we’re expecting a small delay, about an extra month or two, to ensure everything is polished and ready. We truly appreciate your patience and support as we put the finishing touches on what’s shaping up to be the biggest COI update to date. Thank you for being part of this journey with us!
Captain Marek, over.
Psst, we are also adding a second tier of ore sorter in the Update 3, and it’s a big one!