Add PAPER WINDOW as the starter scenario Adventure
The six-player introductory case ships as a Foundry Adventure in a new `starter` pack, because a scenario that arrives as nine loose documents a GM has to assemble is a scenario that gets read rather than run. One import brings in: the GM scenario in twelve pages; the seven player handouts as their own journal at OBSERVER ownership so they can be revealed one at a time without the GM editing permissions first, while the GM text stays hidden; the six pregens built through the same buildActor path the shipped pregens use, so they arrive with full skill lists, kit, hit points and linked tokens; the cast, including the Cancellation Man; the Borrowed Authority as a real credential with scope, Trust 2 and its three red flags; and the case file already at Containment 8 / Resources 8 / Clearance 6 with its four phases loaded at the stated difficulties and modifiers. Pregen ratings are fixed at mid-band rather than rolled — a pregen that varies between installs is not a pregen. The expansion from posting or trade into a sheet reuses the register and the induction rule rather than restating them, so the starter cannot drift from the generator. Verified by importing it: no errors, the roster resolves through stable keys, handouts arrive player-visible, Nia has the team's highest Tradecraft as the text requires, Callum's shield is slung so raising it is still a decision, the three probationers show the trade/induction split, and phase one runs out of the box. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
43508259ac
commit
49c2e9fc7b
@@ -68,7 +68,8 @@ changing underneath a running server.
|
||||
| **Bestiary** | 21 statblocks across folklore, horror and the far side |
|
||||
| **Eras** | modern, antique, future, anomalous — the agency is old and never abolishes anything |
|
||||
| **Icons** | 292, all generated from `tools/icons.mjs`; no external art |
|
||||
| **Compendia** | pregens, NPCs, skills, weapons, armour, gear, vehicles, powers, tables, rules, a starter case |
|
||||
| **Starter scenario** | **PAPER WINDOW**, a six-player introductory case, importable as a single Adventure |
|
||||
| **Compendia** | pregens, NPCs, skills, weapons, armour, gear, vehicles, powers, tables, rules, the starter |
|
||||
| **Rules journal** | 12 pages, generated from `rules.mjs` so the book cannot drift from the code |
|
||||
<!-- box:end -->
|
||||
|
||||
@@ -179,7 +180,7 @@ The build runs all three guards before it writes anything:
|
||||
|
||||
<!-- guards:start -->
|
||||
```
|
||||
check-rules: OK — 87 rules, 15 files scanned, 3 aliases + 41 constant sets checked, 275 formulas verified
|
||||
check-rules: OK — 87 rules, 16 files scanned, 3 aliases + 41 constant sets checked, 275 formulas verified
|
||||
check-kits: OK — 25 roles, 10 trades, 218 catalogue items, every kit key resolves, every posting can use what it carries, every loadout distinct
|
||||
check-lang: OK — en.json, 926 keys, no leaf/branch collisions
|
||||
check-behaviour: OK — 28 behavioural tests
|
||||
|
||||
@@ -4901,3 +4901,43 @@ should sit *above* executable evidence rather than instead of it. Every numbered
|
||||
that can be reproduced without a browser now has a test. Those that cannot — anything
|
||||
inside the generators, the sheets or the contact engine — are named in the test file's
|
||||
header as out of its reach, so the suite does not look more complete than it is.
|
||||
|
||||
## PAPER WINDOW — the starter scenario, as a Foundry Adventure
|
||||
|
||||
Codex's six-player introductory case is now in the system as an importable scenario
|
||||
module. **Adventure**, not a journal: a scenario that arrives as nine loose documents a
|
||||
GM has to assemble is a scenario that gets read rather than run.
|
||||
|
||||
`ringbrp.starter` contains one Adventure holding:
|
||||
|
||||
* the **GM scenario** in twelve pages, in running order;
|
||||
* the **seven player handouts** as their own journal at ownership OBSERVER, so they can
|
||||
be revealed one at a time without the GM changing permissions on seven pages before
|
||||
the session — the GM journal stays hidden;
|
||||
* the **six pregens**, built through the same `buildActor` path the shipped pregens
|
||||
use, so they arrive with full skill lists, kit, hit points and linked tokens;
|
||||
* the **cast** — Evelyn Vale, both Lorna Vales, Gareth Moss and the Cancellation Man —
|
||||
as statblocks a GM can drag onto a scene;
|
||||
* the **Borrowed Authority** as a real credential item with scope, Trust 2 and its three
|
||||
red flags, rather than a paragraph in the brief;
|
||||
* the **case file** already at Containment 8, Resources 8, Clearance 6 with its four
|
||||
phases loaded at the scenario's stated difficulties and modifiers.
|
||||
|
||||
**The pregens are fixed, not rolled.** Ratings sit at the middle of each band rather
|
||||
than being generated, because a pregen that varies between installs is not a pregen and
|
||||
six tables running the starter should see the same six agents. Verified after a live
|
||||
import: Nia carries the team's highest Tradecraft at 53 as the text requires, Callum's
|
||||
riot shield is **slung** so raising it is still the player's decision, and the three
|
||||
probationers show the trade/induction split the scenario is built to teach — Elin
|
||||
Medicine 58 against an induction of 26, Owen Electronics 58, Sennen Sleight of Hand 58.
|
||||
|
||||
The expansion from a posting or trade into a full sheet reuses the register and the
|
||||
induction rule rather than restating either, so the pregens cannot drift from the
|
||||
generator: change `TRADE_BANDS` and the starter's doctor changes with it.
|
||||
|
||||
**Verified by importing it rather than by building it.** The pack builds, the Adventure
|
||||
is well formed, the import completes with no errors, the case roster resolves through
|
||||
stable keys after import (raw ids do not survive one), the handouts come in
|
||||
player-visible and the GM text does not, and **phase one runs straight out of the box** —
|
||||
Nia leading the cordon on Tradecraft 53. Then everything imported was deleted again,
|
||||
which the pack does not notice.
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000002
|
||||
MANIFEST-000004
|
||||
|
||||
+5
-1
@@ -1 +1,5 @@
|
||||
2026/08/11-22:56:53.172229 172e3b000 Delete type=3 #1
|
||||
2026/08/11-23:23:08.314417 1742cf000 Recovering log #3
|
||||
2026/08/11-23:23:08.314570 1742cf000 Level-0 table #5: started
|
||||
2026/08/11-23:23:08.314789 1742cf000 Level-0 table #5: 4591 bytes OK
|
||||
2026/08/11-23:23:08.315089 1742cf000 Delete type=0 #3
|
||||
2026/08/11-23:23:08.315117 1742cf000 Delete type=3 #2
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
2026/08/11-23:22:30.827615 17117f000 Delete type=3 #1
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000002
|
||||
MANIFEST-000004
|
||||
|
||||
@@ -1 +1,5 @@
|
||||
2026/08/11-22:56:53.204356 173647000 Delete type=3 #1
|
||||
2026/08/11-23:23:08.332681 174adb000 Recovering log #3
|
||||
2026/08/11-23:23:08.332779 174adb000 Level-0 table #5: started
|
||||
2026/08/11-23:23:08.332918 174adb000 Level-0 table #5: 4129 bytes OK
|
||||
2026/08/11-23:23:08.333190 174adb000 Delete type=0 #3
|
||||
2026/08/11-23:23:08.333236 174adb000 Delete type=3 #2
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
2026/08/11-23:22:30.870148 17198b000 Delete type=3 #1
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
-1
@@ -1 +1 @@
|
||||
MANIFEST-000002
|
||||
MANIFEST-000004
|
||||
|
||||
+5
-1
@@ -1 +1,5 @@
|
||||
2026/08/11-22:56:53.174127 172e3b000 Delete type=3 #1
|
||||
2026/08/11-23:23:08.316151 174adb000 Recovering log #3
|
||||
2026/08/11-23:23:08.316320 174adb000 Level-0 table #5: started
|
||||
2026/08/11-23:23:08.316628 174adb000 Level-0 table #5: 31614 bytes OK
|
||||
2026/08/11-23:23:08.316965 174adb000 Delete type=0 #3
|
||||
2026/08/11-23:23:08.317018 174adb000 Delete type=3 #2
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
2026/08/11-23:22:30.829491 170973000 Delete type=3 #1
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
-1
@@ -1 +1 @@
|
||||
MANIFEST-000002
|
||||
MANIFEST-000004
|
||||
|
||||
+5
-1
@@ -1 +1,5 @@
|
||||
2026/08/11-22:56:53.190267 173e53000 Delete type=3 #1
|
||||
2026/08/11-23:23:08.298312 174adb000 Recovering log #3
|
||||
2026/08/11-23:23:08.300367 174adb000 Level-0 table #5: started
|
||||
2026/08/11-23:23:08.301985 174adb000 Level-0 table #5: 225945 bytes OK
|
||||
2026/08/11-23:23:08.302352 174adb000 Delete type=0 #3
|
||||
2026/08/11-23:23:08.302416 174adb000 Delete type=3 #2
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
2026/08/11-23:22:30.845061 17198b000 Delete type=3 #1
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000002
|
||||
MANIFEST-000004
|
||||
|
||||
+5
-1
@@ -1 +1,5 @@
|
||||
2026/08/11-22:56:53.198465 172e3b000 Delete type=3 #1
|
||||
2026/08/11-23:23:08.309911 1742cf000 Recovering log #3
|
||||
2026/08/11-23:23:08.310322 1742cf000 Level-0 table #5: started
|
||||
2026/08/11-23:23:08.310473 1742cf000 Level-0 table #5: 3295 bytes OK
|
||||
2026/08/11-23:23:08.310750 1742cf000 Delete type=0 #3
|
||||
2026/08/11-23:23:08.310794 1742cf000 Delete type=3 #2
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
2026/08/11-23:22:30.862697 17198b000 Delete type=3 #1
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000002
|
||||
MANIFEST-000004
|
||||
|
||||
+5
-1
@@ -1 +1,5 @@
|
||||
2026/08/11-22:56:53.180591 173647000 Delete type=3 #1
|
||||
2026/08/11-23:23:08.294604 174adb000 Recovering log #3
|
||||
2026/08/11-23:23:08.295663 174adb000 Level-0 table #5: started
|
||||
2026/08/11-23:23:08.296163 174adb000 Level-0 table #5: 58792 bytes OK
|
||||
2026/08/11-23:23:08.296520 174adb000 Delete type=0 #3
|
||||
2026/08/11-23:23:08.296610 174adb000 Delete type=3 #2
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
2026/08/11-23:22:30.835678 17198b000 Delete type=3 #1
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
-1
@@ -1 +1 @@
|
||||
MANIFEST-000002
|
||||
MANIFEST-000004
|
||||
|
||||
+5
-1
@@ -1 +1,5 @@
|
||||
2026/08/11-22:56:53.202660 17465f000 Delete type=3 #1
|
||||
2026/08/11-23:23:08.320015 175af3000 Recovering log #3
|
||||
2026/08/11-23:23:08.320173 175af3000 Level-0 table #5: started
|
||||
2026/08/11-23:23:08.320528 175af3000 Level-0 table #5: 33474 bytes OK
|
||||
2026/08/11-23:23:08.320923 175af3000 Delete type=0 #3
|
||||
2026/08/11-23:23:08.320978 175af3000 Delete type=3 #2
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
2026/08/11-23:22:30.868156 17117f000 Delete type=3 #1
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000002
|
||||
MANIFEST-000004
|
||||
|
||||
+5
-1
@@ -1 +1,5 @@
|
||||
2026/08/11-22:56:53.165752 173647000 Delete type=3 #1
|
||||
2026/08/11-23:23:08.305494 1742cf000 Recovering log #3
|
||||
2026/08/11-23:23:08.305911 1742cf000 Level-0 table #5: started
|
||||
2026/08/11-23:23:08.306128 1742cf000 Level-0 table #5: 7590 bytes OK
|
||||
2026/08/11-23:23:08.306405 1742cf000 Delete type=0 #3
|
||||
2026/08/11-23:23:08.306467 1742cf000 Delete type=3 #2
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
2026/08/11-23:22:30.820649 172197000 Delete type=3 #1
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
-1
@@ -1 +1 @@
|
||||
MANIFEST-000002
|
||||
MANIFEST-000004
|
||||
|
||||
+5
-1
@@ -1 +1,5 @@
|
||||
2026/08/11-22:56:53.196772 17465f000 Delete type=3 #1
|
||||
2026/08/11-23:23:08.328983 1752e7000 Recovering log #3
|
||||
2026/08/11-23:23:08.329262 1752e7000 Level-0 table #5: started
|
||||
2026/08/11-23:23:08.329521 1752e7000 Level-0 table #5: 16892 bytes OK
|
||||
2026/08/11-23:23:08.329805 1752e7000 Delete type=0 #3
|
||||
2026/08/11-23:23:08.329838 1752e7000 Delete type=3 #2
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
2026/08/11-23:22:30.860796 17117f000 Delete type=3 #1
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
MANIFEST-000004
|
||||
@@ -0,0 +1,5 @@
|
||||
2026/08/11-23:23:08.324024 1752e7000 Recovering log #3
|
||||
2026/08/11-23:23:08.325074 1752e7000 Level-0 table #5: started
|
||||
2026/08/11-23:23:08.325775 1752e7000 Level-0 table #5: 89206 bytes OK
|
||||
2026/08/11-23:23:08.326188 1752e7000 Delete type=0 #3
|
||||
2026/08/11-23:23:08.326248 1752e7000 Delete type=3 #2
|
||||
@@ -0,0 +1 @@
|
||||
2026/08/11-23:22:30.856844 17117f000 Delete type=3 #1
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000002
|
||||
MANIFEST-000004
|
||||
|
||||
+5
-1
@@ -1 +1,5 @@
|
||||
2026/08/11-22:56:53.194787 17465f000 Delete type=3 #1
|
||||
2026/08/11-23:23:08.330955 1742cf000 Recovering log #3
|
||||
2026/08/11-23:23:08.331078 1742cf000 Level-0 table #5: started
|
||||
2026/08/11-23:23:08.331226 1742cf000 Level-0 table #5: 3739 bytes OK
|
||||
2026/08/11-23:23:08.331550 1742cf000 Delete type=0 #3
|
||||
2026/08/11-23:23:08.331583 1742cf000 Delete type=3 #2
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
2026/08/11-23:22:30.849798 17117f000 Delete type=3 #1
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000002
|
||||
MANIFEST-000004
|
||||
|
||||
+5
-1
@@ -1 +1,5 @@
|
||||
2026/08/11-22:56:53.168626 17465f000 Delete type=3 #1
|
||||
2026/08/11-23:23:08.307829 174adb000 Recovering log #3
|
||||
2026/08/11-23:23:08.308163 174adb000 Level-0 table #5: started
|
||||
2026/08/11-23:23:08.308314 174adb000 Level-0 table #5: 5770 bytes OK
|
||||
2026/08/11-23:23:08.308647 174adb000 Delete type=0 #3
|
||||
2026/08/11-23:23:08.308699 174adb000 Delete type=3 #2
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
2026/08/11-23:22:30.823417 172197000 Delete type=3 #1
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
MANIFEST-000002
|
||||
MANIFEST-000004
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user