BellHop Studios
← All devlog posts

Reception devlog · Feature

How a fight works

· BellHop Studios

Heroes and monsters in Reception are built from the same six numbers, fight in the same engine, and are priced on the same Gear Score scale. This is the whole machine, written down for anyone who wants to understand it, advise on it, or one day help build it.

The six stats

Every hero, monster and piece of gear carries the same block of six stats. There is no speed stat. Damage is subtraction: attack power minus the target's defence, never below 1.

StatIn a fightGear Score weight
(hero / gear / monster)
HPHealth. A combatant at 0 is down.0.1 / 0.2 / 0.1
ATKPhysical power. A hit deals ATK minus the target's DEF.1 / 1 / 1
DEFTaken off every physical hit.1.5 / 1.5 / 1.5
MAGMagic power. A spell deals MAG minus the target's RES. Also a quarter of heal power.1.2 / 1.2 / 1.2
RESTaken off every magic hit, and the power behind the few spells that scale on RES.1.5 / 1.5 / 1.5
LUKCrit chance of 1.5% a point, uncapped, for 1.5 times damage. Hunters add LUK to ATK one for one. Three quarters of heal power.0.5 / 0.5 / 0.5

Turn order has no stat behind it. A coin toss at the start of each fight picks the side that acts first. Then the two sides alternate slot by slot (party slot 1, monster slot 1, party slot 2, and so on), rebuilt each cycle from whoever is still standing.

A basic attack is magic when the attacker's MAG is higher than their ATK, and physical otherwise. A skill can name its own scaling stat instead: ATK, MAG, RES or LUK. A LUK-scaling skill doubles the LUK first, so hunters built ATK-first keep their damage.

One hit, in order

  1. Base damage: power minus defence, floored at 1, with any pierce fraction taken off the defence first.
  2. Times the skill's magnitude.
  3. Times the hunter's front-slot penalty: 0.75 into enemy slot 1, 0.9 into slot 2.
  4. Specials: Overcharge's 30% chance to double a spell, Blood Rage doubling against a bleeding target.
  5. Floored again to at least 1. This step was added after a hunter was found doing 0 damage every beat against a Champion Ghoul.
  6. Bonuses against a wounded target: the skill's execute bonus, then the leader's.
  7. Crit last, at LUK times 1.5%, for 1.5 times damage.
  8. Applied. Undying Will and Scrap Evade can hold a hero at 1 HP once.

Healing uses a heal power of 0.25 MAG plus 0.75 LUK, times the skill's magnitude. Heals never crit. The party-wide Radiant Wave heals 0.2 of the caster's MAG to everyone instead.

Gear Score

Gear Score (GS) is a weighted sum of stats, floored. It was tuned so that Bran Ironheel's base stats (28 / 6 / 7 / 2 / 5 / 3) land at exactly 30.

The four classes

A class is small: a base stat block, a one-line role, an armour weight and a sight band. Most of what makes a class play differently is a handful of combat rules keyed on the class: who it aims at, and how LUK counts. Each starter hero copies its class's block exactly.

ClassRoleBase HP / ATK / DEF / MAG / RES / LUKArmourSight in tiles, Common to SSRRules of its own
WarriorDurable frontliner that absorbs pressure and controls space28 / 6 / 7 / 2 / 5 / 3Heavy, Medium, Light1, 1, 2, 2Swings at the first living enemy, slot 1
HunterPrecision striker that marks targets and spikes priority threats22 / 8 / 4 / 3 / 4 / 7Medium, Light3, 3, 4, 5Adds LUK to ATK one for one. Aims at enemy slots 3 and 4, and hits slots 1 and 2 for 0.75 and 0.9
MageBurst or control specialist shaping tempo with magic20 / 3 / 3 / 9 / 6 / 5Light only2, 2, 3, 3The basic attack is a spell (MAG over ATK), met by RES
ClericSupport and sustain that cleanses danger and steadies the party24 / 4 / 5 / 7 / 7 / 5Medium, Light2 at every rarityHeals off 0.75 LUK and 0.25 MAG, at the health line its Mettle sets

A hero is an entry on a class

Each hero carries its own stat block, so a hero does not inherit numbers from its class at run time. The class decides armour, sight and the combat rules. The entry decides everything else:

