Satisfactory

Satisfactory

View Stats:
Deadly3u Jul 13, 2024 @ 9:46pm
Trains and Switching
something that i have been trying to work out are 2 trains going in opposite directions sharing 1 track segment. Now I've tried having the train stop via block/signal with a segment of track next to the stopped train and no matter what the oncoming train will not use the unoccupied track and goes head on into the stopped train. Note this is only a problem if 2 trains are running headfirst into each other and doesn't pose an issue if they're going the same direction. I've tried cheesing it with a station and have 1 or both trains pull to different stations and wait with the tracked segmented (block/signals) so they don't crash but yet the train that's NOT told to go there decides it now wants to go through that track causing a crash or for them both to be stopped facing each other. Its impossible to "time" it so they're never in the same spot at the same time as load times and lengths are different. For clarity there's room for the cars to fully stop in that segment without "hanging" out of the segmented section. From what I've noticed the colored section of track overhangs the block/path signals. This in-turn allows the trains to pull right up to the signal and stop and doesn't allow them to switch to the unoccupied section of track. Possible fix could be to pull that back to it stops right at signal or maybe move the direction indicated out a little bit so it switches before that and not right when the engine arrives or make it so that the direction indicated can be programmed in such a way that i could say train A always goes right here and train B always goes left or something of the sort. I may be wrong and blocking it off wrong and if someone has a way for it to work id be happy to hear it. Note i have had it work randomly where the engine decided it wanted to go on the different track segment and in watching them meet back up decide to both be head on again, Idk if its a logic thing or if it was never intended for the trains to run on 1 track facing each other but assumed so as the signaling says they're bi-directional.
< >
Showing 1-12 of 12 comments
Vectorspace Jul 13, 2024 @ 11:00pm 
Dual track layouts, such that on any given segment of track, trains only travel in one direction, is the recommended solution - it's much easier to signal.

Thay said, it is possible to have single track sections. The entire single track section must be protected with block signals instead of path signals.

When a section has path signals on its entrances, then it has two different behaviours compared to block signals:
* two trains can enter at once as long as their paths never cross (good for complex junctions)
* trains will never stop inside the section - they will only enter the section if they can also exit it.

So what you have to do, is use path signals to ensure that trains will never want to stop inside the single track section. Make it all one single section, with path signals on the entrances and block on the exits
Last edited by Vectorspace; Jul 13, 2024 @ 11:00pm
Deadly3u Jul 14, 2024 @ 1:47am 
Originally posted by Vectorspace:
Dual track layouts, such that on any given segment of track, trains only travel in one direction, is the recommended solution - it's much easier to signal
𝐢 𝐚𝐠𝐫𝐞𝐞 𝐢𝐭 𝐢𝐬 𝐞𝐚𝐬𝐢𝐞𝐫 𝐭𝐨 𝐬𝐢𝐠𝐧𝐚𝐥 𝐭𝐡𝐢𝐬 𝐰𝐚𝐲 𝐛𝐮𝐭 𝐧𝐨𝐭 𝐚𝐥𝐥 𝐭𝐫𝐚𝐢𝐧𝐬 𝐚𝐫𝐞 𝐫𝐮𝐧𝐧𝐢𝐧𝐠 𝐢𝐧 𝐭𝐡𝐞 𝐬𝐚𝐦𝐞 𝐝𝐢𝐫𝐞𝐜𝐭𝐢𝐨𝐧 𝐚𝐥𝐥 𝐭𝐡𝐞 𝐭𝐢𝐦𝐞.

They said, it is possible to have single track sections. The entire single track section must be protected with block signals instead of path signals.
𝐩𝐥𝐞𝐚𝐬𝐞 𝐩𝐨𝐬𝐭 𝐭𝐡𝐞𝐢𝐫 𝐥𝐢𝐧𝐤 𝐢𝐟 𝐲𝐨𝐮 𝐜𝐚𝐧 𝐭𝐨 𝐭𝐡𝐢𝐬 𝐚𝐬 𝐢 𝐰𝐨𝐮𝐥𝐝 𝐫𝐞𝐚𝐥𝐥𝐲 𝐥𝐢𝐤𝐞 𝐭𝐨 𝐬𝐞𝐞 𝐢𝐭

