NIMBY Rails

NIMBY Rails

60 ratings
NIMBY 1.5 line and timetable guide
By adlet
This guide describes key new features of NIMBY 1.5 related to creating and managing timetables. This guide has been updated to incorporate functionality through Beta version 1.5.39.
4
   
Award
Favorite
Favorited
Unfavorite
1.5 Introduction - Lines, orders, runs and timetables (part 1)
This guide is about organizing lines in NIMBY 1.16. It should be read in conjunction with the 1.16 timetable guide.

We will first define key terms relevant to setting up lines in NIMBY. These are lines, line services, schedules, order lists, shifts, orders, and runs.
  • Lines. Lines are defined and managed under [Lines], shortcut [F3], tab "Stops".


    A line in NIMBY is a defined sequence of stations. It is neither a train service as you can see in a published timetable, nor a physical stretch of track. It has elements of both. Trains in NIMBY always operate on a specific line and following orders in an order list included in a specific shift, but there can be multiple ways a train can run a particular line.

    Trains may enter and/or exit the line at other than the first or the last station. This is done through Orders, see below.

    A line can visit the same stations and platforms any number of times,

    You can also define multiple versions of a line, called "line services". Line services allow to change multiple aspects of running on a line:

    • Exclude one or multiple stations at the front or at the end of a line (a truncated line)
    • Skip stops or change stop time to zero for various stations over the course of the line (an express line)
    • Skip stops such that the resulting line takes a completely different track course between start and destination
    • Defined stop times, travel speeds and preferred platforms at stations
    • Leave only one station in non-passenger (technical) service (layover stop)
    • Change service type between passenger and technical (forwarding/deadhead runs)
    • Add tags to direct line through alternative tracks or to track stats
    • Choose whether the line service is displayed in the map
    • Change ticket prices and line color

    Note this guide refers to "stations" throughout. In NIMBY a station can have multiple platforms, and operation on a line is really defined by reference to platforms, not stations. You can certainly have a line circling through 25 platforms of the same station, though it may not be very practical as no one will ride:).

    Lines in NIMBY are not closed into a loop, they have a starting station and an ending station. Although you can have a train service "looping" through the entire line, i.e. running it repeatedly (with return to the first station), there can be multiple different train services utilizing a line, some of which may simply go from one station to another without forming a closed loop. There can be one-station lines as well, these are for parking trains (including in depots). Most of the time though the lines are defined such that the last station is close to the first station, and may even be a different platform of the first station.

    For a NIMBY train to operate any line, it needs an order from a player. For purposes of timetables and operations, a "line service" is really a separate line. It is just simply grouped with the "parent" line in the list of lines, because it inherits the core list of stations from the parent, and may also inherit stop times, speeds, ticket prices and other attributes. It makes it easier to manage similar lines that operate through the same core sequence of stations.

    We will refer to "lines" throughout this guide, but these references can mean also each individual line service.

  • Orders. Orders are created and managed under [Trains], shortcut [F4], tab "Orders".

    An order is an instruction from a player (or automatic from NIMBY) for a train to run on a specific line (or one of its line services) starting at a certain time (or no later than a certain time). An order can be for one of the following: (1) an entire line once, (2) a part of a line from any station to any other station once, (3) an entire line multiple times, or (4) from any station to any other station on the line, running the entire line multiple times in between. The feature of order types (3) and (4) that allows them to run the line multiple times is called "looping".


    You can operate any number of trains in Auto-run mode, with orders generated by NIMBY. This will always be orders type (3) which will be for 24x7 operation. You can create any type of order for any duration of time manually. See a screen shot of an Auto run order on the left.

    Below are illustrations for each type of manual order.

    If the line description is short, you can see the type of order in the list of orders, as in the screenshot on the left where I modified the line KOS T6 description to fit it into the field. My line descriptions though are rarely that short...

    Detailed notes on timetables will be in the Timetable section, but for now, just a few notes on how orders operate.

    Whenever the train reaches the last station on the line, it will return to the first station if the order is not complete. This is the case for order types (3) and (4) as they are set to run the line multiple times. But it will also apply for orders type (2), if the end station of the order is located earlier on the line than the first station.

    For order types (3) and (4), the number of times the train operates the entire line depends on how much time the order has until the next order is effective.

    The train will stay and wait at the last station with "Custom duration wait in this stop" box checked, leaving it with just enough time to complete the order and start the next order on time. This wait is called "padding wait". For order types (3) and (4), this padding wait will absorb any spare time that would not be enough to complete another loop through the entire line until the next order's time. We will discuss padding waits more in Lines (part 2).

    For any order type, if there is not enough time to run it entirely until the next order, it will be skipped. See example of a skipped order on the left.

    There are three ways to define the time for an order - by reference to the exact time of arrival to the first station in the order, the exact time of departure from the first station in the order, or the latest time by which the train should arrive to the first station in the order. These are illustrated in the screenshot on the left. IMPORTANT. There cannot be two consecutive "Arrive no later than" orders - the second one will be skipped.

    For trains to execute orders, orders need to convert into runs.
Introduction (part 2)
  • Runs. Runs cannot be entered or changed by players directly. They are an automatic result of placing orders. Relevant runs can be seen in [Trains] tab [Orders], in a station window, tab [Platforms], and in [Lines] tab [Timetable]. Each box/line/time is a run.

    A run is a single instance of a train operating any stretch of a line (which can be the entire line or a portion of a line). A run will never go past the end of the line. NIMBY does not like very short runs (less than 5 minutes) and may often "pad" them to be a minimum of 5 minutes by increasing stop time on one of the stations (or waypoints). This is called "padding wait".


    Each order can create zero, one, two or multiple runs. Zero runs will result for any order type if there is not enough time from the time of the order to the time of the next order. Such orders will be marked with a warning as seen on the left. Zero runs will also result from the second of the two consecutive "Arrive no later than" orders.


    Orders type (1) can create just one run. However, orders type (2) can create either one or two runs - see illustration on the left. A run will never go past the end of the line. So if the order is from a later station on the line to an earlier station, it will be split into two runs. Each of these runs can be separately padded if it is less than 5 minutes.

    Order types (3) and (4) can create one or more runs, depending on how many full loops through the entire line a train can make until the next order time is on.

    IMPORTANT. The number of runs for any order type can change automatically with pretty much any changes in the game that may affect a particular line. For example, if you add or delete a stop or even a waypoint, change a stop time, change speed for any stop on a line, pick a different main platform for a stop, check or uncheck "Custom duration wait at this stop" box for any station. Some less obvious changes that may trigger a change in the number of runs may include adding a speed limit to a track, moving the track (i.e. back to blueprint, move, build again), adding a piece of track which creates a shorter route for a line, deleting a piece of track (and the line will run a longer route), or even moving a piece of track that the line does not use, but it is locked to a piece of track used by the line. Or if you decide to replace the train with a faster/slower one and copy/paste all orders.

    Anything that changes the amount of time a train takes to run a line - or even any portion of a line - can change the number of runs for an order. (As some orders run a portion of a line, and your change may impact that portion while the total line run time may remain the same e.g. if it is defined as custom duration).

    Changes like this, of even a few seconds, can severely disrupt the timetable for many lines by putting a train on the affected line on a long unplanned padding wait stop and blocking any oncoming other trains. NIMBY currently does not warn you that the number of runs has changed, so you need to be very careful and check relevant trains' timetables whenever making changes.

  • Timetable. A timetable for a train is simply a list of all its runs for a week. It can be seen in [Trains] tab [Orders]. A timetable for a line can be seen in [Lines] tab [Timetable]. A timetable for all of a station's platforms can be seen in the station window, tab [Platforms]. As you can see from the above, to create and manage a timetable you need to place orders that would result in the desired runs.

    Creating a good timetable, especially for city and commuter lines with frequent services, can be very complicated. NIMBY has a number of good tools to help with that, but ultimately this is something you have to design yourself. You may also want to use other tools to do this, such as Excel or third party train scheduling software.

    The good news is that it can also be very easy to create a simple timetable of simple manual orders. For example, it takes no more than 5 minutes to create a timetable for a dozen trains on a particular line to run from 6:00 to 23:00 on a fixed interval, which we will illustrate in a later section. NIMBY also has a very simple Auto-run protocol to create automatic orders operating 24x7 on a good timing cycle.
Lines (part 1) - compare to 1.4, lines are not circles
We will start with lines. Although it may not be apparent, there are actually two types of lines in NIMBY, user defined and automatic (glue) lines. Both exist in 1.4 and in 1.5, but work differently. It's important to understand the differences for effective route and timetable planning in 1.5.

Lines in 1.4

User defined lines
User defined lines in 1.4 are those lines you define and manage when you press [F3/Lines]. Intuitively I have always thought of them as being complete circles. Perhaps this is because NIMBY automatically completes the route of the line from the last station to the first one, and a closed circle route shows on the map when you select a line. Below is a screenshot of a short electric trolleybus (ETB) route #6 in the city of Kostroma in Russia.


User defined lines run at user defined speeds and make designated stops with defined stop times. The user defined speed is the maximum speed the train will have on the relevant segment, and the stop time in 1.4 is the minimum stop time. It can be extended to maintain the defined interval or to allow all passengers to board, but will never be reduced. See the red circles in the screenshot.

Lines in 1.4 can be operated in either Full mode (aka revenue or passenger service) or as Empty trains (aka non-revenue service). Again, see the red circles in the screenshot.


Once a train is on the line, it will run the entire line front to end and back to the first station, until reassigned. You can send a train to start running a line beginning at any station. However, you cannot define at what station it will exit the line. Instead, in [F4/Trains] you define the time when another order is effective for the train, to go to another line or into a depot. The new order may become effective while the train has passengers on board riding to their destination, who then end up never getting there. See the screenshot of a train's orders in 1.4 - a train that runs every day on line #6 and then leaves for the depot.

Glue lines
Automatic lines in 1.4 (that W+W often calls glue lines) are not explicitly visible in the game. They are just paths trains follow to get from a depot to the first station when entering a line, or at the time of the new order from a random point on the line to the depot or the first station of the next line. Glue lines in 1.4 run at full speed permitted by the track and the train and make no stops. They can carry passengers, although typically not to places of their choice:). Users have indirect ability to influence the paths taken, by using "No way" signals with tags.

Lines in 1.5

User defined lines

A line is a line, not a circle

User defined lines in 1.5 are also defined and managed under [F3/Lines]. However, it is important to think about them as lines that have a beginning (first station) and an end (last station), and not as circles. This is a very important distinction from 1.4 and from how we think intuitively about lines, even though in 1.5 lines look exactly as in 1.4, with a full circle route on the map.

Example. Say line #1 is defined like so:
A>B1>C1>D1>E>D2>C2>B2>(back to A)
Stations A and E are termini, and stations B, C and D are in-between stations, each with one platform in each direction.

Intuitively you think line #1 is A to E (and back to A). However, in 1.5 you need to think of line #1 as going from the first station A to the last station B2, without loop back to A. The train's run back from B2 to A is actually a different line in 1.5, an automatic glue line. Line #1 itself ends at B2, one station away from the starting station A, and thus does not bring the train back to where it started. (There is a good reason for that, see discussion under Glue lines in the next page.)

