Scenario:
- rail network
- a track section with a train stop in it
- several tracks merge into that track section and are separated from it by rail chain signals (the entrances)
- the track section with the train stop splits into several tracks, which are separated from it by a rail signal (the exits)
The problem:
- also if all exists are blocked, trains which have the train stop in their schedule still enter the section
The question:
- Why?
- (I thought trains can not - under any circumstances - enter a section with a chain signal at its entrance, if all the exits are blocked)
My research:
- The wiki train signals tutorial says: "If there are multiple chain signals in a row, a train will only enter if its path is clear all the way into a block behind a regular signal (or up to its destination station, whichever comes first)." ( https://wiki.factorio.com/Tutorial:Trai ... in_signals ) Which means that if the stop is in a closed signal block, the train wil still enter and can cause all sorts of blocking.
Trains run chain signals if train stop is in guarded section
Re: Trains run chain signals if train stop is in guarded section
Oh i remember that one behavior !
I could find the post where i learned about it, boskid gave some technical explanations that may answer your "why?" question.
viewtopic.php?f=47&t=84830
There are other circumstances where a train can bypass a regular red signal, if it is already red because of that same train,which can happen in a short loop or with twisted tracks, i can't find the post for that one but i know trains can re-enter blocks they already occupy and when doing so they are allowed to bypass/ignore a regular red signal.
I know there was a good reason too but i'm not too sure i can remember it without making approximations/mistakes, i think it can causes some train self colliding, but remove many situations where train could self lock or something.
I could find the post where i learned about it, boskid gave some technical explanations that may answer your "why?" question.
viewtopic.php?f=47&t=84830
There are other circumstances where a train can bypass a regular red signal, if it is already red because of that same train,which can happen in a short loop or with twisted tracks, i can't find the post for that one but i know trains can re-enter blocks they already occupy and when doing so they are allowed to bypass/ignore a regular red signal.
I know there was a good reason too but i'm not too sure i can remember it without making approximations/mistakes, i think it can causes some train self colliding, but remove many situations where train could self lock or something.
-
- Fast Inserter
- Posts: 220
- Joined: Sat Oct 07, 2023 6:44 am
- Contact:
Re: Trains run chain signals if train stop is in guarded section
Trains stop at train stops in their schedule. Don't put a scheduled stop where you don't want trains to stop.Impatient wrote: ↑Tue Feb 20, 2024 5:56 am Scenario:
- rail network
- a track section with a train stop in it
- several tracks merge into that track section and are separated from it by rail chain signals (the entrances)
- the track section with the train stop splits into several tracks, which are separated from it by a rail signal (the exits)
The problem:
- also if all exists are blocked, trains which have the train stop in their schedule still enter the section
The question:
- Why?
- (I thought trains can not - under any circumstances - enter a section with a chain signal at its entrance, if all the exits are blocked)
My research:
- The wiki train signals tutorial says: "If there are multiple chain signals in a row, a train will only enter if its path is clear all the way into a block behind a regular signal (or up to its destination station, whichever comes first)." ( https://wiki.factorio.com/Tutorial:Trai ... in_signals ) Which means that if the stop is in a closed signal block, the train wil still enter and can cause all sorts of blocking.
When a train tries to reserve a block the signal checks if its block is free. If it isn't, it prevents entry. If it is a chain signal, it asks the train about the next block in its route and makes sure that one can be reserved before it allows passage. If there is no next block, this step is skipped.
The reason is pretty obvious. Checking every potential exit on a block is almost never useful behavior, and 9999 times out of 10000 it's a giant waste of processing time. How long is the train going to wait at the station? What if the block is connected to 300 other blocks? What if some of the exits are only accessible after a double headed train stops and reverses at the station? What if some of the exits are inaccessible from the station?
It's much safer and faster to assume that if a player places a train stop that they want a train to stop there.