Currently when a chain signal is reserved, it instantly reserves the chain of segments in front of it. This leads to segments being unnecessarily blocked while there's no train passing. For example if a segment is blocked due to a chain of signals being reserved by a train arriving in 15 seconds, it should pass trains during the 15 seconds (if they exit the segment before the reserving train arrives). Here's my proposal:
1- Segments now have a table for reservations. Each train reserves the segment has its entry and exit time.
2- Rail signals allow trains to make a reservation only if their segment has no reservations.
3- Chain signals allow trains to make a reservation if their reservation does not collide with any existing reservations.
This should be fairly easy to implement, not break any existing saves and improve the train system.
Removing unnecessary rail segment blocking
Moderator: ickputzdirwech
Re: Removing unnecessary rail segment blocking
No.
This suggestion is fundamentally broken and will never be applied. Rail blocks ahead of chain signal are reserved because they must be reserved. If another train would enter one of the rail blocks ahead and would stop here because of out of fuel, collisions, switching to manual, stopping at unrelated signal while being too long or whatever, then the train that already passed chain signal and requested rail blocks ahead to be reserved would have to stop at a different chain signal before the now occupied block which violates the most basic principle of chain signals which is that train that passed chain signal (is in chain signal section, often said to be "in the intersection") should not need to stop at any other chain signal because if it would do so it will block an intersection possibly causing deadlocks.
This suggestion is fundamentally broken and will never be applied. Rail blocks ahead of chain signal are reserved because they must be reserved. If another train would enter one of the rail blocks ahead and would stop here because of out of fuel, collisions, switching to manual, stopping at unrelated signal while being too long or whatever, then the train that already passed chain signal and requested rail blocks ahead to be reserved would have to stop at a different chain signal before the now occupied block which violates the most basic principle of chain signals which is that train that passed chain signal (is in chain signal section, often said to be "in the intersection") should not need to stop at any other chain signal because if it would do so it will block an intersection possibly causing deadlocks.
Re: Removing unnecessary rail segment blocking
Even with this system once a chain signal permits entry, the train will be able to pass through all the segments. While fuel, switching to manual and similar events are harder to account for, this could be presented as a new challenge (always keep your trains fueled or risk a crash) with a new kind of signal (express chain signal or idk something like that).
Re: Removing unnecessary rail segment blocking
A train taking 15 seconds to come through a row of segments sounds like you are overusing rail chain signals in places where regular rail signals could be used instead.
Re: Removing unnecessary rail segment blocking
Yes, exactly.Muche wrote: Mon Mar 10, 2025 3:44 pm A train taking 15 seconds to come through a row of segments sounds like you are overusing rail chain signals in places where regular rail signals could be used instead.
The simple golden rule of chain signals is:
Chain signal into an intersection, regular signal out of an intersection.
If you have a long line of chain signals, you're most likely doing it wrong.
Re: Removing unnecessary rail segment blocking
And add bidirectional passing blocks at the start and end of long bidirectional tracks so the train doesn't have to reserve intersections while it is traveling a long way to get there.
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