tools/playthrough.mjs exists to show a reader why a measured number is what it is. I cited it to another session — read seed 2, see the wipe the 45% row is made of — and the reproduction failed in front of them. They reported different outcomes at both seeds and guessed the cause correctly from outside: the two tools were not drawing from the same stream. They were not. simulate.mjs used a private mulberry32 makeRng; playthrough.mjs had its own LCG written to look like it. Both deterministic, both reproducible alone, and "seed 2" named a different fight in each — which breaks the only thing the tool is for. Its own comment claimed a seed here names the same fight there. check-focus carried a third copy of that LCG, so the two guards described the same game with different dice. makeRng is exported and both files use it. A playthrough seed is now exactly the first fight of simulate.mjs --seed <n>: --runs 1 --seed 2 and the playthrough give 9 rounds, 4 of 4 down, 1 dead, both. The other half was my citation rather than the code: the command I sent omitted --mode, so it plays both targeting arms and prints two fights. They read the last line, I quoted the first. The summary line now names the arm. check-focus re-recorded under the shared stream; figures move a point or two. What it buys is that the bimodality analysis now reproduces the published means exactly — 2.31, 3.03, 0.40, 0.42 against the four rows CLEAN GROUND publishes. Under the old LCG it agreed to within a decimal, which looked like corroboration and was two experiments landing near each other. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
240 lines
5.5 KiB
JSON
240 lines
5.5 KiB
JSON
{
|
|
"id": "ringbrp",
|
|
"title": "The Custodians",
|
|
"description": "A Basic Roleplaying game of agents who cross the crossing to contain what should not be there — and who come back a little less from here each time.",
|
|
"version": "1.8.1",
|
|
"compatibility": {
|
|
"minimum": 13,
|
|
"verified": "14.364"
|
|
},
|
|
"authors": [
|
|
{
|
|
"name": "Tim Evans (slaguru666)"
|
|
}
|
|
],
|
|
"esmodules": [
|
|
"ringbrp.mjs"
|
|
],
|
|
"styles": [
|
|
"styles/ringbrp.css"
|
|
],
|
|
"languages": [
|
|
{
|
|
"lang": "en",
|
|
"name": "English",
|
|
"path": "lang/en.json"
|
|
}
|
|
],
|
|
"socket": false,
|
|
"initiative": "@characteristics.dex.value",
|
|
"grid": {
|
|
"distance": 3,
|
|
"units": "m"
|
|
},
|
|
"primaryTokenAttribute": "hp",
|
|
"secondaryTokenAttribute": null,
|
|
"packs": [
|
|
{
|
|
"name": "pregens",
|
|
"label": "The Custodians · Agents",
|
|
"path": "packs/pregens",
|
|
"type": "Actor",
|
|
"system": "ringbrp",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "npcs",
|
|
"label": "The Custodians · Natives & Threats",
|
|
"path": "packs/npcs",
|
|
"type": "Actor",
|
|
"system": "ringbrp",
|
|
"ownership": {
|
|
"PLAYER": "NONE",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "skills",
|
|
"label": "The Custodians · Skill List",
|
|
"path": "packs/skills",
|
|
"type": "Item",
|
|
"system": "ringbrp"
|
|
},
|
|
{
|
|
"name": "talents",
|
|
"label": "The Custodians · Talents",
|
|
"path": "packs/talents",
|
|
"type": "Item",
|
|
"system": "ringbrp",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "powers",
|
|
"label": "The Custodians · The Quiet Arts",
|
|
"path": "packs/powers",
|
|
"type": "Item",
|
|
"system": "ringbrp",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
},
|
|
{
|
|
"name": "weapons",
|
|
"label": "The Custodians · Weapons",
|
|
"path": "packs/weapons",
|
|
"type": "Item",
|
|
"system": "ringbrp"
|
|
},
|
|
{
|
|
"name": "armour",
|
|
"label": "The Custodians · Armour",
|
|
"path": "packs/armour",
|
|
"type": "Item",
|
|
"system": "ringbrp"
|
|
},
|
|
{
|
|
"name": "gear",
|
|
"label": "The Custodians · Gear & Devices",
|
|
"path": "packs/gear",
|
|
"type": "Item",
|
|
"system": "ringbrp"
|
|
},
|
|
{
|
|
"name": "vehicles",
|
|
"label": "The Custodians · Transport",
|
|
"path": "packs/vehicles",
|
|
"type": "Item",
|
|
"system": "ringbrp"
|
|
},
|
|
{
|
|
"name": "primer",
|
|
"label": "The Custodians · Read this first (players)",
|
|
"path": "packs/primer",
|
|
"type": "JournalEntry",
|
|
"system": "ringbrp"
|
|
},
|
|
{
|
|
"name": "rules",
|
|
"label": "The Custodians · Rules",
|
|
"path": "packs/rules",
|
|
"type": "JournalEntry",
|
|
"system": "ringbrp"
|
|
},
|
|
{
|
|
"name": "throughtrain",
|
|
"label": "The Custodians · THROUGH TRAIN (crossing starter)",
|
|
"path": "packs/throughtrain",
|
|
"type": "Adventure",
|
|
"system": "ringbrp"
|
|
},
|
|
{
|
|
"name": "starter",
|
|
"label": "The Custodians · BLACK PLATFORM (starter case)",
|
|
"path": "packs/starter",
|
|
"type": "Adventure",
|
|
"system": "ringbrp"
|
|
},
|
|
{
|
|
"name": "lastadmission",
|
|
"label": "The Custodians · LAST ADMISSION (prologue)",
|
|
"path": "packs/lastadmission",
|
|
"type": "Adventure",
|
|
"system": "ringbrp"
|
|
},
|
|
{
|
|
"name": "prologue",
|
|
"label": "The Custodians · OPEN DAY (prologue)",
|
|
"path": "packs/prologue",
|
|
"type": "Adventure",
|
|
"system": "ringbrp"
|
|
},
|
|
{
|
|
"name": "slice",
|
|
"label": "The Custodians · The Ilfracombe Crossing",
|
|
"path": "packs/slice",
|
|
"type": "JournalEntry",
|
|
"system": "ringbrp"
|
|
},
|
|
{
|
|
"name": "tables",
|
|
"label": "The Custodians · Site & Hazard Tables",
|
|
"path": "packs/tables",
|
|
"type": "RollTable",
|
|
"system": "ringbrp"
|
|
},
|
|
{
|
|
"name": "expedition",
|
|
"label": "The Custodians · Case File: ILFRACOMBE",
|
|
"path": "packs/expedition",
|
|
"type": "Actor",
|
|
"system": "ringbrp",
|
|
"ownership": {
|
|
"PLAYER": "OBSERVER",
|
|
"ASSISTANT": "OWNER"
|
|
}
|
|
}
|
|
],
|
|
"packFolders": [
|
|
{
|
|
"name": "The Custodians",
|
|
"sorting": "m",
|
|
"color": "#18268d",
|
|
"folders": [
|
|
{
|
|
"name": "Scenarios",
|
|
"sorting": "m",
|
|
"packs": [
|
|
"throughtrain",
|
|
"lastadmission",
|
|
"prologue",
|
|
"starter",
|
|
"expedition",
|
|
"slice"
|
|
]
|
|
},
|
|
{
|
|
"name": "Characters",
|
|
"sorting": "m",
|
|
"packs": [
|
|
"pregens",
|
|
"npcs"
|
|
]
|
|
},
|
|
{
|
|
"name": "Equipment",
|
|
"sorting": "m",
|
|
"packs": [
|
|
"weapons",
|
|
"armour",
|
|
"gear",
|
|
"vehicles"
|
|
]
|
|
},
|
|
{
|
|
"name": "Rules & reference",
|
|
"sorting": "m",
|
|
"packs": [
|
|
"primer",
|
|
"rules",
|
|
"skills",
|
|
"talents",
|
|
"powers",
|
|
"tables"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"url": "https://gitea.timevans.uk/slaguru666/RingBRP",
|
|
"manifest": "https://gitea.timevans.uk/slaguru666/RingBRP/raw/branch/main/system.json",
|
|
"download": "https://gitea.timevans.uk/slaguru666/RingBRP/archive/main.zip",
|
|
"license": "LICENSE.txt"
|
|
}
|