In the most recent Patch versions, the player is given an overwhelming amount of control about signalling. Signals can now be told to follow special rules, and they can prevent trains from passing in new user-defined ways. Since all these features are quite complex and might lead to desastrous results if applied carelessly, you are strongly encouraged to test these new features in a safe environment. Perhaps it is a good idea to start a new game where you just play around with these features until you understood how they work. The setups on this page are definitley not for inexperienced players!

Icon
In order to distinguish the signals optically, a test set with new signal graphics can be used (you may have to click yourself through some pages of discussion). Without the set, the feature still works, but you will not see if the signals use these additional features.

Routing restrictions

Eingeschränkte Wegfindung

Routing destrictions are a very powerful and rather complex feature that can be used to control train movement in a manner not possible before. It influences train pathfinding by setting user-defined restrictions upon signals. The route finder does not search for a way past a restricted signal if the train does not meet the restriction criterion. The behaviour of the signal itself is not changed. You can add restrictions to every signal, the restriction is evaluated together with the signal behaviour.

Restriction criteria

There are several criteria the can be set to control train movement. They are listed below. Any incomplete or blank criterion is always true and lets all trains pass.

  • Number of Train Carriages

    The first possible restriction is the length of a train. Note that the engine of a train counts towards the number, for articulated engines, each engine part counts. This also includes steam engines with an extra tender.

  • Maximum Speed in (km/h|mph)

    This is quite straightforward. One can easily separate fast and slow trains, for example when there are dedicated high speed lanes. The restriction for the signal towards such a line could look like "Maximum speed in km/h > 130".

  • Station of Current Order

    In order to make sure that a station is only be entered by trains that are going to stop there, one can use this restriction. It is set by clicking the station with the mouse rather than entering some number. The restriction then reads something like "station of current order is Smalltown Station". Only "is" and "is not" are valid operations here, as the others would not make any sense.

  • Station of Next Order

    This works in the same way as the previous one. It is especially useful when using combined terminal and through stations where it is necessary to sort the trains onto the correct platforms.

  • Last Visited Station

    It might also be necessary to sort trains depending on where they come from. This can be done using the "Last visited station" restriction. Note that this is the station where the train has stopped last, not the last station the train has passed through.

  • Depot of Current Order

    Since it is possible to order trains to go to depots, these orders can be used to restrict train movement. The depot is chosen by clicking it with the mouse. This restriction is useful to restrict entry onto a track that leads towards a depot, only trains currently heading for that depot should actually go on that track.

  • Depot of Next Order

    In complex setups with depots directly after a station, it might be necessary to sort the trains onto certain tracks before they head towards the depot. This can be done using this restriction. It works in the same way as "station of next order", except that the order points to a depot rather than a station.

  • Total Train Horsepower

    When playing with high freighttrains settings, hills become a very difficult obstacle. In many cases, it might be better to build a flat route around a mountain than trying to go across. In some cases, two routes might be available, so the decision which route to take could be based on the power of the train. If the train engine(s) are not powerful enough, one should route them around the mountains. All engines of a train are taken into account here.

  • Total Train Weight

    Instead of basing a routing decision in mountaineous terrain on the power of the engines, it might also be feasible to check the weight of a train. A train with a weak engine might still be able to go across the mountain as long as it is empty after all.

  • Train Cargo

    With the new train stations available, one surely wants to go a freight train towards the "correct" platform. It just does not look right to have an oil-train standing at a wood-loading area. To ensure that a train goes to the correct platform, one can restrict access based on the cargo a train can carry. A train can carry a cargo if any of the carriages can hold at least one unit of the cargo in question.

  • Number of tiles from signals

    A routing restriction can be set depending on the distance of the train from the signal. However, since it does not make much sense to tell a train that the signal is a dead end if a train is in a certain distance, this condition should be used in combination with the signal status, to get some rerouting mechanism: If the way ahead is blocked, reroute onto some alternative tracks.

  • Signal Status (SW|SE|NW|NE)

    Now this one is quite tricky to understand. In essence, the restriction is based on the state of another signal. In other words: Signal X has a restriction based on the current state of signal Y. The only possible operations are green and red. If the signal shows the selected state, the criterion is fulfilled, otherwise a train is discouraged to go through signal X. Signal Y is chosen by clicking the value button and then selecting the signal by clicking it with the mouse. Now as there can be up to four signals on a single tile, the signal in question is chosen using the NE/NW/SE/SW variants. The following pictures show the signals which are used for each selection. In this example, the signals are placed to the right of the track. That does not influence the selection, as it is based on the track and the direction the signal faces. Nonexistent signals are always treated as red.

    SW signals

    These are the valid SW signals. For the diagonal rails, they control traffic to the left (west), for horizontal tracks they are the ones for the lower (south) track guarding westbound trains, for the vertical tracks it's the one on the left (west) track regulating downward (southbound) traffic.

    SE signals

    These are the valid SE signals. For the diagonal rails, they control traffic to the right (east), for horizontal tracks they are the ones for the lower (south) track guarding eastbound trains, for the vertical tracks it's the one on the righthand (east) track regulating downward (southbound) traffic.

    NW signals

    These are the valid NW signals. For the diagonal rails, they control traffic to the left (west), for horizontal tracks they are the ones for the upper (north) track guarding westbound trains, for the vertical tracks it's the one on the lefthand (west) track regulating upward (northbound) traffic.

    NE signals

    These are the valid NE signals. For the diagonal rails, they control traffic to the the right (east), for horizontal tracks they are the ones for the upper (north) track guarding eastbound trains, for the vertical tracks it's the one on the righthand (east) track regulating upward (northbound) traffic.

  • Number of Days Since Last Service

    In order to get trains into depots in a controlled way, one can force them onto tracks leading into a depot when a given number of days has passed since the last service. Using this restriction can be a way of ensuring regular servicing.

  • Train Currently Searching For Depot

    When the service interval is over, trains begin searching for a depot. This often leads to chaos on the network because trains go to the nearest depot, no matter if they have to travel across half the map to get there. Using this restriction can prevent such problems.

  • Entered side of tile

    For two-way signals, restrictions are valid in both directions. However, sometimes a restriction should only be valid in one direction. For such cases, this restriction can be used. Valid operators are "is" and "is not", the values are the directions as used by the signal status restrictions.

  • Entered tile of PBS signal block

    Using this restriction, one can restrict passing to trains which have entered the PBS block from a given signal. This is especially useful at big stations where trains from different directions may be directed to certain platforms. If this restriction is placed upon a non-PBS signal, the results for "is" will always be false!

