Jump to content
This is a wiki for a reason. Anyone can contribute. If you see something that is inaccurate or can be improved, don't ask that it be fixed--just improve it.
[ Disclaimer, Create new user --- Wiki markup help, Install P99 ]

Combat Mechanics

From p99 Backup

Calculations for Melee, Archery, and Throwing Damage

[edit]

Damage Cap

The damage cap is NOT a total damage cap. It is the base weapon damage that is caped.

The patch on Monday, February 13th, 2017 introduced per-class limits:

    Caster Weapon Damage Cap
Level Range Weapon DMG Cap
1-9 6
10-19 10
20-29 12
30-39 18
40+ 20
    Priest Weapon Damage Cap
Level Range Weapon DMG Cap
1-9 9
10-19 12
20-29 20
30-39 26
40+ 40
    Melee & Tank Weapon Damage Cap
Level Range Weapon DMG Cap
1-9 10
10-19 14
20-29 30
30-39 60
40+ 100


Damage Calculation

    Caster & Priest Damage Multiplier
Level Range maxExtra maxExtraChance minusFactor
1-50 210? 49? 80
51-55 210? 35? 80?
56-59 210? 28? 80?
60 210 23? 80
    Melee & Tank Damage Multiplier
Level Range maxExtra maxExtraChance minusFactor
1-50 210? 49? 80
51-55 245? 35? 80?
56-59 265? 28? 70?
60 285 23? 65

NOTE: Not all of the values in the two damage multiplier tables have been tested on P99. Original EQEMU values are here. The EQEMU has a monk specific table, so it is possible that there are unique tables for some classes.

Here is a breakdown of the damage calculation in a simplified format. Please note that it is difficult to confirm all of the magic numbers for P99, so a few of them may differ slightly from the EQEMU code. Because of this, the max damage numbers may be a few points off when looking at P99 damage numbers.

1. Calculate Wrath
1a. StrengthModifier = ((2 * STR) - 150) / 3
1b. If STR is less than 75, StrengthModifier = 0

1c. Wrath = Weapon Skill + StrengthModifier + Worn ATK + Spell ATK

2. Roll a D20
Press the expand button if you want to see how the game weights the D20 dice. Otherwise, you can just assume a roll of 20 for max damage calcualtions.

2a. WrathRoll = Random Float Value Between 0.0 and 1.0 * (Wrath + 5)
2b. MitigationRoll = Random Float Value Between 0.0 and 1.0 * (Defenders Total Worn AC + Defenders Total Spell AC + (Defenders Defense Skill / 5) + (Defenders Agility / 20) + 5)
2c. AverageRoll = (WrathRoll + MitigationRoll + 10) / 2
2d. If AverageRoll is less than 1, AverageRoll = 1
2e. RollIndex = (WrathRoll - MitigationRoll) + (AverageRoll / 2)
2f. If RollIndex is less than 0, RollIndex = 0
2g. Weighted D20 Dice Roll = ((RollIndex * 20) / AverageRoll) rounded down
2h. If Weighted D20 Dice Roll is less than 0, Weighted D20 Dice Roll = 0
2i. If Weighted D20 Dice Roll is greater than 19, Weighted D20 Dice Roll = 19
2j. Weighted D20 Dice Roll = Weighted D20 Dice Roll + 1


2k. RolledD20 = Weighted D20 Dice Roll / 10

3. Calculate DamageDone
3a. If Wrath is less than 115, Extra Percent = 100, skip to step 3g
3b. Roll D100. If Rolled D100 is less than maxExtraChance, Extra Percent = 100, skip to step 3g
3c. Base Bonus = (Wrath - minusFactor) / 2
3d. If Base Bonus is less than 10, Base Bonus = 10
3e. Extra Percent = 100 + (Base Bonus * Random Float Value between 0.0 and 1.0)
3f. If Extra Percent is greater than maxExtra, Extra Percent = maxExtra

3g. DamageDone = (Weapon Damage * RolledD20 * Extra Percent) / 100

