Sweet Transit

Sweet Transit

Not enough ratings
Optional Destinations
By Kally D
Optional destinations are not real destinations, but what are they???
2
   
Award
Favorite
Favorited
Unfavorite
Basics (The Nature of the Optional Destination)
Optional destinations are NOT destinations which are visited optionally. There is nothing you can input into an optional destination that shall dispatch a train to the selected destination. They are instead a logic check which when passed shall jump through the order of the route to a list item you specify with the "Go to" button or if failed shall proceed in the standard manner.

To be doubly clear, a failed optional destination condition is what leads to the route progressing normally which is a very different outcome from a failed condition in a non-optional destination which would prevent route progress until the condition is met. The purpose of a passed check is to skip part of the route and by mastering the application of optional destinations you can eliminate most unnecessary traffic (passenger condition tools are imperfect) to greatly improve your transport throughput.

If the above explanation was all you needed to begin applying conditions to the optional destinations that you now fully understand, skip to the practical examples section.

Intermediate Information (Selecting Conditions for Optional Destinations and Interface Tips)
The logic checks carried out by optional destinations are instantaneous, they occur immediately and without moving after completion of the previous route step, generally this shall be after executing an order at a station to load or unload.

For focused explanations of each condition's pass and fail requirements in the context of optional destinations skip to the conditions reference section.

Please tell me how to put a space here so it looks pretty lol
Remember that the conditions you are applying are meant to fail, failed conditions lead to continued normal operation while passed conditions indicate that an operation which is outside the normal order of the route must be enacted, such as refilling a train's cargo or skipping a delivery to a station which already has the desired amount of a specific good.

Non instantaneous conditions are not suitable for use in optional destinations and the "For Specific Time" clock check is almost impossible to apply with effect. Useful conditions either check the cargo/passengers/fuel of the train going through this route OR the cargo/passengers at the selected destination. There is only one condition that checks the destination (For Station Cargo Amount) and it also includes all passenger varieties despite being named for cargo so filters must be applied if the presence of only cargo or passengers is to be checked (sadly, passengers cannot be checked for their status as workers or travellers) There is no condition to check the contents of other trains.

It is worth repeating that the specified destination of an optional destination only matters if you are running a logic check of the cargo at that destination. This allows you to select any destination, perhaps the destination that a pass result would lead to, solely for organisational clarity purposes. It can become quite difficult to maintain order among your route destinations once you begin adding optional ones as there is no way to tether destinations into blocks and reorder them together so try to be ahead of the chaos as best you can (good luck)

I have found that if I do not apply a necessary goods filter as the very first step I take in setting up a route that it can take a long time for me to identify the route's issue. Applied filters are copied when destinations are duplicated, apply them early and avoid my mistakes!

If you ever want to test a condition to feel more certain about the way it works, create a test route with one optional destination and apply it to an idle train or maybe a test train with one wagon to load so you can mess around until you get the result you want.
Practical Examples
Return To Station If All Passengers Tired

(8 and 10 are the optional destinations in this example image)


Long worker distribution routes attempting to ensure a full passenger load can help to minimise traffic at settlements but if they continue on with only tired passengers on board they themselves become unnecessary traffic while also requiring additional trains to collect waiting settlement passengers worsening intersection and station congestion.

Inserting an optional destination with the condition "Rested at less than 0%" by selecting the "For fully tired passengers" condition we can check if the on board passengers are all tired and if true, redirect the train to the original settlement station (Go to 1.)

You should choose to skip forwards to the NEXT settlement station instead if your route has multiple worker pick up stations such as settlements or non settlement stations where two worker routs intersect but this example has only one origin for passengers so returning there is the only choice.

There is no way to check if passengers onboard are seeking to disembark at a specified destination so there are few practical ways to eliminate all unnecessary stops.


Deliver A Full Load Of Coal To Any Station Below 300 Coal

(2 and 4 are the optional destinations in this example image, note the use of the coal filter)


Ensuring that fuel is available where needed is a critical requirement for the operation of your trains but avoiding unwanted over supply without optional destinations is inefficient (an example of such a route would be "Load coal until cargo full at A" "Unload 50 coal at B" "Unload 50 coal at C" limited by the cargo capacity of the train)

