Gaming Rules-design note One Hero Engine

One Hero Engine: Combat

The full player-facing combat procedure for One Hero Engine v0.20.

1. Establish range bands

Combat uses abstract range bands because I do not want to count squares or measure distances for a game that is built around one hero making quick decisions.

  • Close: immediate reach
  • Near: one Move away
  • Far: two Moves away
  • Distant: outside the immediate encounter

One Move action changes position by one range band.

2. Check surprise

The hero acts first unless surprised.

Most of the time I assume the hero acts first, because solo combat already has enough pressure without giving the opposition the first move by default.

When surprise is uncertain, make a Dexterity test.

  • Success: the hero acts first
  • Failure: enemies act first in the opening round

After the opening round, alternate:

  1. Hero turn
  2. Enemy turn

3. Hero turn: take two actions

The hero takes two actions each turn.

That is the core rhythm of combat. Two actions gives the hero enough room to move, attack, cast, or recover without dragging the turn out into a mini puzzle every round.

Common actions:

  • Move
  • Attack
  • Cast
  • Interact
  • Recover
  • Use an action-based Trait
  • Attempt another meaningful action

The same action may be taken twice unless a rule says otherwise.

4. Resolve attacks

Choose the relevant Attribute based on how the attack is happening:

  • Strength for forceful melee attacks
  • Dexterity for precise melee or ranged attacks
  • Casting Attribute for magical attacks

Apply the target’s Guard adjustment:

Enemy RankGuard Adjustment
Minion+2
Standard0
Elite-2
Boss-4

Then make a roll-under attack test.

Any successful damaging hit defeats one Minion.

This is intentionally direct. I want the hero to look at the situation, pick the right Attribute, apply the target’s rank, and roll.

5. Roll damage

Damage uses direct dice rather than a second conversion table:

Damage StepDamage
Step 11d4
Step 21d6
Step 31d8
Step 41d10
Step 51d12
Step 61d12 + 2
Step 71d12 + 4

For steps above 7, keep adding +2 per step.

6. Apply Soak

Damage taken is:

damage roll minus Soak

Minimum damage after Soak is 0.

Soak exists to make armour matter without adding another full defence layer on top of the roll-under test.

7. Resolve Fray once

Once during each hero turn, after the hero performs an offensive action, roll the Fray Die.

Fray is there to help the solo hero deal with weaker enemies without turning every small fight into cleanup work. It should feel like pressure radiating outward from an already dangerous protagonist, not like a separate attack routine.

  • On 4 or higher, defeat one eligible Minion.
  • On 3 or lower, no Minion is defeated.

Fray never defeats more than one Minion per turn.

Fray Die:

Hero LevelFray Die
1-51d6
6-101d8

An eligible Minion must:

  • be within the hero’s current weapon, spell, or power range
  • be fictionally exposed to the offensive action
  • not be protected by a barrier or special effect
  • not already be the same target directly defeated by that action

Fray requires no extra action.

8. Resolve the enemy turn

Enemies do not normally roll d20s.

When the enemies push back, the player stays active. That keeps the whole fight player-facing and avoids the stop-start feeling that happens when solo combat keeps asking me to switch mental roles.

When an enemy attacks, the hero makes a Defence test using the most appropriate Attribute.

Apply the enemy’s Threat adjustment:

Enemy RankThreat Adjustment
Minion+2
Standard0
Elite-2
Boss-4

On success, the hero avoids or endures the attack.

On failure, the hero takes the enemy’s damage minus Soak.

9. Test Morale when appropriate

Not every enemy should fight to the last hit point. Test Morale when:

  • half the enemy group is defeated
  • the enemy leader falls
  • the enemy objective becomes impossible
  • the hero spends an action to break enemy resolve

Choose Strength, Wisdom, or Charisma, depending on how the hero is forcing the break.

Enemy Resolve:

ResolveTarget
Unsteady6
Trained11
Fanatical16

Apply:

  • Advantage if half the enemy group is defeated
  • Advantage if the enemy leader falls
  • Advantage if the enemy objective becomes impossible
  • Disadvantage if the enemy is Fanatical

On success, enemies flee, surrender, withdraw, hesitate, or bargain.

On failure, enemies hold.

10. End combat

Combat ends when:

  • all enemies are gone
  • the hero is Defeated
  • one side escapes
  • one side surrenders
  • the objective is achieved
  • the objective becomes impossible and the scene changes

Combat example

Mira Ashen, a Fighter with Strength 14, Dexterity 13, Soak 3, and a standard weapon (Step 2), faces one Bandit Raider (Standard) and two Goblin Sneaks (Minions).

I wanted a full example here because combat rules always look cleaner in outline form than they do in actual use. Seeing one round play through makes the intended pace much clearer.

Setup

  • Mira begins at Near
  • the bandit and goblins are together
  • surprise is uncertain

Surprise

Mira rolls a Dexterity test.

  • Dexterity 13
  • roll: 9
  • result: success

Mira acts first.

Hero action 1: Move

Mira moves from Near to Close.

Hero action 2: Attack

She attacks one goblin with Strength.

  • Strength 14
  • Minion Guard adjustment +2
  • effective attack Attribute: 16
  • roll: 11
  • result: success

The attack deals damage, so the goblin is defeated.

Fray

Mira made an offensive action, so she rolls Fray.

  • Fray Die: 1d6
  • roll: 5
  • result: one eligible Minion is defeated

The second goblin is removed.

Fray has now defeated its one allowed Minion for this turn.

Enemy turn

The remaining bandit attacks Mira.

Mira chooses Dexterity for Defence.

  • Dexterity 13
  • Standard Threat adjustment 0
  • effective Defence Attribute: 13
  • roll: 15
  • result: failure

The bandit deals 1d4 damage.

  • damage roll: 3
  • Mira’s Soak: 3
  • final damage: 0

The bandit lands a blow, but Mira’s armour and shield absorb it.

Morale

Half or more of the enemy group has been defeated, so Mira tests Morale against the bandit.

She uses Charisma.

  • Charisma 11
  • Resolve target: Trained 11
  • Advantage because half the group is defeated
  • rolls: 14 and 6
  • keep the lower result: 6
  • result: success

The bandit withdraws instead of fighting on.

Rank examples

Minion example

Goblin Sneak

  • Rank: Minion
  • Guard: +2
  • Threat: +2
  • Damage: 1
  • Soak: 0
  • Resolve: Unsteady (6)
  • Trait: Pack Rush - if another goblin is at Close, the hero’s first Defence test against this group each round is Difficult

Standard example

Bandit Raider

  • Rank: Standard
  • Guard: 0
  • Threat: 0
  • HP: 6
  • Damage: 1d4
  • Soak: 0
  • Resolve: Trained (11)
  • Trait: Press the Gap - if the hero failed a Defence test this round, the bandit’s next attack this scene is Favourable

Elite example

Ogre Enforcer

  • Rank: Elite
  • Guard: -2
  • Threat: -2
  • HP: 12
  • Damage: 1d6
  • Soak: 1
  • Resolve: Unsteady (6)
  • Trait: Crushing Swing - on a successful hit, the hero is pushed one range band unless they choose to remain in place and take 2 extra damage

Boss example

Shadow Warden

  • Rank: Boss
  • Guard: -4
  • Threat: -4
  • HP: 20
  • Damage: 1d8
  • Soak: 2
  • Resolve: Fanatical (16)
  • Trait: Dread Halo - the hero’s first Wisdom Defence test against the Warden each scene is Severe

End of article

Part of: One Hero Engine

View the complete series

Continue reading

Series

One Hero Engine

Tags

Solo RPG One Hero Engine Homebrew Rules