Damage calculation¶
Once a swing connects (see Hit chance) the engine computes damage in two phases:
- Base scaling — roll the weapon's flat Min/Max, then scale by Tactics + Str + Anatomy + quality.
- 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_secondsto 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.