This example loads a train with 600 coal (List Item 1) and then checks if the next station possess over 300 coal (List Item 2) which if true, directs the train to calculate the next optional destination's logic check (List Item 4) which if false directs the train to embark towards the next station (Beirut Station) to unload until done (List Item 5 not shown)

WHEN USING THE "For station cargo amount" CONDITION IN AN OPTIONAL DESTINATION SPECIFY THE RELEVANT STATION AS THE DESTINATION Additionally, if you do not apply the relevant filter to this condition then it shall count ALL cargo in this station which always leaves me scratching my head trying to troubleshoot it when I forget my filters. DON'T FORGET YOUR FILTERS. This configuration of optional destinations that direct to the next optional destination can be chained up to the end of the route, the final optional destination must redirect back to the start which should... probably have an additional timer on it to avoid running the loop too often as a situation where all stations have the required 300 coal in stock is possible, oops.
Do better than me by adding "AND Time passed 30 sec" to List Item 1.

This example of optional destinations can be applied to any cargo type that needs wide distribution, consider using it for consumer goods.


Dual Purpose Route Conditional On Demand

(1 and 5 are the optional destinations in this example image, note the use of the stone filter)


The quarry industry produces two goods which can both be transported in gondola wagons, this example shows how to set up a route that can preferentially transport one of those goods until demand is met and then switch to transporting the other. It is optimal to have one route with preference for good A and a second route with a preference for good B.

The first destination (List Item 1) is an optional destination checking if the settlement with a stoneworks has at least 600 stone in stock, failing that the train loads stone at the quarry and delivers it to the stoneworks settlement. A visit action is used (List Item 4) to return to the quarry in the case that no more deliveries are required to meet demand so that this train does not block a high traffic settlement station before it begins its logic check chain which can loop until stone or sand is in short supply at specified destinations. When the train has returned to the quarry it then checks if the stoneworks settlement (List Item 5) has less than 600 stone and if true, returns to the first check uhhh... probably should has sent it to list item 2 and again put a timer there lol. Nobody's perfect, ey.



I still don't know how to make spaces after images
(6 and 10 are the optional destinations in this example image, note the use of the sand filter)


Should the check for less stone than requested at the stoneworks settlement fail (List Item 5) the route proceeds to check for more sand than is wanted at a smelter station (List Item 6) and if over 600 sand is in the smelter station's storage directs another optional destination which checks if the warehouse has less than 1000 sand (List Item 10) before considering loading sand for the warehouse or looping back to checking stone storage.

All load and unload destinations use the full load/unload condition to guarantee there are no partial cargo outcomes, cargo is spread between all wagons and if any cargo is left over no other varieties of cargo may be loaded into wagons of that type. This example can be used to carry out multi use transport for any goods, scaleable up to as many varieties of goods as any single wagon type can load from one station. You could retool this check to use multiple stations as sources for goods and even use the visit command to park this multi use train at a low traffic non-cargo station or rail destination (ever heard of a rail yard?) until needed.

Look closely at the use of "less than" (<) and "greater than" (>) relationship in the conditions, it's easy to get them the wrong way around and in your mind expect that a pass condition continues the sequence as normal. No really, look just one more time and run these logic checks in your head.

Stone gets a second check for demand to loop it back to collecting stone when needed instead of moving on to collecting sand, this could be done with additional varieties of goods to focus a train onto that specified good until demand is satisfied, in this example sand is deprioritised by not including an equivalent check for sand.
Conditions Reference


Until Done
- Immediately passes the logic check under all conditions, is there a use for this?

Until Time Passed
- Inputs a "Time passed 40 sec" check, does not seem to function as optional destination logic checks are instantaneous and the passage of time is not.

For Specific Time
- Inputs a "Time 12:00" check which passes If the time is exactly 12:00, extremely difficult to induce pass, could be used to break out of an optional destination loop at a specific time.

