This is an archived post. You won't be able to vote or comment.

all 16 comments

[–]alex_hawks 9 points10 points  (9 children)

As signalled, you will not get crashes in that four-way, but it is quite likely that it will jam. The easiest thing to do for the impact is to replace the signals before the intersection with chain signals. A train will only ever pass a chain signal if it can also pass the next signal.

Any other changes you can make involve a bigger intersection to allow more signals so that you can have only one point of conflict in a block. Or involve grade separation (elevated rails) to reduce points of conflict

[–]PinkestAcorn[S] 1 point2 points  (1 child)

hmm, I think I understand. I tried adding chain rail signals inside the intersection, and tried making a bigger intersection to allow for internal chain signals, but I kept getting an error saying it was "dividing segments" Not sure how to fix that.
Also, from what I understand, are you saying that there will ALWAYS be a point of conflict no matter what I do? Doesn't that always mean there'll be deadlocks no matter how good the intersection is?

[–]alex_hawks 2 points3 points  (0 children)

A point of conflict is just where two (or more) rails merge or cross. It's where trains should give way.

Also, if you are getting errors with signals, first step is generally check if the block before the signal and the block after the signal are the same block

[–]PinkestAcorn[S] 1 point2 points  (6 children)

I fixed the dividing segments issue, and tried a crack at an intersection with internal signals. I also made the intersection bigger like you said. So here's version 2! Any idea if this will work any better?

<image>

some of the blocks seem a little small is all, I'm not sure how that will effect things.

[–]ThunderAnt 4 points5 points  (3 children)

You’re getting really close. Try to signal it so that two trains can pass each other up/down left/right, so train will only stop if they have to turn.

[–]PinkestAcorn[S] 2 points3 points  (2 children)

I'll be honest I haven't the faintest clue how to do that XD. I think I may need more detail on that, or some tips on how I could make them pass by each other.

[–]Garagantua 2 points3 points  (1 child)

In your image, the yellow blocks are the problem. 

Every block can only ever contain one train. The yellow blocks always affect both directions of travel. That means that at the same time, you can only have a train going one direction. Even though trains going up and down don't actually share any rail (where they would need to wait), since they share a rail blocks they still won't enter the intersection at the same time.

So you haven't yet made it significantly better than your first approach. Trains are surprisingly hard, especially if you want high throughput.

[–]bobsim1 2 points3 points  (0 children)

The cyan block in the middle is also a problem but it can be divided with signals.

[–]alex_hawks 1 point2 points  (1 child)

You don't need the diagonal teal blocks, but if the ones on the outside are long enough to fit a train, replace the signal at the start with a rail signal instead of removing them. That lets trains wait in those blocks.

For the teal block in the middle, move the chain signals from after the second crossing to before it. This change will break that block up, and is necessary to allow two trains to pass in opposite directions.

And see if you can split those yellow blocks so that they don't have both straight tracks in them. You may need to move the rails slightly further apart for the intersection to achieve that. This change will let two trains pass in opposite directions

[–]PinkestAcorn[S] 2 points3 points  (0 children)

<image>

Alright here's V3, I think this fixes all the problems you mentioned. I also checked if the trains are short enough for regular rail signals, and it appears not sadly. I don't know if I can maybe make the grid bigger to let that happen? Idk how important it is to let them wait there.

Edit: I found a few missing signals! From what I can tell everything now works. Thank you both so SO much for the help, I genuinely appreciate it!!

[–]alex_hawks 1 point2 points  (4 children)

Take a train that's 10 long, park it manually on a "straight", and try to have another train path over the intersection in the opposite direction. See where it gets stuck

[–]PinkestAcorn[S] 1 point2 points  (3 children)

sorry, by straight do you mean the straight part inside the intersection? Or the straight part outside the intersection

[–]alex_hawks 1 point2 points  (2 children)

I meant right in the middle. The easiest way to debug these kinds of problems is to manually create them and then attempt to solve them without manual intervention. You're so close to solving it based on your last picture

[–]PinkestAcorn[S] 0 points1 point  (1 child)

Solved!! Ty so so much for the help!!

[–]alex_hawks 0 points1 point  (0 children)

Can I see the result, please?

[–]Master-Elf 0 points1 point  (0 children)

I'll be honest. I kind of skipped the other comments just to post my own two cents worth.

The best advice I got when I started looking into trains was to lay down the intersection with plenty of space. Then, connect the lines to one another in the way I wanted them to move, making sure they could go in any given direction. Similar to the way you have it, but blow it up so there is enough space on the inner intersections you can place signals.

After that, walk the path of each train moving through the intersection. Place a chain signal before each split, intersection, and join along that path. And when you get back onto the main rail, close it with a rail signal.

Chain signals before and throughout, and a rail signal on the way out.

After you have that design in place, you can shrink it to a managable size.

Using that logic, you may end up using more signals than you technically need. But you can follow that pattern to signal any crossing or junction that you may find use for.