Files
station-master/docs/StationMaster-Home-Deck-v0.4.5.md
T
Jesse.Markowitz 7804756f11 v0.6.2 — an Extra starts where you put it, a train card is never discarded
Three more from the v0.4.9e gameplay-testing round, filed as Gitea issues, plus two bugs found
underneath them. Gitea#2 is diagnosed but NOT fixed: it needs a ruling, and the reasoning is in
TODO.md under Play Balance.

GITEA#4 — AN EXTRA STARTS WHERE THE PLAYER PUTS IT. Only one Division Point was ever offered,
chosen by number parity. The number no longer decides an Extra's direction — the start does, which
supersedes the recorded ruling that "the number decides, like everything else on the timetable".
The two cannot both hold: an odd, westbound Extra placed at the WEST end would leave the Division
on its first move having crossed nothing, and be paid for the run. Either end now runs the train
away from itself; at an Interchange or a Control Point the player picks the direction. The
Interchange start is a YARD, off the running line, which is what makes the Superintendent clause
work: placing it can never force a collision, a guaranteed one holds it there for another Stage,
and a potential one is the Superintendent's to rule on — exactly evaluateClearance's `blocked` and
`ask`, so nothing new decides collisions. Where an Extra may start is now a house rule
(divisionPointsOnly / ownOffice / anyOffice, defaulting to what the engine already did). The
legacy `atSeat` intent field still replays as it always meant.

FOUND UNDERNEATH IT: an Extra started away from a Division Point ran empty. isBeingMadeUp tested
position alone, so the Control Point start has been shipping since it was added with a train that
could never be given a consist. Found by playing it, not by the tests, which had only asserted
where the tray landed.

FOUND UNDERNEATH IT: collide left the wrecks on the card. Destroyed trains kept their Transit
entries, and evaluateClearance counts every transit as an occupant, so one rear-end collision
permanently poisoned that Mainline card for every later train.

THE MAINLINE CARDS WERE ROLLED, NOT DEALT — drawn from the nine types with replacement, so a
Division could hold two Interchanges and Plains carried the weight of a card printed once. "An
Extra may start at the Interchange if one is on the board" only reads as a rule if the board holds
at most one. Now dealt from the printed deck without replacement, verified over 1600 deals. This
re-deals every seed: the published replays were re-recorded, and the saved games in docs/ are
retired too — two of those were already dead before this release and nobody had noticed.

GITEA#6 — A TRAIN CARD IS NEVER DISCARDED, Timetabled and Extra alike. The forced play needed no
mechanism: nothing discardable plus a hand over the limit leaves exactly one legal way to end the
turn, and playing a train is unconditionally legal, so the corner cannot trap anyone. The bot
needed no rule either. 400/400 games finished, revenue unmoved, trains scheduled 1.2 -> 1.3. The
player is told on the card and on the button.

GITEA#7 — COACH COUNTS. 1/2 Crack Limited 3 -> 2, 5/6 The Sparrow 2 -> 3. A change to the cards,
so Trains3.pdf and the transcription keep the original numbers with a footnote while content.ts
and the Home Deck reference carry what the game plays.

CONTENT.TS COMMENT PASS — no data changed, only comments. Four were factually wrong, including an
office table naming counts doubled long ago and a pointer to a DEALT_DECK_SIZE that has never
existed. Every Enhancement row cited its implementation by line number and every citation had
rotted; they name functions now. Card counts came out of the comments, since they move with play
balance; source-sheet figures and dated measurements stayed.

TODO.md gains an item for a card reference generated from content.ts, in six sections, so the
documentation cannot disagree with the game.

715 tests pass, tsc clean, site builds.
2026-08-22 19:51:40 -04:00

13 KiB
Raw Blame History

Station Master — Home Deck

Rules implementation reference: v0.4.5
Scope: every card associated with the Home Office deck, including cards catalogued in the source but deliberately excluded from the dealt deck.

Dealt card catalogue

The live Home Office deck contains 213 cards in every currently supported mode. The rules for its setup, drawing, discarding, reshuffling, and hand limit are in the rules book, section 4.2.

Active category Cards
Track 96
Office upgrades 14
Freight facilities 27
Facility modifiers 23
Train cards 22
Enhancements 18
Mainline modifiers 7
Maneuvers 6
Total dealt 213

The catalogue also contains 12 space-use cards and 10 action cards. All 22 are excluded from every v0.4.5 dealt deck because their opponent-directed play rules are not implemented. They are listed at the end of this document for completeness.

Track cards — 96

Track cards are ordinary Home Office cards, not a separate personal supply. A placed card must connect to existing rail. The Running Track is the horizontal row from Limit to Limit; cards there must carry an east–west through route. Placing track on a Limit extends the Running Track and moves that Limit outward.

Card Copies Implemented placement facts
Straight track 32 East–west Operational Rail.
Curved track, right 16 A 45° curve; can rotate 180°, but cannot flip. Right-hand geometry is fixed to the ne_sw diagonal.
Curved track, left 16 A 45° curve; can rotate 180°, but cannot flip. Left-hand geometry is fixed to the nw_se diagonal.
Turnout, right 16 East–west through route plus one 45° branch. It may be passed through but is not Operational Rail, so a train cannot end a Move on it.
Turnout, left 16 Same operational rules; opposite fixed diagonal.
Sharp curved track, right 0 Catalogued but not dealt.
Sharp curved track, left 0 Catalogued but not dealt.