When a section has path signals on its entrances, then it has two different behaviors compared to block signals:
* two trains can enter at once as long as their paths never cross (good for complex junctions)
𝐇𝐚𝐯𝐞 𝐧𝐞𝐯𝐞𝐫 𝐛𝐞𝐞𝐧 𝐚𝐛𝐥𝐞 𝐭𝐨 𝐡𝐚𝐯𝐞 𝐭𝐡𝐢𝐬 𝐡𝐚𝐩𝐩𝐞𝐧 𝐰𝐢𝐭𝐡 𝐛𝐥𝐨𝐜𝐤/𝐬𝐢𝐠𝐧𝐚𝐥 𝐬𝐞𝐜𝐭𝐢𝐨𝐧𝐬 𝐩𝐥𝐚𝐜𝐞𝐝 𝐨𝐧𝐜𝐞 𝐚 𝐭𝐫𝐚𝐢𝐧 𝐢𝐬 𝐢𝐧 𝐚 𝐛𝐥𝐨𝐜𝐤𝐞𝐝 𝐬𝐞𝐜𝐭𝐢𝐨𝐧 𝐢𝐟 𝐚𝐧𝐨𝐭𝐡𝐞𝐫 𝐢𝐬 𝐛𝐞𝐡𝐢𝐧𝐝 𝐢𝐭 𝐭𝐡𝐞𝐧 𝐭𝐡𝐞 𝐫𝐞𝐚𝐫 𝐭𝐫𝐚𝐢𝐧 𝐢𝐬 𝐫𝐞𝐝 𝐥𝐢𝐠𝐡𝐭𝐞𝐝 𝐚𝐧𝐝 𝐝𝐨𝐞𝐬 𝐧𝐨𝐭 𝐠𝐨 𝐮𝐧𝐭𝐢𝐥 𝐭𝐡𝐞 𝐟𝐨𝐫𝐰𝐚𝐫𝐝 𝐭𝐫𝐚𝐢𝐧 𝐡𝐚𝐬 𝐟𝐮𝐥𝐥𝐲 𝐜𝐥𝐞𝐚𝐫𝐞𝐝 𝐭𝐡𝐞 𝐛𝐥𝐨𝐜𝐤 𝐬𝐞𝐜𝐭𝐢𝐨𝐧.

* trains will never stop inside the section - they will only enter the section if they can also exit it.
𝐧𝐨 𝐚 𝐭𝐫𝐚𝐢𝐧 𝐰𝐢𝐥𝐥 𝐬𝐭𝐨𝐩 𝐢𝐧𝐬𝐢𝐝𝐞 𝐚 𝐛𝐥𝐨𝐜𝐤𝐞𝐝 𝐬𝐞𝐜𝐭𝐢𝐨𝐧 𝐢𝐟 𝐭𝐡𝐞 𝐬𝐞𝐜𝐭𝐢𝐨𝐧 𝐢𝐧 𝐟𝐫𝐨𝐧𝐭 𝐨𝐟 𝐢𝐭 𝐢𝐬 𝐨𝐜𝐜𝐮𝐩𝐢𝐞𝐝 𝐛𝐲 𝐚 𝐭𝐫𝐚𝐢𝐧. 𝐭𝐡𝐢𝐬 𝐢𝐬 𝐝𝐨𝐧𝐞 𝐭𝐨 𝐤𝐞𝐞𝐩 𝐭𝐡𝐞 𝐫𝐞𝐚𝐫 𝐭𝐫𝐚𝐢𝐧 𝐟𝐫𝐨𝐦 𝐜𝐨𝐥𝐥𝐢𝐝𝐢𝐧𝐠 𝐰𝐢𝐭𝐡 𝐭𝐡𝐞 𝐟𝐨𝐫𝐰𝐚𝐫𝐝 𝐭𝐫𝐚𝐢𝐧.

