Files
station-master/docs/rules.md
T
Jesse.MarkowitzandClaude Opus 5 517238a727 v0.8.1.0 — the car comes back empty, and the lobby lets you leave
A second-digit bump, deliberately. 0.8.1 had been reserved for the seatless
display table; that work is getting more thought, and this table pass over
v0.8.0.17 earned the number on its own. Six reports: one was a rules question,
one a wording complaint with a real bug underneath, four straightforward.

A CAR CLEARED FROM A RED INBOUND BOX CAME BACK STILL LOADED. Reported as
wording — "technically accurate but doesn't make any sense" — and the wording
was the visible half. `inboundCleared` pushed `pooled(e.stock)` under a comment
reading "a car back in a yard is back in the common supply, carrying nothing",
and `pooled` does not do that: it strips the load's origin stamp and keeps
`loaded` ON PURPOSE, because a train can retire at a Division Point with freight
aboard. So the comment described an intention the call never carried out, and
every car the Freight Agent cleared reached the Classification Yard carrying a
load already delivered and already paid for.

It bites hardest on coaches: `passengersDetrained` takes `coach && !loaded` out
of the Division Yard and §2.2 refills that yard from Classification, so a
cleared coach came back as stock that could never unload another passenger.
Measured over five three-Day solitaire games: 18 loaded coaches in
Classification against 6 empty. The red box is where a journey ENDS; clearing it
sends the passengers out of the station, or the delivered load into the
industry, and returns the CAR, empty. The option says that now instead of
describing the counter that moves.

SCOPED TO THE RED BOX ON PURPOSE. `retireTrain` also returns loaded cars and is
left alone: that is what `pooled`'s own documentation describes, and a loaded
car in a yard is pre-loaded cargo rather than dead stock — it can be made up and
delivered, and a loaded coach can still detrain. Only the red box's contents had
already finished their journey.

GAMES IN PROGRESS DO RESUME, MEASURED RATHER THAN ARGUED. Yard contents change,
so the worry was real. All twelve saves on the test server were pulled and
replayed through `tryResumeSession` — the server's own boot check — against this
build. Six resume, six refuse, and the six refusals are the SAME six, at the
same moves, with the same codes, that 0.8.0.17 already logged. Nothing new was
stranded. That pre-install replay is a better check than reading the next boot
log, because it answers before the install rather than after.

THE HISTORY SAID "Mainline card 7" and left the reader to remember what card 7
was — with two Plains dealt, which is why the slot is kept beside the name
rather than replaced by it. A second fault sat one word to its left and nobody
reported it: the name was built as `e.key.replace(/([A-Z])/g, ' $1')`, so
`absSignals` printed as "abs Signals" while the action list directly above said
"ABS Signals". `narrate` takes `mainlineAt` and `enhancementName` beside the
`facilityAt` it already had, and `simpleCardName` is exported so the log reads
the same table the buttons do. `mainlineModified` had both faults and is fixed
with it.

LEAVING A RUNNING GAME WAS A DEAD END. `enterSeating` hides the choice section
and only the lobby's own two leave paths put it back; leaving a running game is
a third route, so the lobby came back holding nothing but "Games you are in"
with both doors on the page at display:none and no control able to reveal them.
Reset in `runLobby`, which is the one function every route onto that screen goes
through — which is exactly why the two paths that did it themselves missed a
third.

THE LOBBY'S ACTION BUTTONS CARRY THE BOARD'S AMBER. A list of the actions rather
than `#lobby button`: the settings form under Create is a field of inputs, and
amber on all of it would say everything is a move and so say nothing. A disabled
Start game drops back to chrome.

