Train schedule broken?
Train schedule broken?
So I'm just getting going on Space Age. It is really fun. I build an automated defense wall. This wall has stations that request items and open and close the station based off of those request. All of those stations are called "Wall Defense" and the train loading station is "Wall Defense Supply." I used to set a train with a schedule of say 1 "Wall Defense Supply" and 10 "Wall Defense." Once the train rain through that schedule it automatically returned back to restock.
Now it is going from the loading station to one single wall defense and then heading straight back to the loading station. It isn't going through the station list. Any ideas?
Now it is going from the loading station to one single wall defense and then heading straight back to the loading station. It isn't going through the station list. Any ideas?
Re: Train schedule broken?
Not a bug, this is a gameplay question.
Stations with the same name are treated as identical by the train. There also is no requirement that a train actually move anywhere to arrive at a station. If the train is already at a stop named "Wall Defense" and has a schedule with consecutive "Wall Defense" entries, it will satisfy all the schedule entries by "re-arriving" at the stop where it already is. See if you can figure out a different system.
Also there is currently a bug where a train will re-arrive at its current stop even if the current stop becomes disabled/limit zero. So you actually need an "exit stop" in the schedule and located after every Wall stop so the train moves before deciding where the next open Wall stop is.
Stations with the same name are treated as identical by the train. There also is no requirement that a train actually move anywhere to arrive at a station. If the train is already at a stop named "Wall Defense" and has a schedule with consecutive "Wall Defense" entries, it will satisfy all the schedule entries by "re-arriving" at the stop where it already is. See if you can figure out a different system.
Also there is currently a bug where a train will re-arrive at its current stop even if the current stop becomes disabled/limit zero. So you actually need an "exit stop" in the schedule and located after every Wall stop so the train moves before deciding where the next open Wall stop is.
My mods: Multiple Unit Train Control, Smart Artillery Wagons
Maintainer of Vehicle Wagon 2, Cargo Ships, Honk
Maintainer of Vehicle Wagon 2, Cargo Ships, Honk
Re: Train schedule broken?
But they WEREN'T treated identical before Space Age. Now they are. Why would that change occur? It doesn't make much sense.
-
- Manual Inserter
- Posts: 3
- Joined: Mon Oct 28, 2024 1:53 am
- Contact:
Re: Train schedule broken?
I agree, this is a major change in behavior from the old way. Also problematic and counter to logic.
Related bad behaviors:
Here's hoping this get fixed soon.
Related bad behaviors:
- Trains get stuck at destroyed / deconstructed stops in the schedule.
- Multiple trains with the same schedule can result in jammed up fuel stops when they interrupt to refuel and their original destination becomes disabled.
- Trains no longer able to reach stops just stall instead of moving on to next stop in schedule, jamming up the works.
Here's hoping this get fixed soon.
Re: Train schedule broken?
I also really want that bug to be fixed, sorry I didn't mention it in my earlier post.
I actually learned something new by doing a really interesting test in 1.1.110 that proves OP's point:
A track with two stops both named "Stop One" and a train with two schedule stations both named "Stop One". If both stops are accessible and available, the train will prefer to travel from one to the other. If one of the stops is full, the train stays in the "Destination Full" state waiting to be able to travel. However, if one of the stops is removed, the train will in fact "re-arrive" at the same stop and do the two sets of wait conditions in sequence over and over without moving. It seems like 2.0 made this last behavior mandatory (even when the current stop is limit=0).
Stations with the same name have always been treated equally by trains, which selected the nearest available one. What changed is that the reservation at a station is not released until the previous train actually leaves and there is space for another train to arrive. An oversight in the station-finding algorithm means that the not-yet-released reservation is still available to the train the moment that it leaves.
What should actually happen is the reservation of the departing train should be reassigned to "nobody", so it still blocks trains from arriving until the block is free, but makes the stop explicitly unavailable to the departing train.
I actually learned something new by doing a really interesting test in 1.1.110 that proves OP's point:
A track with two stops both named "Stop One" and a train with two schedule stations both named "Stop One". If both stops are accessible and available, the train will prefer to travel from one to the other. If one of the stops is full, the train stays in the "Destination Full" state waiting to be able to travel. However, if one of the stops is removed, the train will in fact "re-arrive" at the same stop and do the two sets of wait conditions in sequence over and over without moving. It seems like 2.0 made this last behavior mandatory (even when the current stop is limit=0).
Stations with the same name have always been treated equally by trains, which selected the nearest available one. What changed is that the reservation at a station is not released until the previous train actually leaves and there is space for another train to arrive. An oversight in the station-finding algorithm means that the not-yet-released reservation is still available to the train the moment that it leaves.
What should actually happen is the reservation of the departing train should be reassigned to "nobody", so it still blocks trains from arriving until the block is free, but makes the stop explicitly unavailable to the departing train.
My mods: Multiple Unit Train Control, Smart Artillery Wagons
Maintainer of Vehicle Wagon 2, Cargo Ships, Honk
Maintainer of Vehicle Wagon 2, Cargo Ships, Honk
Re: Train schedule broken?
Still broken and still annoying. Really ruining my gameplay as I can't find a way around it. @moderators any help?
Re: Train schedule broken?
See here for an example how to make a supply train visit outpost stations one after another until it's empty, then visit resupply, then again outposts until empty.
Relevant things that make it work:
- use train limits of 0 and 1 instead of activating/deactivating the outpost stations. Deactivating stations doesn't work.
- outpost stations must be added through interrupts. Static schedule doesn't work.
viewtopic.php?p=651772#p651772
(this is an example for an artillery train, but it's of course possible to make it work with a multiple item supply train as well. Instead of just checking shells>0 to keep going, you can use a circuit signal you compute at every outpost that tells the train to either continue visiting outposts or going back to the base for a refill.
Relevant things that make it work:
- use train limits of 0 and 1 instead of activating/deactivating the outpost stations. Deactivating stations doesn't work.
- outpost stations must be added through interrupts. Static schedule doesn't work.
viewtopic.php?p=651772#p651772
(this is an example for an artillery train, but it's of course possible to make it work with a multiple item supply train as well. Instead of just checking shells>0 to keep going, you can use a circuit signal you compute at every outpost that tells the train to either continue visiting outposts or going back to the base for a refill.
Re: Train schedule broken?
I've seen it. A workaround because they broke train scheduling for no reason isn't acceptable. They need to fix this issue. NOBODY likes it. NOBODY wants to do more work for no reason.
Re: Train schedule broken?
Instead of constant complaining and shouting "they need to fix that! they need to fix that!" for a thing that might be never changed, you could just as well see this as challenge and find an alternative solution as I did and forget about it, since it works. The game has changed from 1.1 to 2.0, so some things are different and need a different approach. This isn't a bad thing, it's just as everything works.
If you say "nobody likes it", exclude me. I never even saw an issue with changed train schedule behavior until I saw threads like this. I find the new behavior with interrupts and all pretty good in comparison to the 1.1 behavior, and I still kind of wonder what you're complaining about in the first place. I played > 4000 hours in 1.1 and I designed supply stations and schedules you wrote about for my bases, solved all challenges that came up with that, so I know what I'm talking about.
If you say "nobody likes it", exclude me. I never even saw an issue with changed train schedule behavior until I saw threads like this. I find the new behavior with interrupts and all pretty good in comparison to the 1.1 behavior, and I still kind of wonder what you're complaining about in the first place. I played > 4000 hours in 1.1 and I designed supply stations and schedules you wrote about for my bases, solved all challenges that came up with that, so I know what I'm talking about.
Re: Train schedule broken?
4,000 hours? That is it? That's cute. That doesn't make you an expert. There are literally dozens of threads about this complaint. And the "workaround" by adding interrupts is actually massively time consuming and is extremely inefficient. In a game about efficiency why are we doing something inefficient?
Probably best if you just moved along.
Probably best if you just moved along.
Re: Train schedule broken?
You can as well set only 1 supply station (with no conditions to leave) and select going to outpost station in interrupt if train still have items to supply and its not in the station. This does not need many effort to programm. I find interruptions really usefull on train management.
Re: Train schedule broken?
Could you please explain what exactly is extremely inefficient? As far as I see it, using interrupts is efficient, it's easy and more advanced than using static schedules because of the flexibility they add. I also don't understand what you mean by massively time consuming. The trains move to the intended destinations and reach their destination. I don't see anything that can be considered "massively time consuming". What is it that you're seeing differently than I? I'm asking you, because I don't see it.
Re: Train schedule broken?
My stations require dozens upon dozens of items to maintain the defensive wall. In order to satisfy those items I would have to set up dozens upon dozens of interrupts. Unless I am mistaken and have been using them wrong there is not simple way to do it. My stations used to use very simple logic to say that they needed items. When they needed items the station opened. The train arrived and the inserters grabbed specific items and stocked the chests. When the item needs were satisfied the station closed, the inserters did nothing, and the train departed after 2 seconds of inactivity. Stations are setup based off of the grid for roboport construction. That way one roboport could repair it's section of the wall without being in a giant network. This kept losses of construction bots to a minimum. As you can imagine a mega base can have hundreds or even thousands of stops. My server before I hit max run time had over 1200 wall defense train stops. I had 8 wall defense supply trains and their schedules had 15 stops before they cycled back to the supply station. If none of the wall defense stations were open they sat at the supply depot. If one opened they left. As you can imagine at any given time I could have 30-40 stations open as artillery is firing or walls are being damaged and repaired.Tertius wrote: ↑Wed Jan 01, 2025 1:11 amCould you please explain what exactly is extremely inefficient? As far as I see it, using interrupts is efficient, it's easy and more advanced than using static schedules because of the flexibility they add. I also don't understand what you mean by massively time consuming. The trains move to the intended destinations and reach their destination. I don't see anything that can be considered "massively time consuming". What is it that you're seeing differently than I? I'm asking you, because I don't see it.
So that is why interrupts don't work for my setup. Unless I'm using them wrong I would need dozens of interrupts to ensure every single item is satisfied but only that specific quantity. I don't want 200 bots. I want 50. I don't want 200 turrets. I keep 25 on hand at each station.
Re: Train schedule broken?
I understand. I use the same supply train concept in general.
The train has a few wagons and carries 10 different items per wagon or something like that. I created a circuit setup to configure which and how many items to load into every wagon, and the counterpart in the outpost that unloads some set of items for wall supply. Configuration is done by using 1 constant combinator per wagon to load or unload. This circuit is present on every outpost, so every outpost can have a different set of items. This circuit is able to detect if the train was able to satisfy all item requests or not, and this signal is being transmitted to the train and being used for the interrupt system. So I'm able to use just one interrupt to decide if the train can continue to the next outpost, or if there is some item out of stock an has to be restocked at the base.
The train has 1 fixed schedule entry (go to base outpost for resupply) and 4 interrupts: 1 for refuel, 1 for depot, 1 for "go to outpost (train currently at outpost)" and 1 for "go to outpost (train currently not at outpost)". The 2 different interrupts for the outpost schedule is because if the train is not at an outpost, there is no circuit feeding the signal that means "can continue to go to next outpost", so there needs to be one interrupt that reads the circuit signal and another one that just tells the train "go to the outpost".
The difference between your setup and mine is that my setup can detect dynamically with circuits that items must be resupplied, while you seem to have done this statically and just declare to visit the base every 15 stops. The downside of your setup is that if a train is out of some item after 10 stops, the remaining 5 stations will never get that item. In my setup, the train will only go back if there is really some item missing, but if an item is missing, it will immediately refill to ensure every station will get everything it needs.
This is my station pair.
Loading station at base:
Unloading station at outpost:
Train with schedule and depot:
Outpost-to-outpost interrupt: (notice circuit-triggered by L=0, where L is the limit to set the station open or closed, and which means the current station was fully satisfied if L=0, so the train can continue to the next station) Base/Depot-to-outpost interrupt:
Worked perfectly for supporting a defensive wall for a 1.1 20k SPM base with a single big rectangular wall around the whole base, and with a few small adjustments for 2.0 it also works for a still way smaller Nauvis base in 2.0.
In 1.1 it ran with static schedules of course, always alternating between outpost and base, 6 trains as far as I remember and about 20 outposts or something like that. One wall segment supplied by one station was probably about 1000 tiles long, or 2000, or something like that - extremely long, but since the wall had a good laser and flamethrower turret setup, it needed not very many repairs. All the supply trains were mostly inactive.
In 2.0, there are even less trains needed, since thanks to the interrupt system it's only required to return to the base if one of its items is out of stock.
Re: Train schedule broken?
So when I took your blueprints in and added them in a big empty section of my base it pulled EVERYTHING I had from logistics into the stations. Likely not correct and I'm not sure why. I had like 5000 bots flying around to move materials lol.
Here is my BP string of a sample I made really quickly. It shows how I have it setup and how I want it to run. But with interrupts I don't see how it is possible.
Here is my BP string of a sample I made really quickly. It shows how I have it setup and how I want it to run. But with interrupts I don't see how it is possible.
Re: Train schedule broken?
You were probably a vicitim of the automated trash disposal of the unloading station. This station is supposed to be placed in an isolated logistics network that just contains itself and the wall section it should supply. Everything in the network that's not requested by the constant combinators is requested to be disposed. It's pulled into the last wagon that moves trash, for example deconstructed items, from the outpost back into the base. No other unloading station of this kind must be in the same network, otherwise one station trashes what the other provides and vice versa.
The loading station at the base has no such behavior, it's supposed to be in the same logistics network as your mall to be able to fill the trains when they visit for a refill.
About your blueprint: You need to make a change to your unloading stations. It seems you have a constant combinator that defines the demand of the station. We can reuse this information for train control. Set the station to read train content and to send the circuit network to the train. Use an arithmetic combinator to subtract the demand (from the constant combinator) from the train content. Every item that shows negative means the train has to restock, then visit again to satisfy the demand. So this is our criteria to set L=0 or L=1 with a decider combinator. Feed the L into the station and configure the station to use L to set the train limit.
Additionally, unconfigure the station activation/deactivation. This is because of the game engine quirk: opening/closing the station must be done by train limits, not by activating/deactivating the station. Small hint: simply forget this option even exists. Always use train limits instead.
Using limits instead of activation is the first condition to make my example work, the second one is using interrupts for schedule instead of static schedules. So use an interrupt to direct trains from station to station if L=0 by using L=0 in an interrupt condition. See possible additional constraints in my interrupt example.
The big picture is this:
Station detects if train has enough items. It sets L=0 if it has enough items, so it will close and not request another train. Additionally, by reading L=0 in the interrupt condition the train learns it was able to satisfy this station and should continue to visit the next outpost. If this condition doesn't match, it falls through all interrupts back to the single standard schedule entry, which orders it to return to the base for a refill. Since the base doesn't have this L=0/L=1 mechanic, it's required to have a second interrupt that just sends the train to the outpost if it is at the base, and no checking of any L=? signal.
The loading station at the base has no such behavior, it's supposed to be in the same logistics network as your mall to be able to fill the trains when they visit for a refill.
About your blueprint: You need to make a change to your unloading stations. It seems you have a constant combinator that defines the demand of the station. We can reuse this information for train control. Set the station to read train content and to send the circuit network to the train. Use an arithmetic combinator to subtract the demand (from the constant combinator) from the train content. Every item that shows negative means the train has to restock, then visit again to satisfy the demand. So this is our criteria to set L=0 or L=1 with a decider combinator. Feed the L into the station and configure the station to use L to set the train limit.
Additionally, unconfigure the station activation/deactivation. This is because of the game engine quirk: opening/closing the station must be done by train limits, not by activating/deactivating the station. Small hint: simply forget this option even exists. Always use train limits instead.
Using limits instead of activation is the first condition to make my example work, the second one is using interrupts for schedule instead of static schedules. So use an interrupt to direct trains from station to station if L=0 by using L=0 in an interrupt condition. See possible additional constraints in my interrupt example.
The big picture is this:
Station detects if train has enough items. It sets L=0 if it has enough items, so it will close and not request another train. Additionally, by reading L=0 in the interrupt condition the train learns it was able to satisfy this station and should continue to visit the next outpost. If this condition doesn't match, it falls through all interrupts back to the single standard schedule entry, which orders it to return to the base for a refill. Since the base doesn't have this L=0/L=1 mechanic, it's required to have a second interrupt that just sends the train to the outpost if it is at the base, and no checking of any L=? signal.
Re: Train schedule broken?
Couldn't get it to work. Would only go to one station and then back or just not at all. Total nightmare this change they made for zero benefit.
Re: Train schedule broken?
So they still haven't fixed this or changed it back to how it should be. Its quite literally ruining the game for me. And since I can't get interrupts to work efficiently I'm about to just uninstall and be done with a game I have 10,000+ hours in.
Can someone look at this garbage and let me know if it is correct?
I had unchecked the top station send to train, set train limit and read train contents. I forgot to turn them back on during the BP creation.
download/file.php?mode=view&id=98683
download/file.php?mode=view&id=98682
Can someone look at this garbage and let me know if it is correct?
I had unchecked the top station send to train, set train limit and read train contents. I forgot to turn them back on during the BP creation.
download/file.php?mode=view&id=98683
download/file.php?mode=view&id=98682
- Attachments
-
- Screenshot 2025-01-08 133501.png (402.23 KiB) Viewed 149 times
-
- Screenshot 2025-01-08 133525.png (355.78 KiB) Viewed 149 times
Re: Train schedule broken?
The blueprint is very unfinished. It's not possible to guess the concept behind the build. Could you please explain what you try to implement? A proper explanation includes the concept as a whole, the train layout as a whole. Not individual configuration settings within a station. Without knowing the concept, we continue to try to explain an XY-problem.
For example, one thing I realized the first time in this thread is that it could be your outposts are on a long rail track and it seems you want to make the train proceed to the first, then to the second, then to more to come, and after some fixed amount the track returns to the loading station. The train is forced to drive in the corresponding circle. Is this a correct guess? (this never occurred to me, since I would never do it this way)
What's the whole concept and idea? How are the outposts supposed to work and use the items? The items seem to not only support and repair the wall, they seem to also deliver the items for building the wall in the first place. How are the outposts supposed to unload their items? You seem to supply artillery turrets, but there is no artillery shell transport. Where is this supposed to work? If you want people offer in-depth customized solutions tailored to your base, you need to give a description of what they should produce. We offered general help and examples of how we approach such a thing at our bases, but it seems that doesn't fit your idea. So please explain your idea.
For example, one thing I realized the first time in this thread is that it could be your outposts are on a long rail track and it seems you want to make the train proceed to the first, then to the second, then to more to come, and after some fixed amount the track returns to the loading station. The train is forced to drive in the corresponding circle. Is this a correct guess? (this never occurred to me, since I would never do it this way)
What's the whole concept and idea? How are the outposts supposed to work and use the items? The items seem to not only support and repair the wall, they seem to also deliver the items for building the wall in the first place. How are the outposts supposed to unload their items? You seem to supply artillery turrets, but there is no artillery shell transport. Where is this supposed to work? If you want people offer in-depth customized solutions tailored to your base, you need to give a description of what they should produce. We offered general help and examples of how we approach such a thing at our bases, but it seems that doesn't fit your idea. So please explain your idea.
Re: Train schedule broken?
Did you even open and build the BP? It is very basic and very simple. Yes the train proceeds in a circle. I manually build the wall with bots and inventory. The train then supplies everything needed to repair/rebuild the wall as it is damaged. First wagon has all the supplies and spots saved. Second wagon is all artillery.
Before they destroyed trains in this game you could set 10 stops and the train would proceed to them as they opened. Yes occasionally the train might not have the item required. But that was rare. And the usual problem was artillery shells being expended as a wagon only carried 48. Now with these goofy interrupts I can get the train to go to one station but it will not go to another. It requires to go back to the supply and then goes back out. Extremely time consuming and wasteful.
Before they destroyed trains in this game you could set 10 stops and the train would proceed to them as they opened. Yes occasionally the train might not have the item required. But that was rare. And the usual problem was artillery shells being expended as a wagon only carried 48. Now with these goofy interrupts I can get the train to go to one station but it will not go to another. It requires to go back to the supply and then goes back out. Extremely time consuming and wasteful.