Look at a slightly different line #2:
A1>B1>C1>D1>E>D2>C2>B2>A2>(back to A1)
Here there are two platforms at terminus A, one for boarding (A1) and one for alighting (A2). This line starts at A1 and ends at A2 and thus it does bring the train back to station A. Again, the path from A2 to A1 is an automatic glue line.
Lines (part 2) - padding wait
Padding wait and setting line start and end stations

This brings a second important nuance of how lines in 1.5 differ from 1.4. In 1.4, it did not matter what station you define as the first station on the line. In 1.5, the choice of the first (and therefore the last) station can be important at least for the following reasons.
  • A good choice can reduce the number of train orders for the timetable. More on this and practical guidance later...
  • There may be spare time between orders - from the end of last run on one order to the start of the first run on the next order (which can be for the same line, another line, or to the depot). This time is called "padding wait". If you have checked the box "Custom duration wait at this stop" for any station, the padding wait will occur at the last of these stations with the checked box. Otherwise, it will occur at the last station on the line.
  • NIMBY does not handle well train runs less than 5 minutes. It can automatically add padding time to one of the stations to make the run length at least 5 minutes. This may not be desirable. A short line is typically a connector from or to a longer line. Sometimes the solution can be to change the first station of the longer line to allow lengthening the connector line. More on this in "Transitions from one line to another" below.
  • No run in NIMBY continues past the last station on the line. If an order calls for it, a new run will be created. Sometimes you may not want to have an order split into more runs. Then it may be desirable to pick the first and the last station to avoid this.
Let’s look at the two example lines in the previous section. Say no station has "Custom duration wait" box checked.

A>B1>C1>D1>E>D2>C2>B2>(back to A)
On Line #1, spare time between runs will be spent at station B2. If station B2 is just a pass-through station and the padding wait is long, the train will block traffic on the track. You can solve this situation in three ways.
  1. Shift stations up or down to make a more suitable station be the last. For example, if you make B1 the first stop, A will become the last:

    Now the trains will spend padding wait at terminal A. To make this change easily, in the [F3/Lines] interface find the arrow buttons below the list of stops. Press Shift and the arrows will change as shown in the screenshot on the left. Click the Up arrow once, and all stops will shift one up. The previous stop #2 will now be stop #1, and the previous stop #1 will be the last one.

  2. Add a second platform at terminal A, converting line #1 into line #2 as in the next example. You can also add a third platform (as in many subway, commuter train and bus lines).

  3. Check box "Custom duration wait at this stop" for one station. For example, if you check box for station A and no other station, the padding wait will happen at A, even though it's the first station on the line.
A1>B1>C1>D1>E>D2>C2>B2>A2>(back to A1)
On line #2, padding wait will be at platform A2 unless another station has "Custom duration wait at this stop" box checked.

If you want to have trains spend padding wait at the terminal E, you can similarly either
  1. Change your line to end in E:
    D2>C2>B2>A2>A1>B1>C1>D1>E>(back to D2)
    Just press Shift and keep clicking the Up (or Down) arrow as above until station D2 is stop #1. Now trains will spend any spare time at E. Or...

  2. Check the box "Custom duration wait at this stop" for station E and ensure it is the last station where this box is checked.
What if you want to have occasional trains spend spare time (padding wait) at both ends of the line (A1/A2 and E)? Possible but not as simple. This is covered in Timetables below.

Sometimes a padding wait is desired, e.g. when you want a longer wait at a station before another run. But you may also end up with an undesired padding wait. For example, you have designed a good tight working timetable for a train, where a train is cycling through line #1 during the day before it hits line #1-D to head to a depot in the evening. Later, you add a speed limit to a track section used by line #1. Now it takes the train 7 seconds longer to run the line. There is no longer enough time to make the last run on line #1 before the run on line #1-D which will still happen on time. This means the train will have an unplanned padding wait almost as long as an entire run on line #1 - sitting at a station determined per the rules above.


EDIT. An undesired padding wait can be easily eliminated by using the "Tighten order time" button in the "Edit orders" interface. See the screenshot on the left. Note this is a one time action and not an automatic setting. You should also then tighten all subsequent orders of the same day.

We will address managing padding wait under Timetables below.
Lines (part 3) - partial line runs, stops, speeds, glue lines
Operating line from start to end vs. partial length

In 1.5, once a train is assigned to a line, by default it will run the entire line. Note this means from the first station to the last station, no automatic return back to the first station. If our line is A1>B1>C1>D1>E>D2>C2>B2>A2>(back to A1), this means a run from A1 to A2.


You can also specify a different entry station and a different exit station when setting up an order for a train. For example, you can define the run to be from C1 to A2, from A1 to D1, or from D1 to B2. You can even define a one-station run, e.g. entrance at the First line stop (default), exit at A1 (which is the actual first stop on the line). This will simply bring the train to A1 from wherever it is located, without any intermediate stops.

Unlike 1.4, where a train will switch to a new order when its designated time occurs, in 1.5 trains will complete the defined run even if they are late and it's time for switching to the next order. So where in 1.4 you cannot control the exit point of the line, in 1.5 you can.
  • A padding wait may occur during any run on a line, including partial line. Say your line has "Custom duration wait at this stop" box checked only at the first station on the line. However, you have a run on a part of the line that does not include the first station. The padding wait on this run will happen on the last station of this run.
EDIT. To run a partial line once you can define an order. But to run a partial line in a looping cycle, you need to create a different line service. See discussion under Lines (part 7).

Stops and speeds


Same as in 1.4, user defined lines run at user defined speeds and make designated stops with defined stop times (see the blue circle in the screenshot on the left). However, defined stop times are only for when the train operates on schedule. If the train is delayed, the stop time will be reduced (5 seconds is minimum stop) to catch up. If the train is ahead of the schedule, the stop time will be increased. The train will try to leave the station at precisely the time in the timetable for that station, if at all possible. Similarly, the train will also accelerate above user defined speed or slow down to catch up to the timetable.

Because of this, the best practice is to set the line speed below the maximum for the track and the train, so trains can reduce delays by running faster.

Passenger mode and Technical Maneuvers

Lines in 1.5 can also be operated in either Full mode (now called Passenger service) or as Empty trains (now called Technical maneuvers). See the red circle in the above screenshot. "Technical maneuver" lines serve two purposes - (a) depots (will be covered later), or (b) non-passenger runs on regular lines - e.g. to test them out.

IMPORTANT: If you run a non-depot line as Technical maneuvers, make sure to set Stop behavior to Wait on platforms (see the red circle in the screenshot above). Otherwise trains will despawn at each stop for the duration of the stop, and respawn later. This can adversely affect signals and create collisions and traffic disruptions.

Glue lines
Same as in 1.4, most automatic (glue) lines in 1.5 are not explicitly visible in the game. It is now important to understand how they work though, because they are a critical part of running trains. The only visible glue lines are those that complete a user-defined line into a circle. It is a glue line that takes a train from the last station of a line back to the first station, and of course you can see it when you go to [F3/Lines].

Glue lines are automatically created paths that trains follow to get from the last station of the previous run to the first station of the next run, which may or may not be on the same line. This includes runs to or from depots as well, because depots in 1.5 represent a combination of a station and a one-station line (depot line, more on this in the Depots section later).

Example. Line #1 runs between A and E, and is defined in NIMBY as
B1>C1>D1>E>D2>C2>B2>A>(back to B1)

Line #3 runs between A and M via K and L, and is similarly defined as
K1>L1>M>L2>K2>A>(back to K1)

We want our train to make two runs on Line #1, wait for 10 minutes (padding wait), and then make one run on Line #3. We will place three manual orders for this train in [F4/Trains/Timetables]:
  1. One order for line #1. This order will take the train from B1 to A.
  2. One more order for line #1. The train again goes from B1 to A. However, the previous order ended at A. NIMBY will auto-generate a glue run to take the train from A to B1. (You can make a cycling order covering both line #1 runs, but more on this in Timetables).
  3. One order for line #3 that starts 10 minutes after the end of the previous order. The train goes from K1 to A. Again, since the previous order ended at A, NIMBY will auto-generate a glue run to take the train from A to K1. The train will spend 10 minutes padding wait at A unless another station has been designated for the padding wait.
You can have trains join or leave a line at any station. So you can change how the lines are defined in the above example. For example, you can have both lines #1 and #3 start at A and finish at B2 and K2 respectively. Or you could have line #1 start at A and line #3 start at K1.

When several (up to five) sequential stops are at the same station (whether in one or multiple runs), at any of the platforms (main or alternative) defined for the first run's stop, when the train arrives at this station, the multiple stops will merge. The total stop time will be the sum of all stop times. So in this case if stops belong to different orders, there is no glue run between orders.

Glue lines carry passengers, as long as both the current line and the next line are in Passenger service. This is not new, but now that passengers know the train timetable, they will plan to stay on the train when it circles through glue lines to reach their destination. Previously they could only really plan their trips through transfers from train to train. In 1.5, if a passenger plans to go from C to L in the above example, he/she would board the train at C2 and stay on it to arrive at L1.

Glue line runs still make no stops and run at full permitted speed (unless the next run is on the same line, in which case the line speed applies).
Lines (part 4) - transition between lines
Transitions from one line to another

There are three ways a train can go from one line to another in 1.5. Two of them can exist in two variants.
  1. With passengers on an automatic glue line, no intermediate stops
  2. With passengers on a defined connector (link) line. This connector line can be minimal (requiring glue lines) or overlapping (no glue lines). Stops are at your discretion.
  3. Without passengers on a defined connector (link) line. This connector line can be minimal (requiring glue lines) or overlapping (no glue lines). Stops are at your discretion.
In essence, when you connect two lines, you can choose to define how detailed the connection is and how it works, or you can leave it to NIMBY. NIMBY will fill out automatically anything you do not define yourself.


We will illustrate these methods using the example on the left, which shows three of the existing tram lines in the centre of the city of Odesa, Ukraine. The goal is to transition from the blue line #15 to the red line #28. There is no cross over where the lines intersect, so the connection has to follow the burgundy red line as shown in the screenshot. The connection starts from station 15-12 on line #15 and includes five stations (12-7 through 12-11) before ending at either station 28-7 or 28-8 on line #28 depending on the direction you take.

