Pfadbasierte Signalisierung

The original signal in TTDX were block signals, that means at any given time, only one train could be inside a signal block. All other trains had to wait for other trains to clear the signal block. This made huge signal blocks in front of terminal stations useless, because trains queued up at the signal block.

Using path-based signals, several trains can be inside the same signal block at the same time without running the risk of collisions. This is vitally important for large junctions and station entries. Realistic junctions without crazy bridge and tunnel constructions are only possible using path-based signalling.

Icon
Due to the nature (and possible bugs in the code), this feature may lead to train crashes! You are strongly advised to read the manual before using this feature or changing any of its settings!

Configuration

The PBS feature is controlled by a variety of options in the cfg-file:

autoconvertpresig
With this option enabled, any presignals are automatically converted into PBS signals. This automatic conversion may not be compatible to some of the setups shown in this guide, so it might be a good choice to disable this option.
manualpbssig
This allows to set PBS signals manually. It is enabled by default and should stay that way.
preservemanualpresig (off by default)
In case you have set up your presignals manually, enabling this switch makes sure that they won't get converted to PBS signals. You can convert them manually if you want to (as long as you have enabled manualpbssig). To have full control over your signalling, enable it.
showreservedpath
The path a train is about to take is marked in darker colour with this switch enabled. If everything goes well, you can safely disable this switch, but it is very helpful tracking down the events that may lead to a train crash or to see how this feature actually works.
shownonjunctionpath (off by default)
By default, only reserved junction tiles are marked. With this switch you can control whether non-junction tiles that are reserved should be shown as well. It's useful for debugging some junction setup, but otherwise it can stay disabled.
allowunsafejunction (off by default)
With the standard settings, trains will not cross any PBS signal that will lead them into a junction where PBS does not work correctly (so-called unsafe junctions). This might happen when you have changed the signal configuration for example. You should not enable this switch, unless you want to run the risk of a large number of train crashes.
allowunsafereverse (off by default)
If a train gets stuck in a PBS junction and tries to reverse, it might happen that he cannot do so safely, i.e. without running the risk of a train crash. In such a case the train is stopped and a warning message generated. If you are absolutely sure that your trains will never have to turn around in a junction, you can enable it - but it surely increases the risk of train crashes dramatically, so it's much better to leave it off.

Behaviour

Signal GUI TTDPatch

One can build four different types of path-based signals, the standard signal and each of the pre signals. However, the path-based behaviour gets priority over the pre signal features, so in the end you only have one path-based signal, which can be built one-way or two-way. I therefore only show the path-based version of the standard signal.

In principle, path-based signals act in the same way as the standard signals: If the block behind them is occupied, they show "Stop!". The difference is: If now a train approaches the signal and can reserve a path through that signal block, the signal switches to "Go!" in that moment. If the train cannot reserve a path, the signal stays on "Stop!" until a path could be reserved.

With PBS enabled, signal blocks can be turned into PBS blocks. As this feature works based on signal blocks, either all signals of the block will work path-based, or none at all!

PBS does some changes to pathfinding: Instead of choosing the way to go when hitting a switch, now the pathfinding will be called one tile before crossing a signal into a PBS block. The train then reserves the path that it is about to take, and will go through the PBS block on that reserved path without calling pathfinding again (that means if a better path becomes available the train will not be able to take it). The reserved tiles are freed when the last wagon of the train has left it. Reserved tracks are marked in a darker colour.

A PBS block is restricted by the limitations of the pathfinding. That is, it is not allowed to be longer than 64 squares without signal or comprise more than seven junction tiles. Trains encountering such conditions will stop at the signal leading into the block, even though the path might be free.

A train will not reserve a path that crosses an already reserved path. It will not reserve a path leading to a red two-way signal (regardless whether it's a pre-signal or not). It will, however, reserve a path to a red one-way signal if there is no better choice, requiring it to stop in front of the signal, thus blocking parts of the junction!

Examples

Path-based signal behaviour

The train to the left is still in the block, the entry signals (to the left of the block) show "Stop!", except for the one in the middle. For this signal, the oncoming train has reserved a path through the block (the tracks in the middle marked by the darker colour), therefore the signal shows "Go!".

Path-based signal behaviour

Path-based signalling overrides the pre signals. If a train can reserve a path through a block, it will take it, even if it would not be allowed to go if it were a pre signal.

Here, both the tracks to the left are occupied, the train should wait, according to the pre signal rules. However, a path towards the track on the right can be reserved, ignoring pre signals! So you need to be extra careful when setting up signals.

Icon
A train that cannot find a path to its destination will reserve any path through the block, regardless of where it leads! Do not place another signal directly behind a PBS signal: In order for PBS to work, there must exist a piece of track that can be reserved, which is not the case if the tile directly behind a PBS signal also has a signal standing on it. Never put a waypoint or a station into a PBS block. The pathfinding only looks for a way to that station, and reserves an arbitrary path behind it, which might lead anywhere!