0.6.2 fixed the foe block by showing the actors the Forge created, and in
doing so broke the populate-off path: with nothing forged there were no
combat numbers at all, and the caption still pointed the GM at "the table
above" when no table had rendered. Turning population off used to leave
the planned roster runnable. It does again.
One rule now governs both surfaces: show what exists. The roster's
tactical guidance describes the planned foes, so it travels with the plan
and only when the plan IS the encounter. With foes forged, the plan is a
one-line note saying its tactics do not describe them; with nothing
forged, the full planned roster renders and its guidance applies, because
there it is the encounter. The previous wording claimed the guidance
applied either way, which asserted exactly what the fix existed to deny,
and gating the caveat on the literal word ONLY missed the Troll that
regenerates unless burned, the Ogre's 12 Grit and the Skeletons that
return until their Necromancer stops.
packFor no longer falls back to barrow. Generated files always record a
theme, but load() takes hand-edited JSON too, and guessing the geometry
is the bug it was written to prevent — it now fails closed, and also
rejects a pack with no forgeStageType. draft() keeps a default because
drafting chooses a theme rather than being told one.
raiseDungeon spreads caller params before the pack, so a programmatic
raise({pack}) can no longer generate from one pack while the maps are
staged from another.
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.