Signals
From #openttdcoop wiki
This article may need to be updated. Please update this article to reflect recent events or newly available information, and remove this template when finished. Please see the talk page for more information. |
See also: http://wiki.openttd.org/Signals
Contents
Signal types
OpenTTD currently has 4 basic signal types (not counting presignals). These 4 are:
Each of these 4 signal types has different properties and should be used in different circumstances. An overview:
Signal | Type | Direction | Comments |
---|---|---|---|
Standard single | Block | One-way | The standard signal for one-way tracks, and therefor the most-used signal in coop games. |
Standard double | Block | Two-way | Arguably the hardest signal to use properly. Standard double signals have an EOL property that means that if they are red, the pathfinder considers the signal the End Of a Line, thereby discaring its route. This property can lead to very unexpected and unwelcome behaviour. Use with caution. |
PBS 1-Way | Path-based | One-way | The bath-based version of the standard single signal. In general, use this instead of the PBS signal. However, whenever path-based signals are nog strictly needed, use the standard single signal instead. |
PBS | Path-based | Two-way | While this path-based signal can be driven two-ways, it does have a preference for one direction. This preferred driving direction is indicated by the single signal pole and is the same as with the PBS 1-Way. Driving a PBS signal the wrong way gives a massive penalty in the pathfinder. This is the reason why we commonly use the reversed versions of these signals as penalties in our games. |
The two block signals themselves have specific versions, called pre-signals. More about those can be found in Presignal Basics. Path-based signals themselves have their own unique features, which are detailed here.
Placing Signals
Before you start to use Automatic Signalling or Signal Dragging you should check the signal density. You can change it in the signal interface or edit the drag_signals_density value in your openttd.cfg. Make sure the value is set to two.
Basic Signalling
The first thing you should know is how use the basic signal dragging feature of OpenTTD: Build a signal (fastest Shortcut is A & S), left-click it and hold the button, drag it as far as you want to build signals. Release the button and the signals will be built. Very easy.
Automatic Signal Completion
Now we are ready to build signals and know how to use the basic feature of dragging. We can go a step further. Again Build a signal and drag it. While you are dragging it a little bit press the CTRL button and release it. The track will be filled up with signals until a breakpoint which are existing signals on the track, stations and junctions.
Removing Signals
It's also possible to remove Signals with the Automatic Completion feature. If you have build a track with signals, use the signal deletion function (Shortcut: A & S & R): click the signal, drag it while pressing the CTRL button and all the signals will be deleted. The breakpoints are stations and junctions.
Breakpoints
Automatic Signal Completion won't stop at: Tunnels and Bridges but stops at: Junctions, Stations and Existing Signals
Checking anyway
After you have "signaled" a track, you should optimize signaling at junctions, they might need a signal right before or after the interruption to avoid signal gaps.
Two-way signals
Two-way signals are a common way to influence trains on coop servers. This is possible with the setting Two-way end of line.
Two-way end of line
Two-way end of line is a setting in OpenTTD that can be altered to create interesting train behaviour. By default it is off, but it is activated on every openttdcoop server. A red two-way signal directs train to a different route if one is available.
Read more: http://wiki.openttdcoop.org/Two-way_end_of_line
Presignals
Presignals are widely used in openttdcoop games for simple constructions as well as the most advanced ones.
Read more: http://wiki.openttdcoop.org/Guides:Presignals
PBS
Full article: http://wiki.openttdcoop.org/PBS
Signal Gaps
A signal gap, or gap for short, is the amount of unsignalled space in a single signal block. Understanding signal gaps is important for maximizing train density on a rail line and ensuring that trains continue to move at the maximum allowable speed. In coop games, we adhere to a maximum signal gap of 1 tile.
In general, use of the term "gap" indicates that a signal gap of length greater than 1 has been detected, and as a result, the efficiency of the network is at risk. Steps should be taken to fix any gaps marked in this manner.
Do not confuse a "signal gap" with a "train gap". A train gap is the minimum space between two trains. Because our signals are 2 spaced tiles apart (also known as Signal Density), there is a minimum gap of 3 (the Signal Density +1).
Why is understanding gaps important?
A rail line is only as fast as its weakest link. If there is any point on the line where traffic must slow down or stop, the disruption will have a domino effect on any following trains, resulting in an inefficient network. As the goal is often to build a highly-efficient, and highly-dense network, these types of disruptions must be avoided at all costs!
What if I need to create a signal gap larger than 1?
To create a signal gap larger than 1, you must provide following trains an alternate route until the gap is restored to 1. Larger gaps are created at station platforms, bridges, and tunnels, since none of these items can be signalled.
To create an alternate route, simply make a new line parallel to the first line. This line should continue until the signal gap can be restored to 1, making sure to keep the trains synchronized.
How to count the length of a gap
When using normal block signals, a gap's length is defined as the number of unsignalled spaces between two signals. Normal coop mainlines use a signal gap of 1, meaning there is only 1 unsignalled tiles between two signalled tiles.
When using pre-signals, the gap is counted from the tile after the first pre-signalled (or combo-signalled) tile through to (but not including) the next normal block signal (exit signals are still counted as part of the gap). If multiple routes exist, the largest value is the gap.
Placing a pre- (or combo-) signal and an exit signal (in that order) on a mainline will create a gap larger than 1, so this type of construction should not be done without creating an alternate route.
When using PBS signals, the gap is counted just like normal block signals: from the tile after the PBS signal through to (but not including) the next signalled tile. If multiple routes exist, the largest value is the gap.
How many alternate routes do I need to create?
The number of alternate routes is dependent on the length of the gap and the minimum train length that might encounter the gap.
The typical formula used to calculate the maximum gap length for a certain number of lines (LineCount) is
SignalGapLength = (TrainLength + 2) * LineCount - (TrainLength - 2)
Where TrainLength is the minimum train length to encounter the gap, and LineCount is the sum of the alternate routes provided + 1 (the original route).
(This can be quickly calculated with Webster's @gap)
Conversely:
LineCount = (SignalGapLength + TrainLength -2) / (TrainLength+2)
Always round any fractions up to the next whole number.
(This can be quickly calculated with the PublicServer bot's !gap)
Refer to the section above for information about how to count a gap properly.
The Evil X =
When two lines cross each other in an oblique (non-perpendicular) way, it creates an "evil X". The main problem with the evil X is that it inherently creates a signal gap of 2.
A simple merge does not create a large gap, as long as the tiles before (on both lines) and after (on the single output line) are signalled.
However, note that when the tracks cross obliquely, it is not possible to signal the output line, creating the gap.
In practically all cases, evil X's should be avoided.