diff --git a/art/scenes/tt_08_gunfight.webp b/art/scenes/tt_08_gunfight.webp
new file mode 100644
index 0000000..dcac51e
Binary files /dev/null and b/art/scenes/tt_08_gunfight.webp differ
diff --git a/art/scenes/tt_09_payroll.webp b/art/scenes/tt_09_payroll.webp
new file mode 100644
index 0000000..169f844
Binary files /dev/null and b/art/scenes/tt_09_payroll.webp differ
diff --git a/art/scenes/tt_10_couple.webp b/art/scenes/tt_10_couple.webp
new file mode 100644
index 0000000..ace1fba
Binary files /dev/null and b/art/scenes/tt_10_couple.webp differ
diff --git a/docs/scenarios/THROUGH_TRAIN.md b/docs/scenarios/THROUGH_TRAIN.md
index 9888458..7ba0c0d 100644
--- a/docs/scenarios/THROUGH_TRAIN.md
+++ b/docs/scenarios/THROUGH_TRAIN.md
@@ -1,7 +1,8 @@
# Crossing starter — The Custodians: THROUGH TRAIN
> *A train has been running the same four miles of track since the third of November,
-> 1881. It has never stopped. There are sixty-one people on it and they are all alive.*
+> 1881. It has never stopped. There are sixty-one people on it, nine of them are shooting
+> at each other, and the same four minutes has run about two million times.*
---
@@ -15,10 +16,15 @@
for carrying. Anchors are exempt.
- **Runs with 4–6 agents from the duty roster.** Not the "(before)" sheets — this is the
job, and it wants people who have been trained.
+- **The four minutes are lethal.** Webley 1d10, Martini-Henry 2d6+2, against 11–16 hit
+ points. **Use the exposure table** — unrestricted fire from all nine wipes the party
+ five times in six.
+- **The mission is to CLOSE it**, which releases everyone aboard into their own history —
+ including the two men who did not survive the real four minutes.
- **Hard rule: at 2:45 on the clock, they are on the train.**
-- **Content warnings:** entrapment and confinement; a decision that condemns named
- people including children; period racism and hardship implied but not staged; heights;
- one death by fire in backstory.
+- **Content warnings:** gun violence at close quarters, repeatedly; entrapment and
+ confinement; bystanders wounded on screen; a decision that lets named people die;
+ period hardship and labour exploitation; heights.
---
@@ -43,8 +49,9 @@
players learn what kind of game this is.
4. **The ending is a decision priced on both sides**, with no roll and no correct
answer, taken in front of a woman holding a manifest.
-5. **What this is not:** a fight. There is no antagonist. Kell is not possessed, Vane is
- not a villain, and the train is not malevolent — it is a note being held.
+5. **There is a fight, and there is no villain in it.** Two armed parties, both with
+ genuine paper, both convinced the others are robbers. The players can survive it,
+ shape it and pull people out of it. They cannot end it — only the brakes end it.
---
@@ -80,7 +87,23 @@ anything patient enough — and a train is the most patient arguer there is: a f
a constant speed, on the hour, every day, saying the same wrong thing about where it was.
**3 November 1881, 11:40.** The record gave way. Four miles of line came loose from the
-date with No. 9 and five cars on it and **sixty-one souls aboard**.
+date with No. 9 and five cars on it, **sixty-one souls aboard**, and a **gunfight already
+three seconds old**.
+
+**The loop is four minutes long and the fight is inside it.** The crossing did not capture
+a train; it captured four minutes, and those four minutes contain two armed parties
+shooting the length of car three. It has run about two million times.
+
+### The two sides — and neither is the villain
+
+| | Who | What they have | What they believe |
+|---|---|---|---|
+| **The coats** | Four men hired by the company to see the payroll to Fallon, led by **Cass Merritt** | A signed letter of engagement, and the key to the box | That men who board at a water stop are robbers |
+| **The writ men** | Five Cordera miners, eleven weeks unpaid, led by **Josiah Ambrose** | A sealed writ of attachment from a territorial judge, naming that payroll | That they are lawfully seizing wages and being shot at for it |
+
+**The company sold the same money twice and is not aboard.** Both papers are genuine.
+Neither man has seen the other's. Nobody in car three is lying and nobody is wrong.
+**Do not adjudicate it.** The players can learn enough to see there is nothing to settle.
**The running is what holds it open.** This is the thing the players must arrive at: the
train is not trapped inside the crossing — the train *is* the crossing. A standing wave,
@@ -88,9 +111,29 @@ sustained by its own motion the way a bow sustains a note.
- **Nobody is dead.** They eat, sleep in shifts, and have organised a water rota. By
their clocks it has been about nine hours.
-- **Nobody can get off.** Step down and you are on ground outside the error. Three
- departmental attempts are on file; none returned; all three tried to stop it first.
-- **Stop the train and the note ends** — and everything it holds open ends with it.
+- **Nobody can get off while it runs.** Three departmental attempts are on file; none
+ returned.
+- **Stop the train and the loop ends.** This is the mission, and it is not a mercy killing.
+
+### What closing it actually does — read this twice
+
+**Closing the crossing does not kill anybody. It lets them go.** The loop ends, the third
+of November 1881 resumes from 11:44, and every person aboard walks forward into the life
+they would have had.
+
+**Including the ones who did not survive the real four minutes.** History resumes as
+history: Josiah Ambrose and a miner named Doyle died in that gunfight, and when the loop
+lets go they die in it. Not because the agents killed them — because that is what
+happened, and it has been prevented from happening for a hundred and forty-five years.
+
+**That is the weight of this ending and it is the whole point.** The agents are not
+choosing who lives. They are choosing to stop holding history still, and they will have
+met the people it lands on.
+
+The department's position is unambiguous: **close it.** A crossing held open by a
+repeating event degrades, and when it fails on its own — Registry's read is within a
+year — everyone inside is lost outright rather than returned. Waiting is the only option
+that is definitely worse.
**Elias Vane is aboard.** He rode his own line to see what he had signed for. He has had
nine hours and a hundred and forty-five years to think about it. He understands the
@@ -120,9 +163,11 @@ direct question honestly because he has been waiting a very long time to be aske
| R6 | Nobody aboard is dead, and by their clocks it has been nine hours |
| R7 | The running is what holds the crossing open |
| R8 | Coal that should have lasted four hours has lasted a hundred and forty-five years |
-| R9 | Kell will stop if told to, and only if told to |
+| R9 | Kell will stop if told to, out loud, to his face — and only then |
| R10 | Vane signed it, and knows exactly what stopping it costs |
-| R11 | Sixty-one people, six passes, four hours — and the crossing may not hold |
+| R11 | The four minutes contain a gunfight, and it repeats exactly |
+| R12 | Both sides have genuine paper, and the company sold the money twice |
+| R13 | Closing it releases everyone into their own history — including the two who die in it |
---
@@ -166,6 +211,11 @@ on a **fumbled boarding attempt**.
| TT-H04 | **The filed survey** — the line on the north bench | Act One |
| TT-H05 | Working timetable and the dispatcher's book | Act One |
| TT-H06 | **Passenger manifest** — sixty-one souls, nine children | Act Three |
+| TT-H07 | **Letter of engagement** — found on Merritt | Act Three, when searched |
+| TT-H08 | **Writ of attachment** — found on Ambrose | Act Three, when searched |
+
+The two papers are the ambiguity, and they only mean anything **held in the same hand**.
+Give them separately and let the table put them together.
The manifest is deliberately held back to Act Three. It is a list of names, and the
players should not be holding it until the moment it starts to weigh something.
@@ -287,54 +337,118 @@ the clock moves — not a full stop.
---
-## Act Three — Aboard *(~50 min)*
+## Act Three — Aboard, and the four minutes *(~50 min)*
-> **Goal:** sixty-one people, one man who knows, and a decision that costs either way.
+> **Goal:** survive a gunfight nobody started for their benefit, work out that it repeats,
+> and close the crossing anyway.
> It is warm. That is the first thing. Sixty-one people in five cars, and it smells of
> bodies and coal smoke and coffee. Somebody has organised a rota for the water. A child
> is asleep across two seats with a coat over her. They look up when you come through the
-> door, and one of them says: *"Are you from the company?"*
+> door, and one of them says: *"You want to be somewhere else in about six minutes."*
| Where | What |
|---|---|
-| The locomotive | **Marius Kell**, engineer, who has not let go of the regulator |
+| The locomotive | **Marius Kell**, who has not let go of the regulator |
| Tender, car one | Coal that has not run out — the first hard evidence |
-| Cars two and three | Most of the sixty-one. Organised, rationed, glad to see anyone |
-| Car four | Freight, the company safe, **the signed survey** |
+| Car two | Most of the passengers. They lie down before it starts. They have a drill. |
+| **Car three** | **Where the fight happens.** Overturned seats at both ends. |
+| Car four | Freight, the payroll box bolted down, the signed survey in the satchel |
| Car five | **Elias Vane**, alone, watching the line come out from under |
-### The three facts aboard
+### The four minutes
-1. **The coal has not run out.** `[CUS: Engineering or Spot]`
-2. **Kell cannot let go** — not *will* not. He worked out on day one that slowing is the
- end of everything, and he has been right for a hundred and forty-five years. He is not
- mad and not possessed. He is tired.
-3. **Vane knows**, and will say so to a direct question.
+Starts on the whistle for the grade. Run it in rounds. **It is the same four minutes every
+time** — same men, same shots, same two passengers hit in the second minute.
-### Getting people off
+| Minute | What happens if nobody interferes |
+|---|---|
+| 1 | Ambrose's five come forward from car four. Merritt's four are at the front of car three. Somebody shouts *put it down*; both sides think they said it. |
+| 2 | First volley. **Two passengers are hit** — a miner named Doyle, and Mrs Danforth's arm. Every time. |
+| 3 | Merritt falls back to the car four door and holds it. Ambrose takes the overturned seats. Everybody reloads: a Webley is six, a Martini is one. |
+| 4 | Ambrose reaches the box. Merritt shoots him through the door. The whistle sounds, and it resets. |
-**Off the moving train is survivable. Off the crossing is not.** A person put off at the
-top of the grade — the same forty seconds the agents used — lands in 1881 and lives.
+### HOW MUCH FIRE THE AGENTS DRAW — read before running it
-**Sixty-one people. Six passes. Four hours.** They cannot do it in the time they have.
-That is deliberate: the ending is what they choose to do about the arithmetic.
+**The two sides are shooting at each other, not at the agents.** Getting this wrong turns
+the scene into a massacre. Work out what each agent is *doing* and give them that much
+fire and no more.
+
+| The agent is | Shooters | Cover | Measured over 300 runs |
+|---|---|---|---|
+| **Head down, not acting** | none | — | Untouched. A legitimate choice for a pass. |
+| **Acting from cover** | 1 | −30% | **2 of 4 hurt, half a party member down, no wipes.** The intended shape. |
+| **Moving in the open** | 2 | −30% | 3 of 4 hurt, one down. One party in 300 wiped. |
+| **Going for the payroll box** | 2 | none | **3½ of 4 down. More than half of all parties wiped.** |
+
+**Tell them the last row before they commit, not after.** Everything else is survivable.
+**Nobody rolls to hide** — taking cover is a decision, and it works.
+
+### THE LOOP RESETS. THE AGENTS DO NOT.
+
+Everybody who belongs to 1881 is back on their feet at the next pass, unhurt, with no
+memory of having been shot. **The agents are not part of the loop and their wounds are
+permanent.** Say this before the first volley — a player who thinks the reset will heal
+them will take risks that kill them.
+
+A downed agent is *down*, not dead: the dying rules apply, and the only medicine aboard is
+a chirurgeon's roll and a bottle of laudanum. First Aid is the whole answer, and somebody
+has to stop shooting to give it.
+
+*A playtested pass, four agents all acting from cover: two down at 0 hit points, one on a
+quarter, one untouched because he stayed on the floor. That is a bad pass rather than a
+typical one — the average is half a party member — but it is possible on the first one.*
+
+### What the players will try
+
+| They try | What it does |
+|---|---|
+| Shout, show a warrant card, take charge | Nothing. No authority aboard is recognised. `[CUS: Persuade at −30% on the first pass; easier later as they learn names]` |
+| Shoot one side | It works, and changes nothing. Everyone is back next pass. **Let that land in silence.** |
+| Get the passengers down | Genuinely useful. Doyle and Mrs Danforth can be pulled clear before minute two. |
+| Get to the payroll box | The obvious idea, and the one that kills them. See the table. |
+| Show one side the other's paper | **The good move.** It does not stop the fight; it is how they learn what they are looking at. |
+| Get to the locomotive | Through car two and the tender, under fire in the gap. This is the route to the ending. |
+
+### The paper — the ambiguity, made findable
+
+**Merritt** carries a letter of engagement from the company: see the box to Fallon,
+surrender it to no one *upon any pretext whatsoever, including the presentation of any
+paper*. **Ambrose** carries a sealed writ of attachment naming that same payroll against
+eleven weeks of unpaid wages.
+
+**Both genuine. Neither man has seen the other's.** An agent holding both has the whole
+truth: the company sold the same money twice, then put nine armed men on a train with it.
+
+**It does not stop the fight.** Merritt will not stand down for a judge he has never heard
+of while being shot at, and Ambrose has eleven weeks of nothing behind him.
+
+### Closing it
+
+**Kell will stop the train if a person he believes has authority tells him to, out loud,
+to his face.** He has waited a hundred and forty-five years to be told. Not on a note, not
+shouted from the tender. `[CUS: Persuade or Status — easier if they can tell him something
+true about what is happening to his train]`
+
+**When the brakes go on, the loop lets go.** Four minutes finish for the first time since
+1881. Doyle and Ambrose do not get up. They never did.
### The choices — no roll resolves this
-| Choice | Cost |
+| Choice | What it costs |
|---|---|
-| **Everyone off, then stop it** | Four hours while the crossing degrades. It may not hold. The right answer, and a gamble. |
-| **Stop it now** | Clean close, clean file. Sixty-one people end. Kell will do it if asked. |
-| **Children and crew off, then stop it** | The compromise every table finds. It works — and it means choosing, by name, off a manifest they are holding. |
-| **Leave it running** | Everyone lives today. It fails inside a year with everyone aboard. A real option; the scenario logs it without punishing it. |
+| **Close it as ordered** | The mission, done. Fifty-nine released into their own century. Two men die of wounds taken in 1881, in 1881. |
+| **Close it, having pulled Doyle and Mrs Danforth clear** | Works for those two. Nobody can save Ambrose — only stopping the train stops Merritt shooting him, and stopping the train is what kills him. |
+| **Try to end the fight first** | Admirable, probably impossible. Every pass spent trying moves the crossing clock; at 6 it closes with everyone inside. |
+| **Refuse, leave it running** | Everyone lives, for a value of living four minutes long. It fails inside a year and then nobody is released at all. |
### If they ask Vane
> I filed a chart that said the line was somewhere it was not, because a man told me to
-> and I wanted the work. That is all I did. It took six months of honest railwaymen
-> repeating it to make it true. If you stop us I would call that fair, and I would ask you
-> to put the children off first.
+> and I wanted the work. Six months of honest railwaymen repeating it made it true. Now —
+> you have seen the middle of the car. Two of those men do not get up when it stops. They
+> have not got up two million times and they will not get up now. I would still stop it.
+> It is not our place to hold a thing still because we have grown fond of it.
---
@@ -344,10 +458,14 @@ A Registry room, a form, and somebody writing down sixty-one names.
| Ending | What the register says |
|---|---|
-| **All off, then stopped** | Sixty-one resettled in 1881, new papers, no way home. Two find their way into the department's files within the decade. |
-| **Stopped with people aboard** | Closes clean. The file closes clean. Nobody is quite the same about a timetable. |
-| **Partial** | However many were put off, put off. The rest are a number in a column, and the agent who chose is named. |
-| **Left running** | Logged, monitored, inherited by whoever holds the case in a year. Defensible. Nobody thanks them. |
+| **Closed as ordered** | Fifty-nine walk forward into their own century. Ambrose and Doyle die of wounds taken on 3 November 1881, four minutes after they took them. Registry counts it a success and it is one. |
+| **Closed, the two passengers pulled clear first** | As above, and Mrs Danforth keeps her arm. |
+| **Closed late** | The same ending, more expensively. If the clock reached 6 first, add the agents to the list. |
+| **Left running** | Logged, monitored, inherited. Sixty-one people continue to live four minutes. When it fails, nobody is released at all. |
+
+**Registry's note on any ending:** *"The department did not cause these deaths. It ceased
+to prevent them. The distinction matters to the file and it is not expected to matter to
+the agents."*
---
@@ -355,6 +473,8 @@ A Registry room, a form, and somebody writing down sixty-one names.
| Who | Wants | Key line |
|---|---|---|
+| **Cass Merritt**, hired guard | to see the box to Fallon, as engaged | *"I have a letter. Whatever you have, I have a letter."* |
+| **Josiah Ambrose**, miner | eleven weeks of wages, lawfully | *"There is a judge's seal on this. Read it and then shoot me."* |
| **Marius Kell**, engineer | to be allowed to stop | *"You tell me when. I'll not do it before you say."* |
| **Elias Vane**, surveyor | to be asked, at last | *"I signed it. Six months of honest men made it true."* |
| **Hester Bligh**, conductor | her passengers accounted for | *"Sixty-one aboard. I have counted them every hour since."* |
@@ -365,14 +485,19 @@ A Registry room, a form, and somebody writing down sixty-one names.
## Do not resolve
+- **Who was in the right.** Both papers are genuine, the company sold the money twice,
+ and the company is not aboard to answer for it. If a player asks the GM to adjudicate,
+ do not.
- **Why the coal has not run out.** The wave sustains it; that is as far as anyone gets.
- **What is at the far end of the line.** Nobody aboard has reached it.
-- **Whether the people put off in 1881 were saved or exiled.** Both. It should sit badly.
+- **Whether closing it was a rescue.** Fifty-nine people say yes. Two men do not get to
+ say.
## GM notes
-- **Play the passengers as people, hard.** The scenario dies the moment they become a
- number, and it lives on the fact that they are not.
+- **Play the passengers as people, hard** — and the nine men in the fight hardest of all.
+- **Never let the players win the fight.** They can survive it, shape it, and pull people
+ out of it. They cannot end it. Only the brakes end it.
- **Standing Order 9 is the tutorial.** Do not soften it and do not apologise for it.
- **Cut first:** the town, down to the livery and the telegraph office. Never cut the
boarding.
diff --git a/packs/armour/LOG b/packs/armour/LOG
index 843be17..64573df 100644
--- a/packs/armour/LOG
+++ b/packs/armour/LOG
@@ -1 +1 @@
-2026/08/18-00:25:18.939914 16fcaf000 Delete type=3 #1
+2026/08/18-22:19:38.565994 16fde7000 Delete type=3 #1
diff --git a/packs/expedition/LOG b/packs/expedition/LOG
index a388aa5..1f00e9a 100644
--- a/packs/expedition/LOG
+++ b/packs/expedition/LOG
@@ -1 +1 @@
-2026/08/18-00:25:19.010528 1704bb000 Delete type=3 #1
+2026/08/18-22:19:38.644697 16f5db000 Delete type=3 #1
diff --git a/packs/gear/LOG b/packs/gear/LOG
index 55953be..8f5c3cf 100644
--- a/packs/gear/LOG
+++ b/packs/gear/LOG
@@ -1 +1 @@
-2026/08/18-00:25:18.941763 16f4a3000 Delete type=3 #1
+2026/08/18-22:19:38.567920 16edcf000 Delete type=3 #1
diff --git a/packs/lastadmission/LOG b/packs/lastadmission/LOG
index 8b22fcb..40ba53b 100644
--- a/packs/lastadmission/LOG
+++ b/packs/lastadmission/LOG
@@ -1 +1 @@
-2026/08/18-00:25:18.995451 16f4a3000 Delete type=3 #1
+2026/08/18-22:19:38.626556 16edcf000 Delete type=3 #1
diff --git a/packs/npcs/LOG b/packs/npcs/LOG
index 533ff49..4719650 100644
--- a/packs/npcs/LOG
+++ b/packs/npcs/LOG
@@ -1 +1 @@
-2026/08/18-00:25:18.976255 16fcaf000 Delete type=3 #1
+2026/08/18-22:19:38.602723 1705f3000 Delete type=3 #1
diff --git a/packs/powers/LOG b/packs/powers/LOG
index 1b54c0c..2646f33 100644
--- a/packs/powers/LOG
+++ b/packs/powers/LOG
@@ -1 +1 @@
-2026/08/18-00:25:19.005331 16ec97000 Delete type=3 #1
+2026/08/18-22:19:38.638639 16f5db000 Delete type=3 #1
diff --git a/packs/pregens/LOG b/packs/pregens/LOG
index f31b71a..18693fc 100644
--- a/packs/pregens/LOG
+++ b/packs/pregens/LOG
@@ -1 +1 @@
-2026/08/18-00:25:18.961584 16ec97000 Delete type=3 #1
+2026/08/18-22:19:38.589122 16f5db000 Delete type=3 #1
diff --git a/packs/primer/LOG b/packs/primer/LOG
index 48cad76..24d83ed 100644
--- a/packs/primer/LOG
+++ b/packs/primer/LOG
@@ -1 +1 @@
-2026/08/18-00:25:19.002226 16f4a3000 Delete type=3 #1
+2026/08/18-22:19:38.634914 16fde7000 Delete type=3 #1
diff --git a/packs/prologue/LOG b/packs/prologue/LOG
index 9d2cfe8..6a8de22 100644
--- a/packs/prologue/LOG
+++ b/packs/prologue/LOG
@@ -1 +1 @@
-2026/08/18-00:25:18.999210 16fcaf000 Delete type=3 #1
+2026/08/18-22:19:38.630970 1705f3000 Delete type=3 #1
diff --git a/packs/rules/LOG b/packs/rules/LOG
index 738903e..e51949d 100644
--- a/packs/rules/LOG
+++ b/packs/rules/LOG
@@ -1 +1 @@
-2026/08/18-00:25:19.008595 16f4a3000 Delete type=3 #1
+2026/08/18-22:19:38.642943 16f5db000 Delete type=3 #1
diff --git a/packs/skills/LOG b/packs/skills/LOG
index 5025ab1..7b1b112 100644
--- a/packs/skills/LOG
+++ b/packs/skills/LOG
@@ -1 +1 @@
-2026/08/18-00:25:18.934271 16fcaf000 Delete type=3 #1
+2026/08/18-22:19:38.559204 1705f3000 Delete type=3 #1
diff --git a/packs/slice/LOG b/packs/slice/LOG
index 6c6f88c..a5fd097 100644
--- a/packs/slice/LOG
+++ b/packs/slice/LOG
@@ -1 +1 @@
-2026/08/18-00:25:19.003783 16fcaf000 Delete type=3 #1
+2026/08/18-22:19:38.636910 16edcf000 Delete type=3 #1
diff --git a/packs/starter/LOG b/packs/starter/LOG
index f26d922..5907fc0 100644
--- a/packs/starter/LOG
+++ b/packs/starter/LOG
@@ -1 +1 @@
-2026/08/18-00:25:18.985846 16f4a3000 Delete type=3 #1
+2026/08/18-22:19:38.613457 1705f3000 Delete type=3 #1
diff --git a/packs/tables/LOG b/packs/tables/LOG
index d165e04..fc701f2 100644
--- a/packs/tables/LOG
+++ b/packs/tables/LOG
@@ -1 +1 @@
-2026/08/18-00:25:18.980204 16fcaf000 Delete type=3 #1
+2026/08/18-22:19:38.607158 16fde7000 Delete type=3 #1
diff --git a/packs/talents/LOG b/packs/talents/LOG
index 45ea4c9..d533edc 100644
--- a/packs/talents/LOG
+++ b/packs/talents/LOG
@@ -1 +1 @@
-2026/08/18-00:25:18.936682 16f4a3000 Delete type=3 #1
+2026/08/18-22:19:38.562204 16fde7000 Delete type=3 #1
diff --git a/packs/throughtrain/000003.log b/packs/throughtrain/000003.log
index 706fd7f..17dbebc 100644
Binary files a/packs/throughtrain/000003.log and b/packs/throughtrain/000003.log differ
diff --git a/packs/throughtrain/LOG b/packs/throughtrain/LOG
index 4028c0d..42e1b3e 100644
--- a/packs/throughtrain/LOG
+++ b/packs/throughtrain/LOG
@@ -1 +1 @@
-2026/08/18-00:25:18.991213 1704bb000 Delete type=3 #1
+2026/08/18-22:19:38.621260 16f5db000 Delete type=3 #1
diff --git a/packs/vehicles/LOG b/packs/vehicles/LOG
index aa3bcad..14c346c 100644
--- a/packs/vehicles/LOG
+++ b/packs/vehicles/LOG
@@ -1 +1 @@
-2026/08/18-00:25:18.943608 16f4a3000 Delete type=3 #1
+2026/08/18-22:19:38.569865 1705f3000 Delete type=3 #1
diff --git a/packs/weapons/LOG b/packs/weapons/LOG
index 6cf129c..5d9d677 100644
--- a/packs/weapons/LOG
+++ b/packs/weapons/LOG
@@ -1 +1 @@
-2026/08/18-00:25:18.938385 16fcaf000 Delete type=3 #1
+2026/08/18-22:19:38.564105 16f5db000 Delete type=3 #1
diff --git a/system.json b/system.json
index dd414c7..3544748 100644
--- a/system.json
+++ b/system.json
@@ -2,7 +2,7 @@
"id": "ringbrp",
"title": "The Custodians",
"description": "A Basic Roleplaying game of agents who cross the crossing to contain what should not be there — and who come back a little less from here each time.",
- "version": "1.3.0",
+ "version": "1.4.0",
"compatibility": {
"minimum": 13,
"verified": "14.364"
diff --git a/tools/build-packs.mjs b/tools/build-packs.mjs
index 1e1eec2..d5c03db 100644
--- a/tools/build-packs.mjs
+++ b/tools/build-packs.mjs
@@ -923,8 +923,11 @@ function cullandScene() {
{ name: "3 · The grade on the south bench", src: "art/scenes/tt_03_bench.webp" },
{ name: "4 · Cordera, 1881", src: "art/scenes/tt_04_cordera.webp" },
{ name: "5 · The water tower — boarding", src: "art/scenes/tt_05_boarding.webp" },
- { name: "6 · Inside car three", src: "art/scenes/tt_06_car.webp" },
- { name: "7 · Afterwards, the register", src: "art/scenes/tt_07_after.webp" }
+ { name: "6 · Inside car three, between passes", src: "art/scenes/tt_06_car.webp" },
+ { name: "7 · The four minutes", src: "art/scenes/tt_08_gunfight.webp" },
+ { name: "8 · The payroll box, car four", src: "art/scenes/tt_09_payroll.webp" },
+ { name: "9 · The gap between the cars", src: "art/scenes/tt_10_couple.webp" },
+ { name: "10 · Afterwards, the register", src: "art/scenes/tt_07_after.webp" }
]);
const advId = idFor("adventure:through_train");
diff --git a/tools/scenario-throughtrain.mjs b/tools/scenario-throughtrain.mjs
index 9163b4e..e446ce2 100644
--- a/tools/scenario-throughtrain.mjs
+++ b/tools/scenario-throughtrain.mjs
@@ -14,8 +14,22 @@
* gave way, and the train that was inside it at 11:40 has been running ever since.
*
* It is a standing wave. The motion sustains the error the way a bow sustains a note.
- * Stop the train and the note ends — and everything the note is holding open ends with
- * it, including sixty-one people, unless they are off first.
+ *
+ * What repeats is not just the train. At 11:40 on 3 November 1881 there was a GUNFIGHT
+ * aboard over the payroll, and the four minutes that contains it is what the loop is
+ * made of. It runs again on every pass, the same four minutes, and it has run about two
+ * million times.
+ *
+ * TWO SIDES AND NEITHER OF THEM IS THE VILLAIN. The company's paid guards are protecting
+ * a payroll they were hired to protect. The men who boarded at the water stop are owed
+ * that payroll and are carrying a court writ that says so. Both have paper. Both believe
+ * the others are thieves. The company sold the same money twice and is not aboard.
+ *
+ * Closing the crossing does not kill anybody. It RELEASES them: the loop ends, 3 November
+ * 1881 resumes, and every person aboard goes on to live the life they would have lived —
+ * including the ones who, on the real third of November, did not survive the next four
+ * minutes. That is the weight of the ending, and it is a much better weight than the one
+ * this scenario carried before.
*
* This is also the scenario that teaches the standing order on period crossings: NOTHING
* MODERN GOES THROUGH. The catalogue already carries the 1881 issue — Webley, Martini-
@@ -50,27 +64,39 @@ export const TT_PAGES = [
+ READ("A train has been running the same four miles of track since the third of "
+ "November, 1881. It has never stopped. There are sixty-one people on it and they "
+ "are all still alive.")
- + H(2, "The whole thing in six lines")
+ + H(2, "The whole thing in seven lines")
+ OL([
"A railway company laid track to a filed survey instead of to the "
+ "ground, then described the line as being where it was not — ten thousand times, "
+ "in timetables and waybills and telegraph orders, for six months.",
"Reality keeps a record of what belongs where. An argument made at "
+ "a constant speed on a fixed line is the most patient argument there is.",
- "On 3 November 1881 the record gave way. The train inside it at 11:40 has been "
- + "running ever since. The running is what holds the crossing open.",
- "Nobody aboard is dead. Nobody aboard can get off. By their clocks it has been "
- + "about nine hours.",
- "The agents have to get on a train that cannot stop, which is the "
- + "set-piece, and then decide what to do about it, which is the ending.",
- "Nothing modern goes through. That is the standing order and it is "
- + "half the flavour of the night."
+ "On 3 November 1881 the record gave way. The running is what holds the "
+ + "crossing open, and the train has not stopped since.",
+ "What repeats is four minutes with a GUNFIGHT in it. At 11:40 two "
+ + "armed parties were shooting at each other over the payroll. That fight runs "
+ + "again on every pass and has run about two million times.",
+ "Two sides, and neither is the villain. The company's guards are "
+ + "protecting money they were hired to protect. The men who boarded are owed that "
+ + "money and have a court writ saying so. The company sold it twice and is not "
+ + "aboard.",
+ "The agents must board a train that cannot stop, survive four "
+ + "minutes of live gunfire, and close the crossing.",
+ "Closing it does not kill anybody. It lets them go. The loop ends, "
+ + "1881 resumes, and everyone aboard lives the life they would have lived — "
+ + "including the ones who did not survive the real four minutes."
])
+ H(2, "How to run it")
+ UL([
"It is not a ghost train and nobody is haunting anybody. Every "
- + "person aboard is a person. Play them tired, frightened, bored, and extremely "
- + "glad to see somebody new.",
+ + "person aboard is a person, on both sides of the gunfight.",
+ "The fight is genuinely dangerous and the players are in it. A "
+ + "Webley does 1d10 and a Martini-Henry does 2d6+2 against agents with eleven to "
+ + "sixteen hit points. Nobody aboard is aiming at the agents to begin with, and "
+ + "everybody will once they move.",
+ "Do not resolve who is right. Both parties have paper, both "
+ + "believe the others are robbers, and the players can learn enough to see that "
+ + "and not enough to settle it. That is the design, not a gap.",
"The train cannot stop, and it cannot be flagged down. Not by "
+ "authority, not by standing on the line, not by a red lamp. Say so early and let "
+ "the table work on the real problem, which is matching its speed.",
@@ -81,7 +107,10 @@ export const TT_PAGES = [
+ "a Coherence the first time it is used, and the far side notices. Do not fine "
+ "them for carrying it — charge them when they USE it.",
"Panic is live and this is where it earns its place. Boarding is "
- + "frightening, the cars are worse, and the driver is the worst thing on the train."
+ + "frightening; four minutes of gunfire in a wooden box is worse.",
+ "Killing everybody does not end it. The loop replays whatever "
+ + "happens. A table that shoots its way through the first pass will meet all the "
+ + "same men alive on the next one, which is the moment the scenario lands."
])
+ H(2, "Shape")
+ TABLE(["Section", "Time", "Ends when"], [
@@ -110,31 +139,70 @@ export const TT_PAGES = [
+ "record. It can be made to get it wrong by anything patient enough — and a train is "
+ "the most patient arguer there is: a fixed line, a constant speed, on the hour, "
+ "every day, saying the same wrong thing about where it was.")
- + H(2, "3 November 1881, 11:40")
+ + H(2, "3 November 1881, 11:40 — and what was happening at the time")
+ P("The record gave way. Four miles of line came loose from the date, with No. 9 and "
- + "five cars on it and sixty-one people aboard.")
+ + "five cars on it and sixty-one people aboard — and a "
+ + "gunfight already three seconds old.")
+ + P("The loop is four minutes long and the fight is inside it. That is "
+ + "the important structural fact. The crossing did not capture a train; it captured "
+ + "four minutes, and those four minutes contain two armed parties shooting at each "
+ + "other the length of car three. It has run about two million times.")
+ + H(2, "The two sides, and why neither is the villain")
+ + TABLE(["", "Who", "What they have", "What they believe"], [
+ ["The coats",
+ "Four men hired by the Cordera & Western to see the payroll to Fallon. Led by Cass Merritt.",
+ "A letter of engagement signed by the company, and the key to the box.",
+ "That the men who boarded at the water stop are robbers, because that is what men who board at a water stop are."],
+ ["The writ men",
+ "Five miners of the Cordera works, eleven weeks unpaid. Led by Josiah Ambrose.",
+ "A writ of attachment from a territorial judge in Fallon, dated and sealed, naming that payroll.",
+ "That they are lawfully seizing money owed to them and being shot at for it."]
+ ])
+ + P("The company sold the same money twice and is not aboard. Both "
+ + "pieces of paper are real. Neither party has ever seen the other's. Nobody in car "
+ + "three is lying and nobody in car three is wrong.")
+ + P("The players will want to settle it. They cannot. They can learn "
+ + "enough to see there is nothing to settle, which is a different and better thing to "
+ + "carry away.")
+ P("The running is what holds it open. This is the part that matters "
+ "and the part the players must work out: the train is not trapped inside the "
+ "crossing — the train IS the crossing. It is a standing wave, and the motion sustains "
+ "it the way a bow sustains a note.")
+ UL([
- "Nobody is dead. They eat, they sleep in shifts, they have organised "
- + "themselves. By their clocks it has been about nine hours.",
+ "Nobody is dead. Between passes the fight has not started yet: they "
+ + "eat, they sleep in shifts, they have organised themselves. By their clocks it has "
+ + "been about nine hours — and four minutes of it, over and over.",
"Nobody can get off. Step down and you are on ground that is not "
+ "inside the error. The department has three attempts on file and no survivors.",
- "Stop the train and the note ends. Everything it is holding open "
- + "ends with it — including everyone still aboard."
+ "Nobody can get off while it runs. Step down between passes and "
+ + "you are on ground that is not inside the error. Three departmental attempts are "
+ + "on file and none returned.",
+ "Stop the train and the loop ends. This is the mission, and it is "
+ + "not a mercy killing."
])
- + H(2, "So the case is a choice, not a puzzle")
- + P("Get them off first, then stop it. That is the whole job, and there is not time to "
- + "do it comfortably: the crossing is degrading, and Registry's read is that it fails "
- + "on its own within a year and takes them all with it.")
+ + H(2, "What closing it actually does — read this twice")
+ + P("Closing the crossing does not kill anybody. It lets them go. The "
+ + "loop ends, the third of November 1881 resumes from 11:44, and every person aboard "
+ + "walks forward into the life they would have had.")
+ + P("Including the ones who did not survive the real four minutes. "
+ + "History resumes as history: some of the men in car three died in that gunfight, and "
+ + "when the loop lets go they die in it. Not because the agents killed them — "
+ + "because that is what happened, and it has been prevented from happening for a "
+ + "hundred and forty-five years.")
+ + P("That is the weight of this ending and it is the whole point. The "
+ + "agents are not choosing who lives. They are choosing to stop holding history still, "
+ + "and they will have met the people it lands on.")
+ + P("The department's position is unambiguous: close it. A crossing "
+ + "held open by a repeating event degrades, and when it fails on its own — "
+ + "Registry's read is within a year — everyone inside is lost outright rather "
+ + "than returned. Waiting is the only option that is definitely worse.")
+ H(2, "Elias Vane is on the train")
+ P("He rode his own line on the third of November to see what he had signed for. He "
+ "has had nine hours and a hundred and forty-five years to think about it, he knows "
- + "exactly what he did, and he is the only person aboard who understands what "
- + "stopping it would mean. He has not told anyone. He will tell the agents, "
- + "if they ask him a question he cannot answer with a lie.")
+ + "exactly what he did, and he is the only person aboard who has worked out "
+ + "what closing it would mean. He has not told anyone, including the men who "
+ + "will die when it closes. He will tell the agents, if they ask him a question he "
+ + "cannot answer with a lie.")
},
{ name: "3 · Briefing — the standing order", content:
@@ -146,8 +214,10 @@ export const TT_PAGES = [
+ "Stores has laid out what you may take instead, and I would ask you not to argue "
+ "with the storeman, because he is right and you are in a hurry.")
+ H(2, "The standing order, said plainly")
- + P("Nothing modern goes through. Not the handset, not the torch, not "
- + "the vest, not the sidearm you are used to. Two reasons, and the GM should give both:")
+ + P("NOTHING MODERN GOES THROUGH. NOTHING. Not the handset, not the "
+ + "torch, not the vest, not the sidearm you are used to, not a lighter, not a "
+ + "wristwatch, not a pen with a maker's mark on it. The department does not negotiate "
+ + "this and never has. Two reasons, and the GM should give both:")
+ OL([
"It costs you. An object that does not belong is a thing the far "
+ "side has to be wrong about too. Using a modern item across costs "
@@ -173,13 +243,28 @@ export const TT_PAGES = [
+ P("The anchor is the exception. Everybody keeps their anchor object. "
+ "It is theirs, it is of no value, and it is the one thing the department will not "
+ "take off them — which is exactly why it works.")
- + H(2, "What the department wants")
+ + H(2, "The mission, in the department's own words")
+ + READ("You are not there to rescue anybody and you are not there to save anybody's "
+ + "life. Sixty-one people are being held still inside four minutes of 1881. Your job "
+ + "is to close the crossing so that those four minutes are allowed to finish, and "
+ + "those people are allowed to go on and live the rest of their lives — or not to, "
+ + "exactly as they would have done had this department never existed. Then you come "
+ + "home.")
+ OL([
"Establish what is holding the crossing open.",
- "Get the passengers off.",
- "Close it.",
- "Come back with the survey chart, because Registry wants the paperwork."
+ "Close it, so the people aboard are released into their own history "
+ + "— whatever their own history then does to them.",
+ "Come back with the survey chart. Registry wants the paperwork.",
+ "Come back. If it closes with you inside it you are one more name "
+ + "in the register."
])
+ + P("Say the second one out loud at the table. The players must "
+ + "understand before they cross that closing it is the objective and that it is not a "
+ + "killing. What they will not understand until they are aboard is that two of the "
+ + "people they are about to meet did not survive the four minutes they are standing in.")
+ + P("There is an armed exchange aboard. Two parties, four minutes, and "
+ + "it repeats. Tell them that at the briefing. They should cross knowing they are "
+ + "walking into gunfire with a revolver and a single-shot rifle.")
+ P("Containment 6 · Resources 5 · Clearance 4. Low clearance on "
+ "purpose: there is nobody in 1881 to show a warrant card to.")
},
@@ -265,6 +350,7 @@ export const TT_PAGES = [
+ "telling-off. Make it interesting and expensive.")
+ H(2, "THE SET-PIECE — getting aboard")
+ ART("tt_05_boarding", "The water tower, and four minutes of grade")
+ + ART("tt_10_couple", "The gap between the cars")
+ P("The train cannot stop and cannot be flagged. The only way on is to match "
+ "its speed, and the only place it is slow is the top of the grade "
+ "at the water tower, half a mile up, where it is doing about eight miles an "
@@ -298,56 +384,138 @@ export const TT_PAGES = [
+ "plank, and it works, and the players owe somebody a favour.")
},
-{ name: "6 · Act Three — Aboard", content:
- ART("tt_06_car", "Car three, and a hundred and forty-five years of nine hours")
- + P("Goal: sixty-one people, one man who knows, and a decision that "
- + "costs something whichever way it goes.")
+{ name: "6 · Act Three — Aboard, and the four minutes", content:
+ ART("tt_06_car", "Car three, between passes")
+ + P("Goal: survive a gunfight nobody started for their benefit, work "
+ + "out that it repeats, and close the crossing anyway.")
+ READ("It is warm. That is the first thing. Sixty-one people in five cars, and it "
+ "smells of bodies and coal smoke and coffee. Somebody has organised a rota for the "
+ "water. A child is asleep across two seats with a coat over her. They look up when "
- + "you come through the door, and one of them says: “Are you from the "
- + "company?”")
- + H(2, "The train")
+ + "you come through the door, and one of them says: “You want to be "
+ + "somewhere else in about six minutes.”")
+ + H(2, "Between passes — perhaps twenty minutes of quiet")
+ + P("The agents arrive in the calm part. Use it. Everyone aboard knows exactly what is "
+ + "coming and has had two million rehearsals of it.")
+ TABLE(["Where", "What is there"], [
- ["The locomotive", "Marius Kell, engineer. He has not let go of the regulator since the third of November. He cannot: see below."],
- ["The tender and car one", "Coal that has not run out. This is the first hard evidence that the train is being sustained rather than surviving."],
- ["Cars two and three", "Most of the sixty-one. Organised, rationed, frightened, and very glad to see somebody new."],
- ["Car four", "Freight, and the company safe. The original survey chart is in it, signed."],
- ["Car five", "Elias Vane, alone, at the back, watching the line come out from under."]
+ ["Locomotive", "Marius Kell, engineer, who has not let go of the regulator."],
+ ["Tender, car one", "Coal that has not run out. The first hard evidence that this is sustained, not surviving."],
+ ["Car two", "Most of the passengers. They lie down before it starts. They have a drill."],
+ ["Car three", "Where the fight happens. Overturned seats at both ends. Splinter damage that is not there twenty minutes later."],
+ ["Car four", "Freight. The payroll box, bolted down. The signed survey in the company satchel."],
+ ["Car five", "Elias Vane, alone, watching the line come out from under."]
])
- + H(2, "The three facts they need aboard")
- + OL([
- "The coal has not run out. Nine hours of firing on a tender that "
- + "should have emptied in four. [CUS: Engineering or Spot]",
- "Kell cannot let go. Not will not. His hand is not stuck — he "
- + "has simply understood, without being told, that the train slowing is the end of "
- + "everything, and he has been right for a hundred and forty-five years. "
- + "He is not mad and he is not possessed. He is just very tired.",
- "Vane knows. He signed the chart. He will say so to anybody who "
- + "asks him a question he cannot answer with a lie, and he will explain the standing "
- + "wave better than the department can, because he has had the time."
+ + H(2, "THE FOUR MINUTES — the repeating gunfight")
+ + ART("tt_08_gunfight", "Car three, at 11:41")
+ + P("It starts when the whistle sounds for the grade and it lasts four "
+ + "minutes. Run it in rounds. It happens on every pass, and it is "
+ + "the same four minutes every time: the same men, the same shots, the same two "
+ + "passengers hit in the second minute.")
+ + TABLE(["Minute", "What happens if nobody interferes"], [
+ ["1", "Ambrose's five come forward from car four. Merritt's four are already at the front of car three. Somebody shouts put it down. Both sides think they said it."],
+ ["2", "First volley, the length of the car. Two passengers are hit — a miner named Doyle, and Mrs Danforth's arm. This happens every single time."],
+ ["3", "Merritt's men fall back to the car four door and hold it. Ambrose's take the overturned seats. Reloading — a Webley is six and a Martini is one."],
+ ["4", "Ambrose gets to the payroll box. Merritt shoots him through the door. The whistle sounds for the top of the grade, and it all resets."]
])
- + H(2, "Getting people off")
- + P("Off the moving train is survivable; off the crossing is not. A "
- + "person put off at the top of the grade — the same forty seconds the agents "
- + "used — lands in 1881 and lives. That is the answer, and it takes about six "
- + "passes to move sixty-one people, and each pass is roughly forty minutes.")
- + P("Sixty-one people, six passes, four hours. The players cannot do it "
- + "in the time they have. This is deliberate: the ending is what they choose to do "
- + "about the arithmetic, not whether they can beat it.")
+ + H(2, "HOW MUCH FIRE THE AGENTS DRAW — read this before running the fight")
+ + P("The two sides are shooting at each other, not at the agents. That "
+ + "is the single most important thing to hold on to, and getting it wrong turns this "
+ + "scene into a massacre. Do not have nine armed men fire at the party. Work out what "
+ + "each agent is DOING and give them that much fire and no more.")
+ + TABLE(["What the agent is doing", "Shooters on them", "Cover", "What happens, measured over 300 runs of the four minutes"], [
+ ["Head down, not acting", "none", "—",
+ "Untouched. Nobody is interested in them. A player may sit out a pass and that is a legitimate choice."],
+ ["Acting from cover — talking, dragging somebody clear, working along the seat backs",
+ "1", "−30%",
+ "Two of four hurt, half a party member down, no wipes. This is the intended shape of the scene."],
+ ["Moving in the open — crossing the aisle, up the car",
+ "2", "−30%",
+ "Three of four hurt, one down. One party in three hundred is wiped. Properly frightening."],
+ ["Going for the payroll box — the one thing both sides will stop everything to prevent",
+ "2", "none",
+ "Three and a half of four down. More than half of all parties are wiped."]
+ ])
+ + P("Tell them the last row before they commit to it, not after. Going "
+ + "for the box is a way to die and the players are entitled to know that it looks like "
+ + "one. Everything else in this list is survivable.")
+ + P("Nobody has to roll to hide. Taking cover and staying there is not "
+ + "a skill check. It is a decision, and it works.")
+ + H(2, "THE LOOP RESETS. THE AGENTS DO NOT.")
+ + P("Everybody who belongs to 1881 is back on their feet at the next pass, unhurt, with "
+ + "no memory of having been shot. The agents are not part of the loop and "
+ + "their wounds are permanent. Say this at the table before the first volley: "
+ + "a player who thinks the reset will heal them will take risks that kill them.")
+ + P("A downed agent is down, not dead — the dying rules apply as normal, "
+ + "and the only medicine aboard is a chirurgeon's roll and a bottle of laudanum. "
+ + "First Aid is the whole answer and somebody has to stop shooting to give it.")
+ + P("A playtested pass, four agents, all acting from cover: two down at "
+ + "0 hit points, one on a quarter, one untouched because he stayed on the floor. That "
+ + "is a bad pass rather than a typical one — the average is half a party member "
+ + "— but it is entirely possible on the first one, and it is why the reset rule "
+ + "has to be said out loud in advance.")
+ + H(2, "The agents are in it")
+ + UL([
+ "Nobody is aiming at them to begin with. Two armed parties who have "
+ + "never seen them before are firing the length of a wooden box they are standing in.",
+ "Everybody aims at them the moment they act. Cross the aisle, draw, "
+ + "shout, or move toward the box, and both sides read them as the other side's "
+ + "reinforcements. That is the most likely way an agent dies tonight.",
+ "It is lethal. Webley 1d10, Martini-Henry 2d6+2, against agents on "
+ + "eleven to sixteen hit points. Two hits can kill. Say so before "
+ + "the first round, not after — and use the exposure table above, because "
+ + "unrestricted fire from all nine wipes the party five times out of six.",
+ "Cover is real and it is wood. Overturned seats and the car ends "
+ + "are cover; the walls are not. A miss that would have hit the wall goes through it.",
+ "Panic: a point to anyone in car three at minute two, and a point "
+ + "to anyone who sees the two passengers go down. That is the fight doing its job."
+ ])
+ + H(2, "What the players will try, and what happens")
+ + TABLE(["They try", "What it does"], [
+ ["Shout, show a warrant card, take charge", "Nothing. There is no authority aboard that either side recognises, and the department's card means nothing in 1881. [CUS: Persuade at −30% for the first pass; it gets easier on later passes as they learn names]"],
+ ["Shoot one side", "It works, and it changes nothing. Everyone is back on the next pass. If the players kill men on pass one and meet them alive on pass two, let that land in silence."],
+ ["Get the passengers down", "Genuinely useful and completely possible. Doyle and Mrs Danforth can be pulled clear before minute two. They will be hit again next pass unless the loop ends."],
+ ["Get to the payroll box", "The obvious idea, and it makes them a target for both sides at once. The box is bolted and the key is on Merritt."],
+ ["Show one side the other's paper", "This is the good move. See below — it does not stop the fight, but it is how they find out what they are looking at."],
+ ["Get to the locomotive", "Through car two and the tender, under fire in the gap between cars. This is the route to the ending."]
+ ])
+ + ART("tt_09_payroll", "The payroll box, car four")
+ + H(2, "The paper — the ambiguity, made findable")
+ + P("Merritt carries a letter of engagement from the Cordera & "
+ + "Western, signed and sealed, instructing him to see the payroll to Fallon. "
+ + "Ambrose carries a writ of attachment from a territorial judge, "
+ + "dated and sealed, naming that same payroll against eleven weeks of unpaid wages.")
+ + P("Both are genuine. Neither man has seen the other's. An agent who "
+ + "gets both in the same hand has the whole truth of it: the company sold the same "
+ + "money twice, and then put four men and five men on the same train with it.")
+ + P("It does not stop the fight. Merritt will not stand down for a "
+ + "piece of paper from a judge he has never heard of while men are shooting at him, "
+ + "and Ambrose has eleven weeks of nothing behind him. Showing them changes "
+ + "nothing on this pass and everything about what the players understand.")
+ + H(2, "Closing it")
+ + P("Kell will stop the train if a person he believes has the authority tells "
+ + "him to, out loud, to his face. He has been waiting a hundred and forty-five "
+ + "years to be told. He will not do it on a note and he will not do it for a shout "
+ + "from the tender.")
+ + P("Getting to him means crossing the tender during or between the four minutes, and "
+ + "then convincing him. [CUS: Persuade or Status — and it is easier if they can "
+ + "tell him something true about what is happening to his train]")
+ + P("When the brakes go on, the loop lets go. Four minutes finish for "
+ + "the first time since 1881, and everyone aboard walks forward into their own lives. "
+ + "Doyle and Ambrose do not get up. They never did.")
+ H(2, "The choices")
- + TABLE(["Choice", "Cost"], [
- ["Get everyone off, then stop it", "Four hours aboard while the crossing degrades. The department's read is that it may not hold that long, and if it fails first everyone still aboard goes with it. It is the right answer and it is a gamble."],
- ["Stop it now", "The crossing closes clean and the case is a success by every measure Registry keeps. Sixty-one people end. So does Kell, who will do it if asked, and Vane, who will not argue."],
- ["Get the children and the crew off, then stop it", "The compromise every table finds. It works. It also means choosing, by name, off a manifest the players are holding."],
- ["Leave it running", "Everyone lives, today. Registry logs it, the crossing keeps degrading, and it fails inside a year with everyone still aboard. This is a real option and the scenario does not punish it — it just writes it down."]
+ + TABLE(["Choice", "What it costs"], [
+ ["Close it as ordered", "The mission, done. Fifty-nine people released into their own century. Two men die of wounds they took in 1881, in 1881, four minutes after they took them."],
+ ["Close it, having first pulled Doyle and Mrs Danforth clear", "The compromise, and it works — for those two. The players cannot save Ambrose; Merritt shoots him at minute four every time and only stopping the train stops that."],
+ ["Try to end the fight first", "Admirable and probably impossible in the time. Every pass spent trying moves the crossing clock, and at 6 it closes with everybody inside."],
+ ["Refuse, and leave it running", "Everyone lives, today, for a value of living that is four minutes long. Registry logs it. It fails on its own inside a year and then nobody is released at all."]
])
- + P("No roll resolves this. Say so if a player reaches for dice.")
- + H(2, "If they ask Vane what to do")
+ + P("No roll resolves the decision. Say so if a player reaches for dice.")
+ + H(2, "If they ask Vane")
+ READ("I filed a chart that said the line was somewhere it was not, because a man told "
- + "me to and I wanted the work. That is all I did. It took six months of honest "
- + "railwaymen repeating it to make it true. If you stop us I would call that fair, "
- + "and I would ask you to put the children off first.")
+ + "me to and I wanted the work. Six months of honest railwaymen repeating it made it "
+ + "true. Now — you have seen the middle of the car. Two of those men do not get up "
+ + "when it stops. They have not got up two million times and they will not get up "
+ + "now. I would still stop it. It is not our place to hold a thing still because we "
+ + "have grown fond of it.")
},
{ name: "7 · Epilogue, cast, and what not to resolve", content:
@@ -356,13 +524,18 @@ export const TT_PAGES = [
+ "somebody writing down sixty-one names.")
+ H(2, "Outcomes")
+ TABLE(["Ending", "What the register says"], [
- ["Everyone off, then stopped", "Sixty-one resettled in 1881 with new papers and no way home. Registry counts it a success. Two of them find their way into the department's files within the decade, which is a hook."],
- ["Stopped with people aboard", "The crossing closes clean. The file is closed clean. Nobody involved is ever quite the same about a timetable."],
- ["Partial", "However many were put off, put off. The rest are a number in a column, and the agent who chose is named in the file."],
- ["Left running", "Logged, monitored, and inherited by whoever has the case in a year. Perfectly defensible. Nobody thanks them."]
+ ["Closed as ordered", "Fifty-nine people walk forward into their own century. Josiah Ambrose and a miner named Doyle die of wounds taken on 3 November 1881, four minutes after they took them. The file is closed. Registry counts it a success and it is one."],
+ ["Closed, with the two passengers pulled clear first", "As above, and Mrs Danforth keeps her arm. Nobody could save Ambrose; Merritt shoots him at minute four on every pass, and only closing it stops that, and closing it is what kills him."],
+ ["Closed late, after several passes spent trying to end the fight", "The same ending, arrived at more expensively. If the crossing clock reached 6 first, add the agents to the list."],
+ ["Left running", "Logged, monitored, inherited by whoever holds the case in a year. Sixty-one people continue to live four minutes. When it fails on its own nobody is released at all. Perfectly defensible. Nobody thanks them."]
])
+ + P("Registry's note on any ending: “The department did not "
+ + "cause these deaths. It ceased to prevent them. The distinction matters to the file "
+ + "and it is not expected to matter to the agents.”")
+ H(2, "Cast")
+ TABLE(["Who", "Wants", "Key line"], [
+ ["Cass Merritt, hired guard", "to see the box to Fallon, as engaged", "“I have a letter. Whatever you have, I have a letter.”"],
+ ["Josiah Ambrose, miner", "eleven weeks of wages, lawfully", "“There is a judge's seal on this. Read it and then shoot me.”"],
["Marius Kell, engineer", "to be allowed to stop", "“You tell me when. I'll not do it before you say.”"],
["Elias Vane, surveyor", "to be asked, at last", "“I signed it. Six months of honest men made it true.”"],
["Hester Bligh, conductor", "her passengers accounted for", "“Sixty-one aboard. I have counted them every hour since.”"],
@@ -371,17 +544,22 @@ export const TT_PAGES = [
])
+ H(2, "Do not resolve")
+ UL([
+ "Who was in the right. Both papers are genuine, the company sold "
+ + "the money twice, and the company is not aboard to answer for it. If a player asks "
+ + "the GM to adjudicate, do not.",
"Why the coal has not run out. The standing wave sustains it. That "
+ "is as far as anybody gets, including Vane.",
"What is at the far end of the line. Nobody aboard has ever reached "
+ "it. The train works the grade and comes round. Let that stay strange.",
- "Whether the people put off in 1881 were saved or exiled. Both. "
- + "That is the ending, and it should sit badly."
+ "Whether closing it was a rescue. Fifty-nine people say yes. Two "
+ + "men do not get to say."
])
+ H(2, "GM notes")
+ UL([
- "Play the passengers as people, hard. The scenario dies the moment "
- + "they become a number, and it lives entirely on the fact that they are not.",
+ "Play the passengers as people, hard — and the nine men in "
+ + "the fight hardest of all. The scenario dies the moment anybody becomes a number.",
+ "Never let the players win the fight. They can survive it, shape "
+ + "it, and pull people out of it. They cannot end it. Only the brakes end it.",
"The standing order is the tutorial. One shot at a time, no radio, "
+ "an oil lantern that runs out. Do not soften it and do not apologise for it.",
"Cut first: the town of Cordera, down to the livery and the "
@@ -406,11 +584,19 @@ export const TT_HANDOUTS = [
+ "same four miles of track for a hundred and forty-five years and has never stopped.")
+ P("Sixty-one people are aboard. They are alive. By their reckoning it "
+ "has been about nine hours.")
+ + P("There is an armed exchange in progress aboard. Two parties, four "
+ + "minutes, and it repeats on every pass. It has repeated approximately two million "
+ + "times. Both parties are armed with period weapons and both are lethal.")
+ H(2, "Orders")
+ OL(["Establish what holds the crossing open.",
- "Get the passengers off.",
- "Close it.",
- "Recover the filed survey. Registry wants the paper."])
+ "Close it. The people aboard are then released into their own "
+ + "time to live out the remainder of their lives — or not to, exactly as "
+ + "they would have done had this department never existed. That is the objective. "
+ + "It is not a rescue and it is not an execution.",
+ "Recover the filed survey. Registry wants the paper.",
+ "Be off it when it closes."])
+ + P("You are not authorised to prevent any death that would have occurred on 3 "
+ + "November 1881. You are authorised to stop preventing them.")
+ P("Containment 6 · Resources 5 · Clearance 4")
+ P("Three previous attempts are on file. None returned. All three tried to stop "
+ "the train first.")
@@ -418,8 +604,9 @@ export const TT_HANDOUTS = [
{ name: "2 · Standing Order 9 — period crossings", content:
P("STANDING ORDER 9
CROSSINGS TO A DATED FAR SIDE")
- + P("Nothing modern goes through. No exceptions are granted for "
- + "convenience, and none has ever been granted for safety.")
+ + P("NOTHING MODERN GOES THROUGH. No exceptions are granted for "
+ + "convenience, and none has ever been granted for safety. You will be shot at with "
+ + "1881 weapons and you will answer with 1881 weapons.")
+ OL([
"An object that does not belong to the far side is a thing the far side must also "
+ "be wrong about. Using such an object across costs one Coherence, per "
@@ -503,6 +690,44 @@ export const TT_HANDOUTS = [
+ P("Children aboard: nine.")
+ P("The conductor's count has never once come out wrong. She would like that "
+ "noted.")
+ + P("Nine of the sixty-one are aboard for the payroll. Four in company "
+ + "coats. Five miners of the Cordera works. They are not listed together, because "
+ + "nobody knew.")
+},
+
+{ name: "7 · Letter of engagement — found on Merritt", content:
+ P("Good paper. Company letterhead, a wax seal, and a hand that has written a "
+ + "thousand of these.")
+ + P("CORDERA & WESTERN RAIL ROAD CO.
"
+ + "Cordera, Nevada Territory · 29 October 1881")
+ + P("Mr C. MERRITT,")
+ + P("You are engaged by this Company, with three men of your choosing, to attend the "
+ + "payroll consignment aboard No. 9 on the third proximo and to see it safe to the "
+ + "Company's agent at Fallon.")
+ + P("You are to admit no person to the freight car and to surrender the box to no "
+ + "person save the said agent, upon any pretext whatsoever, "
+ + "including the presentation of any paper, order or instrument. The Company will "
+ + "answer for any such paper in its own courts and not upon its own train.")
+ + P("Your fee is fixed at the sum agreed. The key travels with you.")
+ + P("Signed for the Company — and the signature is not "
+ + "legible.")
+},
+
+{ name: "8 · Writ of attachment — found on Ambrose", content:
+ P("Cheaper paper, folded small and carried a long time. A court seal, pressed "
+ + "properly, and a judge's hand.")
+ + P("IN THE DISTRICT COURT OF THE TERRITORY OF NEVADA
"
+ + "IN THE MATTER OF AMBROSE AND OTHERS against "
+ + "THE CORDERA & WESTERN RAIL ROAD CO.")
+ + P("Upon the sworn complaint of Josiah Ambrose and forty-one others, labourers of the "
+ + "Cordera works, that wages for eleven weeks stand unpaid;")
+ + P("IT IS ORDERED that the sum of the payroll consignment now carried "
+ + "by the said Company be ATTACHED to the satisfaction of the said "
+ + "wages, and that the complainants or their nominees may take and hold the same "
+ + "against the accounting of this Court.")
+ + P("Dated at Fallon this 1st day of November, 1881.")
+ + P("Sealed and signed by the Judge.")
+ + P("Both of these are genuine. Neither man has seen the other's.")
}
];
@@ -566,7 +791,66 @@ export const TT_CAST = [
tactics: "Has sent the same query up the line forty times in a day and a half. She has "
+ "the dispatcher's book, she will let a stranger read it if they are civil, and she "
+ "has already noticed that there is no 11:45 entry. Play her as the one local who is "
- + "ahead of the town." }
+ + "ahead of the town." },
+
+{ key: "tt_merritt", name: "Cass Merritt",
+ role: "1881. Hired guard, the coats. Has the company's letter and the key to the box.",
+ chosenStyle: "reflex", naturalArmour: 1, species: "baseline",
+ ch: { str: 13, siz: 13, con: 14, int: 12, pow: 13, dex: 14, cha: 12, edu: 9 },
+ skills: [{ fam: "firearm", spec: "pistol", val: 65 },
+ { fam: "brawl", spec: "", val: 50 },
+ { fam: "spot", spec: "", val: 50 },
+ { fam: "dodge", spec: "", val: 40 }],
+ weapons: ["punch", "webley"],
+ tactics: "Forties, a good long coat, entirely unexcited. He was hired to see the payroll "
+ + "to Fallon and he has a signed letter saying so. HE IS NOT A VILLAIN and he is not "
+ + "greedy — he is a competent man doing the job he was paid for against men he has "
+ + "every reason to think are robbers. Falls back to the car four door at minute three "
+ + "and holds it. Shoots Ambrose through that door at minute four, every time. He will "
+ + "not stand down for a judge's paper he has never seen while he is being shot at, and "
+ + "he will listen afterwards, which is too late and is the point." },
+
+{ key: "tt_ambrose", name: "Josiah Ambrose",
+ role: "1881. Miner, the writ men. Carries a court order for the payroll. Dies at minute four.",
+ chosenStyle: "reflex", naturalArmour: 0, species: "baseline",
+ ch: { str: 15, siz: 14, con: 15, int: 13, pow: 15, dex: 12, cha: 14, edu: 8 },
+ skills: [{ fam: "firearm", spec: "pistol", val: 45 },
+ { fam: "brawl", spec: "", val: 55 },
+ { fam: "persuade", spec: "", val: 50 },
+ { fam: "status", spec: "", val: 40 }],
+ weapons: ["punch", "webley"],
+ tactics: "Eleven weeks unpaid, five men behind him, and a writ of attachment from a "
+ + "territorial judge in his coat. He believes — correctly — that he is lawfully seizing "
+ + "money owed to him and being shot at for it. He gets to the payroll box at minute "
+ + "four and Merritt shoots him through the door. HE DIES WHEN THE LOOP LETS GO, and "
+ + "nothing the agents do in the four minutes prevents it; only closing the crossing "
+ + "does, and closing the crossing is what kills him. Sit with that before you run him." },
+
+{ key: "tt_coat", name: "Company guard",
+ role: "1881. One of Merritt's three. Use for all of them.",
+ chosenStyle: "reflex", naturalArmour: 1, species: "baseline",
+ ch: { str: 12, siz: 12, con: 12, int: 10, pow: 11, dex: 12, cha: 10, edu: 8 },
+ skills: [{ fam: "firearm", spec: "pistol", val: 45 },
+ { fam: "brawl", spec: "", val: 40 },
+ { fam: "dodge", spec: "", val: 30 }],
+ weapons: ["punch", "webley"],
+ tactics: "Webley, 1d10, six shots and a slow reload. Fires down the length of car three "
+ + "and takes cover behind the seat backs. WILL SHOOT AN AGENT who crosses the aisle or "
+ + "moves toward the box, because from where he is standing that is what a robber's "
+ + "friend looks like. Withdraws to the car four door with Merritt at minute three." },
+
+{ key: "tt_writman", name: "Cordera miner",
+ role: "1881. One of Ambrose's four. Use for all of them.",
+ chosenStyle: "reflex", naturalArmour: 0, species: "baseline",
+ ch: { str: 14, siz: 13, con: 14, int: 10, pow: 12, dex: 11, cha: 11, edu: 6 },
+ skills: [{ fam: "firearm", spec: "rifle", val: 40 },
+ { fam: "brawl", spec: "", val: 50 },
+ { fam: "dodge", spec: "", val: 30 }],
+ weapons: ["punch", "martini"],
+ tactics: "Martini-Henry, 2d6+2, ONE SHOT then work the lever — which is why the fight "
+ + "has the rhythm it has. Not a soldier. Frightened, angry, owed money, and shooting "
+ + "at men who are shooting at him. Takes the overturned seats at minute three. Will "
+ + "shoot an agent who moves toward Merritt's end of the car." }
];
export const TT_CASE = {