Train schedule Stop Offsets
Moderator: ickputzdirwech
-
- Burner Inserter
- Posts: 15
- Joined: Tue Apr 14, 2015 9:01 pm
- Contact:
Train schedule Stop Offsets
You set the offset per scheduled stop, so if you want to use a long train on a small station, you just add the stop multiple times and specify how far past the train stop that the train moves forward each time. On my 6-96 train, I could make a 8 wagon unloader and then set the schedule to:
StopSmelter (Offset 0)
Wait for 2 seconds of inactivity
StopSmelter (Offset 8)
Wait for 2 seconds of inactivity
StopSmelter (Offset 16)
Wait for 2 seconds of inactivity
StopSmelter (Offset 24)
Wait for 2 seconds of inactivity
... ETC...
Each time the next scheduled stop runs, the train will move forward by 8 wagon lengths. If you specify an offset lower than a previous offset, the normal train rules apply. You always have to approach stops from the front. So the train will have to find a way to loop back around from the correct direction.
If you use an offset but don't give the front of the train a place to go, such as a dead end or a branching intersection(how would the train choose which way to go?), the train gives a no path error.
If the offset exceeds the length of the train, the text box turns red to indicate an invalid parameter and the train will stop with the last wagon or locomotive behind the train stop with the rest of the train in front of the train stop. If there is no space for the train forward of the stop, it would instead get the aforementioned no path error. We won't want to adjust the offset parameter in the schedule automatically for invalid trains since its useful to copy and paste setting between locomotives that might not be fully assembled yet, or maybe need to connect/disconnect rolling stock without destroying our schedule.
Here is another example:
Say you have outposts all with identical names and are only enabled if they contain over 8K items in its chests. Each outpost can load 4 wagons. You use a 16 wagon train with this schedule
Outpost (Offset 0)
Wait 2 seconds of inactivity
Outpost (Offset 4)
Wait 2 seconds of inactivity
Outpost (Offset 8)
Wait 2 seconds of inactivity
Outpost (Offset 16)
Wait 2 seconds of inactivity
Smelter...etc...
If the first outpost only had barely over 8K items, it would become disabled and the train will go to the next nearest outpost, but stop at (offset 4) to fill up wagons 5-8. This outpost has over 20K items, so it would stay here and just move forward by 4 wagon lengths to fill wagons 9-12. Then it goes to visit a third outpost for the fill the final 4 wagons. Finally It returns to the smelter to unload in a similar manner. I believe this would be a powerful tool for managing trains.
------Original post------
I would like to see an option in the train schedule that allows the train move forward by n wagon lengths after its wait condition has been met instead of going to the next stop. Once the final wagon has passed the train stop, it would then go to the next stop in the schedule. An example is to have a train with 4 engines and 16 wagons. If your unloader can service 4 wagons at once. You'd set the train wait condition to 2 seconds of inactivity and 4 wagon length creep. It would unload 4 wagons then move forward by 4 wagons each time there is 2 seconds of inactivity. Once the train has cleared the last 4 wagons, it will move to the next stop in its schedule.
I've built a 6-96 train, but requires a lot of circuit connections and a very complex system that is not easy to scale for different lengths of trains and it requires a long piece of straight track to accommodate the train stops so the spacing remains consistent. This suggestion will make long trains more viable for everyone.
https://imgur.com/a/Zx0F0
I want this to be possible without needing a train station the same size as the train.
EDIT title of Suggestion from "Option to allow trains to creep forward at train stops" to "Train schedule Stop Offsets"
StopSmelter (Offset 0)
Wait for 2 seconds of inactivity
StopSmelter (Offset 8)
Wait for 2 seconds of inactivity
StopSmelter (Offset 16)
Wait for 2 seconds of inactivity
StopSmelter (Offset 24)
Wait for 2 seconds of inactivity
... ETC...
Each time the next scheduled stop runs, the train will move forward by 8 wagon lengths. If you specify an offset lower than a previous offset, the normal train rules apply. You always have to approach stops from the front. So the train will have to find a way to loop back around from the correct direction.
If you use an offset but don't give the front of the train a place to go, such as a dead end or a branching intersection(how would the train choose which way to go?), the train gives a no path error.
If the offset exceeds the length of the train, the text box turns red to indicate an invalid parameter and the train will stop with the last wagon or locomotive behind the train stop with the rest of the train in front of the train stop. If there is no space for the train forward of the stop, it would instead get the aforementioned no path error. We won't want to adjust the offset parameter in the schedule automatically for invalid trains since its useful to copy and paste setting between locomotives that might not be fully assembled yet, or maybe need to connect/disconnect rolling stock without destroying our schedule.
Here is another example:
Say you have outposts all with identical names and are only enabled if they contain over 8K items in its chests. Each outpost can load 4 wagons. You use a 16 wagon train with this schedule
Outpost (Offset 0)
Wait 2 seconds of inactivity
Outpost (Offset 4)
Wait 2 seconds of inactivity
Outpost (Offset 8)
Wait 2 seconds of inactivity
Outpost (Offset 16)
Wait 2 seconds of inactivity
Smelter...etc...
If the first outpost only had barely over 8K items, it would become disabled and the train will go to the next nearest outpost, but stop at (offset 4) to fill up wagons 5-8. This outpost has over 20K items, so it would stay here and just move forward by 4 wagon lengths to fill wagons 9-12. Then it goes to visit a third outpost for the fill the final 4 wagons. Finally It returns to the smelter to unload in a similar manner. I believe this would be a powerful tool for managing trains.
------Original post------
I would like to see an option in the train schedule that allows the train move forward by n wagon lengths after its wait condition has been met instead of going to the next stop. Once the final wagon has passed the train stop, it would then go to the next stop in the schedule. An example is to have a train with 4 engines and 16 wagons. If your unloader can service 4 wagons at once. You'd set the train wait condition to 2 seconds of inactivity and 4 wagon length creep. It would unload 4 wagons then move forward by 4 wagons each time there is 2 seconds of inactivity. Once the train has cleared the last 4 wagons, it will move to the next stop in its schedule.
I've built a 6-96 train, but requires a lot of circuit connections and a very complex system that is not easy to scale for different lengths of trains and it requires a long piece of straight track to accommodate the train stops so the spacing remains consistent. This suggestion will make long trains more viable for everyone.
https://imgur.com/a/Zx0F0
I want this to be possible without needing a train station the same size as the train.
EDIT title of Suggestion from "Option to allow trains to creep forward at train stops" to "Train schedule Stop Offsets"
Last edited by GoldenShadowGS on Wed Jan 17, 2018 11:04 pm, edited 3 times in total.
Re: Option to allow trains to creep forward at train stops
Use more train stations as unloading stop at the right position.
This will never be implemented because it only fits your playstyle.
This will never be implemented because it only fits your playstyle.
Re: Option to allow trains to creep forward at train stops
BTW...
What are the benefits of having one long train (4+16) instead of 4x 1+4? It IS cooler of course, but beside this?
What are the benefits of having one long train (4+16) instead of 4x 1+4? It IS cooler of course, but beside this?
-
- Burner Inserter
- Posts: 15
- Joined: Tue Apr 14, 2015 9:01 pm
- Contact:
Re: Option to allow trains to creep forward at train stops
That is impractical for long trains. The suggestion is to remove the need to have the train station the same length as the train. Either you have one stop and inserters down the entire length of track, or you have a few inserters for some wagons and multiple train stops to move the train forward. Either way, your entire train station will be the length of the train.steinio wrote:Use more train stations as unloading stop at the right position.
This will never be implemented because it only fits your playstyle.
My 6-96 train uses a combination of the two methods with a winding track. Its very bulky, overly complicated and makes outposts incredibly long.
Long trains provide massively more throughput and reduce overall rail traffic. Solving traffic rail traffic with long trains is hard enough without also requiring overly massive loading/unloading stations. One 6-96 train will replace TWENTY-FOUR 1-4-1 trains while providing greater throughput.
Why not allow the option to build rail networks that behave like actual trains do, instead of designing them like highways for cars.
Re: Option to allow trains to creep forward at train stops
No matter what you need the station to be 2x the length of the train. There's no point at the start or finish that you want the train to be stretching into the main track so it needs a parking space for when it first enters the station and a parking space for when it's almost ready to leave.That is impractical for long trains. The suggestion is to remove the need to have the train station the same length as the train. Either you have one stop and inserters down the entire length of track, or you have a few inserters for some wagons and multiple train stops to move the train forward. Either way, your entire train station will be the length of the train.
I'd like to recommend using a smaller "crane" train to ride along the jumbo train. The crane empties the jumbo train a few cars at a time, runs back to base and unloads. When the swarm of smaller trains is done the jumbo train goes back out. Unfortunately, Factorio doesn't let you place stack inserters between rails (the gap is hard coded to be an even tile width) and the conveniently sized 2x1 loader doesn't exist in vanilla. You're stuck using slow long handed inserters or awkward diagonal stations to shuffle items between trains.
-
- Burner Inserter
- Posts: 15
- Joined: Tue Apr 14, 2015 9:01 pm
- Contact:
Re: Option to allow trains to creep forward at train stops
The problem is on a long train, you either unload all of the cars at once, or you use multiple stops to unload it in stages.
In my suggestion. You would just build a 4 wagon unloader and the train will take care of itself once you set it to creep by 4 wagon lengths per wait condition. When you need to increase throughput, you double the unloaders to 8 wagon and set it to 8 wagon lengths of creep. It makes long trains way more friendly to use.
Not only that, but this system would benefit all lengths of trains by simplifying train station designs. Instead of building a 4 wagon loader, requiring 48 chests and 96 stack inserters. Just build a single wagon loader with 12 chests and 24 inserters and have your 4 wagon train creep forward by 1 wagon length. It would eliminate the need for belt balancing between 4 wagons at smaller outputs. Just enable the outpost stop when there is enough items to fill 4 wagons in all 12 chests.
It by no means prevents you from overbuilding a train design that unloads 16 wagons at once, or 96 if you are so inclined. But, the suggestion I proposed is already possible in manual drive mode. You can drive a train forward by 4 lengths at a time to unload wagons. All I want is for this to be possible automatically.
I want to avoid the having the lead out track being a straight line track that's 700 tiles long with 24 train stops along it. Any turns or bends on this track will ruin the wagon spacing if its not very carefully tweaked by rebuilding the whole thing and adding one additional diagonal track. Plus all of those 24 stops need intricate circuit control to prevent errant movement.bobucles wrote:No matter what you need the station to be 2x the length of the train. There's no point at the start or finish that you want the train to be stretching into the main track so it needs a parking space for when it first enters the station and a parking space for when it's almost ready to leave.
In my suggestion. You would just build a 4 wagon unloader and the train will take care of itself once you set it to creep by 4 wagon lengths per wait condition. When you need to increase throughput, you double the unloaders to 8 wagon and set it to 8 wagon lengths of creep. It makes long trains way more friendly to use.
Not only that, but this system would benefit all lengths of trains by simplifying train station designs. Instead of building a 4 wagon loader, requiring 48 chests and 96 stack inserters. Just build a single wagon loader with 12 chests and 24 inserters and have your 4 wagon train creep forward by 1 wagon length. It would eliminate the need for belt balancing between 4 wagons at smaller outputs. Just enable the outpost stop when there is enough items to fill 4 wagons in all 12 chests.
It by no means prevents you from overbuilding a train design that unloads 16 wagons at once, or 96 if you are so inclined. But, the suggestion I proposed is already possible in manual drive mode. You can drive a train forward by 4 lengths at a time to unload wagons. All I want is for this to be possible automatically.
Re: Option to allow trains to creep forward at train stops
Senible, real-life option (modification) is:
Add possibility do define station length (eg. in options Name:"Coal Drop"; length:"50 wagons"), so each train stopped in that region is considered as stopped and connected to that station. Alternatively, station should be defined as an region from Train Stop to previous Rail Signal.
Then, You may add offsets, in wagons, in trains schedule, eg.Coal Drop + 10, meaning stopping ten wagons length before Train Stop.
In Your case, You would create very long track, may be curvy, with no signals for the length of Your train.
Then You may set in schedule same station eg. 20 times, with different offsets.
IRL, trains almost never stops on platforms exactly on its end...
Add possibility do define station length (eg. in options Name:"Coal Drop"; length:"50 wagons"), so each train stopped in that region is considered as stopped and connected to that station. Alternatively, station should be defined as an region from Train Stop to previous Rail Signal.
Then, You may add offsets, in wagons, in trains schedule, eg.Coal Drop + 10, meaning stopping ten wagons length before Train Stop.
In Your case, You would create very long track, may be curvy, with no signals for the length of Your train.
Then You may set in schedule same station eg. 20 times, with different offsets.
IRL, trains almost never stops on platforms exactly on its end...
-
- Burner Inserter
- Posts: 15
- Joined: Tue Apr 14, 2015 9:01 pm
- Contact:
Re: Option to allow trains to creep forward at train stops
-copied to Original post-
An offset could work for me. Its a tidier method than my original suggestion.
You set the offset per scheduled stop, so if you want to use a long train on a small station, you just add the stop multiple times and specify how far past the train stop that the train moves forward each time. On my 6-96 train, I could make a 8 wagon unloader and then set the schedule to:
StopSmelter (Offset 0)
Wait for 2 seconds of inactivity
StopSmelter (Offset 8)
Wait for 2 seconds of inactivity
StopSmelter (Offset 16)
Wait for 2 seconds of inactivity
StopSmelter (Offset 24)
Wait for 2 seconds of inactivity
... ETC...
Each time the next scheduled stop runs, the train will move forward by 8 wagon lengths. If you specify an offset lower than a previous offset, the normal train rules apply. You always have to approach stops from the front. So the train will have to find a way to loop back around from the correct direction.
If you use an offset but don't give the front of the train a place to go, such as a dead end or a branching intersection(how would the train choose which way to go?), the train gives a no path error.
If the offset exceeds the length of the train, the text box turns red to indicate an invalid parameter and the train will stop with the last wagon or locomotive behind the train stop with the rest of the train in front of the train stop. If there is no space for the train forward of the stop, it would instead get the aforementioned no path error. We won't want to adjust the offset parameter in the schedule automatically for invalid trains since its useful to copy and paste setting between locomotives that might not be fully assembled yet, or maybe need to connect/disconnect rolling stock without destroying our schedule.
An offset could work for me. Its a tidier method than my original suggestion.
You set the offset per scheduled stop, so if you want to use a long train on a small station, you just add the stop multiple times and specify how far past the train stop that the train moves forward each time. On my 6-96 train, I could make a 8 wagon unloader and then set the schedule to:
StopSmelter (Offset 0)
Wait for 2 seconds of inactivity
StopSmelter (Offset 8)
Wait for 2 seconds of inactivity
StopSmelter (Offset 16)
Wait for 2 seconds of inactivity
StopSmelter (Offset 24)
Wait for 2 seconds of inactivity
... ETC...
Each time the next scheduled stop runs, the train will move forward by 8 wagon lengths. If you specify an offset lower than a previous offset, the normal train rules apply. You always have to approach stops from the front. So the train will have to find a way to loop back around from the correct direction.
If you use an offset but don't give the front of the train a place to go, such as a dead end or a branching intersection(how would the train choose which way to go?), the train gives a no path error.
If the offset exceeds the length of the train, the text box turns red to indicate an invalid parameter and the train will stop with the last wagon or locomotive behind the train stop with the rest of the train in front of the train stop. If there is no space for the train forward of the stop, it would instead get the aforementioned no path error. We won't want to adjust the offset parameter in the schedule automatically for invalid trains since its useful to copy and paste setting between locomotives that might not be fully assembled yet, or maybe need to connect/disconnect rolling stock without destroying our schedule.
Re: Train schedule Stop Offsets
What are the difference between scheduling train stations with offset and having more than one station behind each other with space of 2 wagons each?
I don't get the point why that offset is needed. ...
I don't get the point why that offset is needed. ...
Re: Train schedule Stop Offsets
There is no need for such complications. It should be very simple to implement and understand.
Train length should do not matter, long train should perfectly fine stop on short station, as long, as the engine is between Train Stop and next Rain Signal. Shorter train should also be able to stop anywhere within station area. If You give then larger offset than before (eg. train needs to move back), train should find path, and - possibly - go around. Or, If we are unlucky, find another station with the same name to stop there...
If Offset is bigger than station, or no offset is provided, train should stop at the sign (ignore offset), or ignore station.
Of course, if there are two station with the same name but different lengths, train should choose fitting one.
This should also fix issues with not even train lengths, caused by 7-tile wagons length... Any train could then be able to use any station, with correct offset. Note, that now You can not place Train Stop exactly at +1 position, but 1 tile to the left or right...
Optional feature - train may be ordered to ASK station about the offset.
If so, train should stop the locomotive at first valid position (do not open wagons), "negotiate" with the station (station get signal via logic network, based on readed trains content), then proceed to given offset. Useful, if eg. some loaders are full, or pumps are connected for other liquids pipes.
Train length should do not matter, long train should perfectly fine stop on short station, as long, as the engine is between Train Stop and next Rain Signal. Shorter train should also be able to stop anywhere within station area. If You give then larger offset than before (eg. train needs to move back), train should find path, and - possibly - go around. Or, If we are unlucky, find another station with the same name to stop there...
If Offset is bigger than station, or no offset is provided, train should stop at the sign (ignore offset), or ignore station.
Of course, if there are two station with the same name but different lengths, train should choose fitting one.
This should also fix issues with not even train lengths, caused by 7-tile wagons length... Any train could then be able to use any station, with correct offset. Note, that now You can not place Train Stop exactly at +1 position, but 1 tile to the left or right...
Optional feature - train may be ordered to ASK station about the offset.
If so, train should stop the locomotive at first valid position (do not open wagons), "negotiate" with the station (station get signal via logic network, based on readed trains content), then proceed to given offset. Useful, if eg. some loaders are full, or pumps are connected for other liquids pipes.
- Attachments
-
- https://snag.gy/89PUDZ.jpg
- 89PUDZ[1].jpg (353.27 KiB) Viewed 5009 times
-
- Burner Inserter
- Posts: 15
- Joined: Tue Apr 14, 2015 9:01 pm
- Contact:
Re: Train schedule Stop Offsets
Give it a try. It seems to work find one small scale. But after 16~ wagons, the length of the stops is already becoming unwieldy. For 2 wagon intervals, that's 8 train stops spaced in a straight line 112 tiles long. those train stops can not be placed after any bends in the track because it ruins the spacing.TheRaph wrote:What are the difference between scheduling train stations with offset and having more than one station behind each other with space of 2 wagons each?
I don't get the point why that offset is needed. ...
Scale up to massive trains, 96 wagons for example, and you'd need a straight track about 700 tiles long and 48 train stops.
Re: Train schedule Stop Offsets
1) You can't place station 1 offset apartTheRaph wrote:What are the difference between scheduling train stations with offset and having more than one station behind each other with space of 2 wagons each?
I don't get the point why that offset is needed. ...
2) Train Stops names should be different, or train would not proceed to next sub-station (it's already on station with that name)
3) Possibly easier to pathfind. One station v.s. multiple stations for all possible trains lengths.
4) If train is within area, whole station is considered occupied/busy. Other trains should go to other stations with that name. With multiple stops, only part is occupied, further parts are free, so other trains may want to path to it and stuck behind. Or, if eg. last station is occupied by short train, first train stop is open for traffic, but this could lead to misreaded train contents (content read and processed from two different trains)
-
- Burner Inserter
- Posts: 15
- Joined: Tue Apr 14, 2015 9:01 pm
- Contact:
Re: Train schedule Stop Offsets
mp0011 wrote:There is no need for such complications. It should be very simple to implement and understand.
Train length should do not matter, long train should perfectly fine stop on short station, as long, as the engine is between Train Stop and next Rain Signal. Shorter train should also be able to stop anywhere within station area. If You give then larger offset than before (eg. train needs to move back), train should find path, and - possibly - go around. Or, If we are unlucky, find another station with the same name to stop there...
If Offset is bigger than station, or no offset is provided, train should stop at the sign (ignore offset), or ignore station.
Of course, if there are two station with the same name but different lengths, train should choose fitting one.
This should also fix issues with not even train lengths, caused by 7-tile wagons length... Any train could then be able to use any station, with correct offset. Note, that now You can not place Train Stop exactly at +1 position, but 1 tile to the left or right...
Optional feature - train may be ordered to ASK station about the offset.
If so, train should stop the locomotive at first valid position (do not open wagons), "negotiate" with the station (station get signal via logic network, based on readed trains content), then proceed to given offset. Useful, if eg. some loaders are full, or pumps are connected for other liquids pipes.
Ok, I see what you are getting at. I was thinking that the offsets would put the front of the train ahead of the stop and the back of the train lined up with the stop. You want the offset to stop the front of the train farther from the stop. Its basically the same idea, but you would need to put the train stop Wayyyy ahead for a very long train, start at a high offset and work your way down.
I like this idea better!
Re: Train schedule Stop Offsets
GoldenShadowGS wrote:Ok, I see what you are getting at. I was thinking that the offsets would put the front of the train ahead of the stop and the back of the train lined up with the stop. You want the offset to stop the front of the train farther from the stop. Its basically the same idea, but you would need to put the train stop Wayyyy ahead for a very long train, start at a high offset and work your way down.
I like this idea better!
It MAY be, however, harder to handle short trains on long station, because loaders should be an the back-end of the station, so each short train should have offset configured in schedule manually... If it should stop at the same station.