4. Calculate FinalDamage
4a. If using Archery, DamageDone = DamageDone / 2
4b. If not using Archery, or using Archery as a Ranger and target is "stationary" (mob not moving and not rooted), skip step 4a
4c. If Critical Hit is possible and has occurred, continue to step 4d. Otherwise skip to step 4i
4d. If DamageDone is less than Weapon Damage, DamageDone = Weapon Damage
4e. DamageDone = DamageDone + 5
4f. DamageDone = DamageDone * 1.7
4g. Continue if Warrior and Berserk
4h. DamageDone = DamageDone + (Damage from step 4e * 1.19)

4i. FinalDamage = DamageDone + Main Hand Damage Bonus

NOTE: Throwing does NOT get the Main Hand Damage Bonus
NOTE: Archery uses the Main Hand Damage Bonus of the Weapon in your Primary Hand
NOTE: When using Breezeboot's_Frigid_Gnasher in your Primary Hand, it uses the 2Handed Damage bonus for 50 Delay rather than the 1Handed Damage Bonus. This is still true even if you are dual wielding

Damage Calculation Examples
Below are some P99 examples with videos and logs, which are found in the video description. All of these calculations are max damage calculations.

Level 60 Shadowknight with Ancient Fire Etched Flamberge (46/44) in the Main Hand

1. Wrath = 225 2Hand Slash Skill + ((231 STR * 2) - 150) / 3 + 10 worn ATK from Aura_of_Battle + 6 worn ATK from Blazing_Gauntlets_of_Fennin_Ro = 345
2. RolledD20 = 20 / 10 = 2
3a. Base Bonus = (345 Wrath - 65 minusFactor) / 2 = 140
3b. Extra Percent = 100 + (140 Base Bonus * 1.0 Random Value) = 240
3c. DamageDone = (46 Weapon Damage * 2 RolledD20 * 240 ExtraPercent) / 100 = 220 rounded down
4. 220 + 37 Main Hand Damage Bonus = 258

Max Damage Calculated = 257
Max Damage Recorded = 258

219 hits out of 496 hits total are below or at Weapon Damage * 2 + Main hand Damage Bonus (129 Damage). That is a ~56% chance to hit above Weapon Damage * 2 + Main hand Damage Bonus (129 Damage).

Level 60 Shaman with Spear of Fate (20/30) in the Main Hand

1. Wrath = 200 Pierce Skill + ((255 STR * 2) - 150) / 3 + 20 Worn ATK from 2x Aura_of_Battle + 100 Spell ATK from Primal_Avatar = 440
2. RolledD20 = 20 / 10 = 2
3a. Base Bonus = (440 Wrath - 80 minusFactor) / 2 = 180 rounded down
3b. Extra Percent = 100 + (180 Base Bonus * 1.0 Random Value) = 280
3c. Extra Percent = 210, because 280 > 210 maxExtra
3d. DamageDone = (20 Weapon Damage * 2 RolledD20 * 210 ExtraPercent) / 100 = 84
4. 84 + 0 Main Hand Damage Bonus = 84

Max Damage Calculated = 84
Max Damage Recorded = 84

333 hits out of 959 hits total are below or at Weapon Damage * 2 (40 Damage). That is a ~65% chance to hit above Weapon Damage * 2 (40 Damage).

Level 52 Monk with Shattering Hammer (9/30) as Throwing Weapon in the Ranged Slot

1. Wrath = 121 Throwing Skill + ((144 STR * 2) - 150) / 3 + 0 Worn ATK + 40 Spell ATK from Celestial_Tranquility = 207
2. RolledD20 = 20 / 10 = 2
3a. Base Bonus = (207 Wrath - 80 minusFactor) / 2 = 63 rounded down
3b. Extra Percent = 100 + (63 Base Bonus * 1.0 Random Value) = 163
3c. DamageDone = (9 Weapon Damage * 2 RolledD20 * 163 ExtraPercent) / 100 = 29 rounded down
4. 29 + 0 Main Hand Damage Bonus = 29

Max Damage Calculated = 29
Max Damage Recorded = 30

