Files
Ringworld/README.md
T

114 lines
4.1 KiB
Markdown

# Ringworld Foundry System (v12-v13 MVP)
Ringworld is a custom Foundry VTT game system for BRP-like percentile play with hit locations, location armor, and energy-tracked weapons.
## 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`
## Status
MVP implemented:
- Actor types: `explorer`, `creature`, `vehicle` (stub)
- Item types: `skill`, `weapon`, `armor`, `gear`, `species`
- Percentile checks with `Special Success` and `Fumble`
- 1d20 hit location roll with Ringworld 7-location mapping
- Weapon workflow with target selection, hit location, armor subtraction, and damage to both location HP and general HP
- Auto conditions at location 0 or less (`prone`, `unconscious`, limb unusable flags)
- Armor overlap stacking across all equipped armor items covering a location
- Energy use from actor pool or linked power pack item
- World catalog seeding for Ringworld equipment, armor, weapons, gear, and species
- Character tools: roll all characteristics and random explorer generation
## Install / Build
From this project folder:
```bash
cd /Users/timevans/FoundryVTT/foundryvtt-ringworld
npm install
npm run build
```
Build output:
- `module/ringworld.mjs`
- `styles/ringworld.css`
## Foundry placement
Foundry loads systems from `.../data/systems` (or `.../Data/systems` on case-insensitive macOS paths).
Recommended live-dev symlink:
```bash
ln -s /Users/timevans/FoundryVTT/foundryvtt-ringworld /Users/timevans/FoundryVTT/data/systems/ringworld
```
If `ringworld` already exists, remove or rename it first.
## Using the system
1. In Foundry, create a world using **Ringworld** system.
2. Create an **Explorer** actor.
3. In the **Skills** tab, click **Populate Ringworld Base Skills** to add all canonical Ringworld skills.
4. Add extra custom skills or weapon items from the actor sheet as needed.
5. For energy weapons:
- Create a `gear` item with `Is Power Pack` checked.
- Set weapon `Power Source` to `Power Pack Item` and select the pack.
6. Target a token, then click **Use** on a weapon.
7. Choose hit location (or random 1d20) and confirm damage application in chat.
8. Use header tools on Explorer sheet:
- **Roll Characteristics**: rolls all characteristic values from gravity profile
- **Random Character**: random species + gravity + rolled stats + starter kit
## Catalog and Generators
- On first GM world load, the system seeds world Items with Ringworld catalog entries.
- You can reseed manually from **Items Directory** using `Seed Ringworld Items`.
- You can create a random explorer from **Actors Directory** using `Create Random Explorer`.
- If you install the companion module **Ringworld Content**, you can import everything with one button:
- **Items Directory** -> `Import Ringworld Content`
## Rules implemented for v1
- Roll-under percentile checks (`1d100 <= target`)
- Special Success: roll `<= floor(target / 5)`
- Fumble:
- target `< 50`: roll `96-100`
- target `>= 50`: roll `100`
- Hit locations (1d20):
- `01-03 Right Leg`
- `04-06 Left Leg`
- `07-10 Abdomen`
- `11-15 Chest`
- `16-17 Right Arm`
- `18-19 Left Arm`
- `20 Head`
- Locational damage also reduces general HP (same final damage)
- Armor subtracts 1:1 damage and stacks across overlapping covered armor pieces
## 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
These are JSON templates for manual import or scripted pack generation.
## Notes
- Content is numeric/stat-driven only. No long rulebook text is embedded.
- Vehicle combat and computer subsystems remain backlog.
- `world-data/` contains a starter world shell and packaging files for server transfer.