Tree of Savior Forum

Dodge rate formula

Just curious, is there anyone here with eva/accuracy and hit rates with own character level info, like what was done with the crit rate while figuring out the formula?

I had taken some data during cbt but lost it, but it should be possible, if it’s done the same way, to caculate an evasion - accuracy ) * ( x / lvl ) with enough numbers to plug in, to see if there’s any matching relation between the level gaps.

According to this guide

The evasion formula is

(DE - AA) / (0.3605*DL +18.64) * (AL^0.335)

Where
DE = Defender’s Evasion
AA = Attacker’s Accuracy
DL = Defender’s Level
AL = Attacker’s Level

I dunno what the source is for that, but overall it’s a pretty accurate guide.

Oh wow, I haven’t actually seen that before. Ty!

~bumping this~

Some idea: Since we know the crit damage formula
crit_chance = (crit_rate - crit_resist) * (42/attacker_level)

i tried modifying this to come up with a simpler formula for dodge:
dodge_chance = (defender_evasion - attacker_accuracy) * (42/defender_level)

In the guide linked by asphidel we have a table that shows by the guide maker calculated values that are needed to get 10% more dodge rate
Dodge Rate | Character Level | Required more evasion than accuracy
+10% | 100 | 26
+10% | 200 | 53
+10% | 300 | 85

If, instead of using the complicated formula, we use the simple one i posted above
dodge_chance = (defender_evasion - attacker_accuracy) * (42/defender_level)
we’d get for a level 100 character
26 * (42/100) = 10,92
pretty close to the 10% from the table

for a level 200 character
53 * (42/100) = 11.13
also pretty close, however an increase of ~1.13.

