A macOS app for running Shadowdark RPG combat encounters. Built with SwiftUI for macOS 14+.
- 3-pane combat UI — Initiative list, combatant detail, and combat log visible simultaneously
- One-click dice rolling — Attack rolls with advantage/disadvantage, auto-damage on hit, natural 20/1 detection
- Custom dice roller — Build dice pools (e.g. 2d6 + 1d8 + 3), roll with advantage/disadvantage
- Full combat logging — All actions tracked: attacks, damage, healing, conditions, initiative, turns, rounds
- PC tracking — Class, level, AC, HP, conditions, armor properties (stealth/swimming/shield)
- Monster/NPC stat blocks — Ability scores, attacks, spells, special abilities, movement
- Party persistence — Save groups of PCs as reusable parties, load into any encounter
- Monster templates — Create reusable monster/NPC stat blocks with tags for searching
- Save/load encounters — Full encounter state saved as
.sdencJSON files - Condition tracking — All Shadowdark conditions with visual badges
- Initiative management — Roll for all, auto-sort, round/turn advancement
- macOS 14.0 (Sonoma) or later
- Xcode 15+
- xcodegen (
brew install xcodegen)
xcodegen generate
open ShadowdarkTracker.xcodeprojThen build and run from Xcode (Cmd+R).
Alternatively, build from the command line:
xcodebuild -scheme ShadowdarkTracker -configuration Debug build- Add PCs using Add PC in the toolbar (or load a saved party)
- Add monsters/NPCs using Add Monster / Add NPC (or from the template library)
- Click Roll Initiative to roll for all combatants and sort the initiative list
- Use Next Turn / Next Round to advance through combat
- Select a combatant from the initiative list to view/edit their details
- Click attack buttons on monster detail views to roll attacks against target AC
- Apply damage/healing from the combatant detail panel
- Toggle conditions by clicking condition badges
The right pane includes a custom dice roller:
- Quick-add common dice (d4, d6, d8, d10, d12, d20)
- Build custom dice pools with modifiers
- Roll with normal, advantage, or disadvantage mode
All data is stored in ~/Documents/ShadowdarkTracker/:
encounters/— Saved encounter files (.sdenc)parties/— Saved party files (.sdparty)templates/— Monster/NPC template files (.sdtemplate)
This project is for personal use. Shadowdark RPG is created by The Arcane Library.