For Full Cargo
- Inputs a "Cargo at >= 100%" check which passes only if cargo capacity is filled on board the train. Can be altered to a differing percentage from 1 to 100 and the "greater than" (>) condition can be inverted to a "less than (<). Applying a goods filter to this condition will fail the check if the filter excludes any of the loaded goods.

- Does not check passenger wagons. One of the two conditions that can check goods cargo % on board the train. Cannot be set to a non-percentage value.

- It's not likely that you'll be wanting to interrupt your route order if your cargo is greater than any specific percentage.

For Empty Cargo
- Inputs a "Cargo at <= 0%" check which passes only if zero cargo is on board the train. Can be altered to a differing percentage from 1 to 100 and the "less than" (<) condition can be inverted to a "greater than" (>). Applying a goods filter to this condition shall check for the absence of only the specified goods and pass if they are not present.

- Does not check passenger wagons. One of the two conditions that can check goods cargo % on board the train. Cannot be set to a non-percentage value.

- Checking for cargo lower than a specified amount, for example <=50%, can be quite useful if you want a train to load up on more goods to distribute before it heads somewhere far away.

For Cargo Amount
- Inputs a "Cargo at >= 100" check which passes if cargo on board is equal to or greater than 100. Can be altered to any number from 0 to 10,000 and the "greater than" (>) condition can be inverted to a "less than" (<). Applying a goods filter to this condition shall check for the presence of the specified goods and pass or fail dependant on their quantity.

- Does not check passenger wagons. The only condition that can check goods cargo quantity on board the train. Cannot be set to a percentage value. Be warned that higher tier cargo wagons have double the cargo capacity and that non-percentage conditions will not scale with this increased capacity.

- Checking for cargo lower than a specified quantity , for example <=300, can be quite useful if you want a train to load up on more goods to distribute before it heads somewhere far away.

For Transferred Cargo
- Inputs a "Cargo transferred >= 100" check, does not seem to function as optional destination logic checks are instantaneous while cargo transfer is not.

For Station Cargo Amount
- Inputs as "Station cargo at >=100" check which passes if the station selected as the optional destination has 100 or more cargo in stock. Can be altered to any number from 0 to 10,000 and the "greater than" (>) condition can be inverted to a "less than" (<). Applying a goods filter to this condition shall check for the presence of the specified goods and pass or fail dependant on their quantity.

- Does include passengers waiting at a station, filters can be applied to specify only them. The only condition that can check goods and passengers at a station. Cannot be set to a percentage value. Stations generally have many types of good in stock so use of a filter is extremely important.

- Probably the single most important optional destination condition, it is highly valuable to check if a station has greater than a specified quantity, for example >=300, so that you can set that station in the route to be skipped when distributing goods.

For Full Fuel
- Inputs a "Fuel at >= 100%" check which passes if the train is at 100% fuel. Can be altered to a differing percentage from 1 to 100 and the "less than" (<) condition can be inverted to a "greater than" (>). Goods filters to not affect this condition.

- Does not include cargo. The only condition that can check fuel loaded into the train's fuel storage. Cannot set to a non-percentage value.

- Checking for fuel greater than a specified amount, for example >=50%, can be quite useful for scheduling skippable fuel visits after visiting a station that may not have enough fuel to serve the train. Particularly useful for steam trains delivering coal to brickmworks and smelters as coal is often not in stock at the station.

For Full Passenger Load
-

For No Passengers
-

For Passengers Amount
-

For Fully Rested Passengers
-

For Fully Tired passengers
-

For Rested Amount
-

No one needs me to do the passenger stuff lol, the fully tired passenger one is the only one that matters anyway.
Author's Request to the Reader
Please don't comment with thanks unless it's been like a year since the last comment, just give it a thumb up instead, I'll see ya all the same. Criticisms of language use and poor explanations are welcomed. If you need help designing a route that is not related to the examples here, outline it so that I might create an example that helps anyone looking to make such a route. If you know how to help with my confusion in the blacked out spoilers please do so.

People all over the world love trains, if you think this guide is worth translating and are willing to do so please let me know.

Oh, and of course tell me if I got something wrong but I didn't do that, right?

May yer transit be ever sweet.

================================