Our goal is to take our tram from station 15-1 (start of line #15) to station 28-15 (end of line #28), calling at all stops on both lines 15 and 28.

1 With passengers on an automatic line, no intermediate stops

We will need two orders as follows, and there will be one automatic (glue) line.
  1. Order for single trip on line 15 from 15-1 (or first station) to 15-12A. This is just like normal operation on line 15.
  2. Order for single trip on line 28 from 28-8A to 28-15. This is also just like normal operation on line 28.
Each order should generate one run. In-between these two runs, NIMBY will build a path from station 15-12A to station 28-8A. The tram will follow it without stops and at its own speed which may exceed the normal speed you may have on line 12 (where most of the link belongs to). Passengers will stay on the tram provided both lines 15 and 28 are in passenger service.

All transitions between lines in 1.4 ran on automatic glue lines, as there was no timetable. They would happen at defined times, from wherever the train was at the moment, to a designated first station on the next line.

2A With passengers on a defined link line, minimal variant

We want to call at all stops from 12-7A through 12-11A. Since all stops are on line 12, we can simply "borrow" a portion of line 12 as our link line. We will define three orders as follows. Each order should generate one run, and there will be two glue paths.
  1. Order for single trip on line 15 from 15-1 (or first station) to 15-12A. This is just like normal operation on line 15.
  2. Order for single trip on line 12 from 12-7A to 12-11A. This becomes the same as a part of the normal operation on line 12.
  3. Order for single trip on line 28 from 28-8A to 28-15. This is also like normal operation on line 28.
NIMBY will build glue line paths from station 15-12A to 12-7A, and from 12-11A to 28-8A. As all glue lines, these may be run at higher speeds.

2B With passengers on a defined link line, overlapping variant

Again, we want to call at all stops from 12-7A through 12-11A. We want to ensure the tram does not run at a higher speed than desired throughout the connection, so want to control its entire path from a station on line 15 to a station on line 28. In other words, there will be no glue runs here. There may be multiple ways to define the orders, for example, as below.
  1. Order for a single trip on line 15 from 15-1 (or first station) to 15-12A. This is just normal operation on line 15.
  2. Order for a single trip on a special defined line 15-28link, from 15-12A to 28-9A. This line should be in Passenger service. We cannot use line 12 here because it does not pass through station 15-12A nor 28-9A.
  3. Order for a single trip on line 28 from 28-9A to 28-15. This is also normal operation on line 28.
Since the second order starts in the same place where the first order ends, and ends where the third order starts, no glue runs are needed, and speed is controlled the entire length of the connection. The stop times from two orders at each of 15-12A and 28-9A will be added for a longer stop time. Alternatively, you can define stop times at 15-12A and 28-9A to be zeros for line 15-28link.

In concept you can use any stations on lines 15 and 28 as points of transition to or from line 15-28link. However, you do not want to create a very short run (<5 minutes) as NIMBY may create a padding wait to increase it to 5 minutes. For example, if your first order is from 15-1 to 15-2A (with the second order from 15-2A to 28-9A), the first one will likely be ~1 minute. So your tram may then sit for 4 minutes at 15-2A before continuing.

3A Without passengers on a defined link line, minimal variant

We will need three orders, similar to method 2A. The first and the third orders are the same as there. For the second order, we will need a special defined line 15-28link. This line needs to be in Technical maneuvers, and Stop behavior needs to be Wait on platforms. EDIT. Alternatively, we can create a line service for line 12 that would be set as Technical maneuvers.

If we decide to create line 15-28link, it just needs one stop, e.g. 12-7A or 12-11A, with stop time set to zero. You can define more stops if you prefer. Of course you can also make stops if you choose, passengers won't board.

EDIT. If we decide to create a line service for line 12, the only variation you really need is the service level (Technical maneuvers). The tram will stop at in-between stations though (without letting passengers on board), unless you also change the relevant stop duration to zeros. You can indicate entry and exit point at order level, and it can even be the same one station (e.g. 12-7A).

Similar to method 2A, NIMBY will build two glue lines, from 15-12A to 12-7A, and from 12-11A to 28-8A, which may be run at higher speeds.

3B Without passengers on a defined link line, overlapping variant

We will need three orders, similar to method 2B. Again, the first and the third orders are the same as there. The second order is also the same, but line 15-28link should be in Technical maneuvers, Stop behavior = Wait on platforms. You just need the two stops 15-12A and 28-9A for this line, and stop times can be set to zero. All other points about method 2B also apply here.

Other

If it's impractical to overlap the link line with the regular lines at a station, you can also use a waypoint near a station on a regular line. NIMBY will add a short glue path, but it should not affect the speed control much.
Lines (part 5) - avoid short transition lines
When transition between lines is very short

As noted above, NIMBY requires minimum run time of 5 minutes and may automatically add a padding wait time at a station to achieve it. If you have a link line used to take trains from one regular line (say line #1) to another line or a depot line (say to line #2), and this link line is less than 5 minutes, the train may end up sitting in an undesired place for some of these 5 minutes. To create a longer link line, you can start it from an earlier station on line #1. But if the link already starts from the first station on that line, this solution does not work. What you can do then is to change the first station of line #1. For example, you can change it to be the opposite terminus, or just a station at the end of that line.

Say your line #1 is
A>B1>C1>D1>E>D2>C2>B2>(back to A)

Your line #2 starts at J which is on a branch that connects to station A. There is station F between A and J.
J>K1>L1>M>L2>K2>(back to J)

You want your train make 5 runs on line #1 and then 3 runs on line #2. And you want it to make a stop at station F.

You need a connector line #1-2link, as neither line #1 nor line #2 include station F. You can define line #1-2link as follows:
F>
However, this line is less than 5 minutes – unless you make a 5-minute stop at F. Even if you set just a 30-second stop at F for this line, NIMBY will likely add a padding time and the train will spend up to 5 minutes at F, possibly blocking traffic. Or the order for the connector link may be ignored completely, if it does not fit between the already existing orders for lines #1 and #2. Further, since your line #1 ends at B2, your stop at station A will also be a separate run, and also likely less than 5 minutes. So another padding wait time may be added. Since the order for line #1 is likely looping, what will happen is an entire run from that order will disappear, and be replaced with a long padding wait somewhere on line #1.

Alternatively, you can try to define line #1-2 link as follows:
A>F>(back to A)
However, if the run time between A and F is just two minutes, this is still not enough and NIMBY may create an automatic padding wait at either A or F, or again, drop an entire run from the order for line #1.

To solve this situation, a solution is to change the starting station on line #1 to e.g. B2 or E. Then the final run on line #1 will start at B2 (or E), and will hopefully exceed 5 minutes.


Here is an example illustrating what happens with very short runs. If you try to set the run time for either of the two short runs at less than five minutes, single trip orders will be skipped, and a full run will disappear from looping orders, creating a large padding wait somewhere.
Lines (part 6) - alternative (secondary) platforms
Alternative platforms

One other important aspect of 1.5 that relates to lines and timetables is introduction of alternative platforms at stations.

In 1.4, for any station on a line with more than one platform, a specific platform had to be defined where the train would stop. If this platform was occupied, the train would wait on approach.


In 1.5, alternative stop platforms were introduced. In addition to the platform where the train would stop by default ("main platform"), it is now possible to indicate one or multiple alternatives. For lines in Passenger service, if the main platform is occupied but one of the alternatives is free, the train would head there. The alternative platforms would be used in the order they were picked up. However, in the station popup window under [F3/Lines], they would be listed alphabetically. See the screenshot on the left.

The following rules must be followed to have effectively working alternative platforms:
  • All platforms must belong to one station
  • There needs to be one path signal at the approach to the station, from which the main and each alternative platform can be accessed, and no balises between this signal and any of the platforms
  • Each platform should have an entrance path from the entrance signal that does not go through any other platform
  • Each platform should have an exit path from the station that does not go through any other platform
  • There should be a path signal at the exit from each platform

This is the same functionality that is used for depots with multiple sidings (see discussion under Depots below), and the same rules apply. However, there is one important difference in how the alternative platforms operate for lines in Passenger service vs. in Technical Maneuvers (i.e. for depots). With Passenger service, the main platform is used by default, and alternative platforms are only used if the main one is occupied. With Technical maneuvers (depots), the main platform is used last. This is because it can be set to operate as a black hole, which would obviate the use of alternative platforms.

IMPORTANT. A train is assigned to the next platform that is currently available. If another train has been previously assigned to the same platform but has not yet reached it, duplicate assignments will happen for the same platform. Thus, the later train may get blocked and potentially block traffic behind it, without being able to actually reach the platform.

Introduction of alternative platforms made possible various train operations:
  • A train can stop at any platform at a station (if included in the list of alternative platforms for the line). This allows rational use of platforms in busy stations with platforms shared between various lines.
  • A train can stop at any track/stall in a layover area. This allows to minimize the number of spots in layover areas by having them shared between lines.
  • A train running late on a line can pass a train on the same line in front of it by choosing an alternative platform and reducing its stop time. Because delays may occur, it is a good practice to always have at least one station on the line with defined alternative platform(s).

  • A train running a shorter version of a line (as a separate line service) can use a different platform (e.g. one where turnaround is possible) than the train running through the normal end of the line.
  • It also made realistic depots possible, with trains spreading across multiple depot tracks. More on this in the depot section below.
  • There can be other corner cases where alternative platforms can be used. For example, you can have a track that is used for a passenger line during the day (e.g. northbound) and as a parking siding during the night. The southbound track is used for passenger service in both directions during the night when there are fewer trains. In this case, set up platforms on both tracks, and add the station to the passenger line with stop times of zero.
NEW: Lines (part 7) - line services
Line services

Line services were introduced in 1.5.35 (and enhanced in 1.5.38) to allow substantial additional flexibility in how operations are managed. Prior to 1.5.35, a line had a defined set of stops with respective stop times and speeds for each section. Effectively, a line was a way to travel through a physical section of the track covered by the line boundaries. The only possible variations were (1) the potential use of alternative platforms at stations, in case the main platform was occupied, and (2) ability to enter and exit a line at other than the first and the last stations, on a single run (or in the first or the last run of a looping order).

This was not convenient for a number of reasons. Many real-life lines operate variations of the main service. These variations can be truncated lines, express lines (skipping stations), or simply random variations (e.g. longer stop times, longer layover times at a terminus, services which stop at key stations but alternate more remote stations, etc.). Although you could create separate lines for each variation, they would clutter the line list. Also, if you needed to change how the line runs (e.g. higher or lower speed at a particular place or a longer or a shorter stop), you would need to replicate the edits manually to all variations.

The line service functionality solves for all of these challenges. Now a line is simply a sequence of physical stops. Although the "main" service still has defined stops, stop times and speeds, all of these parameters can be changed for any number of line services.


To set up a new line service for a line, select the line and click "New line service button" as in the screenshot.

The new line service has a suffix appended to the main line name. It inherits all settings (stops, timings, etc.) from the "parent" line, unless you elect to change them. Any settings later changed for the parent will thus replicate for the line service, unless you changed this setting to something different for this specific line service.

The following line settings can be changed if desired for line services. See the screenshot below.
  • Ticket prices (base and per km)

  • Color

  • Service level. This is useful as you can operate the same line as either passenger service or empty (Technical maneuvers).

  • Tags. The line service inherits all tags of the parent line. You can also define additional tags. This can be helpful e.g. for a truncated service if you want to turn it around through a specific track that is not picked up automatically.

  • Any timing settings - cruise speed, default stop time, line duration, where extra stops are made, etc.

  • Autorun settings - start time, intervals, etc.

  • Arguably the most important setting - ability to skip any number of stops. Note no stops can be added that are not part of the parent line. Note when you skip stops, the remaining stops are renumbered, so the stop numbers on a service always go sequentially from 1 up.

  • For each stop, you can change the parent line's settings - e.g. stop time, the main platform, whether alternative platforms are used (and what they are), whether the stop has "custom duration wait" box checked, and also set custom speed or custom time for arrival from the previous station


Use cases

There are many use cases for line services. Some are obvious and others less so. Arguably line services, combined with the ability to use the same platform more than once, have immediately become one of the most useful features in NIMBY. In addition to all use cases, of course, line services allow to significantly unclutter the list of lines.
  • Truncated line service. Skip a number of stations at the end of a line. Note the line service will redirect itself to the shortest route through any remaining non-skipped stations.

  • Truncated line service with a central platform for turning short run trains. Skip a number of stations at the end of the line. In addition, pick a different main platform for the station that ends the short run.

  • Extended line service. Well, in a way - since you cannot add stations (or even waypoints) to a line via a line service. But make the extended service the "parent" line, and then the regular (shorter) service can be a line service for it.

  • Express line service. Skip a number of stations throughout the line.

  • Express line service with dedicated platforms for express trains. Skip a number of stations throughout the line. In addition, pick different main platforms for the express train stops.

  • Alternating service - trains stop at several key stations and otherwise stop at every other station. Define the parent line to include ALL stations - even if no train ever stops at every station. Then define two line services - one for each of the two varieties of the service, skipping in each case relevant stations.

  • Fork service. A line that goes from A to B, and from there some trains follow to C and other trains to D. This can be combined into one line as follows: A->B->C->B->D->B->(back to A). Define two line services - one will exclude the C->B segment, and the other the D->B segment. In addition, you can designate the two line services to use different main platforms at B depending on whether the train will proceed to (or arrives from) C or D.

  • Letting express trains go. Some commuter trains sit at certain stations for up to 10 minutes to let scheduled express or intercity trains go by. Other commuter trains only stop there for a minute or two because there are no express or intercity trains scheduled at the time. Also,

  • Haphazard service. Some cities' commuter services have trains that skip certain stations but not others, in a seemingly haphazard way. It's not an express service, more like perhaps a lack of demand at a particular station at a particular time of the day.

  • Entering or exiting service. When a different platform is used for a train coming from a depot or going into a depot, this can be defined as a separate line service with its own main platform. Note this will require a separate order for the timetable.

  • Depot runs - even if they deviate from the main line. Similar to a fork service, simply add any additional stops leading to and from the depot into the parent line. This will likely create a three-directional line. Then create a line service for the regular line operation, that would skip any stops leading to or from the depot. Create additional line services for the runs to or from the depot. Note you will need to place separate orders for runs on different line services.

  • Non-revenue runs. Runs without passengers along the same line, with stops that can be made or skipped as desired.

  • Depot operations. You can have multiple services for depot lines, each service e.g. for a particular track or tracks inside the depot. Trains from different lines can then use these line services to park where desired.
Depots (part 1) - three operating modes
We will now address differences in depots between 1.4 and 1.5.

Depots in 1.4


There is one type of depot in 1.4. You can think of it as a train repair pit, as it looks simply like in the screenshot to the left (this is a depot on a mod bus line). (When you create a depot in NIMBY, by default you will also see some buildings around it. You don't need buildings for the depot to operate and can simply delete them.)

The depot in 1.4 operates as a "black hole". Trains coming to the depot disappear into it, and the depot can accommodate any number of trains. When trains are called from the depot to a line, they emerge from the "black hole" and continue on their way. If a train that does not head to the depot gets on the depot track, it does not enter the depot and continues on.

Depots in 1.5

In 1.5, a depot is a combination of a station and a one-station line. The old depot repair pits built in 1.4 lose their special functionality and are replaced with regular track. Note this can change configuration of the adjacent track if your depot was set to "Keep straight", as regular track has no such option available.


The station for the 1.5 depot is just a regular station, no different from any other station. A line is also just a regular line, except it should only have one station on it, the station created to be the depot. If you create a station for use just as a depot, set its Area coverage to 0 (see the screenshot). Note this is not required, just helps by not assigning any nearby population to a station without passenger service.

In 1.5, you can operate a depot in three different ways, depending on the settings for the depot line and the track configuration.
  • Black hole depot, that works the same as the depot in 1.4, although it uses different infrastructure (a station and a line)
  • Fully built depot, that works similar to a real-life depot, and has a parking spot for each train stored there
  • Hybrid depot, which can have any number of parking spots for various trains, and will store all extra trains in a black hole
Black hole depot
To create a black hole depot, simply create a station that will be used as a black hole for incoming trains. This is just a regular station, with no special attributes. You can even use any existing station in passenger service as a black hole depot station, or just one platform in a multi-platform station.


Then create a new line that has just one station, this depot station. Ensure that you set appropriate settings for this line. An example black hole depot line and a depot station are in the screenshot on the left. Essential settings are in red circles. Here is the list:
  • Service level = Technical maneuvers
  • Stop behavior=Black hole main, wait secondary
  • The one station - Secondary plat signal = Blank
Fully built depot

To create a fully built depot, you need to do some serious track building and some serious space. The depot needs to have the number of platforms at least equal to the number of trains that can be stored inside at any time. All platforms should be connected naturally or via platform footprint extension into one station. See examples on the left and below.



The following rules should be followed for the depot to operate reliably:
  • All platforms must belong to one station
  • Each platform stores only one train
  • Each platform should have an entrance path from outside the depot that does not go through any other platform
  • Each platform should have an exit path out of the depot, not going through any other platform
  • There should be one path signal at the entrance into the depot, from which each platform can be accessed
  • There should be a path signal at the exit from each platform

Then create a new line that has just one station, this depot station. Ensure that you set appropriate settings for this line. An example settings are in the screenshot on the left. Essential settings are in red circles. Here is the list:
  • Service level = Technical maneuvers
  • Stop behavior=Wait on platforms
  • The one station - Secondary plat signal = filled
  • The one station - Secondary platforms - All platforms listed
Note as trains arrive, they will occupy secondary platforms in the same order you picked them up (skipping of course any that are already occupied). However they are listed in the station pop-up window alphabetically. The main platform will be occupied last.

A depot in 1.5 (a station + a line) is a virtual construct. The station of course is a real object, but you can create any number of depot lines (or line services) for the same physical depot station. For example, you can create a separate line service for the depot line for each group of platforms, to direct trams on different routes to different tracks within the depot.
Depots (part 2) - hybrid depots, going to/from depot
Hybrid depot
A hybrid depot is one where you have created a few sidings where trains will park, but there is also a black hole that will absorb any extra trains. Again, each parking stall is a platform, and all platforms should be connected via platform footprint extension into one station. A hybrid depot can look just like a fully built depot, but does not need a platform for each train that will park there.

The same rules should be followed for a hybrid depot as apply to a fully built depot.


Here is a screenshot of a hybrid depot. The following are the key settings circled in red, for a hybrid depot:
  • Service level = Technical maneuvers
  • Stop behavior=Black hole main, wait secondary
  • The one station - Secondary plat signal = filled
  • The one station - Secondary platforms - All platforms listed
Again, same as for a fully built depot, as trains arrive, they will occupy secondary platforms in the order you picked them up. Once all secondary platforms fill out, any extra trains will go to the main platform and disappear into it (despawn). They will re-spawn at the time they need to go on line.

Depot stop time
The default stop time for a depot does not really matter too much, as long as it's less than the shortest time a train may spend in the depot. Since it's possible a train may arrive late, shorter times are better. 10 seconds default value is just fine.

Heading to depot
There are three ways a train can go to depot in 1.5. Similar to transitions between lines, two of them have two variants.
  • Without passengers on an automatic glue line
  • With passengers to a station near depot on a defined line - in a minimal or an overlapping variant
  • Without passengers on a defined special line - in a minimal or an overlapping variant
To depot without passengers on an automatic line

This is the only method that existed in 1.4. To have your train go to depot without passengers in 1.5, you simply need a depot. In the train timetable, add an order for a train to go to the depot line. It will go there from wherever it is when the previous order is complete. A good setting for the depot line is Enter event = Arrive by a set time (some time after the previous order is complete). You do not have to be too precise. Make sure "Loop until next order" is unchecked. See a sample screenshot.
To depot with passengers on a user defined line

If your depot is not near the terminus and you want trains (likely trams) go to depot serving passengers en route, you need a line that will do this. This can be a special line just for the occasion. The screenshot on the left shows an example such line.

Or you can use a portion of a regular line if it includes the relevant stops, or define a line service. See the second screenshot below.


If your line #1 ends at terminus A, the depot is at X, and you want trains to stop at B, C and D on the way to the depot, create a line #1-LD (head from line into depot) defined as B>C>D>(back to B). You can also find an existing line that has stops B>C>D> in it (e.g. line #5).

Place an order for the train to go on line #1-LD (or line #5, order from B to D) at the end of the day. Then place an order for the train to go to the depot (i.e. on the one-station depot line).

Caution - if your line to the depot is just one station or very short (<5 minutes run time), NIMBY will likely add a padding wait to bring the run to a minimum of 5 minutes.

This method can be done in a minimal variant, leaving gaps between the lines from the previous and the current order, and from the current order and the depot station, which NIMBY will fill with glue paths. This is in the first screenshot above. Or you can aim to fill the gaps yourself and overlap the lines. The second screenshot above minimizes the gap by using a waypoint on the line that will bring the trams to the depot.

To depot without passengers on a special user defined line
You can also define a special line that goes to the depot without passengers. Create a line, for example, by using waypoints or by setting stop times to be zeros. You can define it in the same way as the line that carries passengers towards the depot, just with zero stop times. If you zero out both stop times in the above line in the screenshot, that's what would happen. You can also set this line to operate in Technical maneuvers (ensure that Stop behavior = Wait on platforms).

You can also define this line as a line service to an existing passenger line. Change the service level to Technical maneuvers, ensure that Stop behavior = Wait on platforms.

This version of the line to depot will operate similar to the run to depot on an automatic glue line, except that:
  • The trains will run on the speed you set, not at maximum speed
  • The trains will follow the path you designate, not an automatic path
Again, the line can be defined in a minimal way to just direct the train to the depot, or overlapping with the preceding line, eliminating the glue lines.

This solves the issue in 1.4 when trains going to a depot run at double speed of the regular trains and bump into them.

Heading into revenue service from depot
There are also three ways a train can go into revenue service from a depot in 1.5. The last two can be used in a minimal variant (with NIMBY filling the gaps with glue lines) or overlapping with regular day service lines.
  • Without passengers on an automatic glue line
  • With passengers from a station near depot (on a defined line)
  • Without passengers on a defined special line
From depot to revenue service without passengers on an automatic line
This is the only method that existed in 1.4. To have your train go from depot into revenue service without passengers, simply add an order for a train to go to the regular revenue service line after it sits in a depot (e.g. in the morning).
From depot to revenue service with passengers on a user defined line
If your depot is not near the revenue service line's starting point and you want trains (trams) go to the revenue line with passengers, you need a line that will do this. This is similar to the line to get trams from revenue service into the depot. If your line #1 starts at terminus A, the depot is at X, and you want trains to stop at D, C and B on the way from the depot, create a line #1-DL (head from depot to line) defined as D>C>B>(back to D). Or find an existing line (e.g. #5) that already includes those stops. You can also define a line service for this.

Place an order for the train to go on line #1-DL (or #5) at the start of the day. Then place an order for the train to go to the regular line #1. Again, be careful with short lines.
From depot to revenue service without passengers on a special user defined line
You can also define a special line that would go from depot into revenue service without passengers. You can do this, for example, by using waypoints or by setting stop times to be zeros. Define it in the same way as for the line that carries passengers, just with zero stop times. Again, do this if you want trains to run at the speed you set, not at maximum speed, and/or for the trains to follow the path you designate, not the one NIMBY creates.
Timetables (part 1) - overview
Timetables in 1.4

In 1.4 the timetables are only implemented as intervals between trains running the same line. You can designate one or multiple stations where the interval would be enforced. This will create a time counter at this station, and the next train arriving at the station will aim to depart so as to maintain the set interval from the previous train. If the previous train was late, the next train will count its departure from the delayed train's actual, not scheduled, departure times. Thus, once a delay occurs, trains cannot catch up to schedule. Because delays would happen, trains could not be counted on to be at specific stations at desired times. In short, timetables in 1.4 did not really exist.

Timetables in 1.5

The concept of a timetable in 1.5 is completely different from 1.4. Trains in 1.5 operate according to their individual timetable. They do not care where they are in relation to any other train. While you can set up individual trains to be e.g. 10 minutes apart from each other, what this means is that each train will have its own timetable with departure times set at 10 minute intervals from each other. But if one train is delayed by 10 minutes, the next train will still aim to follow its own schedule, and may end up running right after the previous one. This practically speaking means a lot of good things:
  • The train AI tries to be on schedule at each station and in-between. 1.4 trains only monitored intervals at selected stations.
  • The train will slow down from the set speed if it's ahead of schedule, and accelerate above it (up to the maximum speed for the train type and the track) to catch up to schedule if it's late
  • The train will reduce its stop time to catch up if it's late, or extend it if it's ahead of the timetable
  • The train will pass another train on the same line if needed to catch up to schedule, if it is possible (i.e. at an alternative/secondary platform at a station)
  • The train will always finish the run it has started, from the first to the last station, even if it is delayed. Thus, it will not exit the line at a random point as it would in 1.4.
Timetables, runs, orders
This is a recap of discussion in the introduction. Refer to those pages for more details and screenshots.

A train's timetable is made out of runs for each day of the week. Each run has a start time and times when the train should arrive at and depart from each station and waypoint included in the run. Runs are created automatically when placing orders. Runs never go past the last station of a line - if the order would take the train past this station, it is split into more than one run.

Each order is an instruction to the train to operate an entirety or a portion of a line or a line service, one or multiple times. Depending on this, you can differentiate between four types of orders:
  1. order to run an entire line once - creates one run
  2. order to run a part of a line from any station to any other station once - may create one or two runs, depending on whether the ending station is after or before the starting station in the list of stations for the line
  3. looping order to run an entire line multiple times - creates a number of runs that would fit between the start time of this order and the next one - at least one run
  4. looping order to run an entire line starting from any station to any other station - the first and the last runs will be for a portion of the line, all other runs for the entire line. This order creates a number of runs that would fit between the start time of this order and the next one - at least two or three runs depending on whether the ending station is after or before the starting station in the list
EDIT. For an order to run a portion of a line multiple times, you need to define a separate line service.

To create non-looping order types (1) and (2), "Loop until next order" box in [Edit orders] must be left unchecked. To create looping order types (3) and (4), this box must be checked.

Any order type may result in zero runs, if there is not enough time between the start of the order and the start of the next order to run the line (or to do minimum runs, in the case of order types (3) and (4)).

Order start time is determined by either reference to the time the train has to arrive at the first station ("Arrive exactly at" under [Enter event] in [Edit orders]), or the time the train has to depart from the first station ("Depart exactly at"), or the latest time the train has to arrive at the first station ("Arrive no later than"). The last setting is particularly helpful so as to avoid figuring out the exact time the train finishes the last run on the previous order, and instead set an approximate time. This is often convenient for trains heading to depot at the end of the day after working on a looping order type (3) or (4). If there are two consecutive "Arrive no later than" orders placed, the second one will be ignored and not executed.

If there is more time provided to a non-looping order (type (1) and (2)) than is necessary for the train to run the line, the train will have a "padding wait". This padding wait will be spent at the last station of the run which has "Custom duration wait at this stop" box checked in [F3]/Lines editor. If there is no such station, it will be spent at the last station of the run. A padding wait is marked with a black square (as opposed to a triangular arrow) in the list of stops for an order.

Padding waits will also happen with looping orders (type (3) and (4)) if the next order's timing is set by "Arrive exactly at" or "Depart exactly at", and there is more time than necessary to run the line (one or multiple times). If the next order's timing is set to "Arrive no later than", there will be no padding time. The train will move to the next order immediately after finishing the last run of the current order.

EDIT. To eliminate an undesired padding wait from the previous order, a "Tighten order time" button is available in "Edit orders" interface. This button is a one-time operation, not an automatic setting.

If an order is for less than five minutes of run time, NIMBY will often automatically add padding wait time to make it at least five minutes.

NIMBY will calculate automatically the time it takes the train to move from the last platform or waypoint of one order to the starting platform or waypoint of the next one, and automatically build a path (often called glue line) to take the train there. However, if your next order starts from the same platform or waypoint, the glue line is not necessary. The train will simply start the next order when the time comes.

An order can be for a passenger service line or a technical maneuver line, including a depot line.

Orders are placed by default to be executed each day of the week. However, they can also be set to run on a single day or any combination of days (e.g., Mo, Tu, Sa).

Once an order is started, it generally cannot be cancelled without an invasive action, such as an intervention. For this reason, it is best to avoid lengthy orders (i.e. those lasting more than 24 hours). If you want to park a train in a specific place for the entire week, it may be best to split the order into daily. Also, NIMBY transitions the train to the next order just as it arrives to the last station of the current order (even if the train will stand at this station for a while). When this happens, changing the first run of the next order, including the time it is effective, is impossible without an intervention or similar action.

For example, when parking in a depot (one-station depot line), the train is already assigned to its next order's run. Even if this next run is changed, the train will stay in the depot until the next run's original start time.
Timetables (part 2) - managing timetables, auto-run
Timetable for a single train
The order system in 1.5 allows to operate trains in a very simple or a very sophisticated way. For example:
  • To operate a train 24x7, you just need one order per day. This can be done automatically with just a few clicks.
  • To operate a train on a single line with regularly timed runs throughout daytime, and park it in a depot for the night, you need two orders: one to go to the line in the morning, and one to go to the depot at night.
  • To operate a train on a single line with a lunch break during the day and a depot stay at night, you need four orders: go to the line in the morning, go to a lunch break siding when the time comes, go back to the line after the lunch is done, go to the depot at night
  • To operate a train on an intercity line once a day, you probably just need two orders - to run the line, and to park the train in its home depot after the return. This is provided your line includes any potential stay in a siding before the trip back.
  • EDIT. To operate a train alternating between two lines, you need to define one long line that includes all stations from the two lines. Then you just need two orders. This has become possible in 1.5.29 as NIMBY now allows to have multiple stops at the same platform.
  • To operate a train on a line with varying times spent at a terminus, you will need one order for each time the terminus stop length differs from the standard in the line definition.
Creating and managing timetable for a line
There are three ways to create and manage a timetable for a line in 1.5.
  1. Automatic. This is done by using Auto-run orders. Trains on auto-run orders will operate the line 24x7 without going to a depot. Intervals between trains will be set automatically based on the duration of the line and the number of auto-run trains.
  2. Auto-copy. You need manual orders for at least one train. (Two or three manual order trains will give you a LOT more flexibility with setting up the timetable). Orders for all other trains running the line will be set as Auto-copy of one or the other train with manual orders. This is a flexible system useful for city, commuter or even intercity lines operating on a regular pattern multiple times a day, that allows to create a relatively realistic timetable without spending too much effort on managing each train's timetable individually.
  3. Manual. Each train on the line has its own unique timetable. This is likely a system to use on long-distance once a day trains, or when the schedule calls for irregularly spaced runs.
Orders are managed separately for each individual train. Thus, you can have trains with different types of orders operating on the same line - both Auto-run and Manual (with or without Auto-copy trains).

Note also that regardless of how you create the timetable (i.e. using Auto-run, Manual or Autocopy orders), the trains follow the runs in the timetables in exactly the same way. Thus, even though Auto-run timetables are created to have a set interval between trains, trains do not actually operate to maintain an interval. They operate to follow their individual timetables. If all trains are on schedule, this means the interval will be maintained. If however one train is late, intervals with the train behind and the train in front of it will be off. The same applies also to trains with Auto-copy orders. Although these orders are created with an interval (shift) off the train with manual orders, they follow their individual timetables, not the manual order train with a set shift.
Automatic (Auto-run) timetables
Auto-run timetable is the most simple timetable design mode in 1.5. It is also the least flexible, as trains can only operate 24x7 and only the entire line (or line service) length. When converting files from 1.4, all lines automatically become Auto-run, and will continue to operate in this manner until you change them to something else. This setup was a necessity because the 1.4 depots were not carried into 1.5, so the trains would have nowhere to go if they were not operating a line 24x7.

To set a train to operate as Auto-run, select (or buy) a train and select "Auto run a line" under "Orders" in the Orders tab of the F4/Trains interface (or in the Buy train interface).

NIMBY will automatically create a timetable for this train based on the line settings in F3/Lines as follows:

  • first departure on Monday morning (6:00 by default)

  • line duration - this can be either (1) Custom - value specified by player (e.g. 0:50:00), or (2) Minimal - the duration the train will take to circle the line and come back to the first station (e.g. 0:41:34), or (3) the value "fit for a period". This last one is the shortest duration allowing to fill the relevant period completely with runs, with no spare time left. Of course, it will also be equal to or longer than the minimal duration. The relevant period is either a day (24 hours), a week (168 hours), or a period you specify. For example, if the minimal duration of the line is 0:41:34, and the period is one day, NIMBY will choose 0:45:00 as the "fit for a period" of a day duration. This is because if you divide 24 hours by 45 minutes, you will get exactly 32 runs. 24 hours does not divide precisely into either 33 or 34, and dividing into a larger number will not allow the train to run the entire line and come back (for which 41 minute 34 seconds is required). If the minimum duration of the line is 0:54:02, again, with one day period, NIMBY will choose 0:57:36 as the "fit for a period" of a day value. This is because this time period will give exactly 25 runs over a 24 hour period (24x60x60 divided by 57x60 + 36).

  • the number of trains assigned to the line in "auto run" mode - the first departure for the first train will be at the time set above. For all other trains the first departure will be determined by the interval from dividing the line duration by the number of trains.
For example, you purchase 6 trains for a line with duration of 1 hour, the interval will be 10 minutes. If you set the first departure time at 5:30:00, the first train will have a timetable to depart from the first station at 5:30:00, the next one at 5:40:00, etc. The first train will come back and depart from the first station again at 6:30:00.

Any time you assign more trains or re-assign trains with auto-run orders, NIMBY will automatically recalculate the timetables for each auto-run train on the line. This will likely mean trains are not in appropriate places for their new timetables, their current runs being "stale runs". EDIT. An automatic free intervention will happen at the end of the stale run, with the trains teleported to the correct place for the time of the intervention.
Timetables (part 3) - auto-copy and manual timetables
Auto-copy timetable
Creating a timetable for a line using auto-copy mode is a good balance of flexibility and efficiency. In this mode, you need to define manual orders for at least one train. You can also have more than one train with manual orders, as it will allow a lot more flexibility in the line timetable. You can then link any number of other trains to any of the trains with the manual orders. The timetable for the linked trains will be a copy of the timetable for a train with manual orders, plus or minus a time shift.


You can set the time shift manually in the Orders tab in F4/Trains editor. The screenshot on the left shows how to do it. You do not have to choose multiples of the same interval for auto-copy trains.

Alternatively, you can create a group of trains and have NIMBY define the time shift automatically. A group of trains is all of the trains linked to a particular train with manual orders. You can access the group via the Group tab in F4/Trains interface for such train.


You will see there how many trains are linked to this particular manual orders train, and how many it manages. You can choose from a "Shift mode" drop-down menu and set the shift (1) with a fixed interval, e.g. 5 minutes apart, (2) evenly over a manual duration - e.g. with 4 trains on the line and a manual duration of 40 minutes, this would mean 10 minutes apart, or (3) evenly over the line duration. If the line duration is 50 minutes and you have 4 trains, they will be 12 minutes 30 seconds apart.

You can also choose whether to apply the shift to all orders of the manual order train, or just the passenger service orders. In this last case, all trains will receive orders to head to the depot at the same time. In this case, as always, the resulting timetable will provide that trains finish full runs that fit before the order to go to the depot.

If you set shift automatically through a train group, on the train Orders tab, you also need to change the "Shift" drop-down menu to "Managed by parent group". Otherwise the trains will still operate on a manual shift. See the first screenshot above.

If you choose to set shift manually via the Orders tab, you do not have to do anything in the Group tab. You will just see the duration and the interval values there both being zeros.

IMPORTANT. Be careful when linking different types of trains via Auto-copy. This also applies to trains with a different number of cars in the consist. Such trains may have different maximum speeds and/or different acceleration levels. As a result, the Auto-copy train may not be capable of following its parent train's shifted timetable. If this is the case, the Auto-copy train may have fewer runs in its own timetable, creating a long padded wait that would block traffic, including its parent train.
Simple timetable set via auto-copy
For a very simple timetable, you can have trains follow each other with the same interval. They can operate throughout daytime and head into the depot at night.

Example 1

Line #1 has a duration of 1 hour and 6 trains. Depot is 10 minutes away from station [1]. You can set train #1 with two manual orders - (A) departure from station [1] at 5:30:00, and (B) be in the depot latest by 23:10:00. Train #1 will complete its run #17 on order (A) at around 22:30:00 and will head to the depot and be there around 22:40:00.

You can then set timetables for trains #2-6 to run Auto-copy of train #1 timetable with a shift of 10 minutes, 20 minutes, 30 minutes, etc. Train #2 will have its first departure at 5:40:00 and arrive into depot at around 22:50:00. Train #6 will have its first departure at 6:20:00 and arrive into depot at around 23:30:00. You can easily set the timetable for trains #2-6 either by setting a shift in Orders tab, or by creating a group.

This example is not very realistic. Many city and commuter lines operate on shorter intervals during rush hour, and longer intervals during evenings and nights. Weekend operation typically does not have rush hour intervals.

Example 2

We will now create a timetable to have 5 minute intervals on line #1 from 6:30 to 9:30 and from 16:00 to 19:00, and 20 minutes from 5:30 to 6:10 and from 21:10 to 23:10 (last departure from station [1]). The remaining times we will have 10 minute intervals. We will need 12 trains for this schedule.

A very easy way to do this - either through groups or through shifts - is as follows:
  • Train #1 - manual orders (1A) - depart from station [1] at 5:30, (1B) - arrive at depot by 0:00 the next day. Last departure from station [1] at 22:30, in depot at 23:40.

  • Trains #2 and 3 - Auto-copy of Train #1 - shifts of 20 and 40 minutes. First and last departures at 5:50, 6:10, 22:50 and 23:10. In depot at 0:00 and 0:20.

  • Train #4 - manual orders (4A) - depart from station [1] at 6:20, (4B) - arrive at depot by 22:00. Last departure from station [1] at 20:20. In depot at 21:30.

  • Trains #5 and 6 - Auto-copy of Train #4 - shifts of 20 and 40 minutes. First and last departures at 6:40, 7:00, 20:40 and 21:00. In depot at 21:50 and 22:10.

  • Train #7 - manual orders (7A) - depart from station [1] at 6:35, (7B) arrive at depot by 10:00, (7C) depart from station [1] at 16:05, (7D) arrive at depot by 19:30. Last departure from station [1] at 8:35 in the morning, at 18:05 in the evening. In depot at 19:15.

  • Trains #8-12 - Auto-copy of Train #7 - shifts of 10, 20, 30, 40 and 50 minutes. First morning departures between 6:45 and 7:25, in the afternoon between 16:15 and 16:55. Last morning departures between 8:45 and 9:25, in the evening between 18:15 and 18:55. In the depot between 19:25 and 20:05.
This is easy though again not very realistic, as the workload is not spread efficiently among trains or drivers. NIMBY drivers do not care though:).

Auto-copy timetable mode also allows to create timetables somewhat close to realistic. In a separate section of this guide called Sample timetables, you will find four more realistic examples of timetables with variable intervals.


Here is a screenshot of a short LRT line with a timetable providing for two manual order trains and 3 Auto-copy order trains, with rush hour, weekday/weekend, and early morning/late night variable intervals and lunch breaks.

Because of the degree of flexibility offered by Auto-copy orders, this timetable mode is well suited for city, suburban and other lines with trains running multiple times a day with the same stops and similar speeds.
Manual order timetable
Running a line with manual order trains allows the maximum flexibility in creating a timetable. However, you likely would not need it for many of your lines. You would naturally only use manual orders for trains that run infrequently and/or one-off lines - e.g. once-a-day intercity services, services with unique stops and/or speeds, or services where timetables vary from train to train. For example, if your line is set to pick up passengers at irregular times from a small airport, a remote train station, or an exhibition hall, using Auto-copy mode may not be practical.

The introduction section to this guide addressed the key settings for different types of manual orders.
Realistic timetables with Autocopy - examples 1 and 2
This section illustrates example timetables that are more or less realistic, that you can set for a line in NIMBY using Auto-copy feature as much as possible. The purpose of this section is to give ideas and examples of how you can design your own timetables for your lines.

In all examples, the line has a duration of 1 hour for a round trip from the first station back. We aim to have 5 minutes interval during the rush hours, 10 minutes during the day, and 20 minutes elsewhere. A minimum of 12 trains is required to achieve the 5-minute rush-hour interval. We want to have no more than two trains with manual orders, all other trains being Auto-copy. Example with three trains with manual orders is included in the section on timetables, part 3 (Example 2).

Example 1.
Train #
Order type
Shift
First departure
Depot break
Last arrival
Train #1
Manual
n/a
5:30
21:29
Train #2
Auto-copy from #1
01:10:00
6:40
22:39
Train #3
Auto-copy from #1
00:20:00
5:50
21:49
Train #4
Auto-copy from #1
01:30:00
7:00
22:59
Train #5
Auto-copy from #1
00:40:00
6:10
22:09
Train #6
Auto-copy from #1
01:50:00
7:20
23:19
Train #7
Manual
n/a
6:35
9:34 - 15:35
18:34
Train #8
Auto-copy from #7
00:10:00
6:45
9:44 - 15:45
18:44
Train #9
Auto-copy from #7
00:20:00
6:55
9:54 - 15:55
18:54
Train #10
Auto-copy from #7
00:30:00
7:05
10:04 - 16:05
19:04
Train #11
Auto-copy from #7
00:40:00
7:15
10:14 - 16:15
19:14
Train #12
Auto-copy from #7
00:50:00
7:25
10:24 - 16:25
19:24

Here trains #7-12 only operate during rush hour. They go out in the morning, make 3 runs each, return to the depot. Then go back in the afternoon, make 3 more runs each, back to the depot. Train #7 is manual orders, all other trains are its auto-copies.

Trains #1-6 operate the entire day. Train #1 is manual orders, all others are its auto-copies. Note three trains (#1, 3, 5) get on line and make each one run before the remaining three get on the line. Similarly, they go into the depot in the evening earlier. This is what allows to create a 20-minute interval in early morning and late evening.

The resulting departures from station #1 will be as follows:

5:30, 5:50, 6:10
6:30-9:30 - every 5 minutes
9:30-15:30 - every 10 minutes
15:30-18:30 - every 5 minutes
18:30-21:20 - every 10 minutes
21:40, 22:00, 22:20

You can set up trains #1-6 to operate 7 days a week, and trains #7-12 only Monday to Friday. Then you will have longer 10-20 minute intervals over the weekends. You can also shift weekend first departure times for trains #1-6 to start and end e.g. one hour later, to accommodate for people getting up and staying up later.

In this example, trains #1-6 operate each for 16 hours without breaks. This is normally two working shifts (two drivers), but real drivers do need breaks for lunch etc. Subway or busy commuter lines often have substitute drivers who drive the train while main drivers take lunch. City lines typically don't, and trams go out of circulation for 15 minutes to an hour. Trains #7-12 in this example operate each for 6 hours, which is a bit short of a working day (although for sure possible for part-time drivers). More realistic timetables would also take driver needs into account.

In this example, service starts at 5:30, with the last train leaving station [1] at 22:20 and all trains leaving the line by 23:19. This feels a bit early. We can order one more run for each train but that would make working shifts too long. We will now try to address some of these limitations with a different schedule in Example 2.

Example 2

In this example, we will modify the schedule for our 1-hour line to make trains operate longer into the night.

Train #
Order type
Shift
First departure
Depot break
Last arrival
Train #1
Manual
n/a
5:55
21:54
Train #2
Auto-copy from #1
02:10:00
8:05
0:04
Train #3
Auto-copy from #1
00:20:00
6:15
22:14
Train #4
Auto-copy from #1
01:30:00
7:25
23:24
Train #5
Auto-copy from #1
-00:20:00
5:35
21:34
Train #6
Auto-copy from #1
01:50:00
7:45
23:44
Train #7
Manual
n/a
6:00
8:59 - 14:30
19:29
Train #8
Auto-copy from #7
00:10:00
6:10
9:09 - 14:40
19:39
Train #9
Auto-copy from #7
00:20:00
6:20
9:19 - 14:50
19:49
Train #10
Auto-copy from #7
00:30:00
6:30
9:29 - 15:00
19:59
Train #11
Auto-copy from #7
00:40:00
6:40
9:39 - 15:10
20:09
Train #12
Auto-copy from #7
00:50:00
6:50
9:49 - 15:20
20:19

Again, trains #7-12 only operate during rush hour, going out in the morning, making 3 runs each, return to the depot. Then go back in the afternoon, make 5 more runs each, back to the depot. Train #7 is manual orders, all other trains are its auto-copies. Each train works 8 hours here, a full working shift.

Trains #1-6 operate the entire day. Train #1 is manual orders, all others are its auto-copies. Again, three trains (#1, 3, 5) get on line earlier and make each two runs before the remaining three get on the line. Similarly, they go into the depot in the evening earlier. This longer delay allows to stretch the line operation into a longer portion of the day with a 20-minute interval. All odd-numbered trains work 16 hours.

The resulting departures from station [1] will be as follows:

5:35, 5:55
5:55-7:10 - 5-10 minutes (3 trains every 20 minutes for a 7 minutes average)
7:10-8:55 - every 5 minutes
8:55-14:25 - every 10 minutes
14:25-19:25 - every 5 minutes
19:25-21:25 - every 10 minutes
21:25-23:05 - every 20 minutes

Again, you can set up trains #1-6 to operate 7 days a week, and trains #7-12 only Monday to Friday. Then you will have 10-20 minute intervals over the weekends. You can also shift weekend first departure times for trains #1-6 to start and end e.g. one hour later, to accommodate for people getting up and staying up later.

In this example, service starts at 5:35, with the last train leaving station [1] at 23:05 and all trains leaving the line by 00:04. All trains have a balanced schedule in 8-hour shifts, but there are no lunch breaks.

Now we will aim to add lunch breaks into this schedule. While maintaining the same working hours for each train, lunch breaks will extend the period the line operates into later into the night.
Realistic timetables with Autocopy - examples 3 and 4
Example 3

To add lunch breaks, trains will need two sidings near station [1] (or two extra platforms in station [1]).

Train #
Order type
Shift
First departure
Break 1 (L=lunch, D=depot)
Lunch break 2
Last arrival
Train #1
Manual
n/a
5:55
9:54 - 10:15 (L)
18:14 - 18:35
22:34
Train #2
Auto-copy from #1
02:10
8:05
12:04 - 12:25 (L)
20:24 - 20:45
0:44
Train #3
Auto-copy from #1
00:20
6:15
10:14 - 10:35 (L)
18:34 - 18:55
22:54
Train #4
Auto-copy from #1
01:30
7:25
11:24 - 11:45 (L)
19:44 - 20:05
00:04
Train #5
Auto-copy from #1
-00:20
5:35
9:34 - 9:55 (L)
17:54 - 18:15
22:14
Train #6
Auto-copy from #1
01:50
7:45
11:44 - 12:05 (L)
20:04 - 20:25
00:24
Train #7
Manual
n/a
6:00
8:59 - 14:30 (D)
--
19:29
Train #8
Auto-copy from #7
00:10
6:10
9:09 - 14:40 (D)
--
19:39
Train #9
Auto-copy from #7
00:20
6:20
9:19 - 14:50 (D)
--
19:49
Train #10
Auto-copy from #7
00:30
6:30
9:29 - 15:00 (D)
--
19:59
Train #11
Auto-copy from #7
00:40
6:40
9:39 - 15:10 (D)
--
20:09
Train #12
Auto-copy from #7
00:50
6:50
9:49 - 15:20 (D)
--
20:19

The schedule for trains #7-12 is the same as in Example 2. 3 runs each in the morning, return to the depot, 5 more runs each in the afternoon, back to the depot. Train #7 is manual orders, all other trains its auto-copies. Each train works 8 hours.

Trains #1-6 operate the entire day, 16 hours, excluding two 20-minute lunch breaks. Train #1 is manual orders, all others are its auto-copies. First departure times are the same as in Example 2: three trains (#1, 3, 5) get on line earlier and make each two runs before the remaining three get on the line. They also go into the depot in the evening earlier.

The resulting departures from station #1 will be as follows:

5:35, 5:55
5:55-7:10 - 5-10 minutes (3 trains every 20 minutes for a 7 minutes average)
7:10-8:55 - every 5 minutes
8:55-14:25 - every 10 minutes (except no departures at 9:35 and 11:25)
14:25-19:25 - every 5 minutes (except no departure at 17:55)
19:25-22:05 - every 10 minutes (except no departure at 19:45)
22:05-23:45 - every 20 minutes

You can set up trains #1-6 to operate 7 days a week, and trains #7-12 only Monday to Friday. Then you will have 10-20 minute intervals over the weekends. You can also shift weekend first departure times for trains #1-6 to start and end e.g. one hour later, to accommodate for people getting up and staying up later.

In this example, service starts at 5:35, with the last train leaving station [1] at 23:45 and all trains leaving the line by 00:44. All trains have a balanced schedule in 8-hour shifts, including lunch breaks.

In real life, when the lunch or depot breaks create a double interval (e.g. 20 minutes from 9:25 to 9:45 in this example), one of the trains may depart earlier or later to smooth out the interval. For example, the train that would be available to depart at 9:25 may instead depart at 9:30. This would create two 15 minute intervals between it and the previous 9:15 and the next 9:45 trains. In NIMBY, this can only be done using manual orders and not relying on Auto-copy. I don't think NIMBY passengers will care about an occasional double interval.

Can one design a good timetable with just one train in manual orders, and all others in Auto-copy? Yes, but the trade off is you need more trains, and the schedule is not as smooth as above. In the example below there is also a slower service period during the day (20 minute interval). We will need 15 trains to operate this timetable. Each train will have a depot break, with 4 hours working time before the break and 5 hours after the break. This is our last example.

Example 4

Train #
Order type
Shift
First departure
Depot break
Last arrival
Train #1
Manual
n/a
5:30
9:29 - 14:00
18:59
Train #2
Auto-copy
00:20:00
5:50
9:49 - 14:20
19:19
Train #3
Auto-copy
00:30:00
6:00
9:59 - 14:30
19:29
Train #4
Auto-copy
00:40:00
6:10
10:09 - 14:40
19:39
Train #5
Auto-copy
00:50:00
6:20
10:19 - 14:50
19:49
Train #6
Auto-copy
01:10:00
6:40
10:39 - 15:10
20:09
Train #7
Auto-copy
01:55:00
7:25
11:24 - 15:55
20:54
Train #8
Auto-copy
02:05:00
7:35
11:34 - 16:05
21:04
Train #9
Auto-copy
02:15:00
7:45
11:44 - 16:15
21:14
Train #10
Auto-copy
02:25:00
7:55
11:54 - 16:25
21:24
Train #11
Auto-copy
02:35:00
8:05
12:04 - 16:35
21:34
Train #12
Auto-copy
02:45:00
8:15
12:14 - 16:45
21:44
Train #13
Auto-copy
05:00:00
10:30
14:29 - 19:00
23:59
Train #14
Auto-copy
05:20:00
10:50
14:49 - 19:20
00:19
Train #15
Auto-copy
05:40:00
11:10
15:09 - 19:40
00:39

Train #1 is manual orders, all other trains are its auto-copies. Each train works 9 hours.

The resulting departures from station #1 will be as follows:

5:30, 5:50
5:50-7:20 - 10 minutes
7:20-9:25 - every 5 minutes
9:35, 9:40, 9:45, 9:55, 10:05, 10:15
10:25-11:15 - 5-10 minutes (3 trains every 20 minutes for an average of 7 minutes)
11:30-13:50 - every 20 minutes
13:50-15:50 - every 10 minutes
15:50-19:25 - every 5 minutes
19:35-20:45 - 5-10 minutes (3 trains every 20 minutes for an average of 7 minutes)
21:00-23:40 - every 20 minutes

As there is only one manual order train, the weekend schedule will have to be the same as Monday to Friday. Note though that you can shift weekend first departure times (for all trains), e.g. to start and end one hour later, to accommodate for people getting up and staying up later.

In this example, service starts at 5:30, with the last train leaving station [1] at 23:40 and all trains leaving the line by 00:39.
Practical tips (part 1) - lines
Practical tips on creating timetables
Creating a timetable is a combination of setting timings and speeds for a line and entering timed orders. This section includes tips on both lines and orders.

Timing your lines

  • After you have added all stops and waypoints to a line, and set up the desired stop times for various stops (e.g. termini), you will achieve a certain duration of the line, called "minimal". There are two versions of this duration - loop (with return to the 1st station) and non-loop (without return). Round it up to a convenient number that is easy to break down into intervals between trains, and can help create friendly departures times each hour. For example, round up 00:35:48 to 00:40:00. To do this, enter 00:40:00 in the Custom duration field under Default timings (check that Line duration = Custom). Now you can operate trains every 5, 10, or 20 minutes. And even using three trains with 13, 13 and 14 minutes intervals is not bad. Now "Custom loop" and "Custom non-loop" times will differ from "Minimal loop" and "Minimal non-loop" by what we can call "reserve time".

  • Make this "reserve time" a few minutes. Trains en route could be delayed. The reserve time will allow them to more easily catch up to their timetable.

  • Check "Custom duration wait in this stop" box for only one stop. Ideally this would be a dead-end siding behind the terminus, or a platform at a terminus, where the train will not block through traffic. If you plan to operate line partially for certain runs, pick a stop that is within the partial line. EDIT. If you have line services, make sure each service has just one station checked to have the custom duration wait. Any reserve time will be assigned to stops with "Custom duration wait in this stop" box checked. If there is more than one stop, it will be split equally among all those stops. This is not convenient because if you want to change stop time at a particular station, the difference will be allocated equally to multiple stops, and the train and the line timetables may change from how you designed them. It just becomes difficult to track these changes. There is zero practical reason to have more than one station have custom duration wait.

  • Having reserve time is also convenient if and when you make changes to the line. If the minimal line duration increases as a result of these changes (e.g. the line has become slightly longer as you moved a piece of track), the reserve time will serve to protect your timetable. As long as the change does not wipe out the reserve time completely. See part 3 of these practical tips for more details.

  • EDIT. When mimicking a real-life timetable for an intercity train, a challenge is that it goes between stations at a speed that varies and that you don't know. You only know departure and arrival times for each station. You need to achieve the desired arrival time from the previous station. Say your train departs from the first station at 17:21. NIMBY sets travel times on the line to start from 0:00:00. What you can do to make timetable creation easier is to initially set the time for the first stop to be 17:21:00. Now your train will depart from the first station at 17:21, as in real life. If it arrives to the next station at 18:02 in real life, and at 17:53 in NIMBY, starting in 1.5.32, in "Lines" change Leg timing for the station to "Custom time" and set it to be 0:41:00. Or you can also reduce line speed for the second station until the arrival is at 18:02:XX. (You can round it off by changing the stop by a few seconds.) After you are done with all stations, change the first stop time back to realistic with the train pulling out of a siding for boarding (e.g. 00:15:00).

  • NIMBY cities do not have car traffic or city traffic signals. To emulate the real speed of city lines in NIMBY I find it works out well to set the running speed for your trams or buses at 20-30 kph depending on how congested streets are, 35-40kph in less populated areas with fewer crossings and signals. NIMBY also does not natively allow double stops (although there is a workaround, see the section on Alternative platforms under Lines). For busy track segments in city center, where multiple lines result in frequent tram service, you can set stop times shorter than in real life (e.g. 20 seconds) to offset a longer than real life wait trams may have before they get to the station.

  • Most lines have two termini. If you want trains to depart from both ends "on the minute" (i.e. at XX:XX:00), ensure in the Lines interface, departure times for both termini have the same seconds and a friendly difference in minutes. For example, one terminus is the first station and may show departure time 00:03:12. The other terminus is station #12 and may show departure time 00:37:23. Say the custom line duration is 0:55:00, and the station that absorbs reserve time is station #12. In this case, change your stop time at station #1 from 3 minutes 12 seconds to 2 minutes 23 seconds. Note the departure time from station #12 will not change, as it will automatically absorb any changes in the reserve time. Now your departures from stations #1 and #12 are exactly 25 minutes 00 seconds apart in direction "there" and 30 minutes 00 seconds apart in direction "back". You can have a very nice timetable for this line.

  • Already noted under Alternative platforms, but do have at least one stop where a delayed train can pass a preceding train. In other words, have at least one stop with alternative platform(s) set.
Practical tips (part 2) - orders and timetables
Entering orders
  • Before you start entering or changing orders for a train, put the game on pause. This will ensure the orders you add or change are not processed immediately, and you can revise them as you see fit before they start being executed. Once orders are entered and processed (which is within a couple of seconds once the time in the game is ticking), the current run under these revised orders will start being executed. This is the case even if the current order's first departure or arrival point is not until many hours away. At this point, the first run (which may be just a long parking at a one-run station) cannot be cancelled. Even if you change or delete the related order, the train already has the instructions for the first run and will act based on them. This no-longer valid run that is being executed is called "stale run".

    In this situation, the stale run will still be completed. If the train needs to be elsewhere at completion of this run, an automatic free intervention will occur, and the train will teleport to the appropriate new place. Its passengers will for free teleport to the next station on the line and wait for the next train. Alternatively you can do a manual intervention without waiting for the end of the run. This now costs only $50,000, so is not a bad option.

  • The same rules about the next order also apply when you buy a train. Any train has to be assigned an order. Given that the first run of this order will start being executed within seconds after you buy the train if the game is running, (a) put the game on pause, and (b) put the train on a special type of order - "Mothballed". This means that the train is in some other world (not yet spawned) and for this initial order, nowhere in particular. Once you have completed train purchases, you can go to [F4]/Trains/Orders tab and create the train's timetables by adding orders. Once you are done, take the game off pause, and the first run of your orders will start being executed.

  • If you want to change existing orders, choose the time smartly. Remember the current run will always be executed completely, so any changes will apply only after the current run ends.

    Changing a depot where the train is parked is likely best done during the day, when the trains are running lines.

    Changing the entire timetable for a day is likely best done in the evening, but before the trains arrive in the depot. Once trains park in a depot, the active run will immediately change to the first run of the next morning, which will then be executed even if you change the entire timetable for the next day. This will then likely cause schedule disruption for at least a part of the next day. What may work better is to change the timetables during the trains' last run of the day. Disruptions at the end of the day will likely not have as much impact, which will be mitigated by the trip to the depot. Once the trains are in the depot, they will change to the new first order of the next day, leaving it free of disruptions.

  • If you no longer need a line and re-assign its trains to another line, do not delete the old line until later. Trains may already be executing runs on the old line (even if they are parked in a depot). They will not proceed on a no-longer existing line and will be stuck wherever they are, blocking themselves and all traffic. I had to do an intervention in this case (or you can delete the track to reset them). So, delete the old line after all of its trains are for sure no longer executing its orders.

  • When you have just two orders for a day - line and depot, you can set the first order's timing as "Depart exactly at". The depot order can be "Arrive no later than" type. This will ensure the train has zero padded wait on the line before heading to a depot. If you have more than two orders, and the last order to the depot is "Arrive no later than", you will need to tie the timing of the preceding orders yourself. A quick way to tell is to click on the last run of each order and see if there is a black square next to any station instead of a normal triangle. This indicates a padded wait. Small padded waits (a few seconds up to a minute) may not matter much. However, long unintended padded waits can ruin your timetable for many trains.
A quick way to get rid of the padded wait on the previous order is to press the "Tighten order timing" button in the "Edit orders" interface. Note this is not the official name of the button. It's the button that you can in the screenshot below.




Validating timetable
  • Once you have entered all orders, validate your timetable. You can do this using these steps.

    1. Ensure no orders have a red triangle, indicating the order has no runs fitting into the timetable between neighboring orders.
    2. Click on the last run of each order and check if there are padded waits (black squares next to any station). If any exist, make sure you wanted them there. Otherwise tighten the timing of the orders.
    3. Go to the termini and click the station name. Select Platforms tab, and check the times when the trains get on the line or off the line, as well as intervals between trains. Validate that these are as you intend them to be. Check in particular whenever a train gets on the line and is inserted between two trains already running the line (e.g. the last train joining the line). Ensure these trains join the line at a time to be in between the appropriate trains.

  • if there are passing sidings on a one-track line, check that trains in both directions are there for approximately the same arrival and departure times. You want to have the last of the trains to arrive to be there no later than 30-40 seconds prior to the time the other train is to depart. Move schedules around if this is not the case. Do this for each station with passing sidings, going from one terminus to the other, one at a time.
Practical tips (part 3) - addressing changes (IMPORTANT!)
IMPORTANT - Addressing changes
  • Remember that the number of runs for any order can change automatically whenever you make pretty much any changes in the game that affect a particular line. For example, if you add or delete a stop or even a waypoint, change a stop time, change speed for any stop on a line, pick a different main platform for a stop, check or uncheck "Custom duration wait at this stop" box for any station. Some less obvious changes may include adding a speed limit to a track, moving the track (i.e. back to blueprint, move, build again), adding a piece of track which creates a shorter route for a line, deleting a piece of track (and the line will run a longer route), or even moving a piece of track that the line does not use, but it is locked to a piece of track used by the line. Or adding or deleting a "No way" sign that affects how lines run through a particular junction. Or if you decide to replace the train running the line with a faster/slower one and copy/paste all orders. Or if the train is equally as fast, but it accelerates faster or slower.

    Although most of the time the number of runs won't change, as not every change can have a large effect, sometimes it will. Even a slight move can change the minimal line duration by as little as a second, and this may be critical to whether a train can accomplish a run for an order. This is a good reason you want to have custom duration of the line defined and longer by some good safety margin (e.g. at least a minute or two) than the minimal duration.

    When the number of runs changes automatically as a result of any of the above, it can severely disrupt the timetable for many lines by putting a train on the affected line on a long unplanned padding wait stop and blocking any oncoming other trains. Unfortunately, NIMBY will not alert you about changes in the number of runs.

    So for any changes you make, it's a good practice to check the timetable for any line passing through the affected track, for which you change trains, etc. to ensure the timetable is still as you designed it.

    This is also another reason to only have one station with "Custom duration at this stop" box checked. When any changes in minimal duration are distributed among multiple stations, your work maintaining the line's timetable is likely to become more complicated.
37 Comments
adlet  [author] 2 May @ 11:09am 
The driver not only needs to change cabs but also take a quick break and visit the restroom :) . Plus there is some spare time in case the train arrives late, so it can catch up. So terminus stops of a few minutes are typical and could be even longer. In fact you can think of each terminus as three segments: arrive/unload passengers, layover, board passengers. This is helpful if you pull the train into/out of depot at terminus, because then you only use one of these three segments.
Yamaneko 2 May @ 7:54am 
Thanks, inserting a 2nd stop at G works like a charm. Slight drawback: The train spends 2x the wait interval at the terminal at turnaround (as the shift is A-G.A i.e. G-A-G for the trains), but then again, I don't mind at all, as this somehow simulates the train driver needing to change cabs... ;)
adlet  [author] 2 May @ 7:00am 
You should have 2nd train exit at G as well, and probably need to double the stop G to do this (two consecutive identical stops, so 2nd train starts at G2 and ends at G1). Also, if the trains from A and G operate the same line, they will have identical schedules, just shifted by time. So both trains will spend extra time at A. If you want to have the second train spend more time at G, and since you are not repeating runs anyway, I would change line duration to Minimum, then extra time is automatically at last station of the run.
Yamaneko 2 May @ 12:56am 
Thanks for the swift reply. Alt-key works perfectly to add the same platform, and when I did so train 1 waiting at B immediately moved to A to finish the padded wait. However, for Train 2, I cannot figure out how to have it wait at terminus G. Maybe I am not doing the schedule right?

What I did:
- create a schedule for the line
- order run line, enter first line stop, exit last line stop. Timing event: depart exactly at 5h, repeat 1, checked "continue into next order". Then copy/paste and just edit the depature time to 6h etc.
- assign this shift to train 1
- shift 2 assigned to train 2, but check "override enter/exit" and selected enter at G, exit at F.
adlet  [author] 1 May @ 7:47am 
@Yamaneko Yes custom time for sure still works in 1.16 but I would only have padded wait added to the last station of the line unless it's a depot line or some other special need. For the line, you can now define the line in your case as A-B-C-D-E-F-G-F-E-D-C-B-A. You can add the same platform to the line by pressing Alt when selecting it or using Advanced mode (can add any number of times). Then one train can run it A to A, and the other train G to G. They would both have the same padded wait at A, so would just operate reverse of each other. For terminus G, I would just manually set up some longer stop time or a fixed departure time.
Yamaneko 1 May @ 12:38am 
Great guide, thank you.

It looks like setting one station's stop time mode to "custom time" doesn't work anymore in 1.16 to have the padded wait happening there.

I'm trying to achieve something (in my opinion) very basic:

two trains service A-B-C-D-E-F-G, with both departing on the hour from A and G. And I want to get rid of the padded wait happening at B/F.

I can solve it for train 1, by having the line startint at B and ending at A, and make the order enter A/exit B, but for train 2, the padded wait is still happening at F, as the whole line is B-C-D-E-F-G-F-E-D-C-B-A. Any idea?
adlet  [author] 29 Nov, 2023 @ 9:09pm 
Of course, happy to help!
MrProfilen 29 Nov, 2023 @ 8:30pm 
Thanks for getting back to me so soon. I will spend some time looking at this and learning.

I've been slowly branching away from building my lines in a game way and trying to build more connected main lines. I've been learning better junctions and stations but scheduling seems to be the main cause of wait times/late times so I want to fix that. Doesn't help I have no knowledge of trains outside of games like OpenTTD, so it's hard to come into a game like this and do things.

Thanks again for the save and for the guide, I'll see what I can do.
adlet  [author] 29 Nov, 2023 @ 8:20pm 
Both tram lines operate this way. The light rail line has two intermediate destinations as well (say C and D), so separate line services for those as well, and same thing, I just enter departure times. When a light rail train goes back from C or D to A (or B), I enter line service for A (or B) and just specify the starting station as either C or D.


The biggest complexity then is with setting up the operation into the depot, which you can see there as well. With the tram network, to enter each of the two depot tracks the tram has to arrive at a specifc track at the final station (say station A). So this effectively means adding two more line services to trams going to this final station - line service A. and A.. (A with one dot and with two dots). Trams not going to the depot generally have a choice of using whichever track is free.

Anyway, take a look and let me know if this helps.
adlet  [author] 29 Nov, 2023 @ 8:20pm 
@MrProfilen Sure! I just uploaded this one a few days ago. https://share.nimbyrails.com/6S21RZlJd_NF8i6K39qJBg

It is a very simple network, has three lines (two tram and one light rail, note they are in the opposite ends of Kyushu island). They have also close to 100% real life timetables. You will see the way I now manage these is I create a separate line service for each destination (each end of the line, and also each interim point). They usually have different colors (e.g. lighter/darker) so I can easily tell the timetable does not have errors (colors alternate). Say a line between A and B. I define one line service as A to B, and the other as B to A. I then simply enter times for each run to start at A (and go to B), and then each time to start at B (and go to A). Because I use real life schedules, I don't need to worry about making up the schedule, just finding it on the Internet and then converting into "normal" speeds and stop times in NIMBY.