Files
RingBRP/system.json
T
slaguru666andClaude Opus 5 8627fa3536 One generator, so a citation names one fight (R-265)
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>
2026-09-13 01:11:41 +01:00

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"
}