Train station skipping conditions

Post your ideas and suggestions how to improve the game.

Moderator: ickputzdirwech

User avatar
<NO_NAME>
Filter Inserter
Filter Inserter
Posts: 291
Joined: Tue Aug 02, 2016 9:52 am
Contact:

Re: Train station skipping conditions

Post by <NO_NAME> »

TheUnknown007 wrote:That's not true, in my base, it's the train that knows what it needs, not the station.
Example: I have train that goes to about six supply stations before returning to a factory outpost. This train sets out as soon as any of the supplies run out, but it could skip all other stations. However, each supply station is for multiple trains, so disabling the station is not an option.
My example is more complicated: In each my outpost, I have one station which gathers all the items which construction robots needs to repair (or expanding) the outpost. The items are distributed over a few trains: walls and defense, transport belts and inserters, etc.
A train has no way to know which station needs materials so skipping condition cannot replace disabling station here.
However, I don't want to send my every train to an outpost which requested only a few walls. I would like to have a skipping condition for that and for example send information of which items are requested over a circuit network.

I think that both disabling stations and skipping conditions are needed. Each of these ways has flaws but they complement each other.
I am a translator. And what did you do for Factorio?
Check out my mod "Realistic Ores" and my other mods!

User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12888
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Train station skipping conditions

Post by ssilk »

Well, "both" is a bit too simple as answer. As it's also too simple to say "I need that, cause I don't want to rebuild my Factory". 8-)

And I think logistic trains mod is the right way to go for such complex supply cases. ;)
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...

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

Re: Train station skipping conditions

Post by TheUnknown007 »

I wouldn't say that both are needed, but they sure would be nice. And I think what <NO_NAME> was trying to say is that both can be used to do something that you cannot do with only the other, therefore to do everything, you need both.

User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12888
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Train station skipping conditions

Post by ssilk »

TheUnknown007 wrote:I wouldn't say that both are needed, but they sure would be nice.
Agreed, but as mod. I think it will be possible to implement such mods then.
And I think what <NO_NAME> was trying to say is that both can be used to do something that you cannot do with only the other, therefore to do everything, you need both.
Also agreed, but - as already argued many times in the last weeks, especially by Rseding91 - if you make things too simple in Factorio, you will remove the fun to tweak it. And that's one of the basic elements in Factorio.
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...

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

Re: Train station skipping conditions

Post by TheUnknown007 »

But this feature wouldn't make something complex simpler, it would make something that is impossible (in vanilla) possible.

User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12888
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Train station skipping conditions

Post by ssilk »

That is not sure. And even if, it's still questionable, if really needed and useful.
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...

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

Re: Train station skipping conditions

Post by TheUnknown007 »

Needed: no, I already said that
Useful: probably

And as far as I can see, there is no way that is not ridiculously complicated to let only a specefic train to a station if you can only disable stations globally, but feel free to tell me a simple way if you know one.

User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12888
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Train station skipping conditions

Post by ssilk »

But if it's not really needed, why do you need it? :D 8-)
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...

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

Re: Train station skipping conditions

Post by TheUnknown007 »

I don't need it, I want it. That's why it is a feature request instead of a feature demand.

User avatar
Deadly-Bagel
Smart Inserter
Smart Inserter
Posts: 1498
Joined: Wed Jul 13, 2016 10:12 am
Contact:

Re: Train station skipping conditions

Post by Deadly-Bagel »

Just the ability to add a fuel run would be a HUGE quality of life improvement. Currently I have a coal train that runs around all my outposts dropping coal into a chest which then loads it into the locomotive of any train parked there. This is necessary as I don't have a central base so there's no one or two points that every train will pass through.
Money might be the root of all evil, but ignorance is the heart.

vipm23
Long Handed Inserter
Long Handed Inserter
Posts: 54
Joined: Fri Aug 12, 2016 4:05 pm
Contact:

Re: Train station skipping conditions

Post by vipm23 »

ssilk wrote:But if it's not really needed, why do you need it? :D 8-)
It's not needed the way universal barreling isn't needed-We can do without it, but we can do so much more with it.

There's two overarching use cases I can see for skipping conditions where disabling the station outright would be a liability:
1.Skipping a station when a condition at the station is fulfilled. Disabling the station would fulfill this need, but you would need a dedicated train stop for, depending on the situation, each material requested or each train that uses that station.
This is stuff like sending out an ammo train to outposts that just need ammo, and sending out a wall train to outposts that just need replacement walls(you would need a separate stop for ammo or walls without skipping conditions). Or skipping an exporting station that doesn't have anything stored(you would need a separate stop for each train without skipping conditions).

