Absy Labs ABSY LABSKingshot Theorycraft Launch the simulator

Mechanics · the hidden multiplier

SkillMod & op codes

The damage formula has a term called SkillMod. It's the part you can't see in a scout report, and it's where every hero skill, joiner skill and widget effect lives. Understanding it is the difference between bringing four copies of the same joiner and bringing four that actually multiply.

1. The four families

SkillMod = (DamageUp × OppDefenseDown) / (OppDamageDown × DefenseUp)

Four orthogonal families. Two push your damage up; two push the enemy's resistance down — and they sit on opposite sides of the fraction:

  • DamageUp — effects that make your squads deal more (numerator).
  • OppDefenseDown — effects that make the enemy take more (numerator).
  • OppDamageDown — effects that make the enemy deal less (denominator).
  • DefenseUp — effects that make your squads take less (denominator).

When you attack, it's your DamageUp and OppDefenseDown over their OppDamageDown and DefenseUp. When you defend, you swap "your" and "their." Confirmed across multiple in-game tests; this is the formula the working community simulators match against real battle reports.

2. The stacking rule

Inside a family, every effect carries an op code — a number identifying what kind of bonus it is. One rule governs all stacking, and it's the single most important thing on this page:

The universal rule

Effects with the same op code stack additively — sum the values, then apply once. Effects with different op codes stack multiplicatively — each contributes its own (1 + sum/100) factor.

familyValue = ∏ over distinct op codes of: (1 + (sum of values for that op) / 100)

That one rule is why composition beats duplication. Two effects on the same op add and run into diminishing relevance; two effects on different ops multiply.

3. The op-code taxonomy

Twelve op codes across the four families. This is the taxonomy the simulator uses internally.

OpFamilyEffect
101DamageUpLethality % (own)
102DamageUpAttack % (own) — also generic "Damage Up"
103DamageUpDamage Dealt % (own, multiplicative on top)
104DamageUpSkill Damage % — a 4th distinct op (Triton sk2 only)
111DefenseUpDamage Taken Down (own)
112DefenseUpDefense % (own)
113DefenseUpHealth % (own)
201OppDamageDownDamage Dealt Down (enemy, generic)
202OppDamageDownAttack % Down (enemy)
203OppDamageDownGeneric enemy damage down (cosmetic "Lethality Down" text)
211OppDefenseDownDamage Taken Up on enemy
212OppDefenseDownDefense % Down on enemy (Ava's Dissolution; added with the Gen 7 heroes)

Probable A few assignments are reproduced by testing rather than read from the UI — notably op 103 versus 102 disambiguation (in-game "Attack Up" → 102, "Damage Dealt Up" → 103, bare "Damage Up" → 102), and Vivian's "increase enemy damage taken" landing on 211 by symmetry. The simulator lets you re-route any of these per skill if your own testing disagrees.

4. Worked stacking examples

This is where the rule earns its keep. Same total percentage, very different results depending on whether the ops match.

Four Chenkos — all op 101

DamageUp = 1 + (25 + 25 + 25 + 25)/100 = 2.00

Two Chenkos + two Amanes — op 101 and op 102

DamageUp = (1 + 50/100) × (1 + 50/100) = 1.50 × 1.50 = 2.25

Same eight stars of joiners, same "+100% total," but splitting across two ops buys you a +12.5% damage advantage over stacking one. This is the canonical reason to diversify joiner skills instead of bringing four of your best one. Confirmed.

Three Gordons + one Howard — op 113 and op 111

DefenseUp = (1 + 75/100) × (1 + 20/100) = 1.75 × 1.20 = 2.10

Four Sauls — op 112 and op 113 in one skill

DefenseUp = (1 + 40/100) × (1 + 60/100) = 1.40 × 1.60 = 2.24

Saul's first skill grants both Defense and Health, so a single hero already spans two ops and multiplies with itself.

5. Chance skills and expected value

When a chance-based skill rolls successfully at the start of a round, its effect drops into the relevant op bucket for that round only. Next round it's rolled again, independently.

The simulator handles this two ways. In expected mode, a "p% chance of +V%" skill becomes a flat +(p × V / 100)% in its op bucket — the average contribution. In Monte Carlo mode it samples the Bernoulli per round and only adds the full value on a success. Same average, real variance.

Speculative Yang's third skill, Ambush, isn't a flat chance — it's a pity timer. The roll chance accumulates after each failed round and resets on a proc, so a 40% base settles to an effective rate around 58% (average cycle ≈ 1.72 rounds). This mechanic is inferred, not yet experimentally pinned, so the exact effective rate may shift if the counter caps differently.

6. Why four Jabels is still one Jabel

Non-RNG joiner skills stack additively in their op family — four flat +25% Lethality joiners genuinely give +100% on op 101. But chance-based joiner skills do not stack across copies: four Jabels produce a single roll, not four. The first one's roll counts; the rest are wasted skill slots that still bring troops.

Probable Per community testing (Daryl): chance-based skills don't stack for joiners. The Best Counter search uses this directly — it de-duplicates joiners with identical first-skill signatures before it ever simulates, so it never wastes a candidate slot on a redundant copy.


Next: the other channel — the bonuses you can see — Stat bonus aggregation →

Test a joiner combo

Quick Fight shows which skills fired each round, so you can verify the stacking yourself.