Files
the-sunken-reach/docs/MONSTERS.md
T
joshuaandClaude Opus 5.5 4a6a09bae8 V1.1.0: gear levels, encounter overhaul, guided builder, trading, docs
Characters
- Builder: pick-then-Next on every step with live preview, Back button,
  plain-language help throughout, and "Suggest for me" for ability scores
- Motivation is picked from a list; new steps for special abilities,
  background and appearance, all composed from fixed lists and DM-only
  to edit afterwards
- Copy a character to another campaign
- Characters can give gold, weapons, items and spells to each other
- Money tracker: gold only changes through a logged ledger
- Fixes: level/XP/location are DM-only, HP stays within 0..max, physical
  dice ability rolls, every die is rolled once

Gear
- DM-managed item pool; weapons, items and spells are handed out by the DM
- Starting-option flag per pool entry
- Gear levels 1-9 per held copy with a damage ladder, growth rate and
  starting level; spells gated by spell level with a fixed damage value
- Spell library carries default damage; damage is picked from a list

Encounters
- Battle and NPC quest modes, turn tracking, scene description, DM notes
- NPCs, richer combatant cards, conditions from a list
- Rewards (gold, weapons, items) lined up and awarded, with gold splitting
- Character HP is shared between the sheet and the encounter
- Monster stat blocks and NPC secrets are never sent to players

Other
- Dice roller on every page
- Docs for characters, weapons, spells, items, encounters, monsters and
  NPCs, with full lists generated from the data (npm run docs:lists)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 16:47:28 +02:00

10 KiB
Raw Permalink Blame History

Monsters

How monsters work in this app: the campaign's monster list, the built-in bestiary, and how monsters behave in an encounter.

This describes the code as it stands. The built-in list is backend/src/game/data/monstersLibrary.js. Related: ENCOUNTERS.md, NPCS.md.

Contents

  1. The basics
  2. What a monster holds
  3. Managing monsters
  4. The built-in bestiary
  5. Monsters in encounters
  6. What players see
  7. Permissions
  8. What is not modelled

1. The basics

  • Every campaign has its own monster list. Only the DM can see or change it.
  • A monster in the list is a template. Each time it is added to an encounter it becomes a separate combatant with its own hit points.
  • Stat blocks are the DM's. Players see a monster only as a name and a health bar in an encounter.

2. What a monster holds

Field What it is
Name Up to 80 characters
AC Armor Class
Max HP Hit points each copy starts an encounter with
Speed In feet. 30 unless set otherwise
Ability scores STR, DEX, CON, INT, WIS, CHA. 10 unless set otherwise
Attack bonus Added to the monster's attack roll
Damage Dice for its main attack, e.g. 1d6+2
Challenge rating A rough danger rating, e.g. 1/4, 2
Special trait A short note such as "Pack Tactics"
Notes Anything else: what it attacks with, how it behaves

None of these are calculated or used in formulas. They are reference numbers shown to the DM during a fight. A monster's ability modifiers are worked out from its scores for display only.

3. Managing monsters

The list is the "Monsters" card on the campaign page (DM only).

  • Adding by hand: "+ Add Monster" asks for name, AC, max HP, attack bonus and damage. Speed is set to 30 and every ability score to 10; challenge rating, trait and notes are left empty.
  • Adding from the bestiary: "📚 From Library" copies a complete stat block.
  • Changing: there is no edit form (the API accepts changes, but no screen offers them). Remove and re-add, or add from the library.
  • Removing: the ✕ button, immediately, with no confirmation. Copies already in encounters stay there with their name and HP, but lose their stat block.

4. The built-in bestiary

38 monsters, from harmless to dangerous. Each library row shows challenge rating, AC, HP, attack and damage, plus its trait and notes, before you add it. Adding copies the monster into your campaign; the copy is yours, and later changes to the library do not affect it.

The full bestiary, weakest first. "Attack" is the bonus added to the monster's attack roll.

This list is written from the app's own data by npm run docs:lists (in /backend). Re-run it after changing the data; do not edit the list by hand.

