Files
station-master-startos/instructions.md
T
JesseandClaude Opus 5 56284b29a9 0.8.2:0 — bundle Station Master v0.8.2, and make instructions a manual
The bundled release is a playtest read back against its own save file. Three bugs,
three rules that were working and undocumented, and three decisions — all from one
three-Day game.

GAMES IN PROGRESS: MOST WILL NOT RESUME, and that was measured before release
rather than discovered after it. All thirteen saves on the test box were replayed
through `tryResumeSession` — the server's own boot check — against this build:
three resume, ten refuse. Six of the ten are one new rule, that a passenger
Modifier may not be played at a Whistle Post. A refused save stops at a named move
and is left untouched, so a game worth finishing can be finished by putting
0.8.1.0 back.

THE OPENING CHANGED AND STRANDED NOTHING, which is the part that took care. Every
district now opens on a Depot rather than a Whistle Post — two A/D tracks and
passengers from Stage 1 — with the Whistle Post opening offered as the harder game
at creation. That is the one house rule which changes how a game is DEALT rather
than how it plays, so replaying an older save under today's default would produce
a different railroad from intent one, silently. The game fills the setting on its
replay paths only; every save that resumed before still resumes.

THIS PACKAGE'S OWN CHANGE IS instructions.md, WHICH WAS A CHANGELOG. It had
accumulated twenty "What changed in …" blocks going back to v0.7.2 — 380 of its
469 lines. A StartOS operator opening Instructions wants to know how to run the
service, not read eighteen months of archaeology, and StartOS already shows what
changed in a release: `releaseNotes`, which this package fills in five locales.
The blocks are deleted; the file is 109 lines and is a manual.

THE DOCUMENTATION LINK POINTED AT A `.local` ADDRESS on one LAN — a private Gitea
URL serving raw Markdown, unreachable by anyone who installs this package. It
points at the pages the package itself serves now, which are available wherever it
is installed, need no external network, and always describe the installed build.

Also in instructions.md: "What you get on StartOS" says that solitaire and the
replay viewer come from the same web interface, since one address covers all
three; and "Leaving, and coming back" now carries the seat rules that belong
there — that a seat lives in one browser, that Forget cannot be undone by the
player, and that the operator can put them back with Restore a Seat. The save
warning the game now carries in four places is stated here too.

No action, route, file model or interface changed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MUizFYCMHRWhbWwXhp7WPR
2026-09-23 07:14:51 -04:00

110 lines
6.1 KiB
Markdown

# Station Master
## Documentation
Everything is served by this package, so it is always available and always describes the version you
have installed. Open the **Multiplayer Table** interface and find it under **This Game → Guide**, or
go straight to `/quickstart.html` on this service's address.
- **Quickstart** — what the game is, how you win, what is on the screen, and a first twenty minutes.
Start here; it links the rest.
- **Rules** — the rules in full, with a FAQ.
- **Home deck** and **Mainline deck** — every card, what it does and where it may be played.
- **Components** — rolling stock, the yards, Crew Trays, the Offices and the Fedora.
## What you get on StartOS
This service runs the multiplayer server: a lobby, and a table for 2 to 4 players to play a
competitive or cooperative game together from their own browsers. Everything a player needs — the
game itself, the lobby, and the connection back to this server — is served from the single web
interface below; there is nothing else to install or configure on a player's side.
It also serves **solitaire**, from that same web interface: a single-player game that runs entirely
in your own browser and needs nothing from the server, plus a **replay viewer** for saved games. One
address covers all three.
## Getting set up
1. Run the **Get Join Secret** action from this service's Actions menu, and copy the value it
returns.
2. Share that secret, and this service's address, with everyone you want to play with. Anyone
holding the secret can create a new game or join one that hasn't started yet.
3. Open this service's **Multiplayer Table** interface. You'll land on the front page, which
offers three ways in: solitaire, the replay viewer, and multiplayer.
4. Click **Play multiplayer**, then **Create Game** (or **Join Game** with a game code someone
else created), and enter the join secret when asked.
## Using Station Master
### Multiplayer Table
The front page offers solitaire, the replay viewer, and multiplayer. **Play multiplayer** takes you
to the lobby: create or join a game, seat players (including filling empty seats with a bot), and
start. Once a game is underway, this same interface is where every player plays their turns and
watches the table — there is nothing else to open.
Solitaire runs entirely in your own browser and needs nothing from the server, so it works here
exactly as it does on the public Station Master site.
**Leaving, and coming back.** Anyone may leave a lobby, and the host can clear a chair, so a
mis-join or somebody who wanders off does not block a table that cannot start until every seat is
taken. A **Leave game** button appears once a game is running: it keeps your seat and the table
waits for you, and the lobby lists every game this browser is in, so you can rejoin it — or join a
different one without losing the first.
**A seat lives in one browser.** Rejoining uses a token kept there, and that token is the only proof
of who a player is. So a different browser or device, cleared site data, or **Forget** on the lobby's
list will all lose a seat, and none of them can be undone by the player.
**You can put them back.** Run the **Restore a Seat** action: it issues a single-use link, valid
thirty minutes, that returns a player to their seat. Deciding somebody has lost a seat is a
judgement, which is why minting the link is yours and not theirs.
**A save replays under the rules of the build that opens it.** When a rule changes, a save made
before it may stop part-way — the server says which move it stopped on and leaves the file
untouched, so re-installing the earlier version will still finish that game.
### Get Join Secret
Run this whenever you need the current join secret again, or want to shut out anyone still
holding an old one. Every run replaces the secret and immediately puts the new one into effect —
players already seated in a game are unaffected, but the old secret stops working for creating or
joining games from that point on.
### Games in Progress
Shows every game on the server: who is playing, which Day and Stage they have reached, and whose
turn it is. It changes nothing, so run it whenever you are curious. It is also how you spot a game
nobody is coming back to — one whose last move was days ago, still waiting on a particular player.
### Manage Game
Pick a game, then either save a copy of it or end it.
**Export** hands you the whole game as text and leaves it running. Save that text as a `.json`
file and you can open it in the replay viewer later to watch the game back.
**End the game** deletes it and disconnects anyone still watching. This is the only way to clear
a game that will never be finished — otherwise it sits there, and comes back every time the
service restarts. It cannot be undone, so the game's save is handed back to you when it happens:
that text is the only copy left, so keep it if the game was worth watching.
### Restore a Seat
Use this when a player cannot get back into a game they are already in — they open the page and find
an empty lobby, with no game code and no name filled in, as though they had never joined.
That happens because the only proof of who you are is kept by your own browser. Clear your browsing
data, come back in a private window, or sit down at a different browser, and that proof is gone —
even though the game is still running on the server and the seat is still yours.
Pick the player from the list and this hands you a link. Send it to them, and opening it in their own
browser puts them straight back in their seat. **The link works once and expires after 30 minutes**,
and whoever opens it takes that seat — so send it to that person directly rather than posting it
somewhere public. If it expires before they get to it, just run the action again.
> **Games in progress normally survive an update of this service.** When the update changes the
> rules of the game itself, a half-played game cannot be resumed under rules it was not played by,
> and that game is set aside rather than continued — you would see it disappear from the lobby.
> Nothing is ever deleted, so going back to the previous version makes it playable again.