Files
RingBRP/system.json
T
slaguru666andClaude Opus 5 5aaae186e0 A fumbled relief attempt puts a point on
Trying to steady somebody and making it worse is the most familiar thing on that
list, and until now it was the only outcome that cost nothing.

Done as a NEGATIVE relief rather than a second code path: panicReliefFor returns
-1 on a fumble, and easePanic already subtracts what it is given, so subtracting
a negative raises the track. One number, one direction, no branch that could
drift from the other. The clamp still holds — fumbling at 5 stays at 5.

The chat card had to be told, because otherwise it prints the word "Psychology"
over a number that has just gone UP and the table reads that as a bug rather than
as the rule. It now leads with a red FUMBLED tag.

Guarded three ways: a spot-check in check-rules for the -1 itself, and two
behaviour tests — one that the sign survives easePanic's subtraction and
actually raises the track, one that it cannot push past the top. A test on the
constant alone would have passed even if easePanic had healed on a fumble.

Verified live: 2 → fumble → 3 → success → 2 → special → 0, and a fumble at 5
staying at 5, with the cards reading correctly.

Version 1.1.2.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 23:25:46 +01:00

232 lines
5.2 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.1.2",
"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": "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": [
"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"
}