2.Skipping a station when a condition in the train is fulfilled. Disabling stations wouldn't help with this any.
This is stuff like refueling a train when needed, or sending a resupply train back immediately when it runs out of supplies instead of looping through all the other outposts that need supplying (Even with 'leave immediately when empty' orders, having to loop through all outposts increases the time needed to resupply the train and makes it more vulnerable to getting stuck-if it can't path to the next station, say if a biter bites the wrong rail, it stops and no one gets resupplied.)

On that note, I'd like a skip-only condition for if the train can or can't path to that station.

mrvn
Smart Inserter
Smart Inserter
Posts: 5682
Joined: Mon Sep 05, 2016 9:10 am
Contact:

Re: Train station skipping conditions

Post by mrvn »

BenSeidel wrote:
ssilk wrote:
mrvn wrote:Having the train skip stops where the leave condition is already met should be simpler and already help a lot. No GUI changes required.
Exactly. Would be easy to be implemented. Eventually already in 0.15.
Would be easy to implement, but would not have the desired outcome. How would a circuit network signal interact with the trains wait condition? Does the train automatically "know" what the values of the network are for it's targeted station?
Yes. Train operators have a radio and call ahead to the station to check the network signal.
BenSeidel wrote:How does this interact with multiple stations with the same name? does it still find the closest station or does it find the closest station that it does not skip?
Interesting thought. With conditions that depend on the station the train could indeed ignore all stations that it would skip and drive to one where it should stay. If so consider this:

Station for loading are named properly and get lots of trains. All unloading stations are named "X" and get network signals for the goods they need. All trains have a fixed loading station and X with a condition of "Signal Y or cargo empty" where Y is the type of good they load. Then trains would deliver goods automatically to where they are needed and you can turn on/off demand for goods at each station.
BenSeidel wrote: What happens when the signals change at it's target station?
When the train checks the next station it evaluates the signal. Then it skips to the next station. So any changes in the target station get ignored since it no longer is the target. Tood bad. Don't make a station that toggles it's signal every tick from "stop here" to "go away". :)
BenSeidel wrote:How does the "inactivity" condition work with this system?
Simple solution: Inactivity is never true for the check. You have to stand at the station for the desired time to make it come true. So "Inactivity" would prevent any station skipping. "Inactivity 0s" would be the "don't skip this station" marker in the schedule.

Harder: Check the train contents against inserters at the stations to see if they would do anything. But then you get issues with inserters that react to signals, specifically signals of trains in the station or waiting bay.
BenSeidel wrote:How would you get a train to skip a station when it's 50% full? How would it interact with the possible feature of letting the train stop read the trains contents?
Item count = xxx
BenSeidel wrote:Many stackers will have an issue with this as they use a signal to control the type of train to be let through. If a train can find at least one station that is letting a train through then it will skip the station, and hence the stacker - not the desired outcome. While the skip station based on wait conditions may be a "simple" change, it offers many many more corner cases where you just won't be able to get the desired outcome.
If the stacker has a station where it lets the train through then skipping the station is the same as driving through that station really really fast. If that breaks the stacker then it is already broken.

Where it might break though is with routing stations. What I mean there is stations you have on the schedule so the train takes a certain path. Maybe combined with network driven signals that make it go a certain way after the station. But then wouldn't you have "Inactivity 0s" as condition for those stops? Worst case you have to add that.

User avatar
ssilk
Global Moderator
Global Moderator
Posts: 12888
Joined: Tue Apr 16, 2013 10:35 pm
Contact:

Re: Train station skipping conditions

Post by ssilk »

mrvn wrote:
Does the train automatically "know" what the values of the network are for it's targeted station?
Yes. Train operators have a radio and call ahead to the station to check the network signal.
Is this really useful? I mean: In reality a complete chaos would break out, if the loco-driver would ask the next train-station, if he needs to stop or not. :)
Trains, busses, transporters and so on have a "plan", a schedule. Always. The get the schedule from "outside". And it works.

Well, Factorio is not the reality (or is it :? :lol: ), but the fact, that in reality it works the other way around is for me proof enough to say "Why should more be needed?".
Cool suggestion: Eatable MOUSE-pointers.
Have you used the Advanced Search today?
Need help, question? FAQ - Wiki - Forum help
I still like small signatures...

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

Re: Train station skipping conditions

Post by TheUnknown007 »

I agree with ssilk, although for different reasons: that would make it unintuitive: what stations are checked for this circuit condition? What happens if we are driving to a station and the circuit conditions change? Go to a different station with the same name? Just skip it?Checking that would also just EAT CPU time.


Why would it be possible for a train to have that information halfway accross the map when other types of circuits can't?
I also suspect it would be used to send information across the map by having a closed system with a train that either skips or goes to a station, and than infering to which station it went (or just asking the train stop, I think they implemented that in 0.15)

I suggest simply not allowing circuit conditions in the skip conditions. Same goes for time and inactivity.

User avatar
<NO_NAME>
Filter Inserter
Filter Inserter
Posts: 291
Joined: Tue Aug 02, 2016 9:52 am
Contact:

Re: Train station skipping conditions

Post by <NO_NAME> »

I would allow circuit conditions to be skipping conditions BUT it would be based on signals at the current station.

