In PvE, the hit chance is somehow complicated to calculate because the enemy hit stat is not shown anywhere and because there is a strong influence of the player – monster level difference.

If you want to understand how hit works in the arena, there is a separate article and calculator for it.


Some considerations:

  • Hit chance can never be lower than 10% or higher than 90%.
  • In PvE the spells always hit – unlike the arena where they need to pass the same hit check.
  • The monsters always hit you, so unlike PvP, you can’t stack more hit as a defensive strategy.

The level difference formula

The hit formula has 2 parts, each deciding up to 50% of your hit chance.

The first part is a level difference check. Your level minus the enemy level. The formula caps at -13 and +9, and it gives a hit chance varying from -5 to +50.

You can find the exact numbers for each level difference in this game file,  under “public static int GetHitStep1(int attackerLevel, int defenderLevel)”

The same file includes all the logic for hit calculation.

The hit difference formula

The second part is identical to the arena one

(attackerHit – defenderHit / 3) / defenderHit * 100

But there is one major catch. Finding out how much hit the enemy has.

I was initially hoping that this is a simple calculation, but it’s not. Each monster has somehow different values and they get multiplied by a stage bonus.

To make things simple we’ve created the hit calculator above but it is not very precise because it’s using some approximations for the enemy hit instead of fetching the exact numbers from the database.

Getting the exact enemy hit

If you want to get the very exact enemy hit numbers you need to:

  1. Find the monster id in this file 
  2. Get his main stat and main level multiplier from here 
  3. Get the stage bonus from here 
  4. Fill and calculate this formula
    Final stat = (Base stat + Level Growth Value) * ((Stage Bonus Stat + 100) / 100)
Looks like 9cNice website has them already calculated so I made a second calculator if you want to manually get the hit values from there.

I hope this was educational and I encourage you to experiment with the values to find out how much hit you actually need to progress. – Wabbs