Update 4.1 - Trains networks and Quality of Life
- Apr 16
- 15 min read
Updated: Apr 18
Ahoy everyone, Captain Marek here with an exciting announcement: we’ve just released Update 4.1, bringing fully automated train logistics, along with lots of smaller features and quality-of-life improvements. Here is a short trailer:
Update 4 recap
Before we jump into 4.1, I wanted to briefly recap Update 4 from last month. We’re happy to say Update 4 had a very smooth launch, and we were very pleased to see fewer issues than with any of our previous major releases. This was partly thanks to our Canaries, who tested the build a week before release, but also to the new Sandbox mode, which allows for easier and faster testing.
The DLC was a success in helping fund future development. So much so, we're hiring! Thanks everyone for your support and trust!
Now let’s talk about what’s new in Update 4.1.
Train networks
The highlight of Update 4.1 is the brand new train network system. Until now, each train had a fixed schedule of loading and unloading stations, but this system was hard to scale once there was a large number of transported materials and many loading and unloading locations. The new system automates train dispatching using a job system with reservations, very much like how trucks work now.
A train network is a new schedule type where you define loading stations, unloading stations, and waiting bays. Once a train is assigned to the network, it will search for a matching transportation job. When no jobs are available, it will go to a dedicated waiting station.

Stations within a network behave similarly to storages in truck logistics. When a station signals demand through its arrival rules, the network finds a matching station with supply and dispatches an idle train to fulfill the job. Note that the network only dispatches trains carrying a single product type, so each train delivery handles just one product at a time.
Each station has a per-product slider that indicates demand. For example, the slider on an unloading station defines how much cargo should be actively delivered to that station. When the station has more cargo than the slider demands, it can still passively receive cargo if a matching loading station is actively trying to get rid of it.

When a train is dispatched, it reserves the cargo at the loading station, and it also reserves the available space at the unloading station. This means trains will never make useless trips and are guaranteed to complete the trip without getting stuck at any station.

This all works great, but there is one big problem: train station modules have limited capacity. If one train delivery fills up the unloading station completely, then no more than one train can ever deliver to that station, severely limiting throughput. The solution? Linked storages!
Train stations now support linked storages to expand the storage capacity considered by the train network rules. There are two ways to expand train station storage. The first is by connecting storages directly to the ports of train station modules. This works out of the box. However, it requires placing storage right behind the stations, which may not always be desirable.

The second way of linking storages is by using a dedicated tool. Any storage can be assigned to a train station to extend its functional storage. It is then up to the player to ensure that linked storages are actually connected to the train station modules via conveyors or pipes. If not, the network may dispatch trains that cannot be fully loaded or unloaded, making trains less efficient. Manual linking allows for more flexible train station layouts.

And there is one more piece of the puzzle that makes train networks work seamlessly: automated product balancing within a train station. All modules will automatically balance their contents to allow efficient train loading and unloading. Without this feature, a train might not be able to fully load or unload because the required products are sitting in the wrong modules. For example, a 3-wagon train may be missing 50 products in the last wagon, while those 50 products are sitting in the first module connected to the already full first wagon.
And thanks to auto-balancing, it is no longer necessary to strictly connect all station modules via conveyors or pipes. This makes train station building easier and removes the need to balance manifolds for best utilization. Maybe we should do this for the docks too!

The last neat feature of train networks I want to mention is fuel stations. You can configure dedicated fueling stations so trains will go refuel when needed. This makes centralized fueling very easy, and trains will automatically pick matching fueling stations based on their fuel type. No more need to distribute fuel to every loading and unloading station!
Train line improvements
Train networks are awesome, but good old sequential train schedules are still supported, and they received some serious improvements in 4.1. First, the old “wait until full/empty” system has been completely replaced with a much more flexible and intelligent rule system.
Each product handled by a station now has its own configurable slider, allowing you to fine-tune exactly when trains should be called. For example, a slider on an unloading station specifies how much of a product should be delivered. If there is already more of that product than the slider allows, no new trains will be called. This works a bit differently from train networks, as it is more strict.
This new system also supports an “unlimited” mode, where all trains are allowed, even if they cannot fully unload. This can still be useful with the “wait until fully unloaded” departure rule.

This new arrival rule system also works with reservations and linked storages, similarly to train networks. This makes it possible to ensure that only trains that can fully load or unload are allowed to enter the station.
Both traditional schedules and the new networks can work side by side. Each system has its own configuration tab in the train station inspector, allowing for complete freedom in how you schedule your trains.
Next, there have been some behavior changes. Trains will now ignore stations that have no actionable cargo. A new “do not skip” toggle allows you to override this behavior per station when needed. This is useful, for example, for terminus stations where a train needs to go there in order to turn around and continue on its way. Waypoints are marked as “do not skip” by default.