A turnout may upgrade an existing straight, or a curve whose arc is exactly the turnout’s diverging arc. An upgrade is forbidden if the existing card holds standing cars or an enhancement. All other occupied squares are unavailable.

Offices — 14

Every player begins at a Whistle Post, which is not drawn from the deck. Office cards are upgrades and must be played in sequence; they upgrade the existing Office rather than replacing its card or attached track.

Card Copies A/D tracks Porters Passenger outbound/inbound slots Other effect
Depot 8 2 1 1 / 1 Becomes a Control Point and Passenger Facility.
Station 4 3 2 2 / 2 Upgrade Depot only; Control Point and Passenger Facility.
Terminal 2 4 3 3 / 3 Upgrade Station only; Control Point and Passenger Facility.

The Whistle Post has one A/D track, no porters, and no passenger slots. An Office upgrade preserves modifiers already applied to it.

Freight facilities — 27

An industry may be placed only on a connected straight stub off the Running Track. Each facility begins with one Laborer and a three-box MEN | AT | WORK freight pipeline. Its industry track has capacity equal to its base outbound plus inbound capacity, with a minimum of one car.

No Office Area may contain a duplicate industry, or both ends of a listed lockout pair.

Card Copies Cars handled Flow Base boxes Lockout in same Office Area
Freight House 6 Boxcar Outbound and inbound 1 out / 1 in Freight House; Grocer’s Warehouse
Mine Tipple 6 Hopper Outbound 1 out / 0 in Power Plant
Refinery 3 Tank car Outbound 1 out / 0 in Power Plant
Power Plant 6 Hopper or tank car Inbound 0 out / 1 in Mine Tipple; Refinery
Packing Sheds 3 Reefer Outbound 1 out / 0 in Grocer’s Warehouse
Grocer’s Warehouse 3 Boxcar or reefer Inbound 0 out / 1 in Packing Sheds; Freight House

Facility modifiers — 23

A modifier occupies an empty square adjacent to an eligible facility. It is unique by modifier type within an Office Area. The implementation attaches it permanently to the first eligible adjacent facility found; it does not implement a per-Stage choice when one modifier touches more than one possible facility.

+ out adds green outbound capacity only where the host can load; + in adds red inbound capacity only where the host can unload. A capacity increase at a freight facility also lengthens its industry track by the usable number of added slots. Worker increases always apply.

Modifier Copies Eligible host Actual grant
Waiting Area 3 Any Office +1 outbound passenger slot; +1 Porter
Restaurant 2 Any Office +1 outbound passenger slot; +1 Porter
Hotel 1 Any Office +1 outbound passenger slot; +1 Porter
Truck Dock 2 Freight House, Packing Sheds, Grocer’s Warehouse +1 inbound slot; no Laborer
Railroad Express Agency 1 Freight House +1 outbound slot; +1 Laborer
Forklifts 2 Freight House, Packing Sheds +1 outbound slot; +1 Laborer
Prep Plant 1 Mine Tipple +1 outbound slot; +1 Laborer
Coal Piles 1 Mine Tipple +1 outbound slot; +1 Laborer
Conveyor Belts 1 Mine Tipple +1 outbound slot; +1 Laborer
Pipelines 1 Refinery +1 outbound slot; +1 Laborer
Oil Depot 1 Refinery +1 outbound slot; +1 Laborer
Viscosity Breakers 1 Refinery +1 outbound slot; +1 Laborer
Transmission Lines 1 Power Plant +1 Laborer
Rotary Dumps 1 Power Plant +1 Laborer
Steam Turbines 1 Power Plant +1 Laborer
Ice House 2 Packing Sheds or Grocer’s Warehouse +1 outbound slot; +1 Laborer
Local Small Groceries 1 Grocer’s Warehouse +1 Laborer

A bonus beside a facility that cannot use its direction is not usable and does not create a slot or lengthen the track — an outbound bonus beside an inbound-only facility, or the Truck Dock's inbound bonus beside the outbound-only Packing Sheds, which leaves that card with no effect at all. Likewise, passenger modifiers beside a Whistle Post add Porters but do not create an outbound slot until the Office becomes a Passenger Facility.

Train cards — 22

Playing a timetabled train card rolls the seeded D12 and places its number in the first open timetable slot at or after the result, wrapping around the 12-slot chart. It then runs at that Stage every Day. An Extra is queued and made up when a Crew Tray becomes available; v0.4.5 automatically launches Extras eastbound from the Western Division Point.

The listed consist is a maximum, not a minimum: a train may depart with fewer cars, but must not exceed the listed categories, put a car behind a caboose, or leave with the engine buried among cars. A Crew Tray holds no more than four rolling-stock cars.

