Encounter Simulator: consider death saves / downed states for monsters
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- typescript
- Domain
- game-dev
Research direction
Start by reading loadScenarioCombatants.ts to trace how tracksDeathSaves is assigned, then review the existing state machine in deathSaves.ts and targeting behavior in selectAction.ts. Define how a scenario or monster entry enables the option while preserving the current monster default, and verify that downed-combatant targeting and existing death-save tests still behave correctly.
Written by the indexing model from the issue text.
Description
Summary
#5's milestone 12 added death saving throws, but deliberately scoped them to PCs only — monsters keep the original "0 HP = instant defeat" rule. This was a considered default (matches common DM table practice, and avoids every monster in a multi-monster fight individually rolling death saves for no real balance-relevant signal), not an oversight, but it's worth a standalone follow-up in case a DM wants full symmetry — e.g. to check whether a boss monster can be knocked out rather than killed, or for a homebrew "no-kill" style campaign.
Current behavior
EngineCombatant.tracksDeathSaves is set true for PCs and false for every monster/custom-creature combatant in loadScenarioCombatants.ts. The full death-save state machine (deathSaves.ts) already supports any combatant that opts in — extending it to monsters is mostly a matter of flipping that flag, not building new mechanics.
Suggested follow-up
- Make
tracksDeathSavesa per-scenario or per-monster-entry toggle instead of a hardcoded PC-only rule, defaulting to today's behavior (off for monsters) so nothing regresses. - Note from milestone 12: the targeting AI (
selectAction.ts) never deliberately targets a downed (0 HP, not yet dead) combatant, so "taking damage while already at 0 HP" is implemented and unit-tested but effectively unreachable in a real simulated fight today — worth revisiting alongside this if monster death saves are added, since it would start mattering both ways.
Low priority — the current default matches how most tables actually run monsters.
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 0
- Avg merge
- 1d 18h
- Merged PRs (30d)
- 2
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from RamonGebben/kernel-dm-toolbox
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 38/100
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 42/100
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 66/100
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 45/100
All issues in RamonGebben/kernel-dm-toolbox
Similar issues
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster no-stale P3
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulty 1/5 Under an hour Newbie friendliness 76/100
-
code-quality refactoring
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
github/gh-aw-firewall#8816 ·
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
langchain-ai/deepagents#6450 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
vercel/react-tweet#225 ·