Programmable signals

Programmierbare Signale

Programmable signals allow almost complete control over signal behaviour. The player creates a rule or a set of rules which determine when the signal should show "Stop!". So the player has all the freedom to control signal behaviour. The rules of signal programming replace the pre signal behaviour of the standard signals, i.e. one can program the pre signal behaviour. However, one cannot create a signal that would allow entering a block that is occupied by another train.

When programming pre signals, the signal type is changed: An entry pre signal will become a programmed standard signal (the pre signal behaviour is overridden by the programming), the combo pre signal becomes a programmed exit-presignal (this does not change anything for the preceding block, for the block behind the programming overrides the pre signal features).

Programming criteria

As with restricted routing, there are various criteria. If the criterion is fulfilled, the signal turns red.

  • No. of green (one-way/two-way) exit & combo signals

    This simply counts the number of signals of that type in the block. One can specify various operators (less than, more than, is equal) and the number of signals. For example, one could define, that a signal should turn red if there are less than two green signals in the block.

  • No. of red (one-way/two-way) exit & combo signals

    As with green signals, one can count the red ones just as well. If let's say 2 out of 4 signals are red, the entry signal should be red just as well.

  • Entered side of tile

    This rule works just as for the routing restrictions and limits the behaviour to one direction for two-way signals.

  • Signal Status SW/SE/NW/NE

    With this criterion, the player can program a signal to show red if a given other signal has a certain state. However, this is limited to signals which can affect the signal that is to be programmed. So they have to be in the same block and correct direction, controlling the exit from the block into which the programmed signal leads. Basically, these are the same rules which are used for pre-signal exits, which influence pre-signal entries.

The interface

Programmable signals and routing restrictions are set using the same interface. This is quite mighty and allows setting of complex rule sets which may contain several rules.

Signal GUI

In order to set a restriction criterion, hold Ctrl and click the signal you want to put the restriction upon. This opens the signalling GUI, which has a button labeled "Routefinding". Clicking that button opens the main window for setting restrictions.

restriction window

There are various buttons on the bottom of the window: The leftmost one allows choosing the restriction criterion. In this example, this will be the maximum speed in mph. The next button is used to set the comparison operation that is to be done. The button labeled "value" allows setting the comparison value. This is either done by typing a number or by clicking a station/depot/signal, depending on what criterion is to be set.

The three buttons "And", "Or" and "Xor" are used to combine restrictions, this will be discussed further down. The buttons "Delete" and "Reset" should be fairly self-explanatory, delete simply deletes any restriction (for this and any signal that share the restriction), reset does the same, but it does not affect any signals sharing the restriction. The button "Signal" toggles between setting route restrictions and signal programming. The last button "Find" centers the view on the signal, this is helpful after one has scrolled around, for example to click a target station with the mouse.

