New guide: what conflicts do, a worked junction example, rules and clearance distances Tag: Agent |
Replace the text sketch with a diagram, add a screenshot for each step, and match the example's distances to the example map Tag: Agent |
||
| Line 23: | Line 23: | ||
== A worked example == | == A worked example == | ||
This is the junction on '''Example Junction''', the map the guides use. A branch leaves Line 1 and crosses Line 2 on the flat: | |||
[[File:Conflict example diagram.svg|thumb|none|700px|The two moves that meet: A → A3 (orange) crosses Line 2 where B → B2 (teal) runs. A → A2 never goes near Line 2.]] | |||
* Signal '''A''' is on Line 1, before the junction. It has two next signals: '''A2''' straight on, and '''A3''' down the branch. | * Signal '''A''' is on Line 1, before the junction. It has two next signals: '''A2''' straight on, and '''A3''' down the branch. | ||
* Signal '''B''' is on Line 2. Its next signal is '''B2'''. | * Signal '''B''' is on Line 2, just before the crossing. Its next signal is '''B2'''. | ||
* A train going from A to A3 crosses Line 2 | * A train going from A to A3 crosses Line 2. A train going from B to B2 passes over the same spot. | ||
So these two moves can collide: '''A → A3''' and '''B → B2'''. A train going A → A2 never goes near Line 2, so it should never wait for B. | So these two moves can collide: '''A → A3''' and '''B → B2'''. A train going A → A2 never goes near Line 2, so it should never wait for B. | ||
=== Step 1: add the conflicts === | === Step 1: add the conflicts === | ||
[[File:Map editor conflict step 1.png|thumb|right|300px|Step 1: A's conflict on B, with no rules yet.]] | |||
# Select signal A. In the Inspector, under '''Conflicts''', type B in '''Add conflict with…''' and press '''+'''. (Or press the pick button and click B on the map.) | # Select signal A. In the Inspector, under '''Conflicts''', type B in '''Add conflict with…''' and press '''+'''. (Or press the pick button and click B on the map.) | ||
# Select signal B and add a conflict with A in the same way. | # Select signal B and add a conflict with A in the same way. | ||
| Line 48: | Line 44: | ||
That's safe, but it is too strict: it also holds A when it is set straight on to A2, which never crosses Line 2. | That's safe, but it is too strict: it also holds A when it is set straight on to A2, which never crosses Line 2. | ||
{{clear}} | |||
=== Step 2: narrow it with a rule === | === Step 2: narrow it with a rule === | ||
[[File:Map editor conflict step 2.png|thumb|right|300px|Step 2: a rule for A set to A3 and the other train heading for B2. The dashed ''+ A2'' is a suggestion you could add.]] | |||
On A's card, press '''Add a rule to narrow this conflict''', and fill in: | On A's card, press '''Add a rule to narrow this conflict''', and fill in: | ||
* '''Routed to (A)''': A3. The rule only applies when A is set for the branch. | * '''Routed to (A)''': A3. The rule only applies when A is set for the branch. | ||
* '''Routed to (other train)''': B2. It only counts a train past B that is heading for B2. | * '''Routed to (other train)''': B2. It only counts a train past B that is heading for B2. | ||
The fields suggest the signals that make sense, so you can usually click a suggestion rather than type. | |||
The card now reads: | The card now reads: | ||
| Line 60: | Line 62: | ||
Do the same on B's card, the other way round: '''Routed to (B)''' B2, '''Routed to (other train)''' A3. | Do the same on B's card, the other way round: '''Routed to (B)''' B2, '''Routed to (other train)''' A3. | ||
{{clear}} | |||
=== Step 3: let it clear sooner === | === Step 3: let it clear sooner === | ||
As it stands, A waits until B's train reaches B2. But once that train's tail has cleared the | [[File:Map editor conflict step 3.png|thumb|right|300px|Step 3: Clears within set to 0.27 miles.]] | ||
As it stands, A waits until B's train reaches B2. But once that train's tail has cleared the crossing, A's train could safely go. '''Clears within''' lets the conflict end earlier. | |||
: '''Clears within''' = the miles left from the crossing to B2, less about 0.06 for the length of the train. | : '''Clears within''' = the miles left from the crossing to B2, less about 0.06 for the length of the train. | ||
In the example, B to B2 is 0.4 miles, and the crossing is 0.07 miles past B. That leaves 0.33 miles after the crossing. Take off 0.06, and '''Clears within''' is '''0.27'''. A is now held only until B's train is within 0.27 miles of B2. | |||
Work out B's card the same way, using the miles from the crossing to A3. In the example that is 0.49, so B's rule clears within 0.43. | |||
{{clear}} | |||
== Narrowing a conflict with rules == | == Narrowing a conflict with rules == | ||
| Line 93: | Line 99: | ||
== Checking your conflicts == | == Checking your conflicts == | ||
[[File:Map editor conflict rules on the map.png|thumb|none|700px|Hovering over A's conflict card. B, the target, is ringed red; A3, which the rule needs A to be set to, is yellow; B2, where the other train must be heading, is teal.]] | |||
* '''Hover over a conflict card''' to light up just that conflict on the map. | * '''Hover over a conflict card''' to light up just that conflict on the map. | ||
* With a signal selected, its conflict target is ringed '''red''', and signals with a conflict on it are ringed '''purple'''. Rule signals are ringed orange, yellow and teal. | * With a signal selected, its conflict target is ringed '''red''', and signals with a conflict on it are ringed '''purple'''. Rule signals are ringed orange, yellow and teal. | ||
| Line 98: | Line 106: | ||
* A warning on a field means the signal you entered isn't linked the way the rule needs, so the rule may never apply. | * A warning on a field means the signal you entered isn't linked the way the rule needs, so the rule may never apply. | ||
* The '''Check''' tab warns about a rule that can never apply because its Clears within is longer than any block after the target. | * The '''Check''' tab warns about a rule that can never apply because its Clears within is longer than any block after the target. | ||
* Then run trains at the junction with '''Test''', and click a red signal to see why it is red. See [[Testing a map]]. | * Then run trains at the junction with '''Test''', and click a red signal to see why it is red. See [[Testing a map#Why is this signal red?|Testing a map]]. | ||
== Common mistakes == | == Common mistakes == | ||
Latest revision as of 13:45, 9 October 2026
Conflicts stop two trains being sent onto the same piece of track at once at junctions, crossovers and flat crossings. They are the part of the map editor people find hardest, so this page goes slowly, with an example.
Why you need them
Signals keep trains apart along a line: only one train is allowed in each block. But at a junction, two signals on different lines can send trains over the same points, or across each other on the flat. Neither signal's block knows about the other train.
Without a conflict, the game will happily clear both signals, and the two trains meet.
Conflicts are needed at:
- junctions and crossovers,
- flat crossings (diamonds), and
- platforms trains can enter from both ends.
Tracks that pass under each other (Underpass track) never meet, so they need none.
What a conflict does
A conflict is set on one signal, and points at another signal, called its target.
- A conflict on signal A, with target B, holds A at red while a train has just passed B.
It holds A at red until that train reaches B's next signal, or until it is within a set distance of it (see rules below).
Conflicts go both ways. If A gets a conflict on B, B gets one on A, so whichever train gets there first, the other waits.
A worked example
This is the junction on Example Junction, the map the guides use. A branch leaves Line 1 and crosses Line 2 on the flat:
- Signal A is on Line 1, before the junction. It has two next signals: A2 straight on, and A3 down the branch.
- Signal B is on Line 2, just before the crossing. Its next signal is B2.
- A train going from A to A3 crosses Line 2. A train going from B to B2 passes over the same spot.
So these two moves can collide: A → A3 and B → B2. A train going A → A2 never goes near Line 2, so it should never wait for B.
Step 1: add the conflicts

- Select signal A. In the Inspector, under Conflicts, type B in Add conflict with… and press +. (Or press the pick button and click B on the map.)
- Select signal B and add a conflict with A in the same way.
Each conflict appears as a card. Under the target, the card says in plain English what it does:
- A is held at red while any train is past B, until that train passes its next signal.
That's safe, but it is too strict: it also holds A when it is set straight on to A2, which never crosses Line 2.
Step 2: narrow it with a rule

On A's card, press Add a rule to narrow this conflict, and fill in:
- Routed to (A): A3. The rule only applies when A is set for the branch.
- Routed to (other train): B2. It only counts a train past B that is heading for B2.
The fields suggest the signals that make sense, so you can usually click a suggestion rather than type.
The card now reads:
- When set to A3, A is held at red while a train that is routed to B2 is past B, until it passes its next signal.
Do the same on B's card, the other way round: Routed to (B) B2, Routed to (other train) A3.
Step 3: let it clear sooner

As it stands, A waits until B's train reaches B2. But once that train's tail has cleared the crossing, A's train could safely go. Clears within lets the conflict end earlier.
- Clears within = the miles left from the crossing to B2, less about 0.06 for the length of the train.
In the example, B to B2 is 0.4 miles, and the crossing is 0.07 miles past B. That leaves 0.33 miles after the crossing. Take off 0.06, and Clears within is 0.27. A is now held only until B's train is within 0.27 miles of B2.
Work out B's card the same way, using the miles from the crossing to A3. In the example that is 0.49, so B's rule clears within 0.43.
Narrowing a conflict with rules
A conflict with no rules counts any train past its target. Each rule narrows it. A rule applies when all its fields match; a conflict with several rules applies when any of them does.
| Field | Means | Empty means |
|---|---|---|
| Came from | Only count trains that came from these signals, before passing the target. You rarely need it. | any signal |
| Routed to (this signal) | Only apply when this signal is set to one of these next signals. | any route |
| Routed to (other train) | Only count a train past the target that is heading to one of these. | any route |
| Clears within | Stop counting the other train once it is this many miles from its next signal. 0 means when it passes that signal. | 0 |
The rule the official map follows, which reproduces every conflict on it:
- Give A a conflict on B whenever a move from A and a move from B share track or cross on the flat. Then give B one on A.
- Add one rule for each pair of moves that meet: Routed to (A) is A's next signal, Routed to (other train) is B's.
- Two moves that join into the same next signal still get a rule, with Clears within 0.
- If every pair meets and every rule would have Clears within 0, leave the conflict with no rules at all.
Checking your conflicts

- Hover over a conflict card to light up just that conflict on the map.
- With a signal selected, its conflict target is ringed red, and signals with a conflict on it are ringed purple. Rule signals are ringed orange, yellow and teal.
- Under the cards, Signals with a conflict on lists the signals that point back at this one. If the one you expect isn't there, you've only added it one way.
- A warning on a field means the signal you entered isn't linked the way the rule needs, so the rule may never apply.
- The Check tab warns about a rule that can never apply because its Clears within is longer than any block after the target.
- Then run trains at the junction with Test, and click a red signal to see why it is red. See Testing a map.
Common mistakes
- Adding it only one way. A waits for B, but B never waits for A.
- No conflicts at a junction. Trains are sent onto the same points at once.
- Conflicts between moves that never meet. Trains are held at red for no reason. Narrow them with rules, or remove them.
- Clears within too large. A clears while the other train is still on the crossing.