They are by far one of the most painful parts of factorio for me.
They are by far one of the most painful parts of factorio for me.
However, the foolproof advice I've gotten from r/Factorio has been to put chain signals at the entrance and exit to every junction, and to make sure there's enough space for your longest train to stop behind a rail signal (and you wouldn't mind having it stop there).
I can also recommend the cybersyn mod (or LTN). Once you understand one of these mods it makes dealing with trains much less of a hassle.
My simple rules:
* Trains can only stop on the section after a regular signal. If you don't want a train to be able to stop in a certain place (like on an intersection), don't use a regular signal in front of it.
* Make sure trains have places where they can stop. This will mostly be stations, but that's not enough. Actually, I've been wondering if it might be enough for stations that are only visited by a single train; then the train would only go if it has a clear path straight to its destination. Maybe I should give this a try. For me, however, the straights outside the intersections are usually fine places for trains to stop. But for better throughput and less blockage, there should probably multiple tracks, and special tracks for trains waiting to enter a station currently occupied by another train.
* Trains cannot pass a signal on their left if there's not also a signal on their right. You can use this to make certain tracks single-direction. Single-direction is good and easier than double-direction, so of course I mix them, because I'm not playing this game because I like things easy.
* Don't forget to give your trains a place to refuel! This is actually the part I mess up the most.
I just plop down a refueling station, and a requester station next to it that refuels the refueler and I'm done. Don't have to worry about it again.
And I haven't yet figured out how to disable drop-offs that don't need anything. I often have a single train bring stuff to a couple of drop-offs, but that always feels sloppy. I have to use timeouts on the trains so they don't linger at a station that's too full to empty them. Disabling those stations and giving them all the same name might be a better alternative.
look into your circuit networks. you can make them quite complex if you want
But sometimes I forget, and sometimes there's no fuel nearby.
Normal signal: train stops if there's a train in the section ahead (or it's reserved for another train on a conflicting path), otherwise train goes.
Chain signal: train stops here until it can get a mutex on a path past another non-chain signal.
So if you have rail sections (small letters) and signals (capitals) a - A - b - B - c - C - d in a row on a plain line and A/B are chain signals and C is regular, then trains from the left will stop at A until the train can grab all sections b, c, d in one go.
That's why chain signals at the entrance to a junction are good (prevents a train stopping on the junction) but you want regular ones at the exit, at least if some plain line follows.
Chain both in and out is supposedly the foolproof method, and apart from stations, rail signals are just an optimization.
Though I've played a lot of Factorio, I've never really felt the need to dive deeply in to signals, and I'm happy to just use the foolproof method and leave more optimized solutions for those who need them.
And of course you don't want trains stopping on intersections, because they'll block everybody, so you always put chain signals in front of intersections.
I had over 500 hours in Factorio before I felt comfortable with signalling. I got so frusturated with it originally I just ignored it as best I could.
But the "chain in, rail out" thing as others are mentioning really is the key. It's not always as perfectly simple as that, but it's a very good starting point.
You break everything up into blocks ... if you place a chain signal right before an intersection and a rail signal on the way out, you'll be there for most situations.
Most.
My most complex map has about 50 trains running and all intersecting each other and so far, everything is running smoothly on that one. No trains slamming into each other and everything running efficiently as far as I can tell. Almost all of it is just that "chain in, rail out" thing.
It's basically a visual version of the classic deadlock conditions. Chain signals create dependencies between locks, and the locks themselves (the rail signals) have to be granular enough to keep large sections of the rail network available to acquire. The confusing part about the chain signals is the blue state: the train will use its pathfinding to read forward of the signal and it will move if the path it needs to take is available. You have to look forward of the signal to see if the rail signal for the path the train wants to take is green or not.
Also, this video[1] by Soulless Gaming on "How to Fix Train Path Errors" has a lot of useful tips on train/signal troubleshooting.
https://www.reddit.com/r/factorio/comments/i2szgb/tiling_uti...
> 2-way 6-wide right hand rail system on a global 60-tile grid with interoperable 90° & 45° variants. Intended to be simple, complete, & hard to misuse.
> Features: rotational symmetry, red&green wired poles, landfill, blueprints for Through, Turn, Tee, Junction, and U-Turn for both 90° & 45°, 90°/ 45° transition blueprints
> Tiling is based on large power poles, 60 is the max distance between 3 poles in a straight line, or 5 poles diagonally.
Here's a big example with all the rail components slapped together for a demo: https://i.imgur.com/84P9nO0.png
I also made the simplest tiling nuclear blueprint kit: https://www.reddit.com/r/factorio/comments/gp0jmb/infogulchs...
Chain signals before an intersection; regular signals after those, and on the track to split the track for multiple trains simultaneously.
See: https://wiki.factorio.com/Tutorial:Train_signals if you haven't already.
I frequently set up tracks with segments as large as my longest train, but then end up having to add an intersection here or there, breaking up segments into smaller sizes. This is the root of most of my train woes (aside from LTN issues, which are a whole other issue!)
That's what chain signals are for. If a train waiting at a signal causes issues, replace the previous signal with a chain signal to prevent the train from problematically waiting at the signal.
Fortunately this is totally fine, you can get by without them.
Once you've "figured it out" it's much easier to drop down "smart stations" instead of building them yourself each time.
Just like I recommend players who want to do city blocks build their own blueprints instead of just loading up someone's (even if you later switch to someone's standard blueprint, you'll at least understand the why).
And of course, it's a sandbox game! You could just download a completed map, but there's no fun in that.