THE DEPARTMENT REFILL IS A RULE AND IS NOW WRITTEN DOWN. §6.2 — "if any of the
Department decks is empty, draw a Home Office card and place it in the empty
spot" — firing only when the draw actually empties the pile. Kept as implemented
(Jesse's ruling) and stated in rules.md and home-deck.md, neither of which had
ever mentioned it. A rule implemented from the prototype and never written down
is a rule that surprises the table.

1016 fast tests and 35 sim tests pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MUizFYCMHRWhbWwXhp7WPR
2026-09-22 21:20:52 -04:00

31 KiB
Raw Blame History

Station Master — Rules

Describes the game as built at v0.8.1.0 (2026-09-22). These references are kept current with every release rather than versioned as editions, so there is no version in the filename: this file is always the latest, and the build it describes is stated here.

Authority: observed code paths and tests. Where a card face, a prototype document and executable behaviour differ, this document reports executable behaviour and marks unimplemented material. Per-card numbers are not repeated here — rules/as-built.md is generated from src/engine/content.ts and is the table of record.

New to the game? Start with the Quickstart.

1. Overview and background

Station Master is a railroad-operations game set in the timetable-and-train-order era. Each player operates an Office Area on a shared east–west Division. The local work is building rail, switching cars, moving passengers and freight through facilities, and keeping the Office clear. The shared work is dispatching scheduled trains across the Division. The player holding the Superintendent’s Fedora decides whether to clear a following train into an occupied Subdivision; an unsafe decision can cause a collision.

Revenue is the score. Passenger boarding and detraining, freight loading and unloading, completed runs, collisions, and victory conditions are all resolved by the rules configured when the game is dealt.

This book is divided as follows:

  1. overview and scope;
  2. definitions;
  3. creating, saving, replaying, and configuring games;
  4. the shared basic game mechanics;
  5. the implemented solitaire game;
  6. the implemented multiplayer/engine status; and
  7. FAQs and implementation limits.

The companion references are the Quickstart for a new player, Mainline deck, Home deck, components, and the generated per-card table rules/as-built.md.

2. Definitions

Term Meaning
A/D track An Office arrival/departure capacity. A Whistle Post has 1; Depot, Station, and Terminal have 2, 3, and 4.
Card location A square in an Office Area grid. A train may end a switching Move only on Operational Rail.
Classification Yard The holding yard for used rolling stock. It refills the Division Yard only when that yard is completely empty.
Control Point A Depot, Station, or Terminal. It breaks the shared Mainline into Subdivisions. A Whistle Post is not one.
Crew Tray An engine plus up to four coupled rolling-stock cars. The engine itself does not count as a car.
Department pile One of three shared face-up card stacks. Draw and discard affect only the top card.
Division Point The western or eastern end of the shared Division, where trains enter and leave it.
Division Yard The active source of rolling stock.
Expedited train A train with the expedite rule. It performs Load/Unload at an Office after arriving, then attempts to depart at the end of that same Stage.
Facility A Passenger Facility at an upgraded Office or a Freight Facility at an industry.
Freight Agent The Local Operations option that stocks one outbound box, clears one inbound box, unjams one load, or ends without acting.
Limits The two signs defining an Office Area’s Running Track. They move outward when that track is extended.
Local Operations The first player-driven phase of a Stage. A player chooses one: switch, draw, or Freight Agent.
Mainline The shared cards between Offices and Division Points.
MEN | AT | WORK A three-box freight pipeline. Any load on it locks its industry track.
Operational Rail A card on which a train may finish a Move. Turnouts are pass-through only; a locked industry is not usable at all.
Running Track The east–west track between an Office Area’s Limits, including its Office.
Secondary Track All local rail inside the Limits that is not Running Track.
Stage One of twelve turns in a Day. Its phases are Local Operations, New Train, Mainline, Load/Unload and Shift Change. On screen the last two are labelled "Cargo" and "Supervisor Shift" — same phases, the names the interface uses.
Subdivision Mainline between Division Points or Control Points. Clearance checks look through the whole next Subdivision.
Superintendent The player with the Fedora. The role decides same-direction clearances and rotates every three Stages.
Timetabled train A numbered train card scheduled to one of the 12 Stage slots, then due at that slot each Day. Odd numbers go west; even numbers go east.

3. Create, save, replay, and game configuration

3.1 Starting a new game in the shipped client

The front page has three doors: Play multiplayer, Play solitaire, and Browse replays.

Solitaire runs entirely in your own browser and needs nothing from the server. Select New game, then choose:

  1. a numeric seed, or leave it blank for a fresh browser-generated seed;
  2. a starting hand;
  3. passenger, freight, and train-transit Revenue rates;
  4. the number of Days, and the optional rules.

Multiplayer goes to the lobby — see §3.5. It needs the server, because the game is authoritative there rather than in any one browser.

The browser writes those choices into the URL. A particular game is defined by the seed plus these house rules, not the seed alone.

The three starting-hand choices are:

Choice Setup result
Three random cards Default. Deal three cards from one shuffled deck.
Six random cards Deal six cards from one shuffled deck. The player begins over the normal hand limit and must play/discard down before ending the first Draw turn.
Three random track and three random non-track cards Shuffle track and non-track piles separately for the opening deal; then recombine and shuffle their remainders for all later draws.

The three Revenue values are independently rounded and clamped to 0–5:

  • passenger Revenue per coach, paid on boarding and again on detraining;
  • freight Revenue per load, paid on completion of an outbound load and again on completion of an inbound unload; and
  • train Revenue per transit, paid to every player when a train leaves the Division.

Defaults are 1 / 1 / 0. Zero turns that revenue source off; it does not prevent the underlying operation.

3.2 Deterministic setup and the seed

The engine uses one seeded random stream for shuffles, Mainline selection, opening D12 rolls, timetable rolls, and automatic Heavy Grade orientation. Given the same seed, configuration, player names/order, and accepted action history, it reconstructs the same state.

At setup it creates each Office Area as Limit — Whistle Post — Limit, makes the Division Yard, creates players + 3 Crew Trays, turns up three Department cards, and constructs the shared Division.

In a multi-player engine game, every player receives two seeded D12 rolls:

  • The division roll orders seats from low west to high east; equal results put the lower player index farther east.
  • The Superintendent roll gives the initial Fedora to the first player tied for highest.

The opening deal starts at the Superintendent’s seat and proceeds eastward — increasing seat index, which is how the Division map draws the table.

3.3 Saving, resuming, and replaying solitaire

The local save format is JSON containing the seed, the accepted intent history, and the house rules. It does not serialize mutable game state. Loading recreates the game from the seed and replays every action through the rules engine. If an old history reaches an action that is no longer legal, replay stops there instead of forcing an invalid state.

The browser also stores the current local game and resumes it automatically when the page opens without an explicit seed in the URL. A downloaded save is named station-master-seed<seed>-day<day>.json.

Undo is solitaire-only. It removes the final accepted intent and rebuilds the game from the earlier history. Random outcomes are not rerolled: replaying the same action consumes the same seeded result. Undo can therefore change the player’s decision after seeing an outcome, but cannot fish for a different timetable die roll.

3.4 Game modes and endings

Three modes: Solitaire, Competitive and Co-op. All three are playable.

Length is a free days count, not a preset. The old short/standard/campaign presets carried a target and were dropped in 2026-08; they survive only as a convenience argument for the simulation tooling, resolving to 3, 5 and 10 Days. The default is 5.

How a game ends and who wins:

  1. The timetable runs out at the end of the last Day. Then:
  2. The combined Revenue floor is checked first — 3 × players × days. Fall short and everybody loses, whatever anyone individually scored.
  3. Co-op wins as a table if the floor is met.
  4. Competitive is won by the highest individual Revenue once the floor is met.
  5. Collisions end it early. Breaching the per-Day or total collision limit ends play at once in a collective loss — the railroad has been declared unsafe.

Extended play (Gitea#11). Both days-based endings — running out of timetable, and closing short of the Revenue floor — offer another Day, because they are the same event seen twice: the last Day ended, and this is what the books say. A collision ending is not extendable, and neither is a collision breach during an extended Day. The official result is frozen when the timetable first ran out, so a railroad declared unsafe on Day 9 does not retract who won on Day 5.

Three optional rules, all implemented:

Rule Effect
Reduced Visibility Five switching Moves instead of six, in Stages 1, 2, 3, 11 and 12 — the night Stages.
Employee Rotation Every player moves one chair at the end of each Day. Revenue and the Fedora travel with the player; the Office Areas stay with the seats.
Emergency Toolbox Starts every player holding the Red Flags status, so the hand limit opens at four.

(There is no "Sister Trains" flag. It appeared in an earlier draft of this document and never in the configuration.)

3.5 Multiplayer setup

Multiplayer is delivered and is what this package is for. The flow:

  1. Create or join. The host creates a game and gets a game code; everyone else joins with that code. Seats fill as people arrive, and any seat left empty can be filled with a bot.
  2. Start. Once the host starts, that same page is where every player plays their turns and watches the table. There is nothing else to open.
  3. The server is authoritative. The game lives on the server, not in a browser: it survives a page reload, a browser restart and a service update, replaying its intent history to get back to where it was.
  4. Your seat is a token in YOUR browser, scoped to the origin you joined at. A reload finds it and puts you straight back. Clearing site data, a private window, or a different browser does not: the seat is still yours and still on the server, but that browser can no longer prove it is you. An administrator can mint a single-use recovery link (StartOS action Restore a Seat) that trades a code for the token and expires in 30 minutes.
  5. Watching the table. Other players' turns arrive as an ordered replay rather than as a board that has silently rearranged itself, with a [N behind] counter, Pause and Skip.

Solitaire needs none of this and runs with the page alone.

4. Basic game mechanics

4.1 The Stage sequence

Each of 12 Stages follows this sequence:

1. Local Operations — each player, starting with the Superintendent and proceeding eastward
2. New Train      — make up due timetabled trains, then queued second sections and Extras
3. Mainline       — automatic train movement in numeric order
4. Load/Unload    — each player, same order.        On screen: "Cargo"
5. Shift Change   — expedited departures, workers.  On screen: "Supervisor Shift"

"Proceeding left" is seat order, west to east, which is how the Division map draws it — the screen says "eastward" for that reason, because a table has no shared left.

At a Shift Change, Laborers and Porters reset. The Fedora moves after Stages 3, 6, 9, and 12. At Day end, dispatch-device use resets, collision count resets, the Day and Stage roll over, and victory is checked.

4.2 Local Operations: choose one option

On a player’s Local Operations turn, choose exactly one available option.

Switch. Select any Crew Tray currently in that player’s Office Area. It gets six Moves, or five under Reduced Visibility on the listed night Stages. A Move travels any connected distance in one direction and must end on Operational Rail. Reversing is a separate Move. A train may pass through a turnout but cannot stop on it. It may not share or pass through another train except through an Office with a free A/D track.

Standing cars couple automatically when the train reaches them; it may not pass them, and the resulting consist may not exceed four cars. Coupling forward places cars ahead of the engine; coupling while backing places them behind it. Setting out cars does not spend a Move, but the cut must come from an outer end of the consist and may not be left on the Office. A Small Yard re-orders a consist for one Move, and since v0.8.0.14 may also place cars ahead of the engine — which is how a cut is set up to be shoved into a facing industry. Each option on the menu shows the train it would build, laid out west to east as the board draws it, and says whether the result may leave the Office or would be held there. Flying Switch spends one Move to roll a tail cut into a connected Freight Facility.

Draw. Take one card from the face-down Home Office or the exposed top of one Department pile. During this option, play eligible cards and/or discard cards to Department piles, then finish at the hand limit. Track, facilities, offices, modifiers, enhancements, and train cards have the placement or scheduling rules in the deck references. Mainline modifiers are played from this option as well.

A Department that is emptied is refilled at once. §6.2: "If any of the Department decks is empty, draw a Home Office card and place it in the empty spot." So taking the last card off a pile does not leave a gap — a fresh card is turned face up from the Home Office deck to replace it, and there are always three Departments to draw from. The refill happens only when the draw actually empties the pile; a pile with cards buried under the one taken is not refilled, or the Departments would grow without limit and drain the deck into themselves.

This surprised a player at the table (2026-09-22), which is why it is written down here: the rule was implemented from the prototype rules and had never reached this document.

Freight Agent. Make one of these operations, then the turn ends: stock one green outbound box from a matching loaded Division Yard car; clear one red inbound box to the Classification Yard; unjam one outbound, inbound, or MEN | AT | WORK load to the Classification Yard; or explicitly end without acting. Freight can be stocked only when an unclaimed empty matching car is already spotted at that industry. Passengers may wait in a green Office box without a train present.

A car cleared from a red Inbound box comes back empty. Whatever was in it has arrived — the passengers are out of the station, or the load is in the industry — and the Revenue for it was paid on arrival, not on clearing. What returns to the Classification Yard is the car, in the common supply and carrying nothing. Before v0.8.1.0 it returned still marked loaded, which put coaches into the yards that could never be used to unload another passenger.

Implementation note, still true at v0.8.1.0: card.discard is accepted during Local Operations without checking that the Draw option was chosen — unlike card.play, which does check. This is an implementation quirk rather than a fourth published turn option.

4.3 Track, switching, and local safety

The Running Track cannot be broken by a curve or other card lacking its east–west through route. Local branches use turnouts and 45° curves. Cards that touch vertically connect only if their 45° legs share the correct diagonal; mere adjacency is not rail connection.

An industry’s track is locked while any load is on its MEN | AT | WORK pipeline. Trains cannot enter, cross, pick up from, or set cars out there. When it is unlocked, an industry track is ordinary Operating Rail and holds up to four cars, the same as any other non-turnout, non-Limits card: a crew may set out one, two, three or four cars there, whatever it is carrying. An industry’s green and red boxes are how much work it can hold, not how much rail it has, and a Modifier beside it adds a box without adding room for a car.

Train-card restrictions also apply while switching. No-switching trains cannot move, set out, or sort locally. Trains 3/4 share a one-freight-car budget for pickup or setout at each grid location. Trains 7/8 cannot set out their coach. X13 cannot pick up, and X22 may pick up empty cars only.

4.4 New Train phase

At the Stage shown on the timetable, the engine makes up the matching timetabled train if a Crew Tray is free. It starts at the Division Point appropriate to its direction. A train may receive matching loaded or empty cars from the Division Yard until its listed maximum consist is reached or no suitable car remains. It is permitted to leave under-strength.

A Second Section order on the due train creates another identical timetabled train behind it when a free tray is available. A played Extra is made up after timetabled trains and Second Sections when a tray is free, and the player who played the card chooses where it starts — either Division Point, the Interchange, or an Office, according to the extraStart house rule — and loads it as they choose rather than going round the table.

A timetabled train's consist is built by the table: starting with the Superintendent and working eastward, each player adds ONE car, going round again until the train is full or the Division Yard holds nothing it can take.

When the yard can supply nothing, the game says so. The round is skipped — there is no point asking for a car that cannot be given — and the train is reported as made up short, naming what its card wanted, how many such cars are waiting in the Classification Yard, and how far the Division Yard is from bare. See §4.6 for why that happens to coaches in particular.

4.5 Mainline movement and Office arrival

Mainline movement is automatic and processes lower train numbers first; a timetabled train outranks an Extra with the same number. A train at a Division Point, at an Office A/D track, or already crossing a Mainline card attempts its applicable movement.

Crossing time is the card's REGIONS, one per Stage — not its printed mph, which is scenery, and not the train's Fast/Slow rating, which only Hilly reads. See the Mainline deck reference for what moves a train's entry point. On a normal card, a train must check the entire next Subdivision before entering it:

  • an opposing train normally blocks entry;
  • a following same-direction train asks the Superintendent to allow or deny clearance;
  • Red Flags or ABS Signals hold the follower automatically; and
  • Double Track — the one card two trains may stand on — allows entry without that check. The Uncontrolled Siding is not a passing card: a train arriving to find it occupied takes the siding a region behind, which costs it the extra Stage instead of a collision.

An Office arrival normally takes a free A/D track. If the Office is full, the inbound train collides and the local Office player loses 5 Revenue; Interlocking instead holds it at the Limits. A coachless inbound train may divert to a Yard Office. Cars fouling the Running Track at the Office also cause a collision.

An expedited train remains available for this Stage’s Load/Unload work after arriving, then attempts to depart at Shift Change. A non-expedited arrival waits until a later Mainline phase. A train departing an Office must be correctly made up: engine at one end, caboose at the far end if present.

When a train leaves the far Division Point, its cars are returned to yards, its Crew Tray becomes free, and each player receives the configured train-transit Revenue (zero by default).

4.6 Passenger work

Passenger work occurs during Load/Unload, at a Depot, Station, or Terminal. Each Porter may take one action per Stage.

  • Board: replace an empty coach on an eligible train at the Office with a loaded coach from a green outbound box. The removed empty coach goes to the Classification Yard. Earn configured passenger Revenue.
  • Detrain: replace a loaded coach on an eligible train with an empty coach from the Division Yard, placing the loaded coach into an available red inbound box. Earn configured passenger Revenue.

Crack Limited trains permit passenger work at Terminals only. Military Train and Director's Private Car permit no passenger work. A Whistle Post has no Porters.

Coaches travel one way, and it is worth knowing before you plan around passengers. Boarding sends the emptied coach to the Classification Yard; detraining draws a fresh empty out of the Division Yard; and §2.2 returns the Classification Yard only when the Division Yard runs completely bare. Measured over one three-Day game: sixteen coaches in the Division Yard at setup, none from Day 2 Stage 8 onward, fifteen piled in Classification while the Division Yard held steady at 46–47 freight cars and stopped draining — so the refill never fired and no passenger could board or detrain anywhere for the rest of the game, while trains whose cards call for coaches were made up empty.

This is the rules working as printed and the ruling is that it stands (Jesse, 2026-09-17, the same ruling Gitea#2 got: running out is part of the game). What changed is that the game now says it — the yard panel warns while the shortage lasts, and a train made up short reports why. Whether the ratchet should be broken is open as TODO #108, to be decided on a second game's evidence.

4.7 Freight work

Freight work also occurs during Load/Unload. Each Laborer can take one action per Stage. Every freight facility has MEN, AT, and WORK boxes.

For an outbound load, first use the Freight Agent to put a matching loaded car into the green box, with an unclaimed empty matching car spotted on the industry track. A Laborer starts the load on MEN, then advances it to AT, then WORK, then onto the empty car. Completing the last step changes that car to loaded, sends the replaced empty car to the Classification Yard, and earns configured freight Revenue.

For an inbound unload, a matching loaded car must be spotted at an inbound-capable industry and the Division Yard must contain a matching empty car. A Laborer replaces the spotted loaded car with that empty car and starts the load on WORK. Laborers move it backward through AT and MEN into a free red inbound box. That final placement earns configured freight Revenue. Clearing the red box later with the Freight Agent pays no additional Revenue.

5. Solitaire

Solitaire is one named player and one Office Area, running entirely in the browser with no server. It is not the only implemented game any more — see §6 — but it is the one that needs nothing but the page.

Solitaire-specific features are:

  • a local browser save, automatic resume, and JSON download/load;
  • unlimited step-by-step Undo back through accepted action history — multiplayer has none, because a shared game cannot be rewound under the other players; and
  • a seed/rules URL suitable for sharing or reproducing a game.

Automatic phases get a visible beat in solitaire too, so the board plays its own moves out rather than jumping.

The active deck removes all 22 opponent-directed cards. Therefore, the defensive cards whose only purpose is to answer them (Facing Point Locks and Water Column) can be placed but have no opportunity to fire; Overpass has no effect at all. The game still includes shared-rail mechanics such as Mainline clearance, but with one player no other player can occupy the Division.

To win the default one-player game, finish Day 5 having met the combined Revenue floor — 3 × players × days, which at one player over five Days is 15. Below it is a loss, and the game offers you another Day rather than simply ending. Train-transit Revenue defaults to zero, so the score has to come principally from passenger and freight work.

6. Multiplayer

6.1 What the engine supports

The rules engine has always supported multiple named players; since v0.7 the lobby, server and client around it are delivered too, so this section now describes a game people actually play. The engine has player, seat, score, Office Area, Division, phase-order, co-op and competitive-mode data for multiple named players. It deals each player a hand, creates one Office Area per seat, starts acting order at the Superintendent and proceeds eastward, and models the following multiplayer-specific outcomes:

  • the D12 seating and Superintendent rolls described in section 3;
  • individual Revenue in competitive play and shared total Revenue in co-op;
  • a collective loss on breaching the collision limits;
  • the combined Revenue floor, 3 × players × days; and
  • train-transit Revenue awarded to every player, if that revenue setting is nonzero.

The engine’s setup checks only that there is at least one player and that Solitaire has exactly one player. It does not enforce a maximum player count, although the test and design material exercise two through four players.

6.2 What IS delivered

Everything in §3.5: a lobby with game codes, seating, bots filling empty chairs, an authoritative server that survives restarts and updates by replaying its intent history, per-seat reconnection, an administrator's single-use seat-recovery link, and an ordered replay of other players' turns on each player's own screen.

The package also exposes administrative actions on StartOS — list games in progress, get the join secret, manage a game, restore a seat — documented in the wrapper repository rather than here.

6.3 What is NOT delivered

No card may be played at another player. The 12 space-use and 10 action cards are excluded from every dealt deck in every mode, and check rejects playing one. That includes Derail, Broken Coupler, Railroad Crossing, the score-penalty cards, Vandalism, Hotbox, Outlawed and all table-space cards. Facing Point Locks and Water Column exist only as dormant defences against effects nothing can currently cause, and Overpass has no effect at all.

No multiplayer Undo. A shared game cannot be rewound under the other players.

6.4 How multiplayer differs from solitaire

Players have separate districts, hands and scores, and share the Home Office deck, the Department piles, the yards, the timetable, the Mainline and every traffic consequence. One player acts at a time.

A seat is not a player, and the distinction is load-bearing. Offices belong to seats; Revenue, hands, the Fedora and identity belong to players. With Employee Rotation on, players move one chair at the end of each Day and take their Revenue and the Fedora with them, while the districts stay where they are.

So multiplayer changes shared traffic, scores, turn order and how the game is won or lost — not card attacks, which do not exist in any mode.

7. Frequently asked questions

Is the same seed always the same game?

Only with the same house rules, player configuration/order, and action history. The seed drives all engine randomness, but the starting hand and Revenue settings also change the game.

Why can’t I end my draw turn?

Your hand exceeds three cards, or four when the Red Flags hand-limit status is active. Play or discard down to the limit.

Why can’t my train move onto a turnout?

It may move through a turnout but cannot end a Move there because turnouts are not Operational Rail.

Why can’t a train enter my industry?

Its MEN | AT | WORK pipeline contains a load, which locks the track; the rail geometry does not connect; another train occupies it; mandatory coupling would exceed four cars; or four cars are already standing there, which is as many as any card holds.

Why won’t an industry accept a new outbound load?

The green box may be full, the Division Yard may lack a matching loaded car, or there is no unclaimed empty matching car already spotted on that industry’s track.

Why does an inbound freight unload require an empty car in the Division Yard?

The engine immediately replaces the spotted loaded car with a matching empty car. It will not create a new car from nothing.

Why did an arriving train collide instead of wait?

The Office had no free A/D track and no Interlocking. A full Office is an automatic local collision. An Interlocking holds the arrival at the Limits.

Why is a train held at an Office even though the Mainline is clear?

It may be on Secondary Track rather than the Office, or be badly made up: its engine is between cars or its caboose is not at the far end.

Why did an expedited train leave after passenger/freight work?

Expedite means it departs in the Stage it arrived, but the departure waits until Shift Change so the train is still present for that Stage's Load/Unload phase.

Can I choose the direction of an Extra or a Heavy Grade?

An Extra, yes — the player who played the card chooses where it starts and which way it runs, and loads it as they choose (v0.6.2). A Heavy Grade, no: orientation is rolled from the seed. That is a decision rather than a gap — the card sits between two districts and belongs to neither, so handing the choice to one neighbour would advantage them permanently. See the Mainline deck reference.

Can I use an Interchange to reorder a train?

No, and the card used to claim otherwise. Its printed car-sorting has never been implemented; the description was corrected on 2026-09-20 to stop advertising it. What the Interchange actually offers is the one Mainline card with a yard, so an Extra may be made up and started there. Re-ordering a consist is done at a Small Yard in a district.

Can I play attack cards on another player?

No. All action and space-use cards are excluded from every dealt deck in every mode, and playing one is rejected.

Is multiplayer playable?

Yes. Lobby, game codes, seating, bots, an authoritative server that survives restarts, per-seat reconnection and a replayed view of everyone else's turns are all delivered — see §3.5 and §6. The opponent-directed cards remain unimplemented in every mode, so there are still no card attacks.

Why did my passenger train arrive with no coaches?

Almost certainly the coach ratchet in §4.6: every coach has ended up in the Classification Yard, which comes back only when the Division Yard runs completely bare. The yard panel warns when this has happened, and a train made up short says so in the log.

Why is every option in the Small Yard marked "HELD at the Office"?

Because that train is already made up, so every re-order on offer would break it — most often by moving the caboose off the rear, which §8.2 will not let a train depart with. If the train is not currently fit to run, at least one option will be marked "MADE UP, ready to leave".