Trains need to skip unload stations when empty
Moderator: ickputzdirwech
-
- Manual Inserter
- Posts: 4
- Joined: Sat Sep 19, 2020 6:29 pm
- Contact:
Trains need to skip unload stations when empty
I strongly believe the current train system is fundamentally broken for a large number of mega base designs. It makes people flock to the LTN mod when really the vanilla system is near perfect with just one major oversight.
I've seen many threads about this online and the response has been that for trains to know which stations to skip would be magic, as how would the train know.
It is quite simple really and requires no magic, nor for the train to know anything but it's schedule and contents, which I'm sure we can agree a train knows it's schedule and its contents.
It all boils down to a simple fact, if a train is empty, and it is set to empty at its next station, it shouldn't go there. The train knows it's empty, the train knows at the next station the condition is to empty, so it shouldn't go there.
For mixing fluids / items. If a train is set to leave next station when the train gets below 2k iron, but the train already has below 2k iron on it. It shouldn't go there.
I hope this can be implemented asap as it really requires no magic.
I've seen many threads about this online and the response has been that for trains to know which stations to skip would be magic, as how would the train know.
It is quite simple really and requires no magic, nor for the train to know anything but it's schedule and contents, which I'm sure we can agree a train knows it's schedule and its contents.
It all boils down to a simple fact, if a train is empty, and it is set to empty at its next station, it shouldn't go there. The train knows it's empty, the train knows at the next station the condition is to empty, so it shouldn't go there.
For mixing fluids / items. If a train is set to leave next station when the train gets below 2k iron, but the train already has below 2k iron on it. It shouldn't go there.
I hope this can be implemented asap as it really requires no magic.
- eradicator
- Smart Inserter
- Posts: 5206
- Joined: Tue Jul 12, 2016 9:03 am
- Contact:
Re: Trains need to skip unload stations when empty
Did i get this right? TL;DR:
"A train should never drive towards a station if it already fullfills the leave condition for that station?"
That doesn't sound too hard to make an example mod of to test if it really works.
"A train should never drive towards a station if it already fullfills the leave condition for that station?"
That doesn't sound too hard to make an example mod of to test if it really works.
Author of: Belt Planner, Hand Crank Generator, Screenshot Maker, /sudo and more.
Mod support languages: 日本語, Deutsch, English
My code in the post above is dedicated to the public domain under CC0.
Mod support languages: 日本語, Deutsch, English
My code in the post above is dedicated to the public domain under CC0.
Re: Trains need to skip unload stations when empty
I can see the reasoning, but you'd probably need an exception for waypoint stations at least.
- 5thHorseman
- Smart Inserter
- Posts: 1193
- Joined: Fri Jun 10, 2016 11:21 pm
- Contact:
Re: Trains need to skip unload stations when empty
TAMFT
https://mods.factorio.com/mod/TrainSkipFulfilledStation
I've not utilized it yet, but I've had it installed for quite some time.
https://mods.factorio.com/mod/TrainSkipFulfilledStation
I've not utilized it yet, but I've had it installed for quite some time.
-
- Manual Inserter
- Posts: 4
- Joined: Sat Sep 19, 2020 6:29 pm
- Contact:
Re: Trains need to skip unload stations when empty
""A train should never drive towards a station if it already fullfills the leave condition for that station?"
Almost, but It doesn't have to, and shouldn't be that hard, it should only check things it already knows before it gets to the station, which is cargo only. i.e the train does not know if it's been inactive at the next ation yet, doesn't know if the next station matches a circuit condition, doesn't know if a passenger will be present at next station.
But it does know that it is empty, and it does know that it is full. So as to not create 'magic' it should check those conditions for the next station, i.e don't go to a 'Until cargo full' station if cargo is already full.
The current system is broken in this regard I think because it doesn't fit in with the functionality we already have, i.e we can turn off a station, which does allow for trains with e.g 2 iron pickup stops and 2 iron drop off stops, and turning off stations as wanted for load balancing and such. Meaning one can easily setup an iron train that will cover all iron pickup points if they are turned on, but currently there's no way to prevent the train from trying to fill up with iron 10 times after it's already full after the first pick up.
Simple real life analogy with shopping. If I need to buy toilet paper there are 10 shops that may have it in stock, if I bought what I need at shop 1 I will not be going to shops 2 through 10 to say, well, they have it but I already have it.
I think that makes sense. To make it more customizable we could get conditions in the scheduler for going to a station and not just leaving it. i.e schedule like this:
Train is at stop 1
Only if iron > 2k : Go to station 2, wait until cargo unload
Only if circuit condition present: Go to station 2.
Where the If refers to conditions as they are at the moment. So circuit condition would refer to the circuit conditions it's currently receiving and not circuit conditions magically referring to conditions from the next station.
Almost, but It doesn't have to, and shouldn't be that hard, it should only check things it already knows before it gets to the station, which is cargo only. i.e the train does not know if it's been inactive at the next ation yet, doesn't know if the next station matches a circuit condition, doesn't know if a passenger will be present at next station.
But it does know that it is empty, and it does know that it is full. So as to not create 'magic' it should check those conditions for the next station, i.e don't go to a 'Until cargo full' station if cargo is already full.
I think it does not need to go that far as that would be magic as I've written in this reply above, only cargo empty and cargo full condition stations should be skipped as the train already knows it is full or empty. Circuit condition, passenger, inactivity, no conditions - waypoints, I think should behave as they do now as the train does not know the circuit condition at next station etc. Also messing with that would break people's current setups but checking if empty before it goes empty shouldn't break anything.
The current system is broken in this regard I think because it doesn't fit in with the functionality we already have, i.e we can turn off a station, which does allow for trains with e.g 2 iron pickup stops and 2 iron drop off stops, and turning off stations as wanted for load balancing and such. Meaning one can easily setup an iron train that will cover all iron pickup points if they are turned on, but currently there's no way to prevent the train from trying to fill up with iron 10 times after it's already full after the first pick up.
This is pretty cool but it looks like that mod is magic because i.e it checks circuit condition at next station before it goes there, in vanilla it shouldn't be able to know the circuit status at a station it's not at or connected to. But it should know that if it is empty then it already meets a next stop empty condition.5thHorseman wrote: ↑Sat Sep 19, 2020 11:36 pmhttps://mods.factorio.com/mod/TrainSkipFulfilledStation
I've not utilized it yet, but I've had it installed for quite some time.
Simple real life analogy with shopping. If I need to buy toilet paper there are 10 shops that may have it in stock, if I bought what I need at shop 1 I will not be going to shops 2 through 10 to say, well, they have it but I already have it.
I think that makes sense. To make it more customizable we could get conditions in the scheduler for going to a station and not just leaving it. i.e schedule like this:
Train is at stop 1
Only if iron > 2k : Go to station 2, wait until cargo unload
Only if circuit condition present: Go to station 2.
Where the If refers to conditions as they are at the moment. So circuit condition would refer to the circuit conditions it's currently receiving and not circuit conditions magically referring to conditions from the next station.
Last edited by bartekxx12 on Sun Sep 20, 2020 4:35 am, edited 2 times in total.
Re: Trains need to skip unload stations when empty
Not similar, but relevant:
viewtopic.php?f=6&t=64362 Dynamic train schedule
... Which also lists a lot of threads...
viewtopic.php?f=6&t=69758 Ability to mark a station as mandatory in a schedule
... and as corona showed us: you can buy toiletpaper in ten shops, even if you are already full.
viewtopic.php?f=6&t=64362 Dynamic train schedule
... Which also lists a lot of threads...
viewtopic.php?f=6&t=69758 Ability to mark a station as mandatory in a schedule
... and as corona showed us: you can buy toiletpaper in ten shops, even if you are already full.
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
-
- Manual Inserter
- Posts: 4
- Joined: Sat Sep 19, 2020 6:29 pm
- Contact:
Re: Trains need to skip unload stations when empty
Thanks I'll have a read through, definitely seems that tonnes of people have been asking for something like this. I think it's because it's a logical progression of having stop circuit conditions and allowing turning on and off of stations. People will setup 10 iron drop off points and switch them on and off as needed but now their train will sometimes go to drop off at all 10 even if already empty.ssilk wrote: ↑Sun Sep 20, 2020 4:30 amNot similar, but relevant:
viewtopic.php?f=6&t=64362 Dynamic train schedule
... Which also lists a lot of threads...
viewtopic.php?f=6&t=69758 Ability to mark a station as mandatory in a schedule
... and as corona showed us: you can buy toiletpaper in ten shops, even if you are already full.
Hehehe, r.e corona, no! when my boot is full, I left my mother at the last shop to make room for more TP, and stuck a TP tower to the roof rack already, when I am full and can't be full no more, I will not be going to get more before I drop off. Even corona overshoppers know better. So it's official, the current train scheduling is more incomplete than a panic buyers brain cells.
-
- Manual Inserter
- Posts: 4
- Joined: Sat Sep 19, 2020 6:29 pm
- Contact:
Re: Trains need to skip unload stations when empty
So people still want this, 'If go to' conditions are important but for my use case I have been incredibly stupid.
The solution to auto balancing 10 Iron Ore Stations and 5 Iron Drop Stations and not having trains stop mid way and go reload again when full when a station is turned off is actually super simple.
All I had to do was name all Iron Ore stations the same name and all iron drop off stations the same name. The train schedule should then just be Iron Ore to Iron Drop. 2 stop schedule ensures that even if a drop off is switched off half way through the train will just go to a drop off that is still on.
So the solution is simply not to have 2 full unload stations in a schedule but to name them the same thing.
The solution to auto balancing 10 Iron Ore Stations and 5 Iron Drop Stations and not having trains stop mid way and go reload again when full when a station is turned off is actually super simple.
All I had to do was name all Iron Ore stations the same name and all iron drop off stations the same name. The train schedule should then just be Iron Ore to Iron Drop. 2 stop schedule ensures that even if a drop off is switched off half way through the train will just go to a drop off that is still on.
So the solution is simply not to have 2 full unload stations in a schedule but to name them the same thing.
Re: Trains need to skip unload stations when empty
Actually, there are loads of suggestions revolving around that subject :ssilk wrote: ↑Sun Sep 20, 2020 4:30 amNot similar, but relevant:
viewtopic.php?f=6&t=64362 Dynamic train schedule
... Which also lists a lot of threads...
viewtopic.php?f=6&t=69758 Ability to mark a station as mandatory in a schedule
... and as corona showed us: you can buy toiletpaper in ten shops, even if you are already full.
viewtopic.php?f=6&t=83636
viewtopic.php?f=6&t=25944
viewtopic.php?f=6&t=49214
viewtopic.php?f=6&t=59378
viewtopic.php?f=6&t=58057
viewtopic.php?f=6&t=53340
viewtopic.php?f=6&t=44314
viewtopic.php?f=6&t=34174
I'm ashamed I didn't spot them earlier to do some merging (trains are one of the two things that totally overwhelm me in Factorio, so I don't even try to understand the suggestions any more), I feel it's too late now, but at least this collection shows the interest of the community in such a feature.
I think however that some suggestions about controllable (or dynamic) scheduling would meet the need and offer maybe even more flexibility :
viewtopic.php?f=6&t=64362 (ssilk's first link)
Koub - Please consider English is not my native language.
- eradicator
- Smart Inserter
- Posts: 5206
- Joined: Tue Jul 12, 2016 9:03 am
- Contact:
Re: Trains need to skip unload stations when empty
Unexpected. What's number two?
Maybe i just played too much OTTD, but i've always thought both systems are mostly easy to understand. Though OTTD allows more complex schedules with a less cluncky UI imho. So i can't really agree to most of the suggestsions that want *more* complicated things. Or maybe i just haven't thought about it enough yet :D. @OPs "no magic" suggestion actually sound sane, though it remains to be seen (or not) how useful it would actually be in real-world scenarios.
Standard solution, but has problems of it's own. Train network must be designed to allow "turning around" at arbitrary points (restricts use of terminal stations). Some trains might pointlessly "osscillate" between two stations when other trains fullfull the requests faster. You must ensure to never disable all stations of the same name to prevent trains from blocking the whole lane with no-path. Etcpp. Workarounds exist, but don't feel "clean" to me.bartekxx12 wrote: ↑Sun Sep 20, 2020 6:29 amAll I had to do was name all Iron Ore stations the same name and all iron drop off stations the same name. The train schedule should then just be Iron Ore to Iron Drop. 2 stop schedule ensures that even if a drop off is switched off half way through the train will just go to a drop off that is still on.
Author of: Belt Planner, Hand Crank Generator, Screenshot Maker, /sudo and more.
Mod support languages: 日本語, Deutsch, English
My code in the post above is dedicated to the public domain under CC0.
Mod support languages: 日本語, Deutsch, English
My code in the post above is dedicated to the public domain under CC0.
Re: Trains need to skip unload stations when empty
Normally my interest. But on one side I had yesterday only my iPhone, which is really crappy when you need to switch fast between tabs. And I must admit, that I tend to compare those suggestions with the LTN-mod and most times I think “LTN is complex, high learning curve, but once it is running it is some waaayy simpler. It’s then much less complex.”Koub wrote: ↑Sun Sep 20, 2020 7:46 amI'm ashamed I didn't spot them earlier to do some merging (trains are one of the two things that totally overwhelm me in Factorio, so I don't even try to understand the suggestions any more), I feel it's too late now, but at least this collection shows the interest of the community in such a feature.
In that way I tend to judge those suggestions and think “well they see/improve only one aspect of THEIR gameplay.” That’s the reason, why there are so much of those suggestions.
That one is in my eyes a bit “better” than the others, because it has low complexity and adds a bit more. But far from taking away much complexity. It adds complexity to achieve better gameplay. But for those who struggle with trains and use them as less as possible it just adds complexity add a point they need to understand.I think however that some suggestions about controllable (or dynamic) scheduling would meet the need and offer maybe even more flexibility :
viewtopic.php?f=6&t=64362 (ssilk's first link)
But I thought over it and will make another suggestion...
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...