← Back to Resources
Daggerheart GM Assistant Skill
Purpose
Help Kevbot run Daggerheart games in #roll-for-snacks Discord channel. Provide quick rules lookups, run combat encounters, track game state, and make rulings.
Core Resources
- XML Reference:
/home/kevbot/.openclaw/workspace/daggerheart-reference.xml - Quick lookup for core mechanics, adversaries, common rules
- Full Rulebook:
/home/kevbot/.openclaw/workspace/daggerheart.txt - 42,322 lines, use for detailed lookups when XML isn't enough
- Full PDF:
/home/kevbot/.openclaw/workspace/daggerheart.pdf - 358MB original source
Quick Reference Workflow
When Players Ask About Rules
- Check XML first - grep or read the reference for core mechanics
- Search full text if needed - Use grep with keywords from daggerheart.txt
- Provide clear, concise answer - Include page section if relevant
- Offer examples - Help players visualize how it works in play
Example commands:
# Find rules about Hope
grep -i "hope" /home/kevbot/.openclaw/workspace/daggerheart-reference.xml
# Find specific mechanics in full text
grep -n -A5 -B5 "keyword" /home/kevbot/.openclaw/workspace/daggerheart.txt
Core Mechanics Quick Ref
Action Rolls (Most Common)
- Formula: 2d12 (Hope die + Fear die) + Trait Modifier + other bonuses vs Difficulty
- Success: Total >= Difficulty
- Hope/Fear: Which die rolled higher matters!
- Hope higher: Player gains 1 Hope (max 6)
- Fear higher: GM gains 1 Fear, may introduce complications
- Critical Success: Natural 12 on both dice - extra benefit + Hope + clear Stress
Difficulties
- Easy: 12
- Moderate: 15
- Hard: 18
- Very Hard: 21
- Nearly Impossible: 24+
Traits
- Agility: Sprint, Leap, Maneuver
- Strength: Lift, Smash, Grapple
- Finesse: Control, Hide, Tinker
- Instinct: Perceive, Sense, Navigate
- Presence: Charm, Perform, Deceive
- Knowledge: Recall, Analyze, Comprehend
Combat Flow
- No strict initiative - Narrative spotlight, GM decides order
- Players roll for attacks - 2d12 + mods vs Difficulty
- GM rolls for adversaries - d20 + attack bonus vs PC Evasion
- Damage thresholds: Minor (1 HP), Major (2 HP), Severe (3 HP)
- Armor: Spend 1 Armor Slot to reduce damage by one threshold
Range Bands (NOT grid-based)
- Melee: Adjacent, touching
- Very Close: A few steps
- Close: Throwing distance
- Far: Shouting distance, bow range
- Very Far: Extreme range, barely visible
Running Combat Encounters
Spotlight System
- GM decides who acts when based on fiction and fairness
- Rotate spotlight between players and adversaries
- No rounds - flow naturally based on narrative
Adversary Actions
When spotlighting an adversary:
- Move within Close range and attack
- Move within Close range and use an action
- End a temporary condition
- Sprint somewhere else on battlefield
Adversary Types (Reference)
- Minion (1 HP): Fodder, defeated by any damage
- Standard (3-5 HP): Regular enemies
- Bruiser (6-7 HP): Tough frontliners
- Ranged (3-4 HP): Archers, backline
- Support (4-5 HP): Buffs/debuffs
- Leader (6-7 HP): Commands allies, often has Momentum
- Solo (8-9 HP): Boss-tier, multiple actions (Relentless)
- Horde (6+ HP): Many creatures, HP = groups
Common Adversary Features
- Relentless (X): Can be spotlighted X times per GM turn (spend Fear)
- Momentum: Gain Fear when successful attack vs PC
- Minion (X): For every X damage, defeat additional minion
- Flying: +2 Difficulty while flying
- Direct Damage: Bypasses armor, marks HP directly
GM Fear Spending
- 1 Fear: Interrupt to make a GM move, spotlight additional adversary
- 2 Fear: Activate adversary feature, summon reinforcements
- 3+ Fear: Major complications, powerful effects
GM Moves (Use when players roll with Fear or give golden opportunity)
- Reveal an unwelcome truth
- Put someone in a spot
- Deal damage
- Use an adversary/environment move
- Take away one of their things
- Make them mark Stress
- Show collateral damage
- Signal imminent threat
- Force the group to split up
- Capture someone/something important
Combat Tracking Template
When running combat, track:
=== COMBAT: [Encounter Name] ===
ADVERSARIES:
[ ] [Type] [Name] - HP: X/X | Stress: X/X | Diff: X | ATK: +X | Damage: XdX+X
Features: [List key abilities]
Notes: [Current conditions, positioning]
PLAYER CHARACTERS:
[ ] [Name] - HP: X/X | Stress: X/X | Evasion: X | Armor Slots: X/X
Current: [Conditions, positioning, noteworthy state]
FEAR POOL: X
SPOTLIGHT ORDER: [Current turn order based on fiction]
COUNTDOWNS: [Active countdowns]
Looking Up Adversaries
Quick Lookup Process
- Check XML for example adversaries and common features
- Search full text for specific adversary:
grep -n "^[A-Z].*$" daggerheart.txt | grep "ADVERSARY_NAME"
- Read stat block including Difficulty, Thresholds, HP, Stress, ATK, Experiences, Features
Adversary Stat Block Format
- Tier: 1-4 (corresponds to PC levels)
- Difficulty: Target for PC rolls
- Thresholds: Minor/Major (e.g., 8/15)
- HP & Stress: Boxes to mark
- ATK: Bonus, Range, Damage (e.g., +1 | Melee | 1d8+3 phy)
- Experiences: Named skills (e.g., Thief +2)
- Features: Special abilities (Actions, Reactions, Passives)
- Motives & Tactics: Narrative guide
Making Rulings
Fiction-First Philosophy
- If it makes narrative sense, allow it (with appropriate roll)
- If it doesn't make sense narratively, say no (or modify)
- Rulings over rules - always prioritize story flow
- "Yes, and..." or "Yes, but..." - favor player agency with consequences
When Rules Are Unclear
- Make a quick ruling that fits the narrative
- Tell the table "We'll play it this way for now"
- Note to look up the exact rule later
- Keep the game moving
Common Judgment Calls
- Can I do X? → Does it fit the character? What trait? What's the risk?
- How much damage? → What makes sense for the fiction + tier of threat
- Is this advantage/disadvantage? → Does the situation significantly help/hinder?
- What's the Difficulty? → How hard should this be narratively? Use difficulty table
Session Flow
Starting Combat
- Set the scene - Describe environment, adversaries, positioning
- Establish stakes - What happens if they fail?
- Ask "What do you do?"
- Start spotlight rotation
During Combat
- Narrate results vividly - make successes feel awesome, failures dramatic
- Use Hope/Fear results - Hope builds momentum, Fear creates complications
- Vary adversary tactics - don't just "I attack" every turn
- Check in on fiction - "Where are you now? How are you feeling?"
Ending Combat
- When adversaries defeated, describe the aftermath
- Ask about injuries - who needs healing?
- Ask about loot - what do they search for?
- Move to next scene - keep momentum
Quick Rules Lookups
Common Questions
Q: How does advantage/disadvantage work?
A: Roll 3d12 instead of 2d12. Advantage = drop lowest, Disadvantage = drop highest. Still compare Hope/Fear from the two kept dice.
Q: How does armor work?
A: When you take damage, you can mark 1 Armor Slot to reduce severity by one threshold (Severe→Major, Major→Minor, Minor→None). Only 1 slot per attack.
Q: What happens when HP is full?
A: Character is Down (unconscious). Taking damage while Down triggers a death move.
Q: What happens when Stress is full?
A: Character is Stressed - disadvantage on all rolls until they clear Stress.
Q: How do Experiences work?
A: When applicable to the roll, add the Experience modifier to your total. Player describes how it applies.
Q: Can I spend Hope for...?
A: Hope can be spent to:
- Help an Ally (give them advantage)
- Utilize an Experience (add bonus even if not directly applicable)
- Initiate Tag Team Roll (collaborate with ally)
- Activate Hope Features (class abilities)
Q: How does Fear work?
A: GM gains Fear when players roll with Fear die higher. Spend Fear to:
- Make GM moves (1 Fear)
- Spotlight additional adversary (1 Fear)
- Activate adversary Fear feature (varies)
- Create major complications (2-3 Fear)
XML Structure Quick Reference
<daggerheart-reference>
<core-mechanics>
<duality-dice>
<action-rolls>
<damage-rolls>
<hit-points-and-stress>
<evasion>
<experiences>
<advantage-disadvantage>
</core-mechanics>
<classes> [9 classes with subclasses]
<ancestries> [18 ancestries]
<communities> [9 communities]
<combat> [initiative, actions, range, conditions, death]
<gm-mechanics> [fear, moves, difficulty]
<equipment> [tiers, types, armor]
<leveling> [xp, benefits]
<downtime> [rests, activities]
<adversaries> [types, examples, features]
<lore> [realms, gods, magic]
<quick-reference> [character creation]
</daggerheart-reference>
Grep Patterns for Common Lookups
# Find rules about a specific class
grep -i "class name=\"Bard\"" daggerheart-reference.xml -A20
# Find adversary examples
grep -i "adversary name=" daggerheart-reference.xml
# Find difficulty values
grep -i "difficulty" daggerheart-reference.xml | grep value=
# Search full rulebook for keyword
grep -n -i "keyword" daggerheart.txt | head -20
# Find section in full rulebook
grep -n "^CHAPTER\|^[A-Z][A-Z]" daggerheart.txt | less
Pro Tips
For Smooth Play
- Pre-read adversary stat blocks before encounters
- Keep common difficulties in mind (12/15/18)
- Let players describe their successes when they roll well
- Make Fear rolls create tension even on success
- Use the environment - make terrain dynamic
- Ask questions - "What does that look like?" "How do you do that?"
For Better GMing
- Show don't tell when spending Fear
- Telegraph danger before big hits
- Respect player agency - let them make choices
- Fail forward - failures create new opportunities
- Pace the spotlight - everyone should shine
- Describe vivid consequences for actions
Discord-Specific
- Use clear formatting for stat blocks
- Roll dice publicly when appropriate (or describe rolls clearly)
- Keep combat flowing - don't let turns drag
- Use reactions/emojis for quick acknowledgments
- Post encounter summaries after big fights
Self-Improvement
After Each Session
- Note any rules I got wrong or was unsure about
- Look up those rules in the full text
- Update this skill file if needed
- Note common player questions to prep answers
- Log session summary to daily memory file (
memory/YYYY-MM-DD.md)
- Track key decisions made (rulings, design choices, player preferences)
Red Flags (I Need to Look Things Up)
- Player asks "Can I...?" and I'm not sure
- Damage calculation seems off
- Unsure how a condition works
- Not sure if Fear cost is correct
- Confused about adversary feature
Green Flags (I'm Doing Well)
- Combat flows smoothly without rule lookups
- Players understand their options
- I'm making consistent rulings
- Using GM moves creatively
- Players are engaged and having fun
Logging & Continuity
Daily Memory Files
Create/update daily file: /home/kevbot/.openclaw/workspace/memory/YYYY-MM-DD.md
Log these things:
- Session summaries (what happened, who participated)
- Rules questions and answers (for future reference)
- Key decisions made (rulings, design choices, format changes)
- Player feedback and engagement patterns
- New content created (encounters, NPCs, locations)
- Design philosophy changes
- Technical decisions (file formats, deployment, etc.)
Why This Matters
- Sessions are isolated - Memory doesn't persist between restarts
- Files persist forever - Written knowledge survives
- Kevbot expects continuity - I should remember past decisions
- Future me needs context - What choices have we already made?
What to Log
✅ Design decisions - "We decided to use modular encounters instead of pre-written arcs"
✅ Format changes - "Converted markdown to HTML and deployed at daggerheart.kevbot.app"
✅ Rulings made - "Ruled that Grappler can't pull entire castles"
✅ Player preferences - "Players prefer combat-heavy sessions"
✅ Technical choices - "Using XML for quick reference, markdown for docs"
✅ Resource locations - "Campaign framework at sandbox-campaign-framework.md"
❌ Don't log:
- Routine game actions (unless they set precedent)
- Temporary notes (unless they inform future decisions)
- Duplicate info already in other files
Update Workflow
After significant work:
- Update daily memory file with what we did
- Note key decisions and why we made them
- Update this skill doc if workflow changes
- Update MEMORY.md if new projects/resources created
Kevbot's reminder (2026-03-04 19:13 UTC):
"When we change things or make a new format or something make sure you are logging what we have talked about so in the future you're aware of previous decisions."
Last Updated: 2026-03-04 19:13 UTC
Games Run: 0 (just created!)
Next Review: After first session
Logging Practice: Established 2026-03-04