So what you have to do, is use path signals to ensure that trains will never want to stop inside the single track section. Make it all one single section, with path signals on the entrances and block on the exits
𝐲𝐨𝐮 𝐜𝐚𝐧𝐭 𝐝𝐨 𝐭𝐡𝐢𝐬 𝐚𝐬 𝟐 𝐝𝐢𝐟𝐟𝐞𝐫𝐞𝐧𝐭 𝐢𝐧𝐩𝐮𝐭𝐬 𝐚𝐫𝐞 𝐝𝐞𝐭𝐞𝐜𝐭𝐞𝐝 𝐜𝐚𝐮𝐬𝐢𝐧𝐠 𝐭𝐡𝐞 𝐬𝐢𝐠𝐧𝐚𝐥𝐬 𝐭𝐨 𝐞𝐫𝐫𝐨𝐫 𝐰𝐢𝐭𝐡 𝟐 𝐜𝐨𝐧𝐟𝐥𝐢𝐜𝐭𝐢𝐧𝐠 𝐢𝐧𝐩𝐮𝐭𝐬. 𝐲𝐨𝐮 𝐚𝐥𝐬𝐨 𝐜𝐚𝐧𝐭 𝐩𝐥𝐚𝐜𝐞 𝐭𝐡𝐞 𝐬𝐢𝐠𝐧𝐚𝐥𝐬 𝐭𝐡𝐚𝐭 𝐰𝐚𝐬 𝐚𝐬 𝐢𝐭 𝐰𝐢𝐥𝐥 𝐜𝐚𝐮𝐬𝐞 𝐭𝐡𝐞 𝐭𝐫𝐚𝐢𝐧 𝐭𝐨 𝐥𝐨𝐨𝐩 𝐨𝐧 𝐢𝐭𝐬𝐞𝐥𝐟 𝐚𝐠𝐚𝐢𝐧 𝐬𝐭𝐨𝐩𝐩𝐢𝐧𝐠 𝐚𝐧𝐲𝐭𝐡𝐢𝐧𝐠 𝐟𝐫𝐨𝐦 𝐦𝐨𝐯𝐢𝐧𝐠.
Last edited by Deadly3u; Jul 14, 2024 @ 1:55am
Deadly3u Jul 14, 2024 @ 2:12am 
at the time of responding to you i found more info on the issue im seeing with this.

https://satisfactory.fandom.com/wiki/Tutorial:Trains

based off of this link its going to be nearly impossible for this to work.

Quote Auto Pilot trains will calculate their paths based on tiles (real or implied) between the current set of destinations in their time table. They will always choose the shortest path between two destinations. This cannot be controlled by train signals.Trains will also ignore any other trains on the same path during calculations which can result in either collisions or delays. On single track bi directional paths this could also result in head to head deadlock. Trains will not use "bypass" lanes to avoid each other (unless the signalling forces them to). Just shortest path.

so to use a bypass track like im trying to use it would have to be the shortest path from A to B and in my specific case will be impossible to do so. I have already tried making the track at just over the length of the car but all trains choose the same segment reguardless as they arent the same length each. moreover they state its possbile for it to work the way i want later down but that directly opposes where they state trains will ignore any other train on that path and always choose shortest path.

The term bi-directional theyre referring to is an Engine on Both ends of the train where one is set to A and the other to B like at an airport passenger mover.

i wonder if im running more into this or not.---Avoid: There is a bug, where if a single Railway segment has a switch on both ends, automatic trains will have trouble pathing through the switch. Instead of having one Railway segment with a switch on both ends, break the segment into two smaller segments, both of which only have a switch at one end.
Vectorspace Jul 14, 2024 @ 2:22am 
A bypass track like you describe won't work, no. But you shouldn't need one.

"𝐇𝐚𝐯𝐞 𝐧𝐞𝐯𝐞𝐫 𝐛𝐞𝐞𝐧 𝐚𝐛𝐥𝐞 𝐭𝐨 𝐡𝐚𝐯𝐞 𝐭𝐡𝐢𝐬 𝐡𝐚𝐩𝐩𝐞𝐧 𝐰𝐢𝐭𝐡 𝐛𝐥𝐨𝐜𝐤/𝐬𝐢𝐠𝐧𝐚𝐥 𝐬𝐞𝐜𝐭𝐢𝐨𝐧𝐬 𝐩𝐥𝐚𝐜𝐞𝐝 𝐨𝐧𝐜𝐞 𝐚 𝐭𝐫𝐚𝐢𝐧 𝐢𝐬 𝐢𝐧 𝐚 𝐛𝐥𝐨𝐜𝐤𝐞𝐝 𝐬𝐞𝐜𝐭𝐢𝐨𝐧 𝐢𝐟 𝐚𝐧𝐨𝐭𝐡𝐞𝐫 𝐢𝐬 𝐛𝐞𝐡𝐢𝐧𝐝 𝐢𝐭 𝐭𝐡𝐞𝐧 𝐭𝐡𝐞 𝐫𝐞𝐚𝐫 𝐭𝐫𝐚𝐢𝐧 𝐢𝐬 𝐫𝐞𝐝 𝐥𝐢𝐠𝐡𝐭𝐞𝐝 𝐚𝐧𝐝 𝐝𝐨𝐞𝐬 𝐧𝐨𝐭 𝐠𝐨 𝐮𝐧𝐭𝐢𝐥 𝐭𝐡𝐞 𝐟𝐨𝐫𝐰𝐚𝐫𝐝 𝐭𝐫𝐚𝐢𝐧 𝐡𝐚𝐬 𝐟𝐮𝐥𝐥𝐲 𝐜𝐥𝐞𝐚𝐫𝐞𝐝 𝐭𝐡𝐞 𝐛𝐥𝐨𝐜𝐤 𝐬𝐞𝐜𝐭𝐢𝐨𝐧."