Monster CR AC HP Speed Attack Damage STR / DEX / CON / INT / WIS / CHA Trait Notes
Commoner 0 10 4 30 +2 1d4 10 / 10 / 10 / 10 / 10 / 10 — An ordinary villager, armed with a club.
Giant Rat 1/8 12 7 30 +4 1d4+2 7 / 15 / 11 / 2 / 10 / 4 Pack Tactics Bite, piercing damage.
Kobold 1/8 12 5 30 +4 1d4+2 7 / 15 / 9 / 8 / 7 / 8 Pack Tactics, Sunlight Sensitivity Dagger, piercing damage.
Bandit 1/8 12 11 30 +3 1d6+1 11 / 12 / 12 / 10 / 10 / 10 — Scimitar, slashing damage.
Cultist 1/8 12 9 30 +3 1d6+1 11 / 12 / 10 / 10 / 11 / 10 Dark Devotion Scimitar, slashing damage.
Stirge 1/8 12 2 10 +5 1d4 4 / 16 / 11 / 2 / 8 / 6 Blood Drain Proboscis; attaches and drains hp on a hit.
Goblin 1/4 15 7 30 +4 1d6+2 8 / 14 / 10 / 10 / 8 / 8 Nimble Escape Scimitar, slashing damage.
Skeleton 1/4 13 13 30 +4 1d6+2 10 / 14 / 15 / 6 / 8 / 5 Undead — vulnerable to bludgeoning Shortsword, piercing damage.
Zombie 1/4 8 22 20 +3 1d6+1 13 / 6 / 16 / 3 / 6 / 5 Undead Fortitude Slam, bludgeoning damage.
Wolf 1/4 13 11 40 +4 2d4+2 12 / 15 / 12 / 3 / 12 / 6 Pack Tactics Bite; can knock prone on a hit.
Giant Wolf Spider 1/4 13 11 40 +3 1d6+1 12 / 16 / 13 / 3 / 12 / 4 Poison bite Spider climb; bite deals poison damage.
Scout 1/2 13 16 30 +4 1d6+2 11 / 14 / 12 / 11 / 13 / 11 Keen Hearing and Sight Shortsword or longbow.
Orc 1/2 13 15 30 +5 1d12+3 16 / 12 / 16 / 7 / 11 / 10 Aggressive Greataxe, slashing damage.
Hobgoblin 1/2 18 11 30 +3 1d8+1 13 / 12 / 12 / 10 / 10 / 9 Martial Advantage Longsword, slashing damage.
Thug 1/2 11 32 30 +4 1d6+2 15 / 11 / 14 / 10 / 10 / 11 Pack Tactics Mace, bludgeoning damage.
Gnoll 1/2 15 22 30 +3 1d8+1 14 / 12 / 11 / 6 / 10 / 7 Rampage Spear, piercing damage.
Lizardfolk 1/2 15 22 30 +3 1d6+1 15 / 10 / 13 / 7 / 12 / 7 Hold Breath Club or spear, piercing damage.
Black Bear 1/2 11 19 40 +3 1d6+2 15 / 10 / 14 / 2 / 12 / 7 Keen Smell Bite and claw attacks.
Giant Spider 1 14 26 30 +5 1d8+3 14 / 16 / 12 / 2 / 11 / 4 Web, poison bite Bite deals piercing plus poison damage.
Ghoul 1 12 22 30 +2 2d6+2 13 / 15 / 10 / 7 / 10 / 6 Claws paralyze on a hit Undead.
Dire Wolf 1 14 37 50 +5 2d6+3 17 / 15 / 15 / 3 / 12 / 7 Pack Tactics Bite; can knock prone on a hit.
Brown Bear 1 11 34 40 +5 1d8+5 19 / 10 / 16 / 2 / 13 / 7 Keen Smell Multiattack: bite and claws.
Harpy 1 11 38 20 +4 2d4+2 12 / 13 / 12 / 7 / 10 / 13 Luring Song Flying speed 40 ft; claws deal slashing damage.
Ochre Jelly 2 8 45 10 +5 2d6+3 15 / 6 / 14 / 2 / 6 / 1 Amorphous, splits when damaged by slashing Pseudopod, bludgeoning plus acid damage.
Ogre 2 11 59 40 +6 2d8+4 19 / 8 / 16 / 5 / 7 / 7 — Greatclub, bludgeoning damage.
Griffon 2 12 59 30 +6 2d6+4 18 / 15 / 16 / 2 / 13 / 8 Keen Sight Flying speed 80 ft; multiattack beak and claws.
Ankheg 2 14 39 30 +6 2d6+4 17 / 11 / 13 / 1 / 13 / 6 Burrow speed 10 ft; can spit acid Bite, piercing plus acid damage.
Manticore 3 14 68 30 +5 1d8+3 17 / 16 / 17 / 7 / 12 / 8 Tail spikes (ranged) Flying speed 50 ft; multiattack claws or tail spikes.
Basilisk 3 15 52 20 +5 2d6+3 16 / 8 / 15 / 2 / 8 / 7 Petrifying Gaze Bite, piercing damage.
Owlbear 3 13 59 40 +7 1d10+5 20 / 12 / 17 / 3 / 12 / 7 Keen Sight and Smell Multiattack: beak and claws.
Wight 3 14 45 30 +4 1d8+2 15 / 14 / 16 / 10 / 13 / 15 Life Drain, Sunlight Sensitivity Longsword or life-draining touch.
Werewolf 3 12 58 30 +4 1d8+2 15 / 13 / 14 / 10 / 11 / 10 Shapechanger, regeneration Bite (hybrid/wolf form) or multiattack claws + bite.
Doppelganger 3 14 52 30 +4 2d4+2 11 / 18 / 14 / 11 / 12 / 14 Shapechanger, Ambusher Multiattack slam.
Displacer Beast 3 13 85 40 +7 2d6+4 18 / 15 / 16 / 6 / 12 / 8 Displacement (attacks vs. it have disadvantage) Multiattack: two tentacles.
Ettin 4 12 85 40 +7 2d8+4 21 / 8 / 17 / 6 / 10 / 8 Two heads — advantage on Perception, can’t be surprised easily Multiattack: battleaxe and morningstar.
Hill Giant 5 13 105 40 +8 3d8+5 21 / 8 / 19 / 5 / 9 / 6 — Greatclub, bludgeoning damage.
Troll 5 15 84 30 +7 2d6+4 18 / 13 / 20 / 7 / 9 / 7 Regeneration (vulnerable to fire/acid) Multiattack: bite and two claws.
Wraith 5 13 67 0 +6 4d8+4 6 / 16 / 16 / 12 / 14 / 15 Incorporeal, life drain, flying 60 ft Undead; life drain touch attack.

