Eleven files carried "Private VANITY development material — not for sale or distribution", which contradicted the repo the moment it went public. Two replacements, because the files do two different jobs. core/render.mjs *emits* its footer into every generated delve, so that one now says where the document came from rather than restricting what can be done with it — a generated dungeon belongs to whoever generated it. The project's own documents — DESIGN.md, the paper delve, both playtests, the spike report — read as development notes in a public repo. Samples regenerated so they carry the new line. The worksheet and play sheet never had a footer and still do not; they are the GM's own working documents. Module to 0.1.1: the v0.1.0 zip vendors the old render.mjs and would stamp the stale footer on everything it generated. Cutting a version rather than swapping assets under the existing one. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
11 KiB
PLAYTEST 01 — The Vault of the Gilded Court v1
Pass: 1 of 2 (GM chair, full table simulation) Scenario version: v1, 2026-08-04 Result: FAILS. Do not run at a table until fixes 1–4 are applied.
1. Method
- Ran as GM while playing all four house archetypes: methodical veteran (Bram the Warrior), roleplay-first talker (Pinch the Rogue), rules-literate tactician (Sister Wren the Cleric), lore-digger (Yrsa the Mage).
- Pregens are the system's own, pulled from the
pregenscompendium with their real numbers: Bram brawn 3 / Grit 9 · Pinch flair 4 / Grit 6 · Wren poise 4, brawn 2 / Grit 7 · Yrsa wits 4 / Grit 3. All start Vanity 3. - Foes are the real bestiary blocks — Skeleton atk 3 / def 2 / Grit 1; Bandit 3/3/2; Ghoul 4/3/4; Wraith 5/3/10.
- Every contested beat rolled honestly with a CSPRNG. No re-rolls, no fudging.
- Damage model verified in code (
vanity.mjs:163,:438): a hit is 1 Grit + 1 per extra success spent; spells deal 0 base, damage only from bought extras.
Assumptions I had to invent — each is a finding in itself (see fix 6):
- PC attack pool = attribute + 1 (weapon knack). The scenario states no PC-side numbers.
- PC defence = 3 (Yrsa 2). Not specified anywhere.
Instrument note: my roller flagged "Stumble" on NPC defence rolls. Banes are a PC mechanic; those flags are an artifact and were ignored.
2. Play log
A1 — The Mourners' Steps · planned 20 · actual ~12
Party took the Servants' Stair (veteran's call, cost 1 Turn). Yrsa's Observation for the chisel
marks: 4d6 [3,3,2,1] → 0 successes, FAIL (lone 1 — free twist). Clock [6], quiet.
⚠ The clue died with the roll. The party never learned the faces were struck off from inside, which is the seed for the whole motif. The scenario states a failure case for the area but not for its clue — a direct violation of "state the failure case" for every clue.
Ran short because with the clue failed there was nothing else to interrogate.
A2 — The Antechamber of Bows · planned 30 · actual ~18
Pinch went straight for the bow, in character. 5d6 [6,2,5,1,1] → 2 successes, PASS.
+1 Vanity to Pinch (→4), 1 Bane banked against him. The Host resumed bowing. No fight.
Landed well — the best beat of the session, and the talker's moment. But:
⚠ Only one hero bowed, and that is the natural outcome. Nobody else had a reason to. The finale's survivable route requires 2+, so a single-talker table — the common case — is silently routed to the unwinnable branch four areas later, with no warning and no way back.
A3 — The Hall of Little Mirrors · planned 30 · actual ~45
Pell Quill reaction: 2d6 [1,3] → 0 successes → **Hostile**. Fight with 4 Bandits.
Three rounds rolled; the fight was not over. Bram: [3,4,2,2]→0, [1,2,4,4]→0,
[2,4,5,6]→2 (one hit, 1 damage) — two whiffed rounds out of three. Bram took 3 Grit.
Yrsa's mirror Observation also failed: 4d6 [3,2,4,1] → 0.
⚠ A Hostile reaction adds an unplanned third fight and blows the 30-minute budget by half. The design claims "2 planned fights"; the dice can make it three with no GM lever. ⚠ Second clue lost to a single roll — same fault as A1, same character, same 4d6. ⚠ Killing the gang means A5's trap fires unwarned. The dice chose this, not the players.
A4 — The Weeping Gallery · planned 25 · actual ~35
Two Ghouls. Pinch destroyed Ghoul B alone (net 3, then net 1). Ghoul A finished the three rolled
rounds completely untouched. Bram: 0, 0, 2 successes against defence 1, 1, 3 — zero
damage in three rounds, on top of two whiffed rounds in A3.
⚠ The warrior does not work. Bram is 4d6 (expect 1.33 successes) into Ghoul defence 3d6 (expect 1.0). Net expected damage ≈ 0.6/round. Across A3 and A4 he landed one hit in six rounds while carrying the party's highest Grit. The player with the least to do was the one built to fight.
A5 — The Wardrobe of the Court · planned 25 · actual ~15
Unwarned (gang dead). Bram made the door: 4d6 [5,2,5,5] → 3, PASS — no drama. Party voted to
leave the portrait covered (veteran: "we're not waking anything"). Clock [5], quiet.
The decision landed exactly as designed and was genuinely argued. This area works.
A6 — The Gilded Audience · planned 40 · actual ~50, unresolved
One hero had bowed, not two → routed to "Fought throughout". Straight fight, Wraith Grit 10.
Four rounds rolled:
| Wraith damage taken | Yrsa damage taken | |
|---|---|---|
| R1 | 0 (Yrsa net 1 — spells deal 0 base) | 1 + 1 max Grit |
| R2 | 1 (Wren) | 3 + 1 max Grit |
| R3 | 0 | 1 + 1 max Grit |
| R4 | 0 | 3 + 1 max Grit |
⚠⚠ The fight is unwinnable and Yrsa is dead in round 2. She has Grit 3 and took 8 across four rounds, plus 4 permanent max Grit drained. The Wraith ended on 9 of 10 Grit. At the observed rate it needs roughly forty rounds to kill.
Compounding causes, all in the stat block I chose without checking:
- Only magic/silvered/blessed weapons harm it — Bram and Pinch, the two functioning attackers, cannot participate at all.
- Chill touch is 5d6 and ignores armour, versus Yrsa's 2d6 defence.
- Spells deal 0 base damage — the mage's whole contribution is buying extras she rarely has.
- The scenario then adds "three Skeletons per round for three rounds."
Total: planned 2h50 · actual ~2h55 with the finale unresolved and a dead PC.
The clock
Rolled four times: 6, 3, 3, 5. Never fired. Needs a 1.
⚠⚠ Design intent 4 is falsified. The delve is supposed to bank its sixth Bane during the audience. Actual Banes banked all session: one — Pinch's flattery. Stumbles require failing with 2+ ones, which happened to a PC zero times in ~40 rolls. There is no natural Bane pressure at this length; the Reckoning cannot arrive on schedule because it cannot arrive at all.
3. Player-hat verdicts
| Archetype | Verdict | Score |
|---|---|---|
| Methodical veteran (Bram) | "I hit nothing for six rounds and then couldn't touch the boss. Why am I the fighter?" | 1/5 |
| Roleplay-first talker (Pinch) | "The bow was the best thing I've done in months — and then I killed both real threats too." | 5/5 |
| Rules-literate tactician (Wren) | "I was the only one who could hurt the Wraith and I do 1 damage a round. That's not a tactic, it's a queue." | 2/5 |
| Lore-digger (Yrsa) | "Two Observation rolls, both zero, so I learned nothing about the barrow. Then I died in round two." | 1/5 |
The scenario works beautifully for exactly one archetype.
4. Fix list
Prioritised. Nothing rewritten here — these are instructions for v2.
1. ⚠⚠ Area 6 is not survivable. — blocking Problem: Wraith Grit 10 / atk 5 / immune to mundane weapons versus a Depth 2 party; only 2 of 4 heroes can engage, and spells do 0 base damage. Unwinnable and lethal. Fix: Make the Queen's Grit 6, drop the added Skeletons entirely, and give the barrow a silvered blade in the A5 hoard so a mundane fighter can participate. State plainly in A6 that she is incorporeal and name what harms her — before initiative. Where: Area 6 stat line; A5 temptation index.
2. ⚠⚠ The flattery gate routes the common case into the fatal branch. — blocking Problem: The survivable ending needs 2+ heroes to have bowed. One talker bowing is the normal outcome; the party is condemned in A2 and finds out in A6. Fix: Lower the gate to 1 hero, and make flattery repeatable per area so a party can climb into the good ending. Add a visible signal — the Host addresses flatterers by title — so players can see the route is open. Where: Area 2 flattery block; Area 6 resolution table.
3. ⚠⚠ There is no Bane pressure, so the Reckoning never arrives. — blocking Problem: One Bane in ~40 rolls. Design intent 4 cannot fire. Fix: Stop relying on Stumbles. Bank a Bane on every flattery, every mirror-noticing in A3, and every relic use — and put a Bane counter in the area header so the GM can see the tab climbing. If the tab is below 4 entering A6, the Queen offers a Vice outright. Where: Areas 2, 3, 5; new running header.
4. ⚠ Two clues die on single unopposed rolls. — high Problem: Both Observation clues failed; the motif's seed never reached the table. Fix: Make both automatic on entry, with the roll buying extra. House rule already says state the failure case for every clue; v1 states it for areas only. Where: Areas 1 and 3.
5. ⚠ The warrior contributes nothing. — high Problem: 4d6 vs defence 3 is ~0.6 damage/round; one hit in six rounds. Fix: Drop Ghoul defence to 2 ("gorged, slow"), and give the Skeletons in A2 defence 2 as written. Add a note that Ghouls are slow so a fighter can dictate range. Where: Areas 2 and 4 stat lines.
6. ⚠ The scenario states no PC-side numbers. — high Problem: I had to invent attack pools and defence to run it. A stand-in GM cannot. Fix: Add a four-line block giving each pregen's attack pool, defence and one signature move. Where: new §2b, after the Master Rules block.
7. A Hostile reaction silently adds a third fight. — medium Problem: A3 ran 45 minutes against 30 and the schedule never recovers. Fix: On Hostile, the gang fights for one round then breaks (Nerve 2 — they are three days past brave). Note the 15-minute overrun in the timing table. Where: Area 3; §4.
8. A4 carries no reward and is the second-longest area. — medium Problem: 35 minutes for the "empty beat". Fix: Keep it rewardless but cut to one Ghoul. The point is the portraits, not the fight. Where: Area 4.
5. What this says about DELVE (draft 4)
The scenario's failures are mostly content failures, but three are structural and belong in draft 5:
| # | Finding | Consequence for the design |
|---|---|---|
| 1 | 6 areas ran ~2h55 with the finale unresolved — and that was with two of six areas running short because clues failed | Codex's 4–5 areas default is right. 6 is optimistic. |
| 2 | The clock never fired in four rolls | A 1-in-6 trigger is too sparse at delve length. DELVE should escalate the die as the tab climbs, or the pressure engine is decorative. |
| 3 | Banes do not accrue from play | The temptation economy cannot be the only Bane source, or the Reckoning never lands. DELVE must generate Bane-banking beats deliberately, not hope Stumbles supply them. |
| 4 | Every stat-block trap came from content I never cross-checked | The curated overlay catalog (draft 4 §7) needs a playability field — "can a mundane fighter hurt this?" — not just theme/faction/role. |
Question 3 from the scenario's §10 — is acceptanceCost: null actually tempting? — not
answered. The party took the Gilded Mask without discussion and left the portrait covered for
tactical reasons, not moral ones. Needs pass 2.
6. Next
Apply fixes 1–6, bump to v2, then run pass 2 contrarian: take the Court Door, ally with the gang, take the portrait in A5, and have nobody bow — the path v1 punishes hardest.
VANITY development notes — part of DELVE.