Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1be441f775 | ||
|
|
decb3bf930 |
@@ -308,4 +308,4 @@ failure outcomes, concrete clue answers, and a full ending packet with negotiati
|
||||
|
||||
---
|
||||
|
||||
*Private VANITY development material — not for sale or distribution.*
|
||||
*VANITY development notes — part of [DELVE](https://github.com/slaguru666/vanity-delve).*
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 slaguru666
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,54 @@
|
||||
# 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](https://github.com/slaguru666/Vanity) system, **0.10.5 or later**.
|
||||
|
||||
* **⛏** 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:
|
||||
|
||||
```bash
|
||||
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`](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](LICENSE).
|
||||
+1
-1
@@ -165,6 +165,6 @@ export function renderMarkdown(d) {
|
||||
}
|
||||
L.push('---');
|
||||
L.push('');
|
||||
L.push('*Private VANITY development material — not for sale or distribution.*');
|
||||
L.push('*Generated by [DELVE](https://github.com/slaguru666/vanity-delve) for the VANITY RPG.*');
|
||||
return L.join('\n');
|
||||
}
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 slaguru666
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -2,7 +2,7 @@
|
||||
"id": "vanity-delve",
|
||||
"title": "DELVE — a dungeon layer for VANITY",
|
||||
"description": "Generates a coherent delve and sequences VANITY's Forge to stage it, one area at a time.",
|
||||
"version": "0.1.0",
|
||||
"version": "0.1.2",
|
||||
"compatibility": {
|
||||
"minimum": "13",
|
||||
"verified": "14.365"
|
||||
@@ -32,5 +32,6 @@
|
||||
"manifest": "https://github.com/slaguru666/vanity-delve/releases/latest/download/module.json",
|
||||
"download": "https://github.com/slaguru666/vanity-delve/releases/latest/download/vanity-delve.zip",
|
||||
"url": "https://github.com/slaguru666/vanity-delve",
|
||||
"readme": "https://github.com/slaguru666/vanity-delve/blob/main/foundry-module/README.md"
|
||||
"readme": "https://github.com/slaguru666/vanity-delve/blob/main/foundry-module/README.md",
|
||||
"license": "https://github.com/slaguru666/vanity-delve/blob/main/LICENSE"
|
||||
}
|
||||
@@ -165,6 +165,6 @@ export function renderMarkdown(d) {
|
||||
}
|
||||
L.push('---');
|
||||
L.push('');
|
||||
L.push('*Private VANITY development material — not for sale or distribution.*');
|
||||
L.push('*Generated by [DELVE](https://github.com/slaguru666/vanity-delve) for the VANITY RPG.*');
|
||||
return L.join('\n');
|
||||
}
|
||||
|
||||
@@ -209,4 +209,4 @@ the gang, take the portrait in A5, and have nobody bow — the path v1 punishes
|
||||
|
||||
---
|
||||
|
||||
*Private VANITY development material — not for sale or distribution.*
|
||||
*VANITY development notes — part of [DELVE](https://github.com/slaguru666/vanity-delve).*
|
||||
|
||||
@@ -170,4 +170,4 @@ Next: **step 2, the seam spike.**
|
||||
|
||||
---
|
||||
|
||||
*Private VANITY development material — not for sale or distribution.*
|
||||
*VANITY development notes — part of [DELVE](https://github.com/slaguru666/vanity-delve).*
|
||||
|
||||
@@ -344,4 +344,4 @@ Pass 2 is **contrarian**: Court Door, nobody bows, ally the gang, take the portr
|
||||
|
||||
---
|
||||
|
||||
*Private VANITY development material — not for sale or distribution.*
|
||||
*VANITY development notes — part of [DELVE](https://github.com/slaguru666/vanity-delve).*
|
||||
|
||||
@@ -40,7 +40,7 @@ On success it goes first, and The Silent Host will not open hostilities first.
|
||||
|
||||
---
|
||||
|
||||
### AREA 1 — The Threshold Stones
|
||||
### AREA 1 — The Mourners' Steps
|
||||
*approach · institution*
|
||||
|
||||
> A stair too grand for the door it serves. The queue disturbed — three of the dead pushed aside. One of the Host — reading out an order of precedence to an empty hall. When you walk in, it pauses and asks where you fall in it. None of it is accident — it was done this way on purpose.
|
||||
@@ -76,7 +76,7 @@ On success it goes first, and The Silent Host will not open hostilities first.
|
||||
|
||||
---
|
||||
|
||||
### AREA 3 — The Waiting Room
|
||||
### AREA 3 — The Antechamber
|
||||
*complication · ritual*
|
||||
|
||||
> A herald's script with the order still marked. Someone has walked the corridor the wrong way, scuffing one side. One of the Host with a herald's staff — announcing arrivals to an empty stair. When you walk in, it announces you, inventing a rank. None of it is accident — it was done this way on purpose.
|
||||
@@ -122,7 +122,7 @@ On success it goes first, and The Silent Host will not open hostilities first.
|
||||
|
||||
---
|
||||
|
||||
### AREA 5 — The Sunken Nave
|
||||
### AREA 5 — The Lower Cut
|
||||
*descent · wound · pocket*
|
||||
|
||||
> A procession that doubled back on itself. Banners pulled down and stacked without regard for order. A procession — passing through, unhurried, with you in its way. When you walk in, it does not stop or go round. None of it is accident — it was done this way on purpose.
|
||||
@@ -143,7 +143,7 @@ On success it goes first, and The Silent Host will not open hostilities first.
|
||||
|
||||
---
|
||||
|
||||
### AREA 6 — The Last Door
|
||||
### AREA 6 — The Robing Room
|
||||
*threshold · anchor · battle · chest*
|
||||
|
||||
> A seat at the head of everything, occupied. A rank-plate prised off and dropped, still shiny where it sat. A queue of the Host — waiting to pass a door, in strict order, not moving. When you walk in, the queue opens a gap at exactly your rank. None of it is accident — it was done this way on purpose.
|
||||
@@ -204,4 +204,4 @@ Handled by giving them what they want, at a price.
|
||||
|
||||
---
|
||||
|
||||
*Private VANITY development material — not for sale or distribution.*
|
||||
*Generated by [DELVE](https://github.com/slaguru666/vanity-delve) for the VANITY RPG.*
|
||||
@@ -40,7 +40,7 @@ On success it was obeyed, and The Silent Host will not open hostilities first.
|
||||
|
||||
---
|
||||
|
||||
### AREA 1 — The Weeping Stair
|
||||
### AREA 1 — The Outer Cut
|
||||
*approach · institution*
|
||||
|
||||
> Servants' bones arranged as though mid-errand. Someone has been talking here, and stopped when you arrived. Three of the Host in servants' dress — carrying out an errand that has no destination left. When you walk in, they stop, and wait to be told what to do. None of it is accident — it was done this way on purpose.
|
||||
@@ -58,7 +58,7 @@ On success it was obeyed, and The Silent Host will not open hostilities first.
|
||||
|
||||
---
|
||||
|
||||
### AREA 2 — The Lesser Vault
|
||||
### AREA 2 — The Waiting Room
|
||||
*complication · ritual · fight · cache*
|
||||
|
||||
> Orders scratched into the floor, the last one unfinished. A door braced shut from within by furniture. A living grave-robber — repeating a phrase over and over, trying to get the intonation right. When you walk in, they go quiet and put their back to the wall. None of it is accident — it was done this way on purpose.
|
||||
@@ -86,7 +86,7 @@ On success it was obeyed, and The Silent Host will not open hostilities first.
|
||||
|
||||
---
|
||||
|
||||
### AREA 3 — The Crossing
|
||||
### AREA 3 — The Middle Vault
|
||||
*turn · demand*
|
||||
|
||||
> A hall where your own voice arrives before you speak. An order half-scratched out and rewritten by a different hand. The bells — ringing a summons room by room, coming closer. When you walk in, the bell in this room begins. None of it is accident — it was done this way on purpose.
|
||||
@@ -104,7 +104,7 @@ On success it was obeyed, and The Silent Host will not open hostilities first.
|
||||
|
||||
---
|
||||
|
||||
### AREA 4 — The Servants' Deep
|
||||
### AREA 4 — The Cold Gallery
|
||||
*descent · wound · pocket*
|
||||
|
||||
> An instruction repeated until the stone gave out. Boot-prints that stop mid-corridor and do not resume. A single figure at a speaking-tube — reporting, at length, to a listener who died first. When you walk in, it pauses mid-sentence and asks whether you are the reply. None of it is accident — it was done this way on purpose.
|
||||
@@ -186,4 +186,4 @@ Handled by giving them what they want, at a price.
|
||||
|
||||
---
|
||||
|
||||
*Private VANITY development material — not for sale or distribution.*
|
||||
*Generated by [DELVE](https://github.com/slaguru666/vanity-delve) for the VANITY RPG.*
|
||||
@@ -40,7 +40,7 @@ On success it hears that nothing has aged, and The Silent Host will not open hos
|
||||
|
||||
---
|
||||
|
||||
### AREA 1 — The Outer Cut
|
||||
### AREA 1 — The Mourners' Steps
|
||||
*approach · institution*
|
||||
|
||||
> Lamps trimmed and filled, all of them. A seal broken and the contents already spoiled. Two of the Host — repairing something that is not damaged. When you walk in, they set the work down and wait for inspection. None of it is accident — it was done this way on purpose.
|
||||
@@ -58,7 +58,7 @@ On success it hears that nothing has aged, and The Silent Host will not open hos
|
||||
|
||||
---
|
||||
|
||||
### AREA 2 — The Lesser Vault
|
||||
### AREA 2 — The Attendants' Row
|
||||
*complication · ritual · fight · cache*
|
||||
|
||||
> A meal laid out, still warm, for people long past eating. One preserved thing removed, leaving a clean shape in the dust. One of the Host — trimming a lamp that has never gone out. When you walk in, it will not stop, and speaks without looking up. None of it is accident — it was done this way on purpose.
|
||||
@@ -86,7 +86,7 @@ On success it hears that nothing has aged, and The Silent Host will not open hos
|
||||
|
||||
---
|
||||
|
||||
### AREA 3 — The Attendants' Row
|
||||
### AREA 3 — The Lesser Vault
|
||||
*complication · ritual · fight · cache*
|
||||
|
||||
> A clock wound by somebody, recently. A fire built recently, of furniture that was three centuries old. Something young — waiting, exactly as instructed, and has been. When you walk in, it asks whether it is allowed to stop now. None of it is accident — it was done this way on purpose.
|
||||
@@ -114,7 +114,7 @@ On success it hears that nothing has aged, and The Silent Host will not open hos
|
||||
|
||||
---
|
||||
|
||||
### AREA 4 — The Turning Hall
|
||||
### AREA 4 — The Crossing
|
||||
*turn · demand · pocket*
|
||||
|
||||
> A room that resets itself if you look away. A clock stopped by hand — the pendulum caught and tied. A living robber, badly hurt — refusing to bleed, and frightened by it. When you walk in, they grab you and ask what is wrong with them. None of it is accident — it was done this way on purpose.
|
||||
@@ -135,7 +135,7 @@ On success it hears that nothing has aged, and The Silent Host will not open hos
|
||||
|
||||
---
|
||||
|
||||
### AREA 5 — The Sunken Nave
|
||||
### AREA 5 — The Servants' Deep
|
||||
*descent · wound*
|
||||
|
||||
> Something kept so well it has forgotten how to end. Rot, in exactly one place, spreading. The room — undoing your presence, footprints filling behind you, dust returning. When you walk in, it works faster. None of it is accident — it was done this way on purpose.
|
||||
@@ -153,7 +153,7 @@ On success it hears that nothing has aged, and The Silent Host will not open hos
|
||||
|
||||
---
|
||||
|
||||
### AREA 6 — The Antechamber Royal
|
||||
### AREA 6 — The Quiet Room
|
||||
*threshold · anchor · battle · chest*
|
||||
|
||||
> A casket sized for something smaller than a body. Something here has been eaten, which should not be possible. Two of the Host — setting a table for a meal that is always about to happen. When you walk in, they lay two more places. None of it is accident — it was done this way on purpose.
|
||||
@@ -214,4 +214,4 @@ Handled by giving them what they want, at a price.
|
||||
|
||||
---
|
||||
|
||||
*Private VANITY development material — not for sale or distribution.*
|
||||
*Generated by [DELVE](https://github.com/slaguru666/vanity-delve) for the VANITY RPG.*
|
||||
@@ -58,7 +58,7 @@ On success it is not alone, and The Silent Host will not open hostilities first.
|
||||
|
||||
---
|
||||
|
||||
### AREA 2 — The First Hall
|
||||
### AREA 2 — The Waiting Room
|
||||
*complication · ritual · pocket*
|
||||
|
||||
> Places set every evening for three hundred years. Someone has been counting the dead — tally marks by the entrance. Two of the Host, hand in hand — refusing to be parted to let anyone past. When you walk in, they look at you and do not move. None of it is accident — it was done this way on purpose.
|
||||
@@ -79,7 +79,7 @@ On success it is not alone, and The Silent Host will not open hostilities first.
|
||||
|
||||
---
|
||||
|
||||
### AREA 3 — The Waiting Room
|
||||
### AREA 3 — The Attendants' Row
|
||||
*complication · ritual · fight · cache*
|
||||
|
||||
> Chairs drawn up in a circle, all facing one seat. A bedroll, used, and not by anyone buried here. A dozen of the Host — sitting in a circle, facing one empty chair. When you walk in, they shuffle round to make room for you. None of it is accident — it was done this way on purpose.
|
||||
@@ -107,7 +107,7 @@ On success it is not alone, and The Silent Host will not open hostilities first.
|
||||
|
||||
---
|
||||
|
||||
### AREA 4 — The Turning Hall
|
||||
### AREA 4 — The Gallery
|
||||
*turn · demand · fight · cache*
|
||||
|
||||
> A doorway with the hinges taken off. A name carved beside another, joining them, badly. A second set of footsteps — keeping pace with yours, close. When you walk in, they stop when you stop, close. None of it is accident — it was done this way on purpose.
|
||||
@@ -135,7 +135,7 @@ On success it is not alone, and The Silent Host will not open hostilities first.
|
||||
|
||||
---
|
||||
|
||||
### AREA 5 — The Servants' Deep
|
||||
### AREA 5 — The Lower Cut
|
||||
*descent · wound*
|
||||
|
||||
> A name called so often it wore into the wall. A door tied open with a belt, so it could not close. Three of the Host — laying out a game for four. When you walk in, they look up and count you. None of it is accident — it was done this way on purpose.
|
||||
@@ -153,7 +153,7 @@ On success it is not alone, and The Silent Host will not open hostilities first.
|
||||
|
||||
---
|
||||
|
||||
### AREA 6 — The Quiet Room
|
||||
### AREA 6 — The Antechamber Royal
|
||||
*threshold · anchor · battle · chest*
|
||||
|
||||
> A chair kept empty and dusted. A chair dragged out of position and left where it was needed. A living robber, alone — talking steadily to a companion who is not there. When you walk in, they introduce you to the empty air. None of it is accident — it was done this way on purpose.
|
||||
@@ -214,4 +214,4 @@ Handled by giving them what they want, at a price.
|
||||
|
||||
---
|
||||
|
||||
*Private VANITY development material — not for sale or distribution.*
|
||||
*Generated by [DELVE](https://github.com/slaguru666/vanity-delve) for the VANITY RPG.*
|
||||
@@ -104,4 +104,4 @@ sequenced — but only if it stops talking to the table on its own.
|
||||
|
||||
---
|
||||
|
||||
*Private VANITY development material — not for sale or distribution.*
|
||||
*VANITY development notes — part of [DELVE](https://github.com/slaguru666/vanity-delve).*
|
||||
|
||||
Reference in New Issue
Block a user