The flexibility of a network is the result of the ability to share lines and to add junctions and line crossings at appropriate places. Thus, one can easily connect lines, add access to industries or branch lines. In some ways, one can compare the double tracked network with a highway network: There are dedicated tracks per direction, there are junctions and connections and so on.

Icon
The layouts shown here are built in a compact way to make them fit onto the screenshots. If there is enough room, it is a good idea to build junctions a bit bigger in order to allow long trains to wait at branches without blocking the rest of the traffic.

Characteristics

Some characteristics of a good junctions are easy to understand:

  • short tunnels or bridges for minimized signal distances
  • simplicity, only built tracks and connections that are actually necessary
  • as little height changes and turns as possible, especially for the tracks with most traffic

One word about simplicity: Many people tend to build their network junctions on a very large scale, with bridges and tunnels and connections into every direction. This is both unrealistic and space-wasting. Plan your junctions before you start building. Check whether you really need to connect all directions with each other. This reduces the number of possible ways for the trains and decreases the probability that they choose the wrong way. On the other hand, plan the layout in such a way that it can be extended later in the game, when a certain additional connection becomes necessary.

Another feature which is very important for the pathfinding and the network can only be explained in difficult words:

  • Trains cannot get into a "deadlock" (blocking each other, so that the player has to manually solve the blocking).

"Deadlock"

Deadlock

This is an example of a deadlock. The trains block each other, the player has to interfere to solve the blocking. With signals or junctions built incorrectly it might easily possible to run into such troubles. The tricky thing about that is that it might not be easily visible. In the beginning it all works well, but with an increasing number of trains problems suddenly arise. And most likely you will only spot them when trains do not earn money or the game warns you that trains got lost.

So how does one prevent that from happening? Without going too deep into the theories, one can safely say that building junctions according to the "Split before merge"-pattern prevents such deadlocks.

Icon

Split before merge

No matter on which path a train crosses a junction, the lines always split up first for the different directions before tracks join in coming from other lines. A track never merges before another branch.

Deadlock

Here the splits are marked yellow, merges are marked red. As can be seen there are several ways through the junction (for example just going straight through), where splits and merges are encountered in the wrong order. The white line marks a loop inside the junction. This means trains cannot only turn around by 180 degrees and go back to where they came from, but they could possibly loop around endlessly. So you hopefully understand now that this layout is quite horrible.

Branches

The simplest kind of junction is the branching of a line. Two lines split up into two in the form of a Y. This is not to be confused with a T-junction, which is discussed further down.

Single-tracked branches

Abzweig
Not in TTDPatch OpenTTD

A simple branch of a single-tracked station can be built easily using path signals. The important thing is to place the signal at the branch line facing the junction, so that trains reserve a path from the main line into the branch station, and trains going back onto the main line wait in front of the junction. The signal to the left on the main line is a one-way path signal to prevent trains from entering the main line on the wrong track.

Abzweig
Not in TTDPatch OpenTTD

For branch lines with passing places there is a trick: Use a path signal in the middle as shown here. A train going from the main line onto the branch line will just ignore it, but trains going the other direction will reserve a path from the passing place to this signal, instead of reserving the whole path from the passing line through the branch on the main line. The effect is simply that the main line is blocked for as short as possible. That is the only reason for the signal being placed there.

Abzweig
Not in TTDPatch OpenTTD

The optimal solution concerning blocking times of the main line is the usage of bridges or tunnels instead of crossing the main line. The one-way path signal at the branch entry prevents trains from going onto the main line in the wrong direction. The pathfinder should be clever enough to sort it out without that help, but enforcing the correct behaviour is always a good idea.

Icon
A solution with tunnels or bridges might be the best concerning the blocking times for the main line, on the other hand trains going onto the branch line have to climb a hill. For heavy freight trains this might be quite a huge penalty. This should be taken into account when creating a junction or branch layout.

Double-tracked branch

Abzweig
Not in TTDPatch OpenTTD

The only thing that needs to be explained about this setup is the one-way path signal to the left. It just prevents trains coming from the branch from going onto the main line on the wrong track. A standard path signal should suffice as well, the pathfinding should be able to puzzle it out correctly, but relying on "it should work" has often led to disaster...

Abzweig
TTDPatch OpenTTD

For lines with heavy traffic, the blocking of the lines becomes increasingly problematic. Depending on the trains and their power it can be helpful to replace the crossing with tunnels or bridges. In this case, one could even get away without using path signals.

Abzweig
Not in TTDPatch OpenTTD

Since path signals are used in the rest of the network, one can use it here just as well. This allows the usage of fewer signals while the functionality stays the same.

T-junction

A T-junction is an extended branch where the branch can be accessed from both directions of the main line and trains coming from the branch line can go in either direction onto the main line. The main difficulty here is to avoid layouts where a train can suddenly turn around to leave in the direction it came from.

T-Kreuzung
Not in TTDPatch OpenTTD

A T-junction with a single track is simple, just remember to use one-way path signals to enforce the correct choice of tracks. The standard path signal in the middle just serves as a optimization, trains coming from the passing place do not reserve their path through the junction until they have actually arrived there. This just shortens the time the main line is blocked.

T-Kreuzung
Not in TTDPatch OpenTTD

If one has not disallowed trains from using 90 degree turns one has to take care not to build them, as that would allow trains to go awkward ways. That is also the reason why this junction was built like this. Regardless of the direction a train comes from, it only has a choice of two directions. The signals are one-way to ensure trains are not going onto the wrong tracks - the pathfinder should work that out itself, but if something can possibly go wrong, it will, so we'd better prevent it.

T-Kreuzung
Not in TTDPatch OpenTTD

On heavily trafficked lines the blockings of the junction will create jams, so bigger solutions with bridges and tunnels are necessary. This solution is a slightly modified half cloverleaf. The track behind the bridge does not go to the right, but to the left. This small change makes the junction follow the "split before merge" rule. It also prevents trains coming from the lower right to return back into that direction.

T-Kreuzung
Not in TTDPatch OpenTTD

Sometimes the main line with most traffic does not go straight, but in a curve. In that case the junction should be built differently, so that traffic on the main line is not forced to go complicated ways with slopes and additional curves.

Crossings

Crossings of multi-tracked lines are finally the most complex layouts possible. However, the hilariously big junctions which need the space of several screens are usually hopelessly oversized. In most cases, not all connections are actually needed. When playing realistically, one only builds the tracks that are necessary.

Kreuzung
Not in TTDPatch OpenTTD

A cross of two double-tracked lines is easily possible without taking too much space. If trains are not allowed to do 90 degree-turns the layout would become even more compact. The signals are always placed in front of the junction are one-way to prevent trains from leaving on the wrong track.

Kreuzung
Not in TTDPatch OpenTTD

Having crossing tracks becomes a real problem with heavy traffic. In such cases, the old complex solutions with bridges and tunnels need to be used, where traffic flow is interrupted as little as possible. In addition, the junction should follow the "split before merge" rule. One possible solution is shown in the picture, it might look chaotic, but it is very efficient.

Icon
If most trains change direction (for example from the lower right to the lower left), this junction is anything but perfect: These trains have to go through lots of curves and climb slopes. Usually, one knows which paths through the junction will see most traffic, so one should optimize it in such a way that these paths have as little curves and slopes as possible.