Somebody would ask what would be use of this but I dare to state that this would be the most powerful of all skipping conditions. Circuit network is named that not without a reason. We can have a cable that leads all the way to the destination station. Moreover, we can have connections between all the stations and a bunch of combinators that will decide where the train should go next.
That relatively simple change would add possibility to make trains so much smarter than now.
I am a translator. And what did you do for Factorio?
Check out my mod "Realistic Ores" and my other mods!

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

Re: Train station skipping conditions

Post by TheUnknown007 »

That would require you to drag the circuit network all the way to every station in order to have it work.
Since you still don't know where exactly the train is, you need to send a skip condition to every station it could possibly be. If you don't have a stations for only a single train, you have to watch out for collisions in the skip conditions.
That does not scale well in any way.

User avatar
Deadly-Bagel
Smart Inserter
Smart Inserter
Posts: 1498
Joined: Wed Jul 13, 2016 10:12 am
Contact:

Re: Train station skipping conditions

Post by Deadly-Bagel »

That would depend on what you're trying to do.

Most common would probably be "does the train require fuel?" and have it go to or skip a refuelling station, as I said. Then there's also "inventory full/empty" or "Circuits = 1,000" as there's no point visiting most stations if there's nothing to drop off or no room to pick up. These are the sort of "standard" uses for this feature and as it's internal it doesn't have any problems with expansion. In fact this would work beautifully with my current setup.

If you want an advanced logistic system then you better get your thinking cap on because I can think of three or four ways of handling it depending on circumstance. Some are more expandable than others.

Ideally trains could also send a configured signal to the circuit network through the train stop (in addition to its contents), perhaps several like a Constant Combinator. They could tell the circuit network what they're expecting to hold, or pass on an ID to identify the train. Or both.
Money might be the root of all evil, but ignorance is the heart.

mrvn
Smart Inserter
Smart Inserter
Posts: 5682
Joined: Mon Sep 05, 2016 9:10 am
Contact:

Re: Train station skipping conditions

Post by mrvn »

TheUnknown007 wrote:I agree with ssilk, although for different reasons: that would make it unintuitive: what stations are checked for this circuit condition? What happens if we are driving to a station and the circuit conditions change? Go to a different station with the same name? Just skip it?Checking that would also just EAT CPU time.


Why would it be possible for a train to have that information halfway accross the map when other types of circuits can't?
I also suspect it would be used to send information across the map by having a closed system with a train that either skips or goes to a station, and than infering to which station it went (or just asking the train stop, I think they implemented that in 0.15)

I suggest simply not allowing circuit conditions in the skip conditions. Same goes for time and inactivity.
Remember this is just mend as quick fix to have something to play with till real smart trains can be implemented.

The suggestion was to check the condition of the train stop when it picks the stop. And when the condition is already fulfilled the stop is skipped. And skipped means the next station in the list is picked and the whole process repeats. If the old station then changes then that is irrelevant since it was already skipped.

On the other hand the train might decide to go to a station and half way there the condition changes and it should skip the station. I seem to remember that trains recompute their destination when they hit a signal. Maybe just red signals, maybe every signal? Anyway, when they do recompute their destination the condition would be checked again at the same time.


Now a more interesting question: If train stops can be skipped, maybe even mid travel, then what does a train do when it skips all stations?

vipm23
Long Handed Inserter
Long Handed Inserter
Posts: 54
Joined: Fri Aug 12, 2016 4:05 pm
Contact:

Re: Train station skipping conditions

Post by vipm23 »

ssilk wrote:
vipm23 wrote:The problem with that is disabling the train stop disables it for all trains, not just one with a particular condition.
The problem depends, on how you want to do things.
Using more trains makes it easier.
With disabling stops outright? No, it does not.
The more trains you have in the system relative to stops, the more trains that would be inadvertently affected by a stop switching off. This would be unavoidable for any rail system with less trains than stops. You would need at least one stop for every station per train to maintain uninterrupted service.

Skip conditions are a more elegant way to handle more trains than stops-it lets one stop service multiple trains without interruption while still being able to let trains react to conditions. GOTO conditions, similarly, allows one stop to service multiple trains without interruption, and does not suffer the balance issue of "How does this train get this information all the way across the map."

Unless you can disable a stop for just one train while letting others in, disabling the stop is simple to implement but too crude to actually use.
mrvn wrote:
Now a more interesting question: If train stops can be skipped, maybe even mid travel, then what does a train do when it skips all stations?
It's been suggested earlier that the train should simply stop where it is until a station opens up.

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

Re: Train station skipping conditions

Post by TheUnknown007 »

vipm23 wrote:
mrvn wrote:
Now a more interesting question: If train stops can be skipped, maybe even mid travel, then what does a train do when it skips all stations?
It's been suggested earlier that the train should simply stop where it is until a station opens up.
That will only work with a train network where the train is guaranteed to be able to reach an "out of the way"-station from every position. Which means that you are pretty much forced to use loops at dead ends.

Post Reply

Return to “Ideas and Suggestions”