Files
Ringworld/README.md
T
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

116 lines
6.1 KiB
Markdown

# 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:
- https://github.com/slaguru666/Ringworld
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:
```bash
npm install
npm run build
```
Build output:
- `module/ringworld.mjs`
- `styles/ringworld.css`
Install into a local Foundry data directory (macOS example):
```bash
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.