169 hits out of 290 hits total are below or at Weapon Damage * 2 (18 Damage). That is a ~42% chance to hit above Weapon Damage * 2 (18 Damage).

Level 60 Shadowknight with Weighted Axe (45/150) in the Main Hand, Talisen Bow (25/50) in the Ranged Slot, 1 Damage Arrows in the Ammo Slot

1. Wrath = 68 Archery Skill + ((206 STR * 2) - 150) / 3 + 16 Worn ATK + 20 Spell ATK = 191 rounded down
2. RolledD20 = 20 / 10 = 2
3a. Base Bonus = (191 Wrath - 65 minusFactor) / 2 = 63 rounded down
3b. Extra Percent = 100 + (63 Base Bonus * 1.0 Random Value) = 163
3c. DamageDone = (26 Weapon Damage * 2 RolledD20 * 163 ExtraPercent) / 100 = 84 Damage / 2 Archery Penalty = 42 rounded down
4. 42 + 110 Main Hand Damage Bonus = 152

Max Damage Calculated = 152
Max Damage Recorded = 155

142 hits out of 268 hits total are below or at ((Weapon Damage * 2) / 2) + Main hand Damage Bonus (136 Damage). That is a ~48% chance to hit above ((Weapon Damage * 2) / 2) + Main hand Damage Bonus (136 Damage).

Additional Damage Calculation Examples
Press the expand button to see more damage calculation examples.


Level 52 Monk with Tranquil Staff (29/30) in the Main Hand

1. Wrath = 244 2Hand Blunt Skill + ((144 STR * 2) - 150) / 3 + 0 Worn ATK + 40 Spell ATK from Celestial_Tranquility = 330
2. RolledD20 = 20 / 10 = 2
3a. Base Bonus = (330 Wrath - 80 minusFactor) / 2 = 125
3b. Extra Percent = 100 + (125 Base Bonus * 1.0 Random Value) = 225
3c. DamageDone = (29 Weapon Damage * 2 RolledD20 * 225 ExtraPercent) / 100 = 130 rounded down
4. 130 + 16 Main Hand Damage Bonus = 146

Max Damage Calculated = 146
Max Damage Recorded = 144

449 hits out of 1070 hits total are below or at Weapon Damage * 2 + Main hand Damage Bonus (74 Damage). That is a ~58% chance to hit above Weapon Damage * 2 + Main hand Damage Bonus (74 Damage).

Level 52 Monk with Epic Fist (9/16) in the Main Hand

1. Wrath = 231 Hand to Hand Skill + ((141 STR * 2) - 150) / 3 + 0 Worn ATK + 0 Spell ATK = 275
2. RolledD20 = 20 / 10 = 2
3a. Base Bonus = (275 Wrath - 80 minusFactor) / 2 = 97 rounded down
3b. Extra Percent = 100 + (98 Base Bonus * 1.0 Random Value) = 197
3c. DamageDone = (9 Weapon Damage * 2 RolledD20 * 198 ExtraPercent) / 100 = 35 rounded down
4. 35 + 9 Main Hand Damage Bonus = 44

Max Damage Calculated = 44
Max Damage Recorded = 44

325 hits out of 713 hits total are below or at Weapon Damage * 2 + Main hand Damage Bonus (27 Damage). That is a ~55% chance to hit above Weapon Damage * 2 + Main hand Damage Bonus (27 Damage).

Level 52 Monk with Imbued Fighter Staff (38/40) in the Main Hand

1. Wrath = 244 2Hand Blunt Skill + ((141 STR * 2) - 150) / 3 + 0 Worn ATK + 0 Spell ATK = 288
2. RolledD20 = 20 / 10 = 2
3a. Base Bonus = (288 Wrath - 80 minusFactor) / 2 = 104
3b. Extra Percent = 100 + (104 Base Bonus * 1.0 Random Value) = 204
3c. DamageDone = (38 Weapon Damage * 2 RolledD20 * 204 ExtraPercent) / 100 = 155 rounded down
4. 155 + 18 Main Hand Damage Bonus = 173

Max Damage Calculated = 173
Max Damage Recorded = 171

