docs & help
Docs & Help
How the game works, how your data is kept, and how to get unstuck. Plain and factual — the library's formal wing.
Design
LAST WORDS is a single-player, procedurally generated vocabulary-currency strategy game. You are a scribe-deity tending the last library at the edge of a dying world. Every word you speak to act is permanently torn from your living vocabulary — for this run — and your interface erodes in step with what you've spent.
The four verbs
- SPEAK — cast the word's inscribed effect (attack an Eater, heal, open the final Gate). Power scales with tier.
- OFFER — sacrifice the word to repel the Eaters' tide; low-risk survival.
- ENGRAVE — set the word into a permanent Rune: a run-wide passive that outlives the word.
- BURY — spend word-value to restore an eroded map tile, uncovering landmarks and boons.
Tiers
Words come in three tiers: bronze (common scrap), silver (mid craft), and gold (rare — the only source of ritual and ending keys). The corpus is ~305 words, majority bronze, so scarcity does the pressuring.
The Fade, the Eaters, the Wall
Unspent words erode on their own (the Fade taxes hoarding); at two letters or fewer a word becomes its glyph; at zero it is consumed and logged forever. Every second night the Eaters advance; if they reach the library, the archive falls. Every ending lands on the Wall of Consumed Words.
Endings
Five deterministic endings: Sundown (a leaving), Resurrection (the world repaired), Gatekeeper (the Gate opened), Devouring (the tide reached the library), and Void (the dark quiet — reachable only deliberately).
Seeds & persistence
#seed= — shared, reproducible runs
Append #seed=anything to the play URL —
https://last-words.pages.dev/#seed=myrun — and the game
starts a fresh run generated from that seed. The same seed always
produces the same world: same word distribution, same map, same
endgame. A seeded run is ephemeral: it never overwrites your
live save until you actually progress.
Where your data lives
Everything is kept in this browser's localStorage, under two keys:
lastwords.save— your live run, saved after every action. Refresh-safe; a finished run is cleared so it cannot be resumed.lastwords.wall— the Wall of Consumed Words: one record per ended run, capped at 400 (oldest dropped).
Privacy
There is no server, no analytics, no account, no network call. Your run and your Wall never leave this browser. Clearing your browser data erases them. The Wall is never aggregated anywhere.
FAQ
Do I need an account?
No. There is no account, no login, no cloud. The game runs entirely in your browser.
Is my progress saved?
Yes — to localStorage after every action. Close the tab, come back, and the run resumes where you left it.
What is the #seed= thing?
A way to share or reproduce a run. The same seed always generates the same world. See Seeds & persistence.
How many endings are there?
Five, and they are deterministic — the same choices always resolve the same way. See About for the thesis behind them.
Can I lose?
Yes. The Eaters can reach the library (Devouring), and you can spend yourself into the Void. Both are endings, and both are kept on the Wall.
Why does my interface erode?
That is the game. The interface is made of the same language you spend; it degrades in step with your vocabulary. Decay is the fuel, not the wound.
What happens if I clear my browser data?
Your run and your Wall are gone. The game starts fresh. Nothing else is affected — there is nothing stored anywhere else.
I'm stuck. What do I do?
You always have a move: OFFER any word to pass the night. If your hand is empty and nothing more will come, the game will ask you to choose the void — that is a deliberate ending, not a soft-lock.
Changelog
| M# | Milestone | Status |
|---|---|---|
| M1 | Scaffold foundation, commit 0 | ✅ |
| M2 | Seeded RNG, corpus, pool | ✅ |
| M3 | Economy engine (4 verbs) | ✅ |
| M4 | Board/chapters orchestration | ✅ |
| M5 | Persistence model | ✅ |
| M6 | UI skeleton | ✅ |
| M7 | Audio layer | ✅ |
| M8 | Tests complete + polish | ✅ |
| M9 | Integration review | ✅ |
| M10 | Deploy to Pages — live at last-words.pages.dev | ✅ |
| M11 | v1 info pages — this site | ✅ |
Accessibility
- Keyboard-first — verbs are driven by
1–4(select a hand slot) ands/o/e/b(SPEAK/OFFER/ENGRAVE/BURY); Tab cycles, Enter acts, Esc closes overlays. - Color is never the only channel — tier markers carry text and shape as well as tint; glyph legends are printed; contrast is ink-on-bone, never color-on-color.
- Reduced motion —
prefers-reduced-motionis respected; erosion is the only motion language, and it can be switched off. - No-JS fallbacks — every text page renders without JavaScript; the three data-driven pages (PLAY, WORDS, YOUR ARCHIVE) carry noscript notes.
- Semantics — the Wall announces itself via
aria-live; focus is managed on screen changes; buttons are real buttons.