Changed 2026-08-22 (Gitea#7), Jesse's call: the coach counts on 1/2 Crack Limited and 5/6 The Sparrow were swapped — the Limited drops from three coaches to two, the Sparrow rises from two to three. This is a change to the CARDS, not a correction to this table: Trains3.pdf and the transcription in rules/implications.md §5 still show the original numbers, and are right about what the printed cards said. src/engine/content.ts and this table carry what the game plays.

Train Speed Direction Listed maximum consist Implemented special rule
1/2 Crack Limited Fast 1 west / 2 east 2 coaches No switching; passenger work only at Terminals; expedited.
3/4 Express Fast 3 west / 4 east 2 freight May exchange at most one freight car at each grid location during its switching turn; expedited.
5/6 The Sparrow Fast 5 west / 6 east 3 coaches No switching; expedited.
7/8 Local Slow 7 west / 8 east 1 freight, 1 coach Its coach may not be set out during switching.
9/10 Heavy Freight Slow 9 west / 10 east 3 freight, 1 caboose —
11/12 Drag Freight Slow 11 west / 12 east 2 freight, 1 caboose —
X13 Appleseed Extra Slow Player choice printed; v0.4.5 launches east 3 empty freight, 1 caboose May drop cars but cannot pick up. The engine enforces no pickup, but does not enforce the printed empties-only consist restriction at make-up.
X14 Fruit Growers Express Fast Player choice printed; v0.4.5 launches east 2 reefers, 1 caboose Expedited. The code enforces reefers-only; the printed extra loaded-reefer pickup is not a separate rule.
X15 Yard Xfer Slow Player choice printed; v0.4.5 launches east 2 freight, 1 caboose —
X16 Light Engine Move Fast Player choice printed; v0.4.5 launches east No cars No switching.
X17 Campaign Train Fast Player choice printed; v0.4.5 launches east 1 coach No switching. First Office arrival lays over for speeches; later arrivals are expedited.
X18 Circus Train Slow Player choice printed; v0.4.5 launches east 2 freight, 1 coach, 1 caboose No switching. The first Mainline Phase in which it remains stopped awards its current Office’s player 1 Revenue.
X19 Military Train Slow Player choice printed; v0.4.5 launches east 1 freight, 2 coaches No switching; no passenger work; expedited.
X20 Director’s Private Car Slow Player choice printed; v0.4.5 launches east 2 freight, 1 coach No passenger work.
X21 Freight Extra Slow Player choice printed; v0.4.5 launches east 3 freight, 1 caboose —
X22 Pee-Dee Slow Player choice printed; v0.4.5 launches east 1 caboose May pick up empty cars only.

Enhancements — 18

Card Copies Placement v0.4.5 behavior
Interlocking 2 Bare Running Track straight When the Office is full, an inbound train is held at the Limits instead of colliding.
Facing Point Locks 2 Any card; requires an Interlocking somewhere in the district Blocks Derail. Derail is unavailable in v0.4.5, so this remains dormant.
Yard Office 1 Bare Secondary Track straight A coachless inbound train is diverted to this track instead of occupying an A/D track.
Small Yard 1 Bare Secondary Track straight A train may spend one switching Move here to reorder its entire consist and put the engine at the nose.
Water Column 2 Bare Running Track straight Removes a Watertower. Watertower cards are unavailable, so this remains dormant.
Overpass 1 Any card No implemented effect.
Telegraph 3 Bare Running Track straight Once per Day, the Superintendent may add 4 to an opposing train’s number when that makes a facing clearance safe.
Telephone 2 On a Telegraph Same dispatch mechanism, +8 once per Day.
Radio 2 On a Telephone Same dispatch mechanism, +12 once per Day.
ABS Signals 2 Any Mainline card Prevents rear-end collisions and holds a following train short.

An enhancement requiring a bare straight cannot share that straight with another such enhancement. Telephone and Radio are the explicit stackable chain.

Maneuvers — 6

Card Copies Behavior
Red Flags 5 May be played at any time on a train stopped on a Mainline card. An approaching following train is held instead of moving into it.
Flying Switch 1 During the owner’s switching option, spend one Move to roll a tail-end cut into a track-connected freight facility without moving the engine there.
Poling 0 Catalogued but not dealt; no rule is implemented.

Catalogued but not dealt — 22 opponent-directed cards

Space-use cards — 12

Bean House (1), Flop House (1), Watertower (1), Hobo Jungle (1), Section House (1), City Blocks (4), Engine Shops (1), Tenderloin District (1), and Engineer Cemetery (1) are excluded. Their source descriptions say they consume table space; Hobo Jungle additionally describes vandalism looting a passing boxcar. No placement or effect is available in v0.4.5.

Action cards — 10

Derail (2), Broken Coupler (1), Railroad Crossing (1), Per Diem Inventory (1), Demurrage Charge (1), Customer Complaints (1), Vandalism (1), Hotbox (1), and Outlawed (1) are excluded. Their printed target/effect text is catalogued in the code, but card.play rejects the categories as not implemented. Consequently, no card can currently be played on another player.

There are also two Facing Point Locks listed among Mainline modifiers. They are treated as the same grid enhancement as Facing Point Locks above, require an Interlocking, and are included in the active 213-card total.