And finally, two new toggles have been added to train schedules:
1) The “skip if this cannot accept” allows trains to skip stations in the schedule that cannot accept them. For example, this allows trains to skip stations that have reached their full train limit, instead of waiting unnecessarily..
2) The "skip if next can accept" allows trains to skip a station if the next one on the schedule can already accept them. This is useful for waiting/buffer stations placed before an unloader: the train skips the waiting bay when the unloader is free, and stops to wait there otherwise. Note that this is not recursive, only the immediately next station is checked.

We’ve also added an option to only allow trains to enter a station when they can fully load or unload. This prevents trains from arriving too early, before enough cargo is available.

Finally, the “refuel when below” threshold is now configurable for both train lines and train networks.

Migration note: Existing saves are automatically migrated to the new arrival rule system. However, the migration may not catch everything as some cases don’t directly translate, so we recommend giving your stations a quick review to make sure everything behaves as expected.
Billboards
Alright, enough about trains. Let’s talk billboards. By popular request, we have added a larger COI billboard sign, so now you have two sizes to play with.
Additionally, we have included 69 individual signs featuring letters, numbers, and symbols as small billboard signs. These can be built by individually selecting and placing each letter from a toolbar... Just kidding! We’ve added a new text-based tool where you simply type your text, and it generates a blueprint ready for placement. For now, only ASCII characters are supported, but we are exploring ways to support more in the future.
How about colors? We’ve got you covered! All billboards are now colorable with primary and secondary colors, similar to trains. You can color each letter individually, or use the copy-config tool to apply your desired colors en masse.

Drag & build
It’s finally here! You can now build multiple instances of the selected entity by clicking and dragging. By default, dragging snaps to 90-degree lines, but you can also fill a 2D area by holding Shift. Psst: you can even disable the 90-degree snapping and go completely freeform – use at your own risk!

It is also possible to adjust the spacing. By default, placed entities are packed tightly together, but by holding Ctrl and using the mouse wheel, you can adjust the spacing to your needs. This also works for 2D grid placement.

How about blueprints? They are supported too! By default, a bounding box around the entire blueprint is computed, and that determines the repetition spacing. If you want blueprints to overlap due to an irregular bounding box, this option is available in the blueprint menu.

Quality of life
A number of usability improvements are arriving in Update 4.1:
Trains
Added locomotive color options. Locomotives can now be colored independently of wagons, with "same as line", "no override", and "custom" modes (the "apply product icon color" option was removed).
You can add multiple stations/waypoints into groups at once by dragging over an area.
It is now possible to replace empty station modules directly without destroying them first.
Train schedules now show product icons.
Train track direction is shown during placement.
Waypoints now show the train lines panel in their inspector window.
The train lines window can now be pinned.
Paused stations now show a paused icon in the train schedule view.
UI/UX
Added an option for “zoom-to-cursor” zooming mode to camera settings.
Added “zoom sensitivity” slider (50-200%) to camera settings.
Added “key pan speed" slider” (50-200%) to camera settings.
New-item dots on the toolbar are now also cleared when an entity is upgraded, placed via blueprint, or any other means. The dots are also no longer shown in sandbox games started from the main menu.
Added a setting to mute audio when the game window is not focused.
Other
Increased T4 storage throughput to accommodate 4 T4 pipes.
Starting a new transport from an existing transport's end port now copies the transport tier.
Trucks assigned to tree harvesters now follow the assignment chain to refuel at fuel stations assigned to the tower.
Significantly improved train track LOD transitions to minimize visual popping when panning and zooming.
Roads on bridges now properly reduce vehicle maintenance.
Performance
The game should run smoother in 4.1 thanks to various optimizations:
Improved terrain disruption processing speed by 2-3x, resulting in 10-25% simulation speedup on large saves.
Vehicles no longer disrupt terrain under custom surfaces, reducing unnecessary disruption processing.
Fixed severe FPS drops at higher game speeds (above 3x) caused by loose storage particle simulation.
Fixed FPS drops caused by particles on loose storages and train station modules when panning the camera.
Fixed FPS stutter during rain when the game was paused while set at >3x speed and the camera was moving.
Reduced game install size by ~200 MB through asset bundle optimization and shared materials.
Optimized train simulation to be ~50% faster.
Removed CPU overhead from disabled audio sources.
Save recovery tool
One feature that is nearly ready but did not make it into 4.1 is the Save recovery tool.
The save recovery tool will allow you to save an existing game under a special format called Recovery save. This format is less efficient on disk space and does not save every single detail like the regular save would, but it can be loaded in any future game version or without any mods present. In practice, this means recovery saves can help rescue progress from saves that would otherwise become unloadable after major save-breaking updates or mod incompatibilities.
That said, recovery saves are very much a last-resort tool. They are designed to recover your factory layout and a large portion of your game data, including terrain changes, buildings, storage contents, vehicles, trains, train lines, research progress, contracts, and much of the world map state. However, not everything can be restored exactly as it was. Some runtime state is lost, so machines will load idle, vehicles will load without jobs, trains will be placed into depots, ships will load docked, and some in-transit products, such as items inside connectors and lifts, will not be restored. In other words, a recovered save should be seen as a foundation to rebuild from, not as a seamless continuation of your game.
There is one important limitation: a recovery save must be created from a save that can still be loaded. In other words, this feature does not magically restore already incompatible saves on its own. To help with this, we will be backporting recovery save support to the pre-4.1 game version, v0.8.2 accessible via v0-8-2-legacy Steam branch, so players can load older saves there and export them into the new recovery format.
This feature originated from a very rough internal prototype we called “Uber blueprints”, and has since been heavily reworked into a proper tested feature intended for public use. It behaves a bit like a giant blueprint with extra capabilities, such as preserving terrain, storage contents, vehicles, and other important parts of your factory.
We will be releasing this feature soon. If you would be interested in testing it, it will be on the experimental branch soon.
Closing
And that’s Update 4.1 in a nutshell! We’ve decided to do a round of smaller updates before fully focusing on Update 5, so stay tuned for 4.2 in the not-too-distant future. We’re looking forward to seeing how you use these systems in your setups. Captain Marek out!

