MMOrpg Combat Lab
Technical Specification · Weapons

Weapons

Rather than index hundreds of unique, named weapons with individual stats, we'll start with a quintessential list of weapon types in which the primary distinction is size, and therefore indicative of the weapon speed. To these we'll apply a generalized formula for scaling by player level and modifiers dependent on rarity and type.

§ 04.01

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
§ 04.02

Calculating Weapon DPS

Baseline DPS and Level Scaling

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 DPS as the baseline DPS for ALL weapons
  • 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, also known as the attack interval, is 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".

Now 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 White Damage.

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
§ 04.03

White Damage

Now that we have a complete weapon profile scaled to the player's level and adjusted by type and quality, we can apply this in an active combat calculation. The final weapon damage done by each swing is referred to as white damage.

White Damage Attack Roll Table

The first step in determining the swing outcome is essentially 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
Glancing140% (fixed)T₃ ≤ R < T₄T₄ = T₃ + 40
CriticalCrit%playerT₄ ≤ R < T₅T₅ = T₄ + Crit%player
StandardRemaining BalanceT₅ ≤ R ≤ 100

1 Glancing blows apply to melee auto-attacks only. Ranged physical attacks (bow, crossbow) do not glance. Spell damage has its own friction mechanic (spell resist) handled separately.

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

We'll use a dungeon-ready DPS Melee archetype to illustrate a more complex calculation, having to take into account the additional swing for dual wielding as well as the chance for a partial glancing blow in the attack roll table.

Attack Power (AP): 300 (dungeon ready gear adjusted value)
AP Bonus DPS: 300 ÷ 14 = 21.43 DPS
Rotation Modifier: 2.0×

Main-Hand Weapon: Dungeon Ready Sword

Base Speed: 2.4s
Tempo Adjusted: 2.4 × 0.90 = 2.16s
Min: 112.2    Max: 168.2

Off-Hand Weapon: Dungeon Ready Dagger

Base Speed: 1.6s
Tempo Adjusted: 1.6 × 0.90 = 1.44s
Min: 74.8    Max: 112.1

White Damage — Main-Hand Swing

The AP Bonus adds flat damage to every swing, scaled by weapon speed. This represents the contribution of raw Attack Power to each individual hit:

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

Combined with a random roll from the weapon's damage range:

Full Swing Damage: 135Random + 51.43AP Bonus = 186.43 Damage

Main-Hand Attack Roll Outcomes

OutcomeMultiplierDamage
Standard Hit1.0×186.43
Glancing Blow0.7×130.5
Critical Hit2.0×372.86

Main-Hand DPS (tempo adjusted)

Dividing by the tempo-adjusted swing speed gives us the effective DPS contribution of the main hand:

Main-Hand DPS: 186.43 ÷ 2.16 = 86.3 DPS

Compare this to DPS without tempo adjustment: 186.43 ÷ 2.4 = 77.7 DPS — tempo provides an 11.1% DPS increase on the main hand alone.

White Damage — Off-Hand Swing

The AP Bonus scales to the offhand weapon speed, and the 50% offhand penalty is applied to the full swing damage:

AP Swing Bonus: (300 ÷ 14) × 1.6 = 21.43 × 1.6 = 34.29 Damage Full Swing Damage: 90Random + 34.29AP Bonus = 124.29 Damage Offhand Penalty: 124.29 × 0.50 = 62.14 Damage

Off-Hand Attack Roll Outcomes

OutcomeMultiplierDamage
Standard Hit1.0×62.14
Glancing Blow0.7×43.50
Critical Hit2.0×124.28

Off-Hand DPS (tempo adjusted)

Again, using our tempo-adjusted swing speed to give us the effective DPS contribution of the off hand:

Off-Hand DPS: 62.14 ÷ 1.44 = 43.2 DPS

Compare this to DPS without tempo adjustment: 62.14 ÷ 1.6 = 38.8 DPS — same 11.1% gain from tempo.

Combined White DPS
Total White DPS: 86.3 + 43.2 = 129.5 DPS

Without tempo adjustment this would be 77.7 + 38.8 = 116.5 DPS. The Tempo stat converts a gear bonus into a sustained DPS increase by reducing the swing interval while preserving full per-hit damage, making it one of the most efficient stats for white damage throughput.

§ 04.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 via a rotation modifier, a single value representing how much ability damage a class generates relative to a standard main-hand swing.

See .

Key differences from white damage:

  • Abilities only fire from the main hand — no offhand contribution
  • The attack table has no Glancing Blow — abilities either land or they don't, similar to Spells (remember that Spells are also a type of yellow damage)
  • Abilities fire on the GCD timer (1.5s base), not the weapon speed timer
  • White and yellow timers are completely independent — abilities never delay auto-attacks

Yellow Damage Attack Table

Yellow 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
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 the same Level 60 Dungeon Ready Melee DPS profile from the White Damage section above. Abilities fire from the main hand only.

Ability Swing Damage

Start by calculating the AP bonus scaled to main hand weapon speed, the same way we start white damage calculations:

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

Combined with a random roll from the weapon's damage range:

Base Swing Damage: 150Random + 51.43AP Bonus = 201.43 Damage

Apply the Rotation Modifier to get the ability's raw hit value:

Ability Damage: 201.43 × 2.0Rotation Modifier = 402.86 Damage

Ability Attack Roll Outcomes

OutcomeMultiplierDamage
Standard Hit1.0×402.86
Critical Hit2.0×805.72
Tempo Adjustment — GCD

Just as Tempo reduces the weapon swing interval for white damage, it also reduces the GCD for yellow damage. At 90% Tempo, abilities fire more frequently:

GCD Adjusted: 1.5 × 0.9 = 1.35s

This means our melee DPS fires an ability every 1.35 seconds instead of every 1.5 seconds — an 11.1% increase in ability frequency, the same gain as white damage from tempo.

Yellow DPS

Converting the ability damage to a sustained DPS rate using the tempo-adjusted GCD:

Yellow DPS: 402.86 ÷ 1.35 = 298.4 DPS Total DPS: 129.5 White + 298.4 Yellow = 427.9 DPS

White and Yellow Damage Intervals

White and yellow damage run on completely independent timers. Neither interrupts nor delays the other:

  • White damage fires automatically when the weapon speed timer reaches zero (every 2.16s at 90% Tempo). It cannot be stopped by player actions.
  • Yellow damage fires when the GCD timer reaches zero (every 1.35s at 90% Tempo). The player chooses which ability to use, but in our abstraction the Rotation Modifier handles this automatically.

At any given moment in a fight both timers are counting down simultaneously, firing whenever they expire. A busy second might see a white swing at t=0.5s and an ability at t=0.8s — these are completely independent events.

Reference Table