Train station skipping conditions

Post your ideas and suggestions how to improve the game.

Moderator: ickputzdirwech

TheUnknown007
Fast Inserter
Fast Inserter
Posts: 129
Joined: Sun May 03, 2015 9:17 pm
Contact:

Re: Train station skipping conditions

Post by TheUnknown007 »

The reason it wouldn't be implemented is quite simple: there are hundreds (or thousands) of these simple additions, but adding them all would take way too long. Thus, the devs need to draw the line somewhere. I just hoped they would draw the line beyond this request instead of before it...
sparr
Smart Inserter
Smart Inserter
Posts: 1462
Joined: Fri Feb 14, 2014 5:52 pm
Contact:

Re: Train station skipping conditions

Post by sparr »

This thread got derailed in the middle, but the original idea is still solid, and something I would love to see added to the game. Even with the train improvements that came with 0.13 and later versions, this would still make trains a lot smarter with very little additional UI or logic required.
dpacbach
Inserter
Inserter
Posts: 40
Joined: Sun Apr 22, 2018 1:09 am
Contact:

Re: Train station skipping conditions

Post by dpacbach »

+1 for this idea, I think it makes sense.
Tekky
Smart Inserter
Smart Inserter
Posts: 1040
Joined: Sun Jul 31, 2016 10:53 am
Contact:

Re: Train station skipping conditions

Post by Tekky »

I also agree with the suggestion.

OpenTTD (Transport Tycoon Deluxe) also has conditional order jumping. I would love to see something like that in Factorio.

Meanwhile, several other threads have been opened on this topic:
viewtopic.php?f=6&t=49214 Train Entry-Condition
viewtopic.php?f=6&t=64362 Dynamic train schedule
viewtopic.php?f=6&t=53792 train-stop id and train targets a train-stop by id
viewtopic.php?f=6&t=58057 Trains ignore stop if wait condition already met
viewtopic.php?f=6&t=59378 Train-side stop disabling and a toggle for station skipping
viewtopic.php?f=6&t=58646 Jump on train automation

The fact that this has been suggested so often shows, in my opinion, how important the suggestion is.

EDIT: updated thread list, fixed link
Last edited by Tekky on Fri Feb 25, 2022 7:56 pm, edited 2 times in total.
Fraisev*che
Manual Inserter
Manual Inserter
Posts: 3
Joined: Sat Dec 16, 2017 12:55 pm
Contact:

Re: Train station skipping conditions

Post by Fraisev*che »

That would be awesome to have those skipping conditions (or entry condition as called on another thread, they are basically the same idea).

I also like the route idea. Having a central place to configure at once all related trains would be an awesome plus!

"Go to waiting area if no following route is reachable" -> "stay until a following route is reachable"
"Go to iron ore input if cargo is not full" -> "wait until cargo is full" (we could also use "inactivity > x seconds" here)
"Go to iron ore output if cargo is not empty" -> "wait until cargo is empty" (same comment as above)
"Go to fuel load is fuel < X MJ" -> "wait until fuel >= X MJ" (same comment as above)

That configuration would allow a train to go filling itself in any available iron ore mine (all mines without enough ore would off themselves preventing trains from going there) and outputting their cargo anywhere it might be needed (stations could deactivate themselves when there is enough resources too). Bonus: it would go to refuel only when needed!

As a plus, it would also be great to be able to put a station type and not name for the destination. And to allow stations to multiple types. Thus the "green chip 1" station could be of types "iron plate output" and "copper plate output". Ideally we could deactivate types and not the whole station. Thus in this case a station would be "off" when it has no active type.

Right now when I try that I have the following 2 common scenarios that I cannot fathom how to resolve:
1. there is no mine with enough ore to warrant a train going there, thus all of them are deactivated: trains go merry go round trying to supply depots with an empty cargo
2. there is no need of input because we consume less resource that the supply allow: trains go merry go round trying to resupply at mines with a full cargo

That works but it creates a lot of useless traffic and consumes fuel needlessly. I believe factorio is about optimizing everything as much as possible. At least it's the part I can spec a lot of time working on. I'm mind blown by everything I can already do but this nags me. I really want to create a train system with fabrication units that works like a giant machine. Trains dumps resources here only when needed (like an inserter) and come get things only when useful. Using circuit conditions I can even deactivate units that have overproduced to limit electricity usage! That's so awesome! But the trains making useless trips are really getting on my nerves ;-).
Engimage
Smart Inserter
Smart Inserter
Posts: 1069
Joined: Wed Jun 29, 2016 10:02 am
Contact:

Re: Train station skipping conditions

Post by Engimage »

This suggestion is still very relevant.

If a station would have a skip condition list as well as leave condition list (with identical mechanics) for every station in the list it would be simply awesome and would make trains so much smarter without adding a lot to programming.

The skip condition should be evaluated when a train picks up its next destination from the list, so actually after previous leave condition is met and train is ready to depart.

By default the skip condition is empty which would be identical to current behaviour.

The edge case would be if all stations in the list have their skip condition met and there should be a mechanism to avoid infinite loop.

Another complimentary change should be adding fuel condition in some way (as obviously having multiple locomotives complicates it) but I am sure its easy to implement the same way as Cargo currently works - by providing the total amount of stored fuel of selected type in all locomotives combined.
Sad_Brother
Fast Inserter
Fast Inserter
Posts: 209
Joined: Mon Jan 08, 2018 4:54 pm
Contact:

Re: Train station skipping conditions

Post by Sad_Brother »

PacifyerGrey wrote: Fri Oct 12, 2018 6:33 am This suggestion is still very relevant.

If a station would have a skip condition list as well as leave condition list (with identical mechanics) for every station in the list it would be simply awesome and would make trains so much smarter without adding a lot to programming.

The skip condition should be evaluated when a train picks up its next destination from the list, so actually after previous leave condition is met and train is ready to depart.

By default the skip condition is empty which would be identical to current behaviour.
Agree completely.
PacifyerGrey wrote: Fri Oct 12, 2018 6:33 am The edge case would be if all stations in the list have their skip condition met and there should be a mechanism to avoid infinite loop.
Add "Depot" station name with "iddle" condition. It means train should go to "Depot" station when no other valid destinations in list. Exit condition may be empty because nowhere to move anyway. But may be used for fuelling purpose for example.
PacifyerGrey wrote: Fri Oct 12, 2018 6:33 am Another complimentary change should be adding fuel condition in some way (as obviously having multiple locomotives complicates it) but I am sure its easy to implement the same way as Cargo currently works - by providing the total amount of stored fuel of selected type in all locomotives combined.
Add "Fuelling" station name with "fuel=0" condition. It means train should go to "Fuelling" station if no fuel items in the locomotive. Red bar should allow the train to move.
Darinth
Filter Inserter
Filter Inserter
Posts: 323
Joined: Wed Oct 17, 2018 12:17 pm
Contact:

Re: Train station skipping conditions

Post by Darinth »

Rather than an 'Idle' condition (which would be an arrival condition), implementing the original suggestion along with a 'Other stops available' condition as a skip & depart condition would achieve the same thing, without implementation of a 3rd type of new type of condition, which I can only see usage for this one application.

You'd set your idle station along with a skip & depart condition of "Other stops available" and it'll go to idle only when there aren't other stops available. My only other concern (and this may simply be the result of me not knowing enough about factorio's train logic) would be trains getting stuck at an idle station because the frontmost train is still stuck in idle and so the trains behind it can't pull forward. I don't think there's any way to limit a station to having one train pathing to it at a time. So whatever train ends up in front would hold up the rest. I think you could get around with by implementing a stacker in such a way that the stacker has a clear path to the idle station but also has a path around it. You'd end up with one train at your idle station, the rest in the stack, and if a train in the stack gets a new destination, they simply path around the station and continue on their way.
mrvn
Smart Inserter
Smart Inserter
Posts: 5969
Joined: Mon Sep 05, 2016 9:10 am
Contact:

Re: Train station skipping conditions

Post by mrvn »

Darinth wrote: Thu Oct 25, 2018 1:15 pm Rather than an 'Idle' condition (which would be an arrival condition), implementing the original suggestion along with a 'Other stops available' condition as a skip & depart condition would achieve the same thing, without implementation of a 3rd type of new type of condition, which I can only see usage for this one application.