The possible comparison operations are:

  • < (less than)

    matches only if the trains value of that criterion is lower than the value given in the restriction

    Maximum speed in mph < 50 matches for any train that has a maximum speed of less than 50 mph, a train going 50 mph or faster does not match.

  • > (greater than)

    matches if the trains value is above the value given in the restriction

    Maximum speed in mph > 50 matches for any train that is faster than 50 mph, e.g. 51 mph and faster. Trains going 50 mph or less do not match.

  • <= (less or equal)

    matches if the trains value is higher or equal to the value given in the restriction

    Maximum speed in mph <= 50 matches for any train that is either slower than 50 mph or reaches exactly 50 mph. Any faster train (e.g. 51 mph and above) does not match.

  • >= (greater or equal)

    matches if the trains value is higher or equal to the value given in the restriction

    Maximum speed in mph >= 50 matches for any train that is either faster than 50 mph or reaches exactly 50 mph. Any slower train (e.g. up to 49 mph) does not match.

  • is

    matches only if the trains value of the criterion is exactly the one given in the restriction

    Maximum speed in mph is 50 matches only for trains with a maximum speed of 50 mph. Trains with any other top speed do not match.

  • is not

    That's the exact opposite to "is", it matches only if the value is not equal.

    Maximum speed in mph is not 50 matches for trains with am arbitrary maximum speed, as long as it is not equal to 50 mph.

Note that for some criteria, only "is" and "is not" are possible choices.

Combining rules

Rules can be combined with each other to create complex rule sets. However, understanding how that works requires a little bit of theory about boolean operators and logics. This is not as difficult as it sounds, yet it can lead to some profound irritations.

There are three possible operations to combine two restrictions with each other:

  • AND

    both restrictions must be fulfilled in order to fulfill the combination

  • OR

    at least one of the two restrictions needs to be fulfilled. As soon as one of them is fulfilled, the combination is also fulfilled. Both restrictions may be fulfilled, but that is not necessary.

  • XOR

    exactly one of the two restrictions needs to be fulfilled. If the first restriction is fulfilled, the second one needs to be false, and vice versa.

restriction window

The next problem is the notation of these combined restrictions. They have to be written down in prefix notation, which is quite awkward as long as you're not a computer programmer. So instead of setting "restriction 1 AND restriction 2", the combination is shown as "AND restriction 1 restriction 2".

It is possible to combine more than two criteria. This results in a hierarchy of combined restrictions, most easily written down on a sheet of paper using parentheses. For example one can require a train to head for a given station that needs to have a certain length and has a certain maximum speed. The restriction would then look like AND (AND [station of current order is X] [number of carriages > Y]) (maximum speed of train >= Z). The restrictions given in square brackets are evaluated first and lead to one result, either true or false. Then, this result is combined with the restriction given in parentheses to get the overall result of that combined restriction. In this case, it is rather easy, the train has to fulfill all three requirements in order to fulfill the routing restriction.

restriction window

As a second example, we want to let trains pass, which carry passengers or mail (or both), but only if they are faster than 50 mph. The resulting restriction needs to look like "AND (OR [train cargo is passengers] [train cargo is mail]) (maximum speed in mph >= 50)". Alternatively (and more complex), one could try using "OR (AND[train cargo is passengers] [maximum speed in mph >= 50]) (AND [train cargo is mail] [maximum speed in mph >= 50])". Both these variants lead to the same result, so you see combining restrictions can get quite messy...

restriction window

Be careful when setting such combined restrictions, it is quite easy to combine criteria in such a way that they can never be met. For example, the restriction "AND [maximum speed mph > 50] [maximum speed in mph < 50] can never be met. This might seem obvious, but when combining more than two criteria, such cases might happen indirectly: A train with more than 7 carriages will most probably not weigh less than 100 tons, just to give an example.

restriction window

Copying & sharing rules

restriction window

Since there are quite a number of signals on a network, it becomes rather time consuming to set restrictions everywhere, especially if the restrictions are the same. Say, there are dedicated high speed lanes all across the network, you don't really want to set the speed restrictions for every signal anew. Instead, existing restrictions can be copied and shared.

To copy an existing restriction, open the restriction window for the signal onto which the restriction should be copied. Click the copy button and select the signal from which the restriction should be copied. Now, your signal has the same restriction. Sharing restrictions works in the same way, except that you need to click the Share button, obviously. The important difference between copying and sharing is that a copied restriction is independent from the source it was copied from. It can be edited without influencing other signals. Editing a shared restriction however will change all restrictions that share the restriction. For example, speed limits for fast lanes should be increased when faster engines become available. Using shared restrictions, this can be done by simply changing the limit for one signal, all other signals with the shared restriction are then updated automatically.