Orion Stormwit, for example, is an SR mage at 25 / 4 / 4 / 13 / 8 / 6, tagged Reckless and Clever, with the Gloryhound Mettle and the Spearhead Banner, Chain Lightning and Storm Surge, Storm Aura as his leader ability (+3 MAG to the whole party while he leads) and Overcharge as his passive.

The catalogues those entries point into, as of 21 October: 39 skills, 12 passives and triggers, 2 SSR-only extras (Frenzy and High Vantage), 22 leader abilities, 17 Mettles and 11 Banners.

Mettle and Banner are kept apart on purpose. A Banner is a volume knob on the Mettles: under Marshal nobody chooses and all four fight alike, and under Loose Rein the party simply is its dispositions. That separation is what stops "who leads" from collapsing into "whoever has the highest Gear Score".

How rarity shows in the numbers

One hero of each rarity per class, base stats only:

ClassCommonRareSRSSR
WarriorBran Ironheel
28 / 6 / 7 / 2 / 5 / 3
Kael Vanguard
32 / 7 / 8 / 2 / 6 / 4
Rook Cindertrack
34 / 11 / 9 / 2 / 6 / 4
Ulric Gravesend
40 / 9 / 11 / 3 / 8 / 5
HunterSera Windneedle
22 / 8 / 4 / 3 / 4 / 7
Jace Thinroad
24 / 10 / 5 / 3 / 5 / 10
Ring Celler
24 / 5 / 4 / 10 / 6 / 8
An alchemist whose skills scale off MAG
Nyx Hollowfang
30 / 13 / 6 / 5 / 6 / 11
MageElara Veilthread
20 / 3 / 3 / 9 / 6 / 5
Thessaly Brightrend
23 / 4 / 4 / 11 / 7 / 6
Orion Stormwit
25 / 4 / 4 / 13 / 8 / 6
Vex Noonstar
28 / 5 / 5 / 15 / 9 / 8
ClericAnwen Softglow
24 / 4 / 5 / 7 / 7 / 5
Idris Dawnchant
26 / 5 / 6 / 9 / 9 / 6
Paloma Suntether
29 / 6 / 7 / 11 / 10 / 7
Not yet

Rarity is a few points at a time, not a different game: an SSR warrior has about 40% more health than a Common one and three or four more points in his main stats. Ability slots do more of the work: Common 1, Rare 2, SR 3, SSR 4.

Ranks add to that. Rank n costs n duplicate shards, so +10 costs 55 in all, the same curve as combining gear, so players learn one rule. Each rank gives 3 stat points, placed one at a time and committed with Apply. A Respec Potion (5 Ethereal) hands the points back, never the shards. Rarity is fixed: a Common +10 is still a Common.

Skills are two halves

A skill is split in two on purpose. One half is what the player reads: the name, the card text, its role, tags, scaling stat and cooldown. The other half is what the engine does: each skill maps to one or more effects built from 16 reusable patterns, each with a magnitude. Abilities that fit no pattern (a targeting bias, a stacking buff, a double-cast, Undying Will) are small hooks of their own.

PatternWhat the magnitude meansExample
DamageMultiplier on a normal hitHeavy Swing 1.5
Area damageMultiplier, every enemyCleave 0.65
Dual damageMultiplier, two targetsVolley 0.85
ExecuteMultiplier, plus a bonus below 50% healthExecution Shot 1.0, plus 0.75
PierceMultiplier, ignoring a fraction of DEF or RESPiercing Shot 1.1, ignores 60%
LeechMultiplier; a fraction of the damage heals the casterDark Prayer 1.1, heals 60%
SplashMultiplier; a fraction spills to the neighbouring slotsArc Bolt 1.15, half to the slot behind
ChainMultiplier; each link carries a fraction of the lastChain Lightning 0.85, times 0.5, two links
Self buffFraction of the caster's own stat, added for 3 of the caster's turns; stacksAsh Guard +25% DEF and RES
DebuffFraction of the target's stat removed for the rest of the fight, never below 1Bone Break, 25% off DEF
Heal lowest allyMultiplier on heal powerLight Tap 1.1, Divine Link 3.0
Heal lowest ally by shareFraction of the target's max healthPrepare 25%
Heal all alliesFraction of the caster's MAG, to every living allyRadiant Wave 0.2
PoisonFraction of the victim's max health each of its turns, for a set number of turns; refreshes when reappliedAcid Splash 10% for 2 turns
BleedAs poison, but it stacks, and every stack ticksMonster abilities
Cleanse or healStrips a status if it can, else heals this fraction of max healthPotion Test 25%

