Skip to content

Damage calculation

Once a swing connects (see Hit chance) the engine computes damage in two phases:

  1. Base scaling — roll the weapon's flat Min/Max, then scale by Tactics + Str + Anatomy + quality.
  2. Percentage stack — multiply by talent/specialty bonuses, slayer multipliers, weapon-ability scalars, etc.

Lyonspyre runs the pre-AOS T2A pipeline. PvM player-on-creature damage runs at full; PvP and creature-on-player swings deal half. That halving is the original T2A behaviour and we haven't changed it.

Phase 1 — base scaling

The damage roll uses the weapon's pre-AOS Min/Max plus the following modifiers:

  • Damage-level offset (Ruin / Might / Force / Power / Vanq): T2A flavour adds 2 × level − 1 (so Ruin = +1, Might = +3, Force = +5, Power = +7, Vanq = +9).
  • Tactics scalar: (Tactics − 50) / 100 — i.e. +50% at 100 Tactics.
  • Strength + Anatomy: +1% per 5 points of each, capped by the stat cap.
  • Crafting quality: Exceptional adds +20%.
  • VirtualDamageBonus: a flat per-item adder (a few specific items, e.g. Tribal Spear = +25%).
  • Durability: damaged weapons drop output linearly toward 50% at 0 HP.

T2A pre-bonus damage

roll = UniformRandom(OldMinDamage, OldMaxDamage) + damageLevelOffset

scale = 1
      + (Tactics  − 50) / 100        // +50% at 100 Tactics
      + Str             / 500        // +20% at 100 Str
      + Anatomy         / 500        // +20% at 100 Anatomy
      + (Exceptional ? 0.20 : 0)
      + VirtualDamageBonus / 100     // e.g. TribalSpear = +25

base = roll × scale
base × = (durability < max ? 0.5 + 0.5 × (cur/max) : 1)

Tactics, Str, Anat at 100 each, Exceptional = ×2.10

At a fully-trained warrior baseline:

Modifier Contribution
Base (1.0) 1.00
Tactics 100 → (100−50)/100 +0.50
Str 100 → 100/500 +0.20
Anatomy 100 → 100/500 +0.20
Exceptional craft +0.20
Total multiplier × 2.10

So a 100/100/100/Exceptional baseline turns every weapon's raw damage roll into roughly 210% of its label value before any talents / specials / slayers.

Phase 2 — percentage bonuses

Phase 2 sums a percentageBonus and multiplies the Phase-1 damage by 100 + percentageBonus percent, capped at +300%. Sources include:

Source Approx contribution
Weapon-ability primary/secondary specials varies; usually ×1.30 - ×1.50
Macing PvM proc (Pierce) ×1.50 on triggering hit (+×1.50 if armor already 0)
Fencing PvM proc (Cripple) ×(1.25 + hit_chance) on triggering hit
Archery PvM proc (Hinder) varies per rank
Macing/Fencing/Archery talent damage bonuses per-rank %, see talent pages
Superslayer +100%
Enemy of One (player) +50% vs marked type
Honor (Virtue) active +25%
Perfection ladder up to +50% over Perfection ladder
Pack Instinct (multiple summons/pets) +25 / +50 / +75 / +100%
Killer talisman varies
Specialty melee / ranged bonus percentage points
Double Strike penalty −10%
Silver slayer vs. undead/necro-form +25%

After Phase 2 the engine subtracts armor (regular AR + virtual AR for T2A) and the final number lands on the target.

Worked example — Broadsword

Weapon: Broadsword, Min 5 / Max 29 / Speed 45.

Attacker: Player, 100 Tactics, 100 Anatomy, 100 Str, Exceptional craft, no talents, no special.

Defender: a creature (so the damage /= 2 halve does not apply).

Step Min Avg Max
Raw roll (OldMin/OldMax) 5 17.0 29
× 2.10 (Tac+Str+Anat+Exc) 10.5 35.7 60.9
Final, no extras 10-11 ~35 60-61

If the same player adds a +10% damage talent (T1 Swords) the final range becomes 11 - 67 (avg ~39).

A superslayer swing (+100%) on the same Broadsword: 21 - 122 (avg ~71).

Worked example — Bow

Weapon: Bow, Min 14 / Max 36 / Speed 20. Same archer profile (100 Tactics/Str/Anat, Exceptional):

Step Min Avg Max
Raw roll 14 25.0 36
× 2.10 29.4 52.5 75.6
Final, no extras 29-30 ~52 75-76

A Headshot-talent crit (× 2) puts an upper-roll bow hit at ~150 raw damage before armor.

What does NOT apply (post-T2A branches)

Later UO eras use a parallel damage pipeline with elemental damage breakdowns, the DamageIncrease item property, per-element resists, etc. Lyonspyre never enters that branch. The OPL "100% Physical" line you see on a weapon is informational only; on Lyonspyre every player swing routes through physical damage and there is no cold/fire/poison/energy split for player melee.

See also

  • Swing speed — multiply Phase-1+2 damage by 1 / swing_seconds to get DPS.
  • Hit chance — multiply DPS by hit rate to get effective DPS.
  • Parry — defender-side roll that turns Phase-1+2 damage into zero.
  • Dungeon Talents — most of Phase 2's bonus sources.