The 26, 53 and 85 cause it to raise rather strangely
If we assume that the formula from the guide author is not entirely accurate (he even states it in his guide) and if we assume that experiments based on luck (evading enemies attacks) are almost never 100% the perfect values that should mathematically be happening (if you throw a coin 1000 times most likely you won#t get 500 heads/500 tails but more likely something like 512 heads/488 tails) we can try to nudge numbers a bit

What if, instead of requiring an additional 26, 25, 85… difference of evasion for each additional 100 levels which seems really strage, it’s a flat fixed number increase per level? Lets say 25 per 100 level, since it’s pretty close to the numbers of the table in the guide (26,53,85).

A simplified dodge formula could look like this :
*dodge_rate = ((defenderEvasion - attackerAccuracy)defender_level/100) * (42/defender_level)
which means for each 25level/100 dodge above the enemies accuracy you gain 10,5% dodge ratio
For level 100:
(25
100/100) * (42/100) = 25 * (42/100) = 10,5 , aka +25 more evasion than enemies accuracy provides +10.5% dodge rate at level 100
(25200/100) * (42/200) = 50 * (42/200) = 10,5, aka +50 more evasion than enemies accuracy provides +10.5% dodge rate at level 200
(25
300/100) * (42/300) = 75 * (42/300) = 10,5, aka +75 more evasion than enemies accuracy provides +10.5% dodge rate at level 200

For level 280:
(25280100) * (42/280) = 70 * (42/280) = 10,5, aka +70 more evasion than enemies accuracy provides +10.5% dodge rate at level 280
For a dodge rate of ~50% at level 280 you’d need 70
5 = 350 more evasion than enemies accuracy (actually a bit evasion less since 70 more evasion would be 10.5% more dodge instead of 10%).
For a dodge rate of ~80% at level 280 you’d need 70*8 = 560 more evasion than enemies accuracy (same here, a bit less evasion than i calculated here because of the 10.5% rate instead of 10%)

The “more evasion required per level in order to keep the same dodge rate” seems to be pretty close to the table shown in the guide (26/53/85 vs 25/50/75 for level 100/200/300 for a ~10% increase) but with a far less “cluttered” formula.

That’s just my try for a simplified formula, if anyone wants to check if it’s accurate, feel free to test it.

PS: If we use 40 instead of the 42 and keep the 25 it’s a flat +10% instead of +10.5, so it could also be
dodge_rate = ((defenderEvasion - attackerAccuracy)*level/100) * (40/level) instead of
dodge_rate = ((defenderEvasion - attackerAccuracy)*level/100) * (42/level)

2 Likes

Does anyone want to shed light on this topic again?

Assuming Battle League where all characters are level 200, I’ve tried out the following formulas using 850EVA and 300Accuracy:

(DE - AA) / (0.3605DL +18.64) * (AL^0.335)
(850 - 300) / (0.3605
200 +18.64) * (200^0.335)=35.76

No idea what the 35.76 actually represents in that formula.

In contrast, the other formula offered by @Sayurichan gives:

dodge_rate = ((defenderEvasion - attackerAccuracy)*level/100) * (40/level)
(850 - 300) * (40/200) = 110

Apparently dodging 110% of all attacks?

I’m not really sure where to start here, but I’m trying to work towards discovering a mathematical way to quantify amount of DEX required in BL to hit different EVAs. But all the different formulas people are suggesting for accuracy/dodge are giving WILDLY different numbers.

Some light shedding on some of this in an ELI5 manner would be great.

Please keep in mind that i haven’t done any big testing with the formula i posted.
I just got that by assuming that that super-complicated formula “(DE - AA) / (0.3605*DL +18.64) * (AL^0.335)” is probably not the 100% correct one and that it’s more likely that they used a formula similar to the crit formula (developers are lazy, we like to reuse things, if possible :wink: ).
Whether that is actually the case, i don’t know.

If you used that complicated formula for that,I think you did something wrong. The " *(200^0.335)" needs to be below the division line. If you are using a calculator you should use ()-brackets around the whole “below the division line”-part, otherwise the " * (200^0.335)" is used as a separate factor after the division.

Correct (with enough brackets to avoid any ambiguity) is :
(850 - 300) / ((0.3605 * 200 + 18.64) * (200 ^ 0.335)) = 1.02
which i think is 102% chance to evade (not sure though), if that complicated formula is correct.

My formula would get ~110% chance to evade.

However, keep in mind that evasion rate is probably capped at 80%~90%, regardless what the results of the formulas are (so don’t complain if the formula says >100% evasion but you still get hit :stuck_out_tongue_winking_eye: ).

1 Like

Alrighty then. Further testing required.

An interesting discovery in my testing on this is that Rush Dog (Hunter Skill) seems to be completely incapable of missing. A level 82 character vs a 280 character can still hit with Rush Dog, all other pet skills will still proc their effects (such as retrieve) but damage will be dodged.

It also won’t do the typical 1 dmg.

I’d be really interested in whether there are other skills on other classes that seem to have these unusual properties.

I appreciate the formula correction, that output looks much more likely to be close to correct. I’m inclined to take a middle average between the two formulas as being closest to correct.

Double posting as it’s work I’ve done since the above post.

Switching over to a more realistic approach for BL. An optimal DEX for an archer could look something like this.

We switch to 650 EVA because the other high number is somewhat impossible sans-buffs due to lack of equipment boosts in BL.

This EVA can be reduced to a 50% hit rate with 382 accuracy
(650 - 382) / ((0.3605 * 200 + 18.64) * (200 ^ 0.335))=0.500600144

According to the tosmechanics pdf. The accuracy formula is:

HR = Lv + DEX + ((Lv+4)/4)

HR=ACC
Lv = Level

And the bracketed part of this equation ONLY applies to archers, it is an archer bonus.

SOOOOO

To get 382 accuracy. You would need 131 DEX pts (as an archer). This would give you the 50% hit rate against 650EVA builds, which is around 280DEX to reach that EVA sans equipment bonus because you don’t get it in BL.

200 + 131 + ((200+4)/4)=382

Other classes would require 50 more points in DEX for the same results due to lack of the archer bonus to accuracy. This will have to be scaled higher if they ever increase the level that BL gets set to.

IMO this answers the frequent question that comes up “How much minimum DEX do I need for Battle League?”

This assumes that accuracy bonus from gloves isn’t a thing in BL, I haven’t tested that. I have assumed it isn’t because no other bonuses work on armour. DEX could be much lower otherwise depending on the gloves worn.

so we don’t actually know the dodge formula and its just from assumptions?

They are not just assumptions, but educated guesses, meaning that there is some basis for why we came up with these formulas.

The formula most people are using is from this page (the pdf file)


and is
(DefenderEvasion - AttackerAccuracy) / ((0.3605 * DefenderLevel + 18.64) * (Attackerlevel ^ 0.335))
The author of that document says that it’s a fairly accurate formula for the testing done by the author but probably not 100% accurate and may “fall apart after level 250+”.

I tried finding a simpler evasion rate formula because i really don’t think developers use formulas with wierd values like “X^0.335” or “0.3605 * X + 18.64”, it’s highly likely it’s much simpler than that…

Based on the rough evasion rates calculated by that author and with the fair assumpton that developers are lazy and like to reuse code and formulas for different aspects of a gamei punched some numbers from the documents author in a slightly modified crit rate formula
dodge_rate = ((defenderEvasion - attackerAccuracy)*level/100) * (42/level)
or
dodge_rate = ((defenderEvasion - attackerAccuracy)*level/100) * (40/level)
and came to, compared to the results of the documents author, similar dodge rates (as mentioned in my first post in this topic).

So you see there is some basis for why and how we came to these formulas, but they haven’t been tested enough to conclude that they are absolutely accurate.

@Lenny For Dodge / Evasion calc can be found here. thread died some time ago since Mobs doesn’t even Dodge for real.

Time to necro this one.

1 Like

level/100 * 42/level = 42/100 = 0.42

i think it is wrong formula.