SRNW with subnetworks

SRNW may be nice to a certain capacity but once productions get high you’ll find that the networks become very hard to manage. In this article I’ll introduce a new type of SRNW; Selfregulating terminals fed by selfregulating subnetworks, this approach completely renders the dummy trains obsolete and makes it much easier to deal with big primary industries.

For this article I’ll assume you know what SRNW is, how it works and are familiar with the terminology. For a crash course on SRNW you might want to have a look at this wiki page
When industries serviced by SR stations get higher productions (high roughly meaning more than 1000 units a month) you’ll find that expanding the stations is a tedious and complex task resulting in monsters such as the one below.


Instead of making use of dummy trains this new approach uses a loop with trains transferring to a terminal. Each time a full train unloads at the terminal a mainline train is allowed to load at the terminal. Below you can have a look at the feeding loop.


The loop makes use of a technique that has been seen before in PAX-games. Basically you just flood a load of trains onto a loop that connects to several stations at primary industries. Trains simply want to go through the first station because this is the easiest route to their next stop. When a station is full the train is forced to continue on the loop and try again at the next station. If a train does not get through a station at all it will end up in the overflow depot, controlled by a simple timer as seen in every SRNW. When a train does make it through a station it will go to a waypoint, where a simple conditional order filters out trains that are more than 90% loaded and trains that are less than 90% loaded. Trains that are less than 90% loaded will go for another loop around the pickup stations. Those that are more than 90% loaded are considered full and are allowed to unload at the terminal. If a train enters the terminal it will allow a train waiting at the ML-side of the terminal to enter the station and pick up a load, exactly like a dummy would in a conventional SRNW setup. The kind of SRNW used for the sub-loop is highly inefficient and not suitable for the top-level network but it is fine for low throughput sub-networks and easy to set up.

Below you can see the mechanism where the feeders trigger ML trains. Basically I just stole it from the train counters. It converts a red signal of any length into a short green signal making it perfectly suitable for our purpose.


Apart from the sub-loops the rest of the SRNW is the same as any SRNW. Another pro when using this technique is that you probably have less pickup stations, making your sidelines more manegable and easier to expand into multiple lines, which you’re likely to want with the new high capacity stations.

Here you can get the savegame I took the images in this article from, it has a single working selfregulating terminal.

5 comments so far

  1. G.J. van Trier August 16, 2010 02:10

    In your explanation you talk about using a way-point in combination with conditional orders in order to send trains back if they aren’t 85%+ loaded. Yet in your example you use a 1-tile station.

    Trains act different to way-points and 1-tile-stations tho. If train A visits station A and he isn’t full after he visits a way-point the train won’t stop on station A again to load but just drive through it: Resulting in trains that have the potential to get stuck in this loop for several rounds.

    http://wiki.openttdcoop.org/images/8/86/Srnw2v2.sav

    Take a look at this example (the above save-game edited) in this game there are 3 trains that use the way-point (which just ignore the wood-station) and 1 train that uses the 1-tile station (which does load on the wood-station).

    For this example I’ve disabled all other stations in order to force the way-point trains to visit the same wood-station in order to make this example more clear.

  2. G.J. van Trier August 16, 2010 02:21

    For people who are new to openttd (like me): don’t use a way-point for these kind of tracks, use the 1-tile station instead (It seems what is causing this behaviour is that a train departing from station A needs to visit a 2nd station (or unload at the same station?) before it will accept goods from station A again).

    Now a question which probably is easy but looks puzzling to this openttd-newby: why are there exit signals and path signals in this example? Are the path signals there in order to give that line a higher penalty? ( look at me, using words I’ve only just read about and don’t actually understand ;-D )

  3. V453000 August 16, 2010 08:43

    Although the savegame is broken (or at least I cant load it), I would assume that you forgot to put there an order with “go via” – instead, you left there “go non-stop via” … differences between waypoints and stations are none in this matter as far as I know.

    The backwards PBS is a penalty indeed. It forces trains into the station if it is empty.
    The 2way signal is to make trains never join the station that is already occupied. – That works based on “twoway EOL” (in .cfg as yapf.rail_firstred_twoway_eol) – if the first signal on a choice is 2way, and is red, the train will try to choose any other path. That is one of the most important things in SRNW because that way you can spread the trains just as you want, otherwise they would most likely go only to one station πŸ˜‰

  4. G.J. van Trier August 16, 2010 11:46

    Screen-shot showing train orders and track:
    http://wiki.openttdcoop.org/images/3/31/Screenshot_waypoint_vs_1tile_station.png

    – The rail in Trendham woods is broken up to force all trains through that station (because it produces the least amount of wood and you need trains <85% load to visit the same station again in order for this experiment to work).
    – Added a way-point next to the "check if full" 1 tile station.
    – The 3 trains visiting the way-point don't load a 2nd time at Trendham woods if they are <85% the first time.
    – The 1 train visiting the 1 tile station loads every time.
    – Orders are identical except for order #1's destination.

    Check it for yourself it are only small adjustments.

  5. V453000 August 16, 2010 16:16

    I think I dont understand what is the issue anymore πŸ™‚ Feel free to contact me on the IRC πŸ˜› … blog isnt the best place for discussions πŸ™‚

Leave a comment

Please be polite and on topic. Your email-address will never be published.