[Solved] Exclusivity of bi-directional tracks

Fixed Trains
randombruh27 [discord] · 1 year ago

I saw a post here yesterday, and have run into an issue of my own as well. It seems to be a known feature that bi-directional tracks are always exclusive (and I'm sure the logic is really difficult to change at this point) however I've managed to run into a semi-deadlock as seen in the picture.

The main issue is that since all bidirectional tracks are exclusive, they form a single zone, which can only be separated via bidirectional slip lanes. There are cases when this isn't really solvable though. Here I've really designed myself into a corner. There is a station that's supposed to be used by the 2-4 and I've made another one for a 1-2, and made a slip lane.

As the picture clearly shows, this slip lane is supposed to be used if the 1-2 is parked (waiting for a destination to open) and the 2-4 uses the top station and needs to leave. The exclusive zone however isn't broken up, so everyone stays. With chain signals this normally isn't an issue because the track to the bottom (going outside of the screen) would contain a free block, and thus a free route. The first one going into that one would occupy it for however long it needs to, then the other one gets to enter when it returns.

Here however, the whole junction and the bottom route is a single block, and the 2-4 will never get a chance to enter it, because 1-2 is inside and will stay inside even after leaving the station only to return to this exact state.

The only solution I see is to have a bypass lower on the track, wait for 1-2 to leave, enter the bypass, wait for 2-4 to finish, and return to start the whole process again. This inherently links the two train schedules together (meaning 2-4 only gets a go when 1-2 does) which isn't what you'd want from a dynamic system.

Sad as it is, I see the reason you guys made it this way, this very junction would not work if the base state of exclusive zones weren't what they are, and junctions broke them up. They'd of course meet between either 2 the 3 junctions.

However, being able to override the system as a player is essential, so that's what I'd like to ask for. There is a reason we can call back trains for some measly unity cost, we should be able to make mistakes. Otherwise, I'm afraid it's back to uni-directional and two track based systems for me, because I can't have unexpected logistical issues that take in game years to fix and / or a lot of unity.

Save attached if you'd like a gander, COIExtended was used.

image.jpg

Files not imported: Save_2025-05-17_21-48-05.save

jestinjae [discord] · 1 year ago

What is the scenario where you need both stations to be bi-directional? Why not just go one direction through that loop? You already have a tri at the bottom, if you add one at the top then you'd be able to be uni-directional for the stations with minimal extra distance and as near as I can tell no loss of functionality, but that could be due to loss of context. I didn't try to test w/ your save since you are using a mod that I don't have.

Captain Jeremy Captain Jeremy · 1 year ago

As of v0.7.1b you can remove exclusivity from bidirectional tracks manually. It's important to think through the consequences of doing this: if you do it to split an area where trains can potentially meet head-on your trains may get stuck. It's also recommended you replace it with a non-stop section, as it performs a similar (but not identical) function but doesn't have quite the same safety guarantees.

FWIW trains can stop in no-stop sections if they are required to to interact with a station

randombruh27 [discord] · 1 year ago

jestinjae [discord] wrote:

What is the scenario where you need both stations to be bi-directional? Why not just go one direction through that loop? You already have a tri at the...

The station track that has two stations on it needs to be bidirectional, because of the 1-2 travelling North-South while the 2-4 travels East-West (and also North-South).

Like I said, my design here is definitely a bad one, but I think it presents my point perfectly. COI is a game about temporary solutions, it is one of the fastest paced factory games I've played. In such circumstamces you don't always have the option to keep rebuilding, sometimes you gotta apply some bandaids. In the case of factories this takes the form of spaghetti, with trains it's signaling.

I'll be testing what Jeremy said, but I'm hopeful that given the tools I can figure something out to make this work, and make the next one better 🙂

randombruh27 [discord] · 1 year ago

Yep, Wonderful work! Exactly what I (and likely at least one other person) requested. With a very well worded patch note to top it off.

Gotta say as a Computer Science student at uni, your work never ceases to amaze me, and it gets better and better as I learn new things. You must have an amazing pipeline and workflow to be able to pump out fixes this quickly, and community management has also been outstanding. Hope you can keep your code THIS clean for however long you're developing and maintaining the game.

Thank you to the whole team!

jestinjae [discord] · 1 year ago

randombruh27 [discord] wrote:

The station track that has two stations on it needs to be bidirectional, because of the 1-2 travelling North-South while the 2-4 travels East-West...

Gotcha. Because of the 1-2's locomotive placement I had assumed it originated from the north as well.

Closed as ✅ Fixed

8 Showing 1–7 of 7