All four reported from a table on Day 1 of v0.8.0.16, and all the same shape. ABS SIGNALS COULD ONLY BE PLAYED ON ONE MAINLINE CARD, while its tooltip said "any Mainline card". The engine was never wrong: check accepts any node whose kind is mainline and legalActions filters by check, so all of them were legal. The failure was the LABEL — describeIntent named i.placement and never i.node, so every placement described itself as plain "play ABS Signals", and the action list drops duplicate labels. All but the lowest-index node were discarded before the menu saw them. This is the THIRD time that trap has fired and the file documents the other two three lines apart: a turnout's two rotations, and three Department discards. Same fix — name what distinguishes them. The card is also called what the card face calls it. prettyKey rendered absSignals as "Abs Signals" beside a tooltip saying ABS, an acronym no key-splitter can recover, so the authored names now win. Three of those names were transcribed in sentence case and were CORRECTED rather than adopted: the repository says "Yard Office" 36 times against "Yard office" twice. A lookup that imports its own source's typos is the drift it exists to prevent. NOTHING ON A MAINLINE CARD SHOWED WHAT WAS STANDING ON IT. Played, ABS left no mark and you found out by hovering — the same complaint the Heavy Grade wedge answered, and it matters more here because ABS decides whether a second train on that card is safe. It draws a signal mast with a lit lamp now; a signal is the literal object and needs no room for words, which is what lets it sit clear of a name as long as "Uncontrolled Siding" on a 152px cell. The Mainline modifiers draw as BRK, AIR and HLP. Realignment is deliberately not among them: reduce takes the `became` branch and changes node.card, so a realigned Trestle IS an Uncontrolled Siding afterwards. Asserted, so the absence reads as a finding. A FREIGHT AGENT TURN SAID A CAR MOVED WHEN NONE HAD. Three faults behind one line. It asserted an outcome, where §6.3 requires no action and the bot declines deliberately — unjamming a healthy box destroys a load that cost a whole action to stock. An idle Agent was then silent, which read as a dropped turn; a new freightAgentIdled event says so and why, reducing to nothing exactly like switchingEnded. And the work named a coordinate rather than the industry, though a `place` helper has existed for precisely that since the switching lines moved to it. "Loaded a loaded boxcar INTO the green Outbound box at the Freight House", with the direction in capitals because to-or-from was the question asked. THE LOG AND THE ACTION MENU SPELLED THE SAME SQUARE DIFFERENTLY. view.ts wrote (col,row) — X,Y, east/west then north/south — with a comment saying why; narrate.ts wrote the internal storage order with no comment at all. So the menu offered a move to "(1,-1)" and the log reported it at "(-1,1)", side by side. Pinned by a test that renders one square through BOTH describers and compares them to each other: a test written against either file alone would have passed. THE DOCUMENTATION IS REACHABLE FROM A RUNNING GAME, AND ALL OF IT IS PUBLISHED. v0.8.0.16 published the Quickstart and nothing it points at — its §8 links five documents by relative path and every one 404'd on the package, verified against the running container. The build publishes the full set, and the test reads the links OUT OF the guide rather than listing them. They are linked from the This Game card, where reference already lives, rather than the header that must not wrap; no mode awareness is needed, because solitaire and multiplayer are the same page on the same origin. THE REFERENCES DROPPED THE VERSION FROM THEIR NAMES. Four described v0.8.0.16 and had since the v0.8.0.15 audit; the v0.4.5 was the prototype edition they were first written against, kept only because 36 citations pointed at it — and it read as documentation five minor versions stale. They are quickstart.md, rules.md, home-deck.md, mainline-deck.md and components.md now, kept current with each release rather than published as editions. Two errors surfaced while checking them against this release, which is the argument for doing it: home-deck.md filed ABS Signals under Enhancements "played into your district" that "change what a square does" — it does neither, this release's bug written down — and mainline-deck.md, which lists everything playable onto a Mainline card, never mentioned it at all. 1010 fast tests and 35 sim tests pass. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MUizFYCMHRWhbWwXhp7WPR
9.8 KiB
Station Master — Quickstart
For a tester who has never played. Describes the game as built at v0.8.0.17 (2026-09-21).
Read this once before you sit down. It is about twenty minutes of reading and will save you an hour of confusion. The deeper references are listed at the end.
1. What the game is
You are a railroad Office — a town — on a shared east–west main line called the Division. Everyone's Office sits in a row along it, west to east, with Mainline cards between them.
Two jobs run at once:
Your own job, in your district. Build track. Build industries and a passenger platform. Shunt cars around with a switching crew to get the right car to the right place, so that freight can be loaded and unloaded and passengers can get on and off. Every one of those completed pieces of work pays Revenue, which is the score.
The shared job, out on the Division. Scheduled trains run across everybody's territory on a timetable. They arrive at your Office, and you work them. When two trains want the same stretch of track, the player wearing the Superintendent's Fedora rules on whether the second may follow the first. Rule wrong and they collide, which costs 5 Revenue and counts against a limit that can end the game.
The tension the game is built around: the useful work is local and slow, and the trains are shared and do not wait.
2. How you win
The game runs a set number of Days — five by default. Each Day is 12 Stages, which you can think of as two-hour clock periods from midnight.
At the end of the last Day:
- The table's combined Revenue is checked first, against a floor of 3 × players × Days. At three players over five Days that is 45. Miss it and everybody loses, however well you personally did. This is the number to watch.
- Co-op: meeting the floor is the win, together.
- Competitive: meeting the floor puts the game on, and the highest individual Revenue wins.
- Solitaire: meet the floor by yourself.
Collisions can end it early and badly. Breaching the collision limit stops play at once in a collective loss — the railroad has been declared unsafe. Default limits are 3 in one Day and 5 in the game.
Falling short offers another Day rather than just ending, so a game that misses the floor can be played on. A game stopped by collisions cannot.
Where Revenue comes from
| Work | Pays |
|---|---|
| A passenger boarding at your platform | 1 |
| A passenger getting off at your platform | 1 |
| Completing an outbound freight load | 1 |
| Completing an inbound freight unload | 1 |
| A train completing its run across the whole Division | 0 by default, to every player |
Those rates are set when the game is dealt and can be changed. The default means your score comes almost entirely from working cars in your own district — trains passing through pay nothing by themselves.
3. The shape of a Stage
Every Stage runs five phases in this order. Only two of them are your turn.
| # | Phase | What happens |
|---|---|---|
| 1 | Local Operations | Your turn. Choose ONE of three things (below). Each player in turn, starting with the Superintendent and working eastward. |
| 2 | New Train | Trains due this Stage are made up from the Division Yard. The table takes turns adding one car each. |
| 3 | Mainline | Automatic. Trains move, lowest number first. This is where clearance rulings and collisions happen. |
| 4 | Cargo | Your turn. Your Laborers and Porters do their work — the loading, unloading, boarding and detraining that actually pays. |
| 5 | Supervisor Shift | Automatic. Laborers and Porters refresh; expedited trains depart. Every third Stage the Fedora passes. |
Local Operations: you get exactly one of these
- Switch — take a crew and shunt. Six Moves (five at night under Reduced Visibility). This is how cars physically get from the yard to an industry and back. Cars you run over are coupled up automatically, so plan the route.
- Draw — take a card, then play and/or discard. This is how your district gets built: track, industries, Office upgrades, modifiers, train cards.
- Freight Agent — one clerical act: stock a green outbound box, clear a red inbound box, or unjam a facility.
You cannot do two of them in one Stage. Choosing is most of the game. A Stage spent drawing is a Stage not spent switching.
Passengers are not the Freight Agent's job. They board and get off in the Cargo phase, with a Porter. Reaching for the wrong role and finding nothing there is the single most common new player mistake, so each role now says on screen what it is for.
4. The screen
Left column, top to bottom:
- The Division — west to east. The shared main line: every Office and the Mainline cards between them, with trains drawn where they are. West is always on the left, and a train's engine is drawn as an arrow (◀ or ▶) showing which way it points.
- Your Office Area. Your own grid of track cards. This is where switching happens. It folds away outside the phases that change it, unless you pin it open.
- History. What has happened, most recent first.
Right column:
- Your Move — the buttons. If it is not your turn this is empty, and the board tells you who is acting.
- Cards in My Hand, and the Department decks — three face-up discard piles anyone may draw the top of.
- The Yards. The Division Yard is the live supply of cars. The Classification Yard is where used cars go, and it comes back only when the Division Yard runs completely bare.
- Timetable — who is due out and when.
- Blocked — why nothing is moving. Read this panel. When something will not work, this is where the game explains why, in rules terms.
- Facilities — the load pipelines at each industry.
Across the top: your Revenue, the target, the Day and Stage, collisions, and the game code.
When other players are acting, their turns are replayed on your board a step at a time rather
than arriving already rearranged, with a [N behind] counter, Pause and Skip. Your own moves
are not replayed at you — they are already on your screen.
5. Your first twenty minutes
Play a solitaire game first. It needs no server and nobody else, and it is the same rules.
- Open the site, choose Play solitaire, accept the defaults, Deal.
- Stage 1 — Draw. You start on a Whistle Post with almost nothing. Play a track card or two to extend your Running Track, and get a Depot down as soon as one appears: it is the upgrade that makes you a passenger facility and gives you a second A/D track.
- Build one industry on a stub off the main — not on the Running Track itself, which the game will not allow.
- Play a train card when you get one. It rolls onto the timetable and then runs at that Stage every Day.
- When a train arrives at your Office, switch cars to it or from it, and do the paying work in the Cargo phase.
- Watch the Blocked panel whenever you are stuck. It is usually one missing thing: no empty car spotted, no loaded car in the yard, a full box, a locked industry track.
Then play a Day or two of multiplayer with bots filling the other seats, to see the table take turns.
6. Things that surprise new players
- A turnout cannot be stopped on. You may run through it; you may not end a Move there.
- Coupling is mandatory. Run over a standing car and you take it, whether or not you wanted it.
- An industry track locks while a load is on its MEN | AT | WORK boxes. No train can enter, cross or work there until it clears.
- A modifier adds a BOX, never room for a car. It raises how much work an industry can hold, not how much rail it has.
- Nothing may be built outside your Limits — track, industries and modifiers alike. Your district ends at its sign, and the sign moves outward as your Running Track grows.
- A train must be made up to leave. Engine at one end; if it has a caboose, the caboose at the far end. A train shunted out of shape sits at your Office until you fix it — a Small Yard will re-order a consist for one Move, and each option tells you whether the result can leave.
- Passengers may dry up completely. Coaches move one way — boarding sends the emptied coach to the Classification Yard, and it only comes back when the Division Yard is bare, which may never happen. When it does, the yard panel warns you and passenger trains are made up empty. This is the rules working as designed, not a bug; report how it felt, not that it happened.
- Expedited trains leave the same Stage they arrived, after the Cargo phase. Ordinary ones wait.
7. What to report
Most useful, in order:
- What you expected versus what happened, with the Day and Stage. "Day 2 Stage 9, train 5 had no coaches" is worth more than "passengers seem broken".
- Save the game (the Save replay button) and send the file. A save is the seed and the moves made, so it replays exactly and the bug can be looked at directly.
- Anything the screen did not explain. If you had to guess a rule, that is a finding even when the game was right.
- Anything you went looking for and could not find.
Bugs go to the tracker; anything unclear in this guide is also worth saying.
8. Where to read more
| For | Read |
|---|---|
| The rules in full, with the FAQ | Rules |
| Every card, generated from the code | rules/as-built.md |
| How the Home Office deck is dealt and played | Home deck |
| The Mainline cards and what they do to a train | Mainline deck |
| Rolling stock, yards, trays, the Fedora | Components |