5. Monsters in encounters

On an encounter page, the DM chooses "Monster" in the "Add to the scene" panel, picks one, and types its initiative.

  • The same monster can be added any number of times. Each copy has its own HP and conditions. Copies share the monster's name; the screen has no way to rename one (the API allows it).
  • A copy starts at the monster's max HP. Its HP stays between 0 and its max.
  • At 0 HP a copy is marked Down and dimmed, but keeps its place in the initiative order until the DM removes it.
  • HP belongs to the encounter: a monster starts fresh in the next one.

The DM's card for a monster shows AC, speed, attack bonus and damage at a glance, and under "details" its six ability scores with modifiers, its trait and its notes.

6. What players see

Players see Players never see
The monster's name AC, speed, attack bonus, damage
Its health bar and current/max HP Ability scores, challenge rating
Its conditions Trait and notes
Its place in the initiative order The campaign's monster list

This is enforced by the server: stat blocks are never sent to a player's browser.

Players do see a monster's exact HP numbers. If you would rather keep those secret, that is not currently possible.

7. Permissions

Action DM Players
See the monster list and stat blocks Yes No
Browse the built-in bestiary Yes Yes (it is standard reference material)
Add or remove monsters Yes No
Add a monster to an encounter Yes No
Change a monster's HP, initiative or conditions Yes No
See a monster in an encounter Everything Name, HP, conditions

8. What is not modelled

  • Multiple attacks, spells, legendary actions and resistances (use Notes)
  • Rolling a monster's attacks or damage (use the dice roller)
  • Saving throw bonuses and skills
  • Experience points for defeating monsters
  • Encounter difficulty calculated from challenge ratings
  • Monster hit dice, and rolling HP rather than using the fixed value