MMOrpg Combat Lab
Technical Specification · Weapons

Weapons

Rather than index hundreds of unique, named weapons with individual stats, we'll define a formula for generalized scaling by player level and modifiers dependent on rarity and type.

§ 03.01

Weapon Stats

Level Scaling the Baseline DPS

All weapons start with the same baseline DPS, scaled by player level, before making adjustments based on attributes of each weapon type. For a common MMO DPS power curve, we'll use:

  • 2.5 for a baseline DPS
  • 1.05 as a Scaling Factor (5% increase per level)

Level 60 Example

Baseline Weapon DPS by Level — 2.5 × 1.05Level

Weapon DPS Multipliers

Quality Multiplier

Players typically earn higher quality weapons through increasingly difficult fights. The greater the quality, the higher the damage. The weapon quality multiplier is chosen based on its quality tier: Common, Uncommon, Rare, Epic (see reference below).

A Level 60 rare sword with a level scaled 46.7 DPS would be adjusted as:

Quality Multiplier Reference
Quality TierGear Preset NameMultiplierRationale
Common (White)Unused0.8×Starter gear
Uncommon (Green)Leveling1.0×Standard baseline for leveling
Rare (Blue)Dungeon Ready1.25×Higher quality dungeon rewards
Epic (Purple)Elite1.5×Highest quality gear
N/AMax2.0×Simulation max before game-breaking

Handedness Multiplier

If a weapon is two handed, like a Greatsword or Warhammer, increase the damage output by 1.3×, offsetting the additional swing time that larger weapons require. A one handed weapon is default, a 1.0× multiplier, no adjustment.

If the above rare sword were two-handed:

Speed

Weapon speed is also known as the attack interval, how many seconds between each swing. Multiplying your Weapon DPS (damage per second) by speed (swing interval in seconds) you determine your average swing damage.

If our Level 60 Rare Sword with 58.4 DPS has a speed of 2.4, our average swing damage is:

Variance

Variance introduces an RNG element into each swing. It is a percentage of adjustment in the positive and negative from the average swing damage which establishes a min and max damage. That variance is also indicative of the size of the weapon. Small weapons have very low variance, usually doing a consistent amount of damage. Larger weapons, like a sword or an axe, have greater variance, the damage is not always consistent and can be "spiky".

Our sword with a variance of 20% would have the following min/max:

Dual Wielding

Dual Wielding is technically a pre-fight condition, but the adjustment for dual wielding only occurs in active combat after the weapon's swing damage is calculated. Swing damage is reduced by 50% for an offhand swing penalty. See how it's applied in Weapon Damage Calculation in Combat.

§ 03.02

Weapon Types

Weapon Types
Weapon TypeSizeHandsSpeed VarianceD.R. L60 MinD.R. L60 Max
ClawSmall11.4s0.0865.498.1
DaggerSmall11.6s0.174.8112.1
SwordMed12.4s0.2112.2168.2
AxeMed12.6s0.25121.5182.2
MaceMed12.8s0.3130.8196.2
Recurve BowMed22.5s0.2116.8175.2
Heavy CrossbowMed23.2s0.35149.5224.3
SpearLong13.0s0.35140.2210.2
PolearmLong23.2s0.4149.5224.3
GreatswordLarge23.4s0.25158.8238.3
GreataxeMassive23.6s0.45168.2252.3
WarhammerMassive23.8s0.5177.5266.3
Weapon Damage Range at Level 60 — Dungeon Ready — Min / Max per Type

Weapon Calculation Summary

Weapon Calculation Summary
StepCalculationCalculation Logic
1Level ScalingScale baseline Weapon DPS (2.5) by 5% each level
2Weapon RarityApply weapon rarity modifier to DPS, e.g. 1.25× for a Rare weapon
3HandednessApply 1.3× to DPS if weapon is 2-handed
4Avg. Swing DamageMultiply adjusted Weapon DPS by weapon's speed
5Min and Max DamageApply variance modifier to swing damage in the negative (1 − Var%) to determine min damage, and positive (1 + Var%) for max damage
§ 03.03

Weapon Damage Calculation in Combat

Now that we have a complete weapon profile scaled to the player's level, we can apply this in an active combat calculation.

White Damage Attack Roll Table

The final weapon damage done by each swing is referred to as white damage. The first step in determining the swing outcome is effectively with a 100 sided dice roll. The ranges are variable based on position, player and boss stats, and level difference as follows:

White Damage Attack Roll Table
OutcomeBracket WidthRoll ThresholdThreshold Value Key
MissMiss%ΔLR < T₁T₁ = Miss%ΔL   e.g. 9% for Boss (ΔL +3)
DodgeDodge%targetT₁ ≤ R < T₂T₂ = T₁ + Dodge%target
ParryParry%targetT₂ ≤ R < T₃T₃ = T₂ + Parry%target
Glancing40% (fixed, melee only)T₃ ≤ R < T₄T₄ = T₃ + 40
CriticalCrit%playerT₄ ≤ R < T₅T₅ = T₄ + Crit%player
StandardRemaining BalanceT₅ ≤ R ≤ 100

White Damage Attack Sample Reference

Level 60 Dungeon Ready Tank with a Dungeon Ready (15%) Shield fighting a Level +3 Boss

