Let me introduce you to the third part of the Overflow series of ABR, in this article I aim to note the most interesting innovations to overflow construction which are not described in the previous articles. Also you will be able to read about some less overflow related things, but vital for general building. The article is not sorted chronologically, I am just going to describe a few concepts of designs, and sort them by complexity or just by how I think it is practical to build such an overflow.
The new most notable features I will present is the combo-signalled reverser and techniques of high throughput overflow stations.
I will of course not repeat many things, especially roles of each component in overflow stations. Therefore I strongly recommend to read ABR04: Overflows and ABR08: Overflows II before reading this one. I also did not mark the images with colours etc as much as I did previously, simply because recoznizing these should already be piece of cake if you want this article to be anyhow useful for you.
Most overflows will not work without setting yapf.rail_firstred_twoway_eol = 1
for more info see relevant wiki page.
As always, I add a savegame along with overflow article. r24349, newbridges from the GRF pack, and NUTS 0.2.1 from online content.
Figure A: The basic 2-platform overflow
Once upon a time, the norm of overflows has gotten a new addition – that every depot should be hidden for the pathfinder. That basically meant that every overflow requires having a reverser, which basically eliminated many of the compact, super simple designs, and the design above started to dominate as it is trivial to copy.
While this thing has quite a few flaws and is severely slow, it is usually enough for primaries if you need the overflow for them. (only in cases you really need to keep yourself 100% sure that you will not get a backlog of trains just because of too many trains waiting for cargo; or in case you use conditional orders)
The design lacks two main things, first one is a prio for incoming line, that entering trains can be blocked by exiting in case of terminus station, and obviously a slow depot. However if we fix those things, we obviously do get a proper overflow, but have to sacficice some space to do that, which can not always be the most convenient thing to do.
Figure B: Adding prio for incoming line
While this already tries to reduce the stress on the incoming line, the total low throughput remains. The thing that slows the most is the depot, especially with longer trains. So we can just put it in a separate place. Another thing which can be elsewhere than in the main X is the reverser.
Figure C: Depot/reverser separation
Now we have a solid overflow station with separate depot and reverser. Most key points are: C1: The combo-signalled reverser is a technique by which we do not detect the reverser as a free platform in case it is empty, but we do allow the station to have entry signal and wait for the reverser to clear in case there is a train at the moment. C3: There must ALWAYS with no exceptions be waiting bay(s) behind the depot. C6: EVERY terminus station with overflow MUST have lost train escape path.
This station already works fairly well but when throughput increases, the „X“ of the terminus itself becomes a bottleneck sooner or later. We can break this issue with 2 solutions, either we simply turn the station into ro-ro (then we do not even need C6), or we just make the station later with turning the current platforms into waiting bays, and place platforms afterwards.
Also – I have not mentioned it earlier, but – the X makes the overflow station break in case the exit jams up. For example if your SL exit jams, and your trains block the exit. In such case trains will not be able to enter the overflow and just continue the jam. It is often useful to prevent this from happening, so the overflow works under any circumstances, providing even more safety.
Figures D and E: Getting rid of X by waiting bays or roro station
We improved the throughput again and either of these stations should work even for 2295 primary (I think). The only further improvements we can do is more expandability, and finding designs for a lot more throughput – like for secondary industries.
Figure F: 2-line station, diagonal design
The already classic design for a LL station, it appeared it many of our games already. The way how it works is simple, trains pass around waiting bays which they attempt to join as soon as they can. In case they fail they go to overflow. The overflow release is specific by sequentially detecting each line and waiting bays on it, similarly to a prio. Therefore the train looks if there are any trains coming towards a platform, and if that platform is empty. If there are no trains coming and platform is full, it just detects the next platform, etc.
A thing to note here is signalling of the depot. Sometimes it can happen that trains start stacking up in the overflow line in front of the depot. In that case we want the depot to give way to the incoming overflown trains, and then detect the waiting bays of course. That is done simply to reduce the amount of trains going through the slow depot. This obviously requires the depot to be conditional, as described in previous articles.
The station is best built with the main part of incoming line being diagonal because diagonals give space for the penalty PBS signals. The design also works for not-diagonal layout, but not as well with unless there is at least 4 line entrance – then there is space for the PBS also with the not-diagonal layout. However with that many lines (and likely that many platforms), there are better designs to build due to reasons below.
When it comes to downsides of this station, the injection from overflow could become too slow with increasing platform/incoming line counts. That happens simply due to the way how platforms are detected and could be overridden simply by making different less strict, but less precise detection (like presignal bypass-ish). Or there can be made a completely different design of the station which shortens the detected area on the incoming line.
Figure G: Release to X
This design is fairly different to all of the other overflows. The main deviation is the release – we do not directly give way to incoming trains, there is not even any traditional priority for them. The X has PBS signals for incoming trains, and entry pre-signal for overflow injection. The platforms are made in such way that 2 of them have reversed 2way PBS to make them as a separate signal block, and the third platform is let to get the signal going through it. The third platform also has a penalty station to make trains join the separate signal block platforms first.
The entry signal works because it is there only for detecting the exit/combo signals in front of it.
All in all, the condition for train release is: If there is one of the two separate signal block platforms empty, and the platform through which the signal goes is empty, a train can be released from the overflow. This injection does not happen very often, but seems to be sufficient, as tried in psg219 and similarly in psg230. The conditions are weird and not very universal so lets try to change that.
Figure H: Different releases
H10a: no pre-signals
The block signals give way to the main flow trains only in case there is a train in the block already, so only a PBS signalled train can access the block. This solution is very basic and can slow down the incoming line by forcing too many trains through overflow as too many trains come out of it.
H10b: pre-signals on exit
This makes the entry signal wait until there is at least one platform free and the exit is free. Then it lets the train into the block, and it is taken care of by the PBS pathfinding. The important thing is that it not only waits for the platforms, but also the exit. Detecting the exit means that unlike the option H10a, trains coming from main flow (1way PBS) do get the opportunity to go into the platform first, because the platform is free just a moment before the exit is free, too.
This release condition is not too strict but should not inject in completely inappropriate times and when the station is under a lot of stress, the main flow trains should always be given way to.
Figure I: normal station with injection for each incoming line
Note: The amount of rails is a bit of a mayhem, so I tried to make it easier to read by making logic lines maglev, overflow lines univ rail, and incoming line is monorail. (from psg233)
Another option how to make the overflow is the same split as before, but with the difference that the release is not anyhow influencing the station design. Trains are simply injected in the other incoming trains, just like multiple single-line injections, as seen in figure F. There are probably more and more options how and where to release trains, but the logic seems to be mostly similar then.
Other stations from our games
Loop overflows on drops
A valid form of providing choices for trains to choose any platform is not always only giving direct choice, but it could also be „if my line has no free platform, I join another“, which is how the loop overflow on drop works. Loop overflow obviously does not include depot, so any release logic is not needed. The overflow should even be given prio just for the length of one TL, to prevent possible deadlocks.
Combined drop&pickup stations
Stations which combine drop and pickup are usually built with an overflow to not jam the nearby drop. Combining drop and pickup can safe space as the stations are close together, but a problem usually arises when expansions are needed.
Generally, drop comes first in order to get these trains out of the way so they do not get detected by injection logic etc.
Because the drop is usually not ended with a stopping signal, it is often vital to add a loop overflow for the drop to not make drop trains go through pickup accidentally in case drop has no free platforms.
It is also possible to rely only on loop overflow. Not only for the drop, but also for the pickup. Of course does not provide the endless buffer for trains, but it should suffice as well. From psg220.
Overflows are a very useful tool to make sure your network can work without jamming due to stupid reasons like trains from pickup blocking a drop. On the other hand there are many cases when an overflow is not really needed, mostly in case of primary industries. (Unless you play alone and want all primaries serviced perfectly but you do not want to oversee train counts in all stations at all times, and want to focus on other things like expanding and taking care over the mainline parts of network. In a psg-styled game, you usually have a lot more production than you can transport anyway.)
This article has shown mainly some of the ways how to make a large scaled overflow, which are obviously to be used on secondary industy pickups, where they are generally very convenient.
Once again, thank you for reading and I hope the article was useful for you in any way. Please pay special attention to not forgetting lost train escape paths on terminus stations, and building waiting bays on the depot exits.
Thank you for reading, V453000