Full patch notes
New feature: Train station arrival rules
Replaced the old arrival conditions (wait until modules are empty/full) with a new per-product rule system.
Each product handled by a station now has its own arrival rule with a percentage threshold slider.
The system accounts for trains already en route. Incoming cargo is factored in, preventing unnecessary additional trains from being dispatched.
New "require full service" toggle per product ensures a train is only called if the station can fully service it (enough capacity for unloading or enough stock for loading).
Stations can now filter arrivals by fuel type, restricting which locomotives may approach.
Existing saves are automatically migrated to equivalent rules. Migration is best effort, please verify your setups.
Behavior change: Trains with no actionable cargo (e.g. heading to an empty loading station) are no longer allowed entry, reducing wasted journeys.
Behavior change: Trains that cannot interact with any product at a station now automatically skip it instead of occupying it. This can be disabled per station via a "do not skip" toggle, useful for terminal stations where a direction change is required.
Behavior change: A station can no longer load and unload the same product.
New feature: Linked storages
Storage buildings can now be manually linked to a train station using a new assignment tool.
Linked storages are included in the station's capacity calculations for arrival rules.
Storages connected via ports are counted automatically and do not need to be linked manually.
New feature: Train networks
Train networks are a new alternative way to manage trains. Instead of manually creating schedules, you assign trains and stations to a network and it handles dispatching automatically.
Stations in a network behave passively, similar to how storages work with truck logistics.
When a station's arrival rules signal demand (e.g. low stock for unloading, excess stock for loading), the network finds a matching station with supply and dispatches an idle train to fulfill the job.
Each network has three station roles: cargo stations, fuel stations, and waiting bays.
Cargo stations can be assigned a priority to control which stations are serviced first.
Fully interoperable with the new arrival rules, which networks rely on to determine when stations need service.
Network stations now have their own dedicated per-product threshold and priority settings, separate from train line settings.
Other features and improvements
Added "Zoom towards cursor" camera option. When enabled, mouse wheel zoom pivots toward the cursor position instead of the screen center.
Added a setting to mute audio when the game window is not focused.
Added click+drag multi-placement for entities and blueprints.
Click and drag to place entities along a line, or hold Shift to fill a rectangular grid.
Blueprints now support per-blueprint overlap settings for drag placement, allowing irregular shapes to mesh together.
Added small billboards for letters, numbers, and symbols (ASCII).
Added a billboard text placement tool that converts typed text into rows of letter billboards with multiline support.
Added a large COI billboard variant, unlocked via Housing III research.
Added a billboard color system with primary and secondary colors, preset swatches, and full color pickers.
Significantly improved train track LOD transitions to minimize visual popping when panning and zooming.
Station modules handling the same product now automatically balance their inventories to ensure trains can always be fully loaded or unloaded, even across non-adjacent modules.
Added refueling threshold setting for train schedules.
Added locomotive color options. Locomotives can now be colored independently of wagons, with "same as line", "no override", and "custom" modes.
Added conditional station skipping in schedules:
"Skip if this station cannot accept the train".
"Skip if next station can accept the train".
Removed "Apply product icon color" option on train lines as it only applied to fluids.
When the blueprint library is upgraded to the next version, automatic backup is created, preventing blueprint loss when downgrading.
Increased T4 storage throughput to accommodate 4 T4 pipes.
Roads on bridges now properly reduce vehicle maintenance cost.
Train line arrival sliders now have a dedicated step to always allow trains in.
Starting a new transport from an existing transport's end port now copies the transport tier.
Trucks assigned to tree harvesters now follow the assignment chain to refuel at fuel stations assigned to the tower.
Train behavior changes
Train arrivals are now always distributed across stations in a group, even without train limits set.
Trains now align at the station/waypoint entrance when no modules are present, preventing them from occupying the block beyond.
Quality of life
New-item dots on the toolbar are now cleared when an entity is placed in the world.
New-item dots are no longer shown in sandbox games started from the main menu.
Added "Zoom sensitivity" slider (50-200%) to camera settings.
Added "Key pan speed" slider (50-200%) to camera settings.
Multiple stations and waypoints can now be dragged over to add them to a group at once.
Empty station modules can now be replaced with regular ones directly.
The train schedule displays icons of products assigned to station modules.
Train track direction is now shown when dragging ghosts and blueprints.
The train path is now always visible, not only when the overlay is enabled.
Lines to unreachable stations are now drawn directly instead of requiring a button click.
Waypoint stations now show the train lines panel.
The train schedule now shows load/unload direction icons.
The train lines window can now be pinned.
Paused stations now show a paused icon in the train schedule view.
Performance
Improved terrain disruption processing speed by 2-3x, resulting in 10-25% simulation speedup on large saves.
Vehicles no longer disrupt terrain under custom surfaces, reducing unnecessary disruption processing.
Fixed severe FPS drops at higher game speeds (above 3x) caused by loose storage particle simulation.
Fixed FPS drops caused by loose storage particles when panning the camera.
Fixed FPS stutter during rain when the game was paused while set at >3x speed and camera was moving.
Reduced game install size by ~200 MB through asset bundle optimization and shared materials.
Optimized train simulation update to be ~50% faster.
Audio sources are now disabled when not playing, reducing per-source CPU overhead.
Improved performance of goal tracking in large factories.
Fixes
Large factories no longer experience significantly slower terrain disruption recovery.
Fixed that some disrupted terrain tiles could permanently stay disrupted after loading a save.
Fixed that loose storage particles would not appear when panning to distant storages while the game was paused.
Train paths are now hidden in photo mode.
Removed excessive vehicle barrier icons from the logistics research node to better show that it also grants a vehicle limit increase.
Fixed color picker not accepting pasted inputs containing a '#' character properly.
Fixed that transports would render incorrect product LODs when the camera moved while the game was paused or the transport was idle.
Fixed that vehicles targeting other vehicles (e.g. tree harvester trucks, refueling vehicles) could not follow them across bridges.
Fixed that construction of unreachable entities would fail if there was a significant height difference between the source of materials and the entity.
Fixed issue with ship's pathfinder when starting from an edge tile.
Fixed that fuel stations would refuel trucks with mismatched fuel types.
Fixed that trucks would not self-refuel at their mine tower's assigned fuel station.
Fixed that hydrogen was available as ship fuel without the required research completed.
Fixed that lifts could not achieve maximum throughput depending on entity update order.
Fixed construction cost product order being inconsistent between diesel and hydrogen vehicles.
Fixed that vehicles could path incorrectly on or near bridges.
Fixed that the train station unit module crane animation was stuck retracted.
Fixed that unity would be re-charged each time a building lost and regained power.
Fixed that vehicles could get stuck on roads/bridges after their job was cancelled.
Fixed that flipped COI billboards would read backwards.
Fixed that research HUD would show a stale level when auto-repeating research advances.
Fixed delayed terrain visual updates in parts of the map.
Fixed camera sticking to terrain borders during keyboard or edge pan.
Fixed FPS stutter when panning during rain weather when paused.
Fixed particle pop-in when loose storage, stacker, and train station particles become visible after being off-screen.
Fixed that rocket transporter boom would not show extended position after load.
Fixed stacker tower missing or flickering particles during dumping.
Fixed that contract exchange would delete exported cargo when import modules are paused.
Fixed incorrect error when a diagonal waypoint overlaps tracks.
Fixed that nuclear waste storage would not copy the "do not send retired waste" option during copy-paste or in blueprints.
Fixed an error in the Photo Mode dolly track editor that could occur when entering edit mode after switching tracks.
Fixed changing the direction of stations breaking their configuration. Settings are now preserved when the new orientation is still valid.
Fixed trucks ignoring higher priority jobs in some cases.
Fixed train station module workers not being assigned until the first load/unload of the station.
Trains expanded patch notes
Changed nuclear fuel station's default refuel threshold to 20% (from 30%).
Electric locomotives can no longer reserve or occupy non-electric tracks.
Electric locomotives lose power when not on an electric track (when using mixed-locomotive trains).
Fireless steam locomotives no longer leave steam in the train depot after being replaced.
Fixed molten station sign position.
Fixed train alignment at nuclear fuel stations.




Comments