You are partly right, but path signals change things.
When a train wants to enter a block section, it allocates that section. If it cannot, it will wait at the signal.
When a train wants to enter a path section, it allocates a route through that path section, and the subsequent block section. If it cannot allocate both, it does not enter the path section.

I will create some screenshots to illustrate, stand by caller.
Deadly3u Jul 14, 2024 @ 2:42am 
Originally posted by Vectorspace:
A bypass track like you describe won't work, no. But you shouldn't need one.

"𝐇𝐚𝐯𝐞 𝐧𝐞𝐯𝐞𝐫 𝐛𝐞𝐞𝐧 𝐚𝐛𝐥𝐞 𝐭𝐨 𝐡𝐚𝐯𝐞 𝐭𝐡𝐢𝐬 𝐡𝐚𝐩𝐩𝐞𝐧 𝐰𝐢𝐭𝐡 𝐛𝐥𝐨𝐜𝐤/𝐬𝐢𝐠𝐧𝐚𝐥 𝐬𝐞𝐜𝐭𝐢𝐨𝐧𝐬 𝐩𝐥𝐚𝐜𝐞𝐝 𝐨𝐧𝐜𝐞 𝐚 𝐭𝐫𝐚𝐢𝐧 𝐢𝐬 𝐢𝐧 𝐚 𝐛𝐥𝐨𝐜𝐤𝐞𝐝 𝐬𝐞𝐜𝐭𝐢𝐨𝐧 𝐢𝐟 𝐚𝐧𝐨𝐭𝐡𝐞𝐫 𝐢𝐬 𝐛𝐞𝐡𝐢𝐧𝐝 𝐢𝐭 𝐭𝐡𝐞𝐧 𝐭𝐡𝐞 𝐫𝐞𝐚𝐫 𝐭𝐫𝐚𝐢𝐧 𝐢𝐬 𝐫𝐞𝐝 𝐥𝐢𝐠𝐡𝐭𝐞𝐝 𝐚𝐧𝐝 𝐝𝐨𝐞𝐬 𝐧𝐨𝐭 𝐠𝐨 𝐮𝐧𝐭𝐢𝐥 𝐭𝐡𝐞 𝐟𝐨𝐫𝐰𝐚𝐫𝐝 𝐭𝐫𝐚𝐢𝐧 𝐡𝐚𝐬 𝐟𝐮𝐥𝐥𝐲 𝐜𝐥𝐞𝐚𝐫𝐞𝐝 𝐭𝐡𝐞 𝐛𝐥𝐨𝐜𝐤 𝐬𝐞𝐜𝐭𝐢𝐨𝐧."

You are partly right, but path signals change things.
When a train wants to enter a block section, it allocates that section. If it cannot, it will wait at the signal.
When a train wants to enter a path section, it allocates a route through that path section, and the subsequent block section. If it cannot allocate both, it does not enter the path section.

I will create some screenshots to illustrate, stand by caller.


with the signal and all going same direction yes the rear train will keep going as it look ahead all thats fine. what i want to do is have an engine stop when a train is oncoming. that is what i assumed could be done when they said trains were bi-directional. in a way they are and arent and that applies to the tracks as well. they can ping pong but not travel opposite one another.

for note ive tried this with a closed loop atend of station and looping around the station back into main.
Vectorspace Jul 14, 2024 @ 2:58am 
Maybe I'm misunderstanding you. But here is what I meant:

https://photos.app.goo.gl/2XWSGyrB42AFUh2f9

The orange section is a single track, shared by trains going in either direction.
At the two entrances (dark-green to the bottom left, and red to the top right) are path signals.
At the exits (light-green to the bottom right, yellow to the top left) are block signals.

E.g. take the locomotive on the dark-green. It wants to enter the orange section, then the yellow section. So it tries to allocate both. It succeeds, because both are empty and unallocated. So the path signal goes green and it is allowed in. It has allocated both the orange and yellow sections.

E.g. 2. pretend the loco on dark-green is not there. The loco on red wants to enter the orange section, then the light-green. So it tries to allocate both. It can allocate orange, but it cannot allocate light-green because there is a loco there. So it will wait in the red section. Even though it could allocate just orange, it will not. Because orange is protected by a path signal, it must allocate both orange and light-green in order to be allowed into orange.
This is because one of the rules to path signals - a train cannot pass a path signal until it can allocate a path through that section, AND the next section.
If a train can allocate both, then its ability to exit the path protected section is guaranteed.
Therefore a train will never need to stop inside a path protected section.**
And that is the key to having a bidirectional track segment without deadlocks - it must be path protected, to ensure trains will never stop inside it.

**There are some exceptions to this
* If you are manually driving a train. Since you can ignore signals when driving manually, you can break these assumptions.
* If a train is longer than the section.
* If you have too many trains vs the number of sections
* If you have consecutive path signals
Deadly3u Jul 14, 2024 @ 3:07am 
no you'e like 90% there. the difference being i wanted to split that in the middle (orange section) as the destinations are far apart (think station 1 & 2 are at different ends of the map)

Edit. forgot to add and not have a train stuck in a station while one is traveling a long distance, more have them travel then meet in the middle where ever that may be and one stop in the orange that you have while the other passes on another track segment. they say it cant be done but also say with correct signaling it can be so idk there.
Last edited by Deadly3u; Jul 14, 2024 @ 3:11am
Vectorspace Jul 14, 2024 @ 3:49am 
Created a gallery with more pics: https://photos.google.com/share/AF1QipPqrghK19SnMix74JdWUT-HKtv9szZD-n7thlzP-OuSrSQo8smh2d9o39Yw3sS4pw?key=ODVmX1ZabE5vLXZucUdjcFFGYjZmRkVoRVVHM2t3

You can create a "passing loop" half way through the single track section, as in the new screenshots. Same rules as before for signalling - signals leading into the single track section are path, signals leading out are block.
The passing loops must not be bidirectional - one track for trains travelling one way, another track for trains travelling the other way.
If you still find throughput is low, you can increase the number of passing loops.

The total number of unidirectional sections (i.e. excluding the single track sections) must be at least the number of trains + 1. In my new screenshots, I have a total of eight sections, of which two (red and dark-green) are single track (bidirectional), leaving six unidirectional. That means I can have 5 trains max. But the more spare sections you have, the better the throughout.

And you cannot split the single track section with just signals - you can only split using a passing loop.

And as before, as long as:
* The total number of trains is not too high
* All trains are short enough to fit in any section
* You don't drive a train manually through
Then this should never deadlock. And if you do drive a manual train, as soon as you remove the manual train, it should automatically start working again.
Last edited by Vectorspace; Jul 14, 2024 @ 8:58pm
Deadly3u Jul 14, 2024 @ 3:41pm 
thank you... does this still follow the shortest pathing rule? ie at the split needing to be even track?
Vectorspace Jul 14, 2024 @ 9:02pm 
It does follow the shortest "legal" route.
The passing loops are signalled such that they are unidirectional, so each track only allows trains in one direction.
So the lengths of the 2 tracks in the passing loop are irrelevant, as a train travelling in one direction can only take one of them.

When you place 2 signals at a track joint, one at each side, that signal pair allows trains through in both directions.
When you place only a single signal at a track joint (on the right), it will allow trains through in only one direction, the other direction being an implicit permanent stop. The train pathing logic accounts for this and will not consider passing that signal in the reverse direction. That allows the passing loops to work, by ensuring that trains travelling in opposite directions will never want to use the same loop.

In my example, trains will always use the left loop relative to direction of travel, because the signalling makes the right loop always illegal for them.
Last edited by Vectorspace; Jul 14, 2024 @ 9:41pm
simonhobnob Jul 15, 2024 @ 4:56am 
Single track with both directions have always been a terrible idea, also in reality. The trans-siberian railway back during the Tsar days of russia was a single track running along the country with very few "crossing areas" with two tracks. It was a total disaster for russia.
SignpostMarv Jul 15, 2024 @ 8:18am 
Originally posted by Deadly3u:
at the time of responding to you i found more info on the issue im seeing with this.

https://satisfactory.fandom.com/wiki/Tutorial:Trains

Please don't link to the ad-laden hellscape fandom wiki, it's dead & abandoned.

Use the wiki we've been using since Update 8; https://satisfactory.wiki.gg/wiki/Tutorial:Trains
< >
Showing 1-12 of 12 comments
Per page: 1530 50

Date Posted: Jul 13, 2024 @ 9:46pm
Posts: 12