tevansandClaude Fable 5 6b63a95dc2 Ringworld 0.5.0: v13/v14 compatibility, Ringworld '84 theme, combat automation
- Foundry v13/v14 compatibility (verified on 14.364)
- Complete "Ringworld '84" retheme: CSS custom properties, warm
  space-black + bronze + ring-arc amber palette, uniform across sheets,
  dialogs, chat cards, hit-location picker, and impulse HUD
- Fix HP damage evaporating on re-prepare: maximums always derived,
  current values source-authoritative, with a one-time world migration
- Ammunition tracking: per-attack consumption, reload button, ammo
  badge; empty weapons block attacks
- Energy weapons auto-link a carried power pack instead of failing
- Special Success rolls damage dice twice; fumbles flag GM adjudication
  (both toggleable world settings)
- Defender Dodge prompt before damage (special hits need special dodge)
- Damage Mod and derived rolls always recompute; shown read-only
- Creature sheet rebuilt to full parity: characteristics, derived
  rolls, body-schema hit grid with AP totals, weapons/armor/skills
- Seeded "Ringworld GM Reference" journal (outcomes, impulses, attack
  workflow, wounds, 1984 quirks, quick start)
- Shared characteristic-check dialog between explorer and creature

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 23:41:33 +01:00

Ringworld Foundry System (v13-v14)

Ringworld is a custom Foundry VTT game system for the classic 1984 Chaosium percentile RPG: BRP-style roll-under checks, seven hit locations with location armor, energy- and ammunition-tracked weapons, and the Ringworld impulse combat clock.

Version 0.5.0 is a full rework: Foundry v13/v14 compatibility, a uniform "Ringworld '84" visual theme (warm space-black, bronze structure, single ring-arc amber accent — inspired by Larry Niven's Ringworld and the original boxed set), combat automation for the system's quirks, and a seeded GM Reference journal.

Online Install (GitHub)

Repository:

System manifest URL:

  • https://raw.githubusercontent.com/slaguru666/Ringworld/main/system.json

Companion content module manifest URL:

  • https://raw.githubusercontent.com/slaguru666/Ringworld/main/ringworld-content/module.json

Starter world data archive:

  • https://raw.githubusercontent.com/slaguru666/Ringworld/main/dist/ringworld-starter-world.zip

What's in 0.5.0

Visual:

  • Complete "Ringworld '84" retheme driven by CSS custom properties: one palette across actor sheets, item sheets, dialogs, chat cards, the hit-location picker, and the impulse HUD. No neon.
  • Legible dark dialogs, amber active tabs, monospace numerals, uppercase display headers.

Combat automation:

  • Special Success rolls damage dice twice (world setting Automate Special Success Damage).
  • Fumbles flag a GM adjudication note on the chat card.
  • Defender Dodge prompt before damage: a successful dodge evades a normal hit; only a special dodge evades a special hit (world setting Prompt Defender Dodge).
  • Ammunition is consumed per attack (Ammo Loaded / Ammo Max on weapons), with a Reload button and ammo badge on sheet weapon rows. Empty weapons block the attack.
  • Energy weapons auto-link to the best carried power pack when none is linked, instead of failing the attack.

Correctness fixes:

  • Hit point damage now persists reliably: maximums are always derived (CON + MAS), current values are source-authoritative, and a one-time migration preserves what tables saw under the old logic. (Previously damage could silently heal back to full on unlinked tokens and fresh actors.)
  • Damage Mod and derived rolls (Health/Reasoning/Luck/Dodge) always recompute from characteristics and can no longer go stale; they display read-only.

GM experience:

  • A Ringworld GM Reference journal is seeded into every world: percentile outcomes, the impulse clock, the attack workflow, wound effects, the 1984 quirks (MAS, skill pools, gravity encumbrance, power packs), and a quick-start checklist.
  • The creature sheet is now a full monster sheet: characteristics with multiplier checks, derived rolls, body-schema hit-location grid with stacked AP totals, weapons with ammo/reload, armor, skills, conditions reset, and portrait picker.

Status

Implemented:

  • Actor types: explorer, creature, vehicle (stub)
  • Item types: skill, weapon, armor, gear, species, pursuit
  • Percentile checks with Special Success and Fumble
  • 1d20 hit location roll with per-species body schemas (humanoid, dolphin, puppeteer, trinoc, bandersnatchi, kzinti)
  • Weapon workflow: aim states, modifiers, ammo/energy consumption, defender dodge, hit location, armor stacking, damage to location + general HP
  • Auto conditions at location 0 or less (prone, unconscious, limb unusable flags), synced to token status icons
  • Impulse combat tracker (Action Ranking clock) with floating HUD
  • World catalog seeding: species, 55 base skills, 18 pursuits, weapons, armor, gear
  • Character tools: gravity-based characteristic rolls, random explorer generation, point-buy character builder

Backlog:

  • Vehicle combat and computer subsystems
  • Compendium packs (content currently ships via the idempotent world seeder)
  • Localization (UI strings are hardcoded English)

Install / Build

From this project folder:

npm install
npm run build

Build output:

  • module/ringworld.mjs
  • styles/ringworld.css

Install into a local Foundry data directory (macOS example):

rsync -a --delete \
  --exclude node_modules --exclude .git --exclude src --exclude dist \
  --exclude world-data --exclude seeds --exclude ringworld-content \
  ./ "$HOME/Library/Application Support/FoundryVTT/Data/systems/ringworld/"

Using the system

  1. In Foundry, create a world using the Ringworld system. The catalog and GM Reference journal seed automatically on first GM load.
  2. Read the Ringworld GM Reference journal for the rules the system automates.
  3. Create an Explorer actor (or use Create Random Explorer in the Actors directory).
  4. Target a token, then click Use on a weapon and follow the prompts.
  5. For projectile weapons, set Ammo Max on the weapon and use the Reload button on the sheet.
  6. Check System Settings for the automation toggles.

Rules implemented

  • Roll-under percentile checks (1d100 <= target)
  • Special Success: roll <= floor(target / 5) — damage dice doubled when automated
  • Fumble: target < 50: roll 96-100; target >= 50: roll 100
  • Ranged aim states: unaimed quarter skill, partial aim half, full aim full skill
  • Dodge: DEX x5; success evades a normal hit, special dodge required against a special hit
  • Hit locations (humanoid 1d20): 01-03 R Leg | 04-06 L Leg | 07-10 Abdomen | 11-15 Chest | 16-17 R Arm | 18-19 L Arm | 20 Head
  • Locational damage also reduces general HP (same final damage)
  • Armor subtracts 1:1 and stacks across overlapping covered pieces
  • General HP = CON + MAS; damage modifier from STR + MAS
  • Encumbrance vs STR with gravity multipliers (light x0.5, heavy x2)

Seeds

seeds/ contains starter data:

  • base-skills.json full base skill list
  • example-items.json sample skill/weapon/armor/power pack
  • example-explorer.json sample explorer with items

Notes

  • Content is numeric/stat-driven only. No long rulebook text is embedded.
  • world-data/ contains a starter world shell and packaging files for server transfer.
  • npm run typecheck reports pre-existing errors from the v12 types package against v13/v14 APIs; the vite build is the authoritative check.
S
Description
No description provided
Readme
644 KiB
Languages
TypeScript 45.3%
JavaScript 33.6%
Handlebars 12.4%
SCSS 8.7%