135 hits out of 288 hits total are below or at Weapon Damage * 2 + Main hand Damage Bonus (94 Damage). That is a ~54% chance to hit above Weapon Damage * 2 + Main hand Damage Bonus (94 Damage).

Level 60 Shadowknight with Frostwrath (24/22) in the Main Hand

1. Wrath = 225 1Hand Slash Skill + ((231 STR * 2) - 150) / 3 + 10 worn ATK from Aura_of_Battle + 6 worn ATK from Blazing_Gauntlets_of_Fennin_Ro = 345
2. RolledD20 = 20 / 10 = 2
3a. Base Bonus = (345 Wrath - 65 minusFactor) / 2 = 140
3b. Extra Percent = 100 + (140 Base Bonus * 1.0 Random Value) = 240
3c. DamageDone = (24 Weapon Damage * 2 RolledD20 * 240 ExtraPercent) / 100 = 115 rounded down
4. 115 + 11 Main Hand Damage Bonus = 126

Max Damage Calculated = 126
Max Damage Recorded = 127

408 hits out of 1050 hits total are below or at Weapon Damage * 2 + Main hand Damage Bonus (59 Damage). That is a ~61% chance to hit above Weapon Damage * 2 + Main hand Damage Bonus (59 Damage).

Level 25 Warrior with Wurmslayer (25/40) in the Main Hand

1. Wrath = 130 1Hand Slash Skill + ((157 STR * 2) - 150) / 3 + 0 Worn ATK + 0 Spell ATK = 185
2. RolledD20 = 20 / 10 = 2
3a. Base Bonus = (185 Wrath - 80 minusFactor) / 2 = 52 rounded down
3b. Extra Percent = 100 + (52 Base Bonus * 1.0 Random Value) = 152
3c. DamageDone = (25 Weapon Damage * 2 RolledD20 * 152 ExtraPercent) / 100 = 76
4a. 76 + 0 Main hand Damage Bonus = 76 Max Damage
4b. 76 + 5 * 1.7 = 137 rounded down
4c. 137 + 0 Main Hand Damage Bonus = 137 Max Critical Hit Damage

Max Damage Calculated = 76
Max Damage Recorded = 76
Max Critical Hit Damage Calculated = 137
Max Critical Hit Damage Recorded = 134

606 hits out of 873 hits total are below or at Weapon Damage * 2 (50 Damage). That is a ~31% chance to hit above Weapon Damage * 2 (50 Damage).

Level 24 Cleric with Poison Wind Censer (20/28) in the Main Hand

1. Wrath = 100 2Hand Blunt Skill + ((128 STR * 2) - 150) / 3 + 0 Worn ATK + 0 Spell ATK = 135
2. RolledD20 = 20 / 10 = 2
3a. Base Bonus = (135 Wrath - 80 minusFactor) / 2 = 27 rounded down
3b. Extra Percent = 100 + (27 Base Bonus * 1.0 Random Value) = 127
3d. DamageDone = (20 Weapon Damage * 2 RolledD20 * 127 ExtraPercent) / 100 = 50 rounded down
4. 50 + 0 Main Hand Damage Bonus = 50

Max Damage Calculated = 50
Max Damage Recorded = 49

497 hits out of 586 hits total are below or at Weapon Damage * 2 (40 Damage). That is a ~15% chance to hit above Weapon Damage * 2 (40 Damage).



Damage Bonus Starting at level 28, a damage bonus is applied to all 2-handed and main-hand 1-handed weapons. For the full table of values see https://lucy.allakhazam.com/dmgbonus.html?setcookie=1. The 1-hand bonus is constant per level, while the 2-hand bonus scales with delay, the higher delay having a higher bonus. For this reason, players who use 1-handed weapons often prefer a low-delay mainhand weapon so that the damage bonus is applied more frequently.

Prior to level 28, and for off-hand 1-handers, the rule of thumb for comparing weapons is:

(2 * damage) / delay

When the damage bonus is applicable, the rule of thumb becomes:

(2 * damage + bonus) / delay