October 22, 2021
Have you ever scratched your head after seeing a train:
- not stopping at a station as it should
- being on a track far from where it should be
- queuing at a busy platform whereas all the other platforms are empty
- or even not switching at all?
Sometimes trains don’t do what you think they’ll do. This post explains why!
Train not stopping at station
Consider this example:
The player wants to create a route from station A to station B. Instinctively, you may think that there are only two paths: one path going from the top platform of A to the top platform of B, and one path going from the bottom platform of A to the bottom platform of B.
Wrong! There are two other possible paths. Things get clearer if you display the paths:
In addition to the two “natural paths”, the router also found two other paths:
- The pink path connects the top platform of A to the bottom platform of B. It goes left, then uses the loop track to get to B.
- The dark blue path connects the bottom platform of A to the top platform of B. It passes station B without stopping, uses the top track to loop around, then passes station A without stopping, and finally gets to the top platform of B.
The blue path is particularly disconcerting! because your trains can pass at stations A and B without stopping, but it’s a valid path nonetheless.
The router is very clever and it will often find unexpected solutions. Its ultimate goal is to connect all the platforms of the origin station to all the platforms of the destination station, even if it has to use very far and remote tracks.
If you want to disable unwanted paths, you can use the Path Selector tool. It’s the clipboard icon on the left of the screen:
Trains queuing at a wrong platform
Consider this other example:
This time, the player adds a switch between station A and B, and some signals to make sure switching is working (see this post if you want to know how switching works).
There are also two return tracks between B and A. The player creates a three waypoints route, to make sure the train uses the top return track:
Everything is peachy! Right?
If you inspect waypoint A, to see all the paths going from C to A, here is what you get:
The router found a “natural” blue path to get from C to the top platform of A, but it also found a unexpected pink path going from C to the bottom platform of A. The pink path passes station A and B without stopping, and uses the bottom return track to get to the bottom platform of A.
You can’t beat the router! It will always find a path if it exists.
The pink path has also an unexpected twist: when a train arrives at C, it must choose between the blue and the pink paths. If the top platform of A is busy, it will choose the pink path and stick to it. But the pink path always uses the bottom platform of station B as a passing track! even if the bottom platform is busy and the top platform available. That’s why you can see trains queuing at a busy platform, even if the other platforms are available.
The bottom line: if you have an unruly train, always inspect all the route waypoints. Don’t forget to inspect the return paths to get to A.
Once again, you can use the Path Selector to delete unwanted paths.
Trains not switching at all
Have a look at this last example:
In this setup, the player wants to create a one way route between station A and B, using two parallel lanes. The player hopes that trains will switch at switch 1, 2 and 3, and choose each time an empty track. This is a way to achieve traffic balancing.
But it won’t work. Trains don’t switch at all and end up queuing at a busy platform at station B, even if the other platform is empty.
Let’s inspect the paths once again:
For clarity, I’ll show only paths coming from the top platform of station A.
As you can see, train makes only one path decision between two waypoints. Once a path is chosen, it will stick to it. It does not matter if there are other track switches later on the route. When trains arrive at station B, the choice has already been made at switch 1. Switch 3 is useless, and trains can’t switch to choose a free platform.
The proper way to achieve traffic balancing between parallel tracks is to use Track Sets:
To force trains to make a path decision on all track switches, we add a track sets before each switch.
Instead of having multiple track switches between two waypoint (A -> switch -> switch -> switch -> B), you now have only one switch between two waypoints (A -> switch -> B -> switch -> C -> switch -> D).
Because trains make only one path decision between two waypoints, you can now control where trains switch.