This skill should be used when working with the Combat tracker, Combatant documents, initiative rolling and sorting, turn/round management, or implementing combat hooks like combatStart, combatTurn, and combatRound.
View on GitHubImproperSubset/hh-agentics
fvtt-dev
fvtt-dev/skills/fvtt-combat/SKILL.md
January 21, 2026
Select agents to install to:
npx add-skill https://github.com/ImproperSubset/hh-agentics/blob/main/fvtt-dev/skills/fvtt-combat/SKILL.md -a claude-code --skill fvtt-combatInstallation paths:
.claude/skills/fvtt-combat/# Foundry VTT Combat System **Domain:** Foundry VTT Module/System Development **Status:** Production-Ready **Last Updated:** 2026-01-05 ## Overview Foundry's combat system manages turn-based encounters through Combat and Combatant documents. Understanding the combat lifecycle is essential for game system development. ### When to Use This Skill - Implementing initiative rolling formulas - Managing turn order and round progression - Hooking into combat events - Extending combat behavior for game systems - Creating combat-related UI features ## Combat Document ### Core Properties ```javascript game.combat // Active combat encounter game.combats // All combat encounters game.combats.active // Currently active combat // Combat properties combat.round // Current round number combat.turn // Current turn index combat.active // Is combat started? combat.combatants // EmbeddedCollection of Combatants combat.combatant // Current turn's Combatant combat.scene // Linked Scene ``` ### Combat Methods ```javascript // Start/end combat await combat.startCombat(); await combat.endCombat(); // Navigation await combat.nextTurn(); await combat.previousTurn(); await combat.nextRound(); await combat.previousRound(); // Initiative await combat.rollInitiative(["combatantId"]); await combat.rollAll(); // Roll for all await combat.rollNPC(); // Roll for NPCs only await combat.resetAll(); // Clear all initiative ``` ## Combatant Document ### Core Properties ```javascript combatant.actor // Associated Actor combatant.token // Token data (not Token instance) combatant.initiative // Initiative value combatant.active // Is current turn? combatant.defeated // Defeated status combatant.hidden // Hidden from players? combatant.players // Owning players ``` ### Combatant Methods ```javascript // Roll initiative for this combatant await combatant.rollInitiative(); /