Skip to content
flukeairwalker edited this page Oct 12, 2026 · 15 revisions

Combat

How-to. For Game Masters and players. You have an active Novel with characters and opponents. This page covers running combat — from initiative to victory.

What makes Holonovel combat different

In most AI RPGs, you narrate the fight and hope the AI tracks hit points. In Holonovel, the engine tracks every participant, condition, round, and countdown. Turn order is deterministic. Conditions expire on schedule. State survives restarts. You focus on tactics — the engine runs the turns.

Starting combat

"Roll initiative. The goblins ambush from the treeline."

You name the participants — your party members — and the dangers (enemies). The engine handles the rest:

  • Initiative is rolled for every participant
  • Tie-breaking: entity before NPC before danger, then alphabetical
  • Turn order is deterministic — same participants, same seed, same order
  • Combat state is saved with the Novel — survives server restarts and crashes

Source: spec §5.6 (REQ-043).

Turn order and structure

Combat is round-based. Each round, every participant takes one turn in initiative order. On your turn, the GM briefing surfaces:

  • Current round and your position in the turn order
  • Active conditions on you and visible enemies
  • Available actions — attacks, spells, special abilities suited to your character
  • Countdowns with remaining ticks
  • Scene type and atmosphere

"Attack the goblin shaman with my longsword." "Cast Fireball on the group of goblins." "Disengage and move to cover." "Help the fighter — give them advantage on their next attack."

The engine resolves every action mechanically. Dice are rolled. Modifiers are applied. Outcomes are deterministic with seeded RNG.

Enemy turns

The AI narrates enemy actions. The engine enforces the mechanics:

  • Attack rolls against target AC
  • Saving throws for spells and effects
  • Damage application with armor and resistance
  • Condition application on hit or failed save

Every roll shows its work — die faces, modifiers with sources, totals, outcomes.

Conditions

Conditions apply from attacks, failed saves, and environmental effects. The engine tracks every condition's remaining duration:

"The goblin is poisoned for 3 rounds." "The fighter is paralyzed for 1 round." "Bleeding until healed."

Conditions expire on schedule — no manual tracking needed.

"Am I still poisoned?" "What conditions are active on the goblin shaman?"

Source: spec §5.6.

Countdowns in combat

Round-type countdowns decrement automatically at the start of each round. Narrative countdowns advance when the GM calls manage_countdown (action: advance). Use them for:

  • Environmental threats (collapsing ceiling in 4 rounds)
  • Reinforcements (goblin patrol arrives in 3 rounds)
  • Escalation (dragon gets angrier every 2 rounds)
  • Time pressure (the ritual completes in 5 rounds)

Source: spec §5.6 (REQ-073).

Adding and removing participants

"A third goblin bursts through the door. Add them to combat." "The shaman falls. Remove them from combat."

Participants can join mid-combat. Defeated participants can be removed without ending the encounter. The turn order adjusts automatically.

Ending combat

Combat ends when all enemies are defeated, the party flees, or the GM declares an outcome:

"The goblins scatter into the trees. End combat: victory." "We're outmatched. End combat: the party retreats."

Ending combat records the outcome, increments the total rounds counter, and returns the Novel to narrative play. Conditions with combat-only duration expire. The combat record — participants, rounds, outcome — is preserved in the Novel for session metadata.

Source: spec §5.6 (REQ-043).

See also

Last updated: 2026-10-12.

Clone this wiki locally