Still unreleased. Answering the three blockers. The worksheet and play sheet never rendered the new field, and stripping the prose meant they said nothing at all — the two surfaces the whole two-surface design is about. All five renderers now go through one helper, core/roster.mjs, which also recovers the warning for delve files generated before the field existed and refuses to add a line the prose already carries. Measured across four themes: 40 of 40 delves carrying a roster now warn on worksheet, play sheet and markdown alike. Twenty-three was the wrong set. The spelling was never the semantics: barrow's nightmare Wraith, cave's nightmare Troll and forest's battle Troll carry the same non-discoverable restriction without the word ONLY. Marked, so 26. I audited all 64 rosters rather than trusting the count — the ones left unmarked are discoverable by trying (an Ogre with 12 Grit, mooks that keep coming until the necromancer stops), and damage works on all of them. commit() was unprotected, so a failed settings write threw out of stageArea with the scene already real. It is caught now and says plainly that a retry will raise the area twice. enter() also has a single-flight guard: it is bound to a button, it awaits the Forge for seconds, and two overlapping calls both read the same index. Also: packById checks the geometry is one VANITY can build rather than just truthy; foeSection is exported and the suite holds the two renderers to agreement on all four kinds; and the module README and the seams warning said 0.10.5 where everything else says 0.10.4. 41 core tests, 54 adapter tests. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
DELVE
An authoring system and Foundry VTT module for the VANITY tabletop RPG. Press one button and it generates a whole dungeon — fiction, areas, maps, encounters, hoards and a journal you can read cold — then drops it into your world.
Install (Foundry)
Add-on Modules → Install Module → Manifest URL:
https://github.com/slaguru666/vanity-delve/releases/latest/download/module.json
Requires the VANITY system, 0.10.4 or later — that is the release the Forge seams landed in, and without them a delve emits nine stray chat cards and three stray folders.
- ⛏ raise a dungeon
- 🗑 remove one you don't want — it deletes exactly what it made and nothing else
- ⏩ stage a delve you finished at the desk
Also a CLI
core/ is pure JavaScript with no Foundry dependencies, so a delve can be generated, rerolled and
finished outside the VTT:
node core/cli.mjs --new --seed=my-delve --file=my.json
node core/cli.mjs --file=my.json --worksheet # everything, with prompts for what only you can write
node core/cli.mjs --file=my.json --reroll=3:situation
node core/cli.mjs --file=my.json --play # the tight, table-facing sheet
What it does and does not do
It generates the fiction, the order and the pressure. It does not write your read-aloud text or your climax, and it says so — those are prompts, not output. It gets you to a strong first draft in a minute instead of an evening, then gets out of the way.
DESIGN.md has the whole design history, including four rounds of adversarial review
and two paper playtests that failed before anything worked.
Layout
core/ |
the generator — pure JS, 39 tests |
foundry-module/ |
the Foundry module, with core/ vendored |
paper/ |
a hand-written delve and both playtest logs |
spike/ |
the harness that measured VANITY's Forge outside Foundry |
samples/ |
generated output |
Licence
MIT — see LICENSE.