An effect can also say who it hits, the front or the midline, overriding the class's normal choice.

How often a skill fires. On each of a hero's beats there is a 40% base chance of using a known skill rather than a plain attack. Mettles shift that. A skill with a cooldown waits that many of the caster's own turns, not combat beats; most skills have none.

Leader abilities are numbers too. Most add flat stats to the whole party while that hero leads, such as Storm Aura's +3 MAG. Three add an execute bonus against targets under half health instead: Focus Fire 0.3, Kill Order 0.35 and Blood Hunt 0.35.

Two rules any new skill must keep. Since 8 October, every card states its exact effect, for example "for 100% damage and poisons it: 10% of its max HP a turn for 2 turns", and an automated test pins the card text to the numbers, so changing one without the other fails the build. Since 11 October, skills may be shared within a class, never across: two heroes of one class can carry the same skill, but a skill, or a skill's name, never crosses classes.

What happens on a beat

A fight advances one beat at a time, and a beat is one combatant acting. On a field a beat lasts one second of game time, and under our no-speed-control rule it is never shortened, skipped or fast-forwarded. Going in, each hero is flattened into a combatant: base stats, plus worn gear, plus rank points, plus the leader's party bonus. Every unit in a monster group gets its own combatant, its own slot and its own turn, rather than one oversized monster. A group led by a Boss forms up with the Boss in slot 2, the one slot neither warriors (slot 1) nor hunters (slots 3 and 4) reach for.

  1. Take the next combatant in the cycle, skipping the fallen. When the cycle runs out, rebuild it.
  2. In a dungeon, if it is the hero the player controls and no order has arrived, stop. Nothing ticks and no beat is spent until the player chooses.
  3. Upkeep: expire timed buffs, count cooldowns down, burn poison and every bleed stack. A combatant can die here before acting.
  4. Choose the action, in order of authority:
    1. The player's order in a dungeon wins outright. A stale or cooling skill falls back to a plain attack.
    2. The leader's Banner sets how keen the other three are. Marshal silences them, and Exemplar copies whatever the leader just did.
    3. The hero's own Mettle sets the rest. Overdraw reaches for its heaviest skill, Hallmark for the same one every time.
    4. A healer's line casts a heal when an ally is under that Mettle's health share, and turns a heal rolled on nobody into a plain swing. Under Marshal it can only stop a wasted heal, never start one.
    5. Otherwise a 40% roll, leaned by the leader's temperament, picks a skill or a plain attack.
  5. Pick the target, in order of authority: the effect's own aim (Acid Splash takes the midline, Over Bite the front), the player's mark, the Banner's targeting order (On My Mark, Thin Ranks, Cover Me, Spellbreaker, Guard Healer), the hero's Mettle, then a targeting passive such as Finisher, then the class rule, then a random pick.
  6. Resolve every effect of the skill through the hit pipeline above, and record who hurt whom for Warden.
  7. Settle: close the ranks, and end the fight when a side has no one standing.

How a fight ends. When one side is down, health is written back to the party, the monster group dies and pays its treasure: 1 per body plus whatever the group had looted. A party can also retreat: Escape surrenders half the pack and Evacuate drops it, each with charges per run. A defeat takes only what was found that run, never the gear the heroes went in wearing. PvP runs the same rules when two parties meet on a field. Banners apply there too since 11 October, so an order like Spellbreaker has someone to find. Retreats only exist in expedition PvP, and the fleeing party keeps its satchel.

What a fight leaves behind is one entry per beat (attacker, defender, damage, crit, heals, poison), drawn by the combat panel and written as the log lines you read in the game.

Rules every change keeps

These are the standing rules for classes and heroes, with the date each was set. Every one of them has an automated test behind it, so a change that breaks a rule turns the build red before it reaches a tester.

The other half of the machine is the monsters: how they are built, how they grow on the map, and the thousands of simulated fights that set their numbers. That is in Monsters by the numbers. For the story of how all of this got built, start with How Reception was built. If you'd like to advise on it or help build it, write to support@bellhopstudios.com.

More from the devlog

Monsters by the numbers

Three species, four tiers, five abilities, and the thousands of simulated fights that set every number.

How Reception was built

The whole story in one read: eleven weeks, six bursts of work, about 300 changes and 70 cuts, from a dot wandering a grid to a live alpha.