White Damage Sample — Level 60 DR Tank vs. Level +3 Boss
OutcomeBracket WidthRoll Threshold
Miss9% FrictionR < 9
Dodge6.5% Friction9 ≤ R < 15.5
Parry6.5% Friction (if in front)15.5 ≤ R < 22
Glancing40% Friction22 ≤ R < 62
Critical10% Gear62 ≤ R < 72
Standard28% Remaining72 ≤ R ≤ 100

White Damage Calculation Sequence

If the roll succeeds with a Glance, Crit, or Standard strike, we move forward to the damage calculation sequence.

White Damage Calculation Sequence
StepCalculationCalculation Logic
1Swing Damage RNGRandom number between the weapon's min and max damage
2Swing Damage AP BonusMultiply Character's AP Bonus DPS (AP ÷ 14) by weapon speed
3Full Swing DamageSwing Damage RNG + Swing Damage AP Bonus
4Dual WieldingIf calculating offhand weapon, reduce full swing damage by 50%
5Glance PenaltyIf Glance, apply the 0.7× glance penalty modifier
6Critical HitIf Critical Hit, apply 2.0× crit bonus modifier

White Damage Example Calculation

Character Profile

Level 60 Dungeon Ready Melee DPS

Attack Power (AP): 300    AP Bonus DPS: 300 ÷ 14 = 21.43 DPS    DPS Rotation Modifier: 2.0×

Main-Hand Weapon: Dungeon Ready Sword — Speed: 2.4s, Min: 112.2, Max: 168.2

Off-Hand Weapon: Dungeon Ready Dagger — Speed: 1.6s, Min: 74.8, Max: 112.1

White Damage — Main Hand Swing

Swing Damage RNG: 135 (random value between 112.2 and 168.2)

Swing Damage AP Bonus: (300 ÷ 14) × 2.4 = 21.43 × 2.4 = 51.43 Damage

Full Swing Damage: 135 + 51.43 = 186.43 Damage

Standard Hit
Glancing Blow
Critical Hit
White Damage — Off-Hand Swing

Swing Damage RNG: 90 (random value between 74.8 and 112.1)

Swing Damage AP Bonus: (300 ÷ 14) × 1.6 = 21.43 × 1.6 = 34.29 Damage

Full Swing Damage: 90 + 34.29 = 124.29 Damage

Off-Hand Penalty: 124.29 × 0.50 = 62.14 Damage

Standard Hit
Glancing Blow
§ 03.04

Yellow Damage

The Tank/DPS players also actively spam buttons to trigger abilities, typically several on a rotation. We'll call this active ability throughput yellow damage. Because these are "manual" actions, we'll rely on the Gambit system to define the conditions of triggering the ability, most commonly the GCD:

Gambit Condition

IF GCD <= 0 THEN Use [Ability]

Rather than track and calculate hundreds of different abilities and stats, we'll apply throughput abstraction to account for yellow damage, simply by applying a rotation multiplier to the white damage (determined using the white damage calculation sequence above). This multiplier represents the density of the archetype's ability rotation, where each point of auto-attack damage is augmented by a corresponding value of ability-based damage.

See .

We'll baseline the ability interval as though it were instant cast, using 1.5s GCD.

Yellow Damage Attack Table

Yellow damage attacks (abilities) don't ever have a Glance penalty, as they either land or they don't, giving us a modified version of the White Damage Attack Table.

Yellow Damage Attack Roll Table
OutcomeBracket WidthRoll ThresholdThreshold Value Key
MissMiss%ΔLR < T₁T₁ = Miss%ΔL
DodgeDodge%targetT₁ ≤ R < T₂T₂ = T₁ + Dodge%target
ParryParry%targetT₂ ≤ R < T₃T₃ = T₂ + Parry%target
CriticalCrit%playerT₃ ≤ R < T₄T₄ = T₃ + Crit%player
StandardRemaining BalanceT₄ ≤ R ≤ 100

Yellow Damage Attack Sample Reference

Level 60 Dungeon Ready Tank with a Dungeon Ready (15%) Shield fighting a Level +3 Boss

Yellow Damage Sample — Level 60 DR Tank vs. Level +3 Boss
OutcomeBracket WidthRoll Threshold
Miss9%R < 9
Dodge6.5%9 ≤ R < 15.5
Parry6.5% (if in front)15.5 ≤ R < 22
Critical10%22 ≤ R < 32
Standard68% Remaining32 ≤ R ≤ 100

Yellow Damage Example Calculation

Character Profile

Continuing with same profile from the White Damage Calculation above.

Yellow Damage — Ability Executed

Swing Damage RNG: 150 (random between 112.2 and 168.2)

Swing Damage AP Bonus: (300 ÷ 14) × 2.4 = 21.43 × 2.4 = 51.43

Weapon Damage Base: 150 + 51.43 = 201.43 Damage

Rotation Modifier: 201.43 × 2.0 = 402.86 Damage

Standard Hit
Critical Hit

White and Yellow Damage Intervals

White Damage occurs through auto-attacks landing at intervals determined by the weapon speed. Whether the player is stunned, running, or spamming abilities, the moment the weapon speed timer hits zero (e.g., every 2.6 seconds), a White swing automatically fires and resets.

Yellow Damage abilities do not interrupt or delay the White Damage swing clock. They are fired instantly in the spaces between auto-attacks on their own timer, with a fixed cooldown of 1.5s (the GCD).

Reference Table