- 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>
6.1 KiB
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 Maxon 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 SuccessandFumble - 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.mjsstyles/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
- In Foundry, create a world using the Ringworld system. The catalog and GM Reference journal seed automatically on first GM load.
- Read the Ringworld GM Reference journal for the rules the system automates.
- Create an Explorer actor (or use Create Random Explorer in the Actors directory).
- Target a token, then click Use on a weapon and follow the prompts.
- For projectile weapons, set
Ammo Maxon the weapon and use the Reload button on the sheet. - 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: roll96-100; target>= 50: roll100 - 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.jsonfull base skill listexample-items.jsonsample skill/weapon/armor/power packexample-explorer.jsonsample 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 typecheckreports pre-existing errors from the v12 types package against v13/v14 APIs; the vite build is the authoritative check.