The Old School RuneScape DPS Calculator implements the game’s real melee combat formula — effective levels, the attack/defence roll comparison, max hit, and the 0.6-second tick speed — so you can compare gear and styles with accurate numbers instead of guesses.
How it works
Effective levels. Apply the prayer multiplier, then the style bonus, then add 8:
effStr = floor( (StrengthLvl + boost) * prayerStr ) + styleStr + 8
effAtt = floor( (AttackLvl + boost) * prayerAtt ) + styleAtt + 8
Max hit from effective strength and the gear strength bonus:
maxHit = floor( 0.5 + effStr * (strengthBonus + 64) / 640 )
Hit chance compares an attack roll against a defence roll:
attRoll = effAtt * (equipAttackBonus + 64)
defRoll = effDef * (targetDefenceBonus + 64)
if attRoll > defRoll: acc = 1 - (defRoll + 2) / (2 * (attRoll + 1))
else: acc = attRoll / (2 * (defRoll + 1))
DPS. A landed hit rolls uniformly from 0 to max, so the average per attack is
acc * maxHit / 2. Each weapon attack-speed tick is 0.6 seconds, so:
DPS = (acc * maxHit / 2) / (attackSpeed * 0.6)
Example
A scimitar (speed 4) with 70 Strength, an aggressive style, and a +68 strength bonus
gives an effective strength of 70 + 3 + 8 = 81 and a max hit of
floor(0.5 + 81 * (68 + 64) / 640) = 16. Pair that with the accuracy roll against
your target’s defence to read DPS instantly.