PathBasedSignalling

From TTWiki
Revision as of 16:04, 15 June 2011 by Orudge (talk | contribs) (Reformat and update)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Enable path based signalling.

2.0.1 alpha 41 or later

Switch

Configuration file: pathbasedsignalling on|off|bitsetting

Command line: -XI

Quick Info

Note: This feature is somewhat dangerous, it may lead to train crashes if not used correctly (sometimes even if used correctly due to bugs in the code). Please read this entire page before trying to use it.

Path-based signalling (PBS) allows multiple trains to share a junction, as long as their paths do not cross. As a train approaches a path-based junction, it will reserve a path through it (the rails it has reserved will show up darkened). If another train's desired path would cross the path of that train, it waits at the signal to reserve a path before entering the junction.

You will need the base graphics from the top of the second table on this page in order to have TTD properly display the PBS signals.

Detailed Info

Path based signalling is a feature that allows several trains in a signal block as long as their paths do not interfere. This greatly enhances the entrances and exits of stations as well as junctions.

This is a bit switch, with the following choices:

Bit Value Name Meaning
0 1 autoconvertpresig Convert pre, exit and combo signals into PBS signals
1 2 manualpbssig Allow manually setting PBS signals
2 4 preservemanualpresig* Don't convert junctions with manually set signals into PBS
3 8 showreservedpath Show reserved track pieces darker
4 16 shownonjunctionpath* Show reserved track pieces on non-junction tiles too
5 32 allowunsafejunction* Don't hold trains at an unsafe PBS signal
6 64 allowunsafereverse* Don't stop trains that can't reverse safely

* Off by default (i.e. with just "pathbasedsignalling on")

The non-exclusive use of signal blocks is achieved by the trains "reserving" a path through the signal block. These reserved paths are then shown somewhat darker, and other trains will not reserve paths that interfere with them.

Pbs.png

By default, all signal blocks which have at least one pre-signal, exit signal or combo signal leading into them will be converted to path-based signalling as soon as the block becomes clear for the first time. You can disable this by enabling the "autoconvertpresig" setting off the switch, in which case you have to set one signal in each block manually by cycling the states with Ctrl. If one signal is using path-based signalling, then all signals leading into that block will be converted to path-based signalling. This is the case even when automatic PBS blocks are disabled.

To make path-based signalling (PBS) work correctly, you have to obey a few rules in your junction design. Uwe Domaratius has written a very nice tutorial that explains how to use path-based signalling (among many other things). You can read it at [1].

Here are the requirements needed for making PBS work correctly:

  • Do not put another signal immediately after a PBS signal. Every PBS signal must have at least one regular track piece between it and the next signal, or else the train will not be able to pass the signal. Track with signals, or track on or below bridges does not count as regular track, whereas road crossings, stations, bridge heads and tunnels do.
  • The paths through the junction must be shorter than 64 tiles and cross 7 or fewer junction tiles. A train will never find a path that crosses more than 7 junction tiles.
  • Whether these signals are red or green does not matter for whether the train can pass them, except that if the train can't find a route to its destination, it will wait at a red signal, but not a green one.
  • The train can pass a signal if it finds a route past the signal leading out of the signal block or to its destination.
  • A train will not look for paths that end at a red two-way signal
  • A train will look for paths that end at a red one-way signal
  • If the train cannot find a useful path at all, it will take any path if it is currently at a green signal. It will wait at a red signal.
  • When trying to reverse direction in a PBS block, the train will only do so if it can successfully reserve a path out of the signal block. Otherwise, the "reverse" function will be disabled, the train will be stopped and both open its vehicle window as well as generate a news message. When this happens, it should now be considered a bug in TTDPatch, please report any situations in which a train is unable to reverse.

Additional notes:

  • If track pieces are stuck at "reserved" (dark), try forcing a train to run over them, or dynamite the entire tile and rebuild; just removing the offending piece will not reset it. Sometimes stuck track pieces may not be obvious, for example if the pieces are not on a junction they cannot be darkened to show that they are reserved.
  • If you're not using the updated signal graphics, you can tell whether a signal is using PBS by looking at it with the info tool. You can also tell by noting that a PBS signal stays green until the whole train has passed it, other signals go red as soon as the engine passes them.
  • PBS changes the functionality of pre-signals somewhat, because trains now enter the block even when the signal is red, as long as they find a path to a green two-way signal (or a green or red one-way signal) that leads to their destination.
  • This feature may require some junctions to be changed, or better waypoints for trains to find the right way. Not all junction designs work correctly with PBS.
  • You can use PBS to activate road crossings earlier than usual, they will now be activated as soon as a train reserves a path across them. Just put a PBS signal a few tiles in front of the crossing, with no other signals in between.
  • You can download a demo save game here, showing this feature in action
  • This feature may still be somewhat buggy and cause both train crashes, or trains getting stuck at signals. Please report both bugs together with a savegame (in case of crashes, before the trains enter the signal block!)