You'd set your idle station along with a skip & depart condition of "Other stops available" and it'll go to idle only when there aren't other stops available. My only other concern (and this may simply be the result of me not knowing enough about factorio's train logic) would be trains getting stuck at an idle station because the frontmost train is still stuck in idle and so the trains behind it can't pull forward. I don't think there's any way to limit a station to having one train pathing to it at a time. So whatever train ends up in front would hold up the rest. I think you could get around with by implementing a stacker in such a way that the stacker has a clear path to the idle station but also has a path around it. You'd end up with one train at your idle station, the rest in the stack, and if a train in the stack gets a new destination, they simply path around the station and continue on their way.
That's true for any station with multiple trains. A Stacker is the solution there.
Darinth
Filter Inserter
Filter Inserter
Posts: 323
Joined: Wed Oct 17, 2018 12:17 pm
Contact:

Re: Train station skipping conditions

Post by Darinth »

Sorry, this is probably just my inexperience talking. When I think of a stacker, I don't generally think of also providing a secondary path around the station because the stacker is generally designed to funnel trains one at a time to a station as it becomes available. In this case, you'd actually need the ability to bypass the station when a train gets a new destination while waiting in queue.
mrvn
Smart Inserter
Smart Inserter
Posts: 5969
Joined: Mon Sep 05, 2016 9:10 am
Contact:

Re: Train station skipping conditions

Post by mrvn »

Unless you have a station based stacker, one that has a station at every lane. Using chain signals ensures every lane only gets one train, any extras reroute to a free lane.
JAetherwing
Inserter
Inserter
Posts: 34
Joined: Sat Dec 29, 2018 2:51 pm
Contact:

Re: Train station skipping conditions

Post by JAetherwing »

Sad_Brother wrote: Sat Oct 20, 2018 9:56 am Add "Depot" station name with "iddle" condition. It means train should go to "Depot" station when no other valid destinations in list. Exit condition may be empty because nowhere to move anyway. But may be used for fuelling purpose for example.
You don't even necessarily need an idle station, if all other stations don't work the train simply does nothing (as it is right now if all stations are disabled).

By the way, I did some mockups of a possible train GUI with skip conditions using the new GUI from a recent friday facts. https://imgur.com/gallery/Nd24BYy
Sad_Brother
Fast Inserter
Fast Inserter
Posts: 209
Joined: Mon Jan 08, 2018 4:54 pm
Contact:

Re: Train station skipping conditions

Post by Sad_Brother »

JAetherwing wrote: Sat Dec 29, 2018 2:55 pm
Sad_Brother wrote: Sat Oct 20, 2018 9:56 am Add "Depot" station name with "iddle" condition. It means train should go to "Depot" station when no other valid destinations in list. Exit condition may be empty because nowhere to move anyway. But may be used for fuelling purpose for example.
You don't even necessarily need an idle station, if all other stations don't work the train simply does nothing (as it is right now if all stations are disabled).

By the way, I did some mockups of a possible train GUI with skip conditions using the new GUI from a recent friday facts. https://imgur.com/gallery/Nd24BYy
To leave the tracks clear.
User avatar
<NO_NAME>
Filter Inserter
Filter Inserter
Posts: 295
Joined: Tue Aug 02, 2016 9:52 am
Contact:

Re: Train station skipping conditions

Post by <NO_NAME> »

JAetherwing wrote: Sat Dec 29, 2018 2:55 pm
Sad_Brother wrote: Sat Oct 20, 2018 9:56 am Add "Depot" station name with "iddle" condition. It means train should go to "Depot" station when no other valid destinations in list. Exit condition may be empty because nowhere to move anyway. But may be used for fuelling purpose for example.
You don't even necessarily need an idle station, if all other stations don't work the train simply does nothing (as it is right now if all stations are disabled).

By the way, I did some mockups of a possible train GUI with skip conditions using the new GUI from a recent friday facts. https://imgur.com/gallery/Nd24BYy
Beautiful mockups. Nice and simple solution for many problems with managing train routes.
I am a translator. And what did you do for Factorio?
Check out my mod "Realistic Ores" and my other mods!
sparr
Smart Inserter
Smart Inserter
Posts: 1462
Joined: Fri Feb 14, 2014 5:52 pm
Contact:

Re: Train station skipping conditions

Post by sparr »

The mockup with separate skip conditions are nice, but I want to reiterate that the spirit of the original request could be accomplished with just a checkbox, "skip this station if the train already meets this station's departure conditions"
Jap2.0
Smart Inserter
Smart Inserter
Posts: 2406
Joined: Tue Jun 20, 2017 12:02 am
Contact:

Re: Train station skipping conditions

Post by Jap2.0 »

sparr wrote: Tue Jan 01, 2019 8:21 pm The mockup with separate skip conditions are nice, but I want to reiterate that the spirit of the original request could be accomplished with just a checkbox, "skip this station if the train already meets this station's departure conditions"
Certainly it could, but I do feel that having the option to skip if certain conditions are met would open up a lot more interesting use-cases for this.
There are 10 types of people: those who get this joke and those who don't.
TheUnknown007
Fast Inserter
Fast Inserter
Posts: 129
Joined: Sun May 03, 2015 9:17 pm
Contact:

Re: Train station skipping conditions

Post by TheUnknown007 »

sparr wrote: Tue Jan 01, 2019 8:21 pm The mockup with separate skip conditions are nice, but I want to reiterate that the spirit of the original request could be accomplished with just a checkbox, "skip this station if the train already meets this station's departure conditions"
Wouldn't work for me, I use circuit conditions to make trains leave (i.e. for all stations, leave when green signal = 1), but that means that the leave condition for all stations is true and it wouldn't go anywhere.
mrvn
Smart Inserter
Smart Inserter
Posts: 5969
Joined: Mon Sep 05, 2016 9:10 am
Contact:

Re: Train station skipping conditions

Post by mrvn »

TheUnknown007 wrote: Wed Jan 02, 2019 4:54 pm
sparr wrote: Tue Jan 01, 2019 8:21 pm The mockup with separate skip conditions are nice, but I want to reiterate that the spirit of the original request could be accomplished with just a checkbox, "skip this station if the train already meets this station's departure conditions"
Wouldn't work for me, I use circuit conditions to make trains leave (i.e. for all stations, leave when green signal = 1), but that means that the leave condition for all stations is true and it wouldn't go anywhere.
Then a) don't set the checkmark or b) don't set the signal with no train present.
Engimage
Smart Inserter
Smart Inserter
Posts: 1069
Joined: Wed Jun 29, 2016 10:02 am
Contact:

Re: Train station skipping conditions

Post by Engimage »

JAetherwing wrote: Sat Dec 29, 2018 2:55 pm
Sad_Brother wrote: Sat Oct 20, 2018 9:56 am Add "Depot" station name with "iddle" condition. It means train should go to "Depot" station when no other valid destinations in list. Exit condition may be empty because nowhere to move anyway. But may be used for fuelling purpose for example.
You don't even necessarily need an idle station, if all other stations don't work the train simply does nothing (as it is right now if all stations are disabled).

By the way, I did some mockups of a possible train GUI with skip conditions using the new GUI from a recent friday facts. https://imgur.com/gallery/Nd24BYy
Awesome dude. Just awesome!
guy smiley
Inserter
Inserter
Posts: 20
Joined: Mon Aug 21, 2017 7:40 am
Contact:

Re: Train station skipping conditions

Post by guy smiley »

JAetherwing wrote: Sat Dec 29, 2018 2:55 pm
Sad_Brother wrote: Sat Oct 20, 2018 9:56 am Add "Depot" station name with "iddle" condition. It means train should go to "Depot" station when no other valid destinations in list. Exit condition may be empty because nowhere to move anyway. But may be used for fuelling purpose for example.
You don't even necessarily need an idle station, if all other stations don't work the train simply does nothing (as it is right now if all stations are disabled).

By the way, I did some mockups of a possible train GUI with skip conditions using the new GUI from a recent friday facts. https://imgur.com/gallery/Nd24BYy
Awesome stuff. Currently crying, while staring at my stupid Crude Oil train going back and forth, back and forth, back and forth. from dropoff, to refuelling, to dropoff, to refuelling. (Because right now no Crude Oil Pickup stations are enabled.)

Devs, please,just implement this. The GUI work is basically already done for you, I explained in a post some time ago, possibly in one of the other threads for this suggestion, just how the logic should work. Or rather, my interpretation of how this new set of conditions could be inserted into the already existing decision making the train already does. Your train system is the best part of this game - It's So Frickin Cool I Love It! - but it's still so limited and silly in this regard.
Post Reply

Return to “Ideas and Suggestions”