Removing unnecessary rail segment blocking

Ideas that are too old (too many things have changed since) and ones which won't be implemented for certain reasons or if there are obviously better suggestions.

Moderator: ickputzdirwech

KilJaeden
Burner Inserter
Burner Inserter
Posts: 5
Joined: Fri Mar 07, 2025 3:36 pm
Contact:

Removing unnecessary rail segment blocking

Post by KilJaeden »

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.
User avatar
boskid
Factorio Staff
Factorio Staff
Posts: 3940
Joined: Thu Dec 14, 2017 6:56 pm
Contact:

Re: Removing unnecessary rail segment blocking

Post by boskid »

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.
KilJaeden
Burner Inserter
Burner Inserter
Posts: 5
Joined: Fri Mar 07, 2025 3:36 pm
Contact:

Re: Removing unnecessary rail segment blocking

Post by KilJaeden »

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).
Muche
Smart Inserter
Smart Inserter
Posts: 1006
Joined: Fri Jun 02, 2017 6:20 pm
Contact:

Re: Removing unnecessary rail segment blocking

Post by Muche »

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.
Kyralessa
Filter Inserter
Filter Inserter
Posts: 687
Joined: Thu Sep 29, 2016 5:58 pm
Contact:

Re: Removing unnecessary rail segment blocking

Post by Kyralessa »

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.
Yes, exactly.

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.
robot256
Smart Inserter
Smart Inserter
Posts: 1199
Joined: Sun Mar 17, 2019 1:52 am
Contact:

Re: Removing unnecessary rail segment blocking

Post by robot256 »

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.
Post Reply

Return to “Outdated/Not implemented”