Hm, yeah Illicit's data raise a couple of red flags on TAKP dodge/parry/riposte/block code. I'd like to dig into it a little further, but can't make much headway without knowing What were the SK dodge/riposte/parry skill caps at level 65 on AK? How confident are we that defensive skills should get evaluated in the TAKP order, riposte > parry > (block >) dodge? Illicit thought (and his data perhaps suggest) that the order was parry > riposte > dodge.

(fun fact, btw: as the code's currently written, the 15% riposte mod on bloodfrenzy should let a warrior with 225 unmodified skill riposte 9% of all incoming attacks, up from 7% unmodified. as if that sword needed to get any better!)

The answer to the correct order of the checks is apparently contained in our client's source code, and someone gave us the answer several years back. It's block, parry, riposte, dodge, shieldblock, avoidance, mitigation. (I don't think shieldblock is actually a thing for us, but apparently there's a lot of weird superfluous stuff like that in the client source.)

1. Block check 2. Parry check 3. Riposte check 4. Dodge check 5. Shield Block check 6. Avoidance check It was commonly noted that swarming knights on Live didn't want Improved Parry modifiers because it reduced the number of riposte rolls they would get, thus reducing their DPS/Healing. This is the order on Live and has been for some time. I sort of just assumed it's been that way forever and Shield Block AA was just tossed in at the end there when that AA was added in OoW. And yes, Bloodfrenzy is OP. It's probably best in slot offhand even in PoTime because of that modifier.

The way the order of operations was done on Live was confirmed by discing. Example: A ranger with Weaponshield on will parry everything. However, if an incoming attack was something-besides-parried, then it was assumed that something-besides-parry had to have rolled before parry. If this was in doubt, we could check old AK logs to confirm AKuracy: Deftdance gives 100% dodge, Weaponshield gives 100% parry, and Furious gives 100% riposte Check what happens when each of those discs are active. If warriors under furious don't parry or dodge, then riposte is first. If rangers never riposte while under weaponshield, then parry is first. If bards don't parry or riposte, then dodge is first.

Aha! That fits Illicit's data better. I believe it also means that TAKP's combat routines are out of order - or at least they were in the last open source version - and that mobs and players are riposting a bit too often atm.

Here are Illicit's data, with 99% Gaussian confidence intervals. (The estimates themselves depend on the data, so they're noisy and random. The confidence interval is the range in which, with approximately 99% probability, the true AK parry/riposte/dodge chance lies.) Although the parses were probably 10+ hours long, the sample size is actually still too small to draw really strong conclusions. Basing decisions on short parses is a bad idea! Anyhoo. No mods: parry: 6.32 +/- 0.51 percent (likely 6% true chance) riposte: 5.93 +/- 0.51 percent (likely 6% true chance) dodge: 5.58 +/- 0.51 percent (could be 5% or 6% true chance) With mods: parry: 7.11 +/- 0.41 percent (likely 7% true chance) riposte: 6.15 +/- 0.40 percent (likely 6% true chance) dodge: 6.22 +/- 0.41 percent (likely 6% true chance) The data are actually consistent with integer parry/riposte/dodge chances, like TAKP currently uses. I think that part is okay. What's weird is that the riposte chance appeared not to have been changed by the 12% riposte mod. The TAKP riposte chance function, Code: [ Only registered users can see the bbcode. Click Here To Register... ] suggests that at 200 unmodified skill, the 12% mod should have bumped the riposte chance from 6% to 7%. The others - 6% to 7% parry, no change to dodge - agree with the TAKP function and the AK knight skills of 205 parry, 170 dodge. (If you want to fiddle with that function, btw, the floor of a number is just the number rounded down to the nearest integer. So floor(2.38) = 2, floor(1.937) = 1, floor (328348.432) = 328348, etc.)

Our code currently does: Rip, Block, Parry, Dodge; because: https://forums.daybreakgames.com/eq...st-update-06-10-15.223510/page-2#post-3261772 Parse results from my 2016 logs seem to agree with Dzarn, but I didn't use discs. Riposte/swing rate matches skill + 100 / 50, and parry/swing rate is noticeably less than skill + 100 / 45. Also parry rate went up with a fire beetle eye equipped (parry does not require a weapon). If there is hard evidence that AK was different (I wouldn't be surprised) then it needs to be changed.

I've found such evidence. Frankly I should have looked at this more closely a lot sooner. Avoidance skill order will soon change to what Darchon posted. Also riposte and parry rates will be reduced. Seems Sony couldn't stop making the game easier time and time again.

** picks up the Torv-phone ** Big T, question for you! Back in the November 3 patch notes, we read Are you open to sharing how you changed the formulas? I don't doubt that the new ones are more accurate, I'm just curious about how dodge/parry/riposte/block mods are handled now. In the old code, the integer arithmetic gave some counterintuitive behavior. (Not inAKurate, just counterintuitive.) For example, knights saw no benefit from 1-5% dodge mods, but big benefit from mods of 6% or higher. I'm curious if the new code changes that kind of conclusion.

I just increased the divisor by 5. Parry is / 50 now, and Riposte is / 55. While going over pet skills, I did notice that when Sony applies the skill multipliers from items, that it includes the +100 in the multiplication; that's why the percentiles are so low. Of course this still makes the gains all-or-nothing with integer arithmetic. (seems silly for them to have used ints here)

Heh, yeah, using integer math but expressing dodge mods as percentages was pretty misleading. It seems like it would've been more natural to combine integer math with the tiered dodge mod system they used in later expansions (Improved Dodge I-II-III, etc.). The Luclin/PoP system is also tiered, but sneakily! Here's my best guess at the 'sneaky tiers' we'll see in Luclin. tldr: Knights, go for 10% riposte mod. Don't worry about parry or dodge; they're unachievable. Warriors, go for 7% parry mod and 3% riposte mod. Don't worry about dodge; it's unachievable. Casters, go for 3% dodge mod. Code for calculating dodge/parry/riposte chance from your base skill and worn mod: Code: [ Only registered users can see the bbcode. Click Here To Register... ] (Does that look about right, Torv? I'm not sure exactly what you meant about Sony including the +100 in the multiplication.) knights parry (205 skill) - 6% chance for mod < 15%, 7% chance above riposte (200 skill) - 5% chance for mod < 10%, 6% chance above dodge (170 skill) - 6% chance for mod < 17%, 7% chance above warriors parry (230 skill) - 6% chance for mod < 7%, 7% chance above riposte (225 skill) - 5% chance for mod < 2%, 6% chance above dodge (190 skill) - 6% chance for mod < 9%, 7% chance above casters dodge (75 skill) - 3% chance for mod < 3%, 4% chance above

I thought some Temerity SK on AK parsed and found that the lower mods worked. Are you sure the code shouldn't be: Code: [ Only registered users can see the bbcode. Click Here To Register... ]

Yeah, sorry, I edited a bit. I had the divisor wrong for dodge and parry in the first draft. I initially used /50 for all three. I updated the last post. I'll check agreement with Illicit's data.

So to recap, Illicit parsed AK defense skills with (a) no mods and (b) 12% parry/10% riposte/8% dodge mods. Let's assume that the AK skill caps for level 65 SKs were 205 parry, 200 riposte, 170 dodge. Then the formula Code: [ Only registered users can see the bbcode. Click Here To Register... ] predicts that without mods, Illicit's evasion rates should've been 6% parry, 5% riposte, 6% dodge. With the mods, it predicts 6% parry, 6% riposte, 6% dodge. Only the riposte mod should've mattered. That's inconsistent with Illicit's data, which suggest with fair confidence that the parry mod mattered, the dodge mod might've mattered, but the riposte mod probably did nothing. (His evasion rates with confidence intervals are a few posts up.)

Yes. The +100 is right in your formula here. I.e. it's (skill+100)*mult, not skill*mult. The second floor() you're doing here would still result in 0 for small mod vlaues. Regardless, the random roll done is with ints. Live parses confirm that, on Live at least, the roll is an int. I should make very clear that it's certain that Sony changed their function and the way I modified it to better fit the data I was seeing is an educated guess. Also VERY long parses would be required to parse differences of a fraction of a percent in the rate change of avoidance skills.

Cool, thanks for clarifying. Do we care that the current formula may not be consistent with Illicit's data? You're totally right about the huge number of swings needed to detect a 1% difference; although Illicit did 15k swings in the no mods case and 26k with mods, his evasion rate estimates are only accurate to about half a percent.

Also you need to keep in mind the avoidance order. Parry and block results will most closely match the expected rate, but skills after that will parse slightly lower due to the avoidance skills before them triggering first.

Hmm, I was thinking that might help the rounding error but I actually might have made that worse. Also, are you sure Verant wasn't pulling some mult/shift tricks to get better precision? Tough to say of course but even for Verant adding in a bunch of completely dysfunctional items seems a bit improbable somehow.

Yeah, sample sizes get progressively smaller for the skills that get checked later. I took that into account when I processed Illicit's data. Here's the code for the no mods case. The mods case looks similar. It's vectorized Matlab code, so apologies if it's not the world's most readable thing. Code: [ Only registered users can see the bbcode. Click Here To Register... ] That resulted in the following 99% confidence intervals: No mods: parry: 6.32 +/- 0.51 percent (likely 6% true chance) riposte: 5.93 +/- 0.51 percent (likely 6% true chance) dodge: 5.58 +/- 0.51 percent (could be 5% or 6% true chance) With mods: parry: 7.11 +/- 0.41 percent (likely 7% true chance) riposte: 6.15 +/- 0.40 percent (likely 6% true chance) dodge: 6.22 +/- 0.41 percent (likely 6% true chance) I could do a formal hypothesis test thingy, but just eyeballing it, +0.8% from the parry mod looks significant. The +0.6% from the dodge mod, ehh, maybe. The riposte mod probably did nothing.

To be honest that's not a whole lot when parsing fractions of a percent. It required logs with 500k+ to parse crit rates of a tenth of a percent. But of course we don't have the luxury of a server to parse on anymore, so we have to use what we have. I would like to parse those logs myself if they are still available. It's entirely possible that the old logs I was looking at simply parsed low due to how short they were, and that the divisors were the same back then. I made these logs in 2003, which were the most influential in my decision: Level 65 Monk w/ Ton Po Chestwrap defending vs Defender Filorou (Shadowhaven Guard), Oct 30 2003: Total Swings: 3381; Landed Blows: 1139 (33.688%); Avoided Swings: 2242 (66.311%) - Blocks: 500 (14.788%) - Parried: 0 (0%) - Riposted: 152 (4.495%) - Dodged: 196 (5.797%) - Misses: 1394 (41.23%) Level 65 Warrior w/ Raex BP defending vs Defender Kealren (Shadowhaven Guard), Oct 30 2003: Total Swings: 3373; Landed Blows: 1340 (39.727%); Avoided Swings: 2033 (60.272%) - Parried: 184 (5.455%) - Riposted: 178 (5.277%) - Dodged: 172 (5.099%) - Misses: 1499 (44.441%) Using the modern EQ formulae, expected avoidance rates would be: Monk block: (100+230)*1.08/25 = 14% Monk riposte: (100+225)/50 = 6% Monk dodge: (100+230)/45 = 7% Warrior parry: (100+230)/45 = 7% Warrior riposte: (100+225)*1.08/50 = 7% Warrior dodge: (100+190)/45 = 6% I also checked some other logs (which were even shorter) and they all seemed to agree that parry and rip were lower. Again, the RNG could have been deceiving me. I'm certainly willing to make more changes or revert my modifications if the data demands.

Sadly, Illicit didn't post his raw logs, just the following summary: Base case (Bloodmaw, no mods): Total Attacks: 15,320 Hits: 4,533 Misses: 8,214 Defensed: 2,573 Parried: 968 Riposted: 851 Dodged: 754 Modded case (same mob, 10% parry mod, 12% riposte mod, 8% dodge mod): Total Attacks: 26,328 Hits: 7,547 Misses: 13,978 Defensed: 4,803 Parried: 1,871 Riposted: 1,504 Dodged: 1,428

Sorry for thread necro. I've re-read the above findings many times, and I'm still unclear on the things: 1. Do we get decimal point benefits here, or just full percentage points? I can see some conflicting info from Illicit's data parses. Has this been disregarded from being implemented in our code due to insufficient data parsing? 2. What's the definitive list of mods that work. Is this it? Where do the Monks fall in this equation? I'd love a definitive list of which mods work (aka, able to reach the next breakpoint) for Riposte/Dodge/Parry mods What's the best way to document it some kind of a table so we can put it on the wiki? Is it by Skill caps definitions https://www.takproject.net/SkillCaps Or by this AC by Class table http://wiki.takp.info/index.php?title=AC_Softcaps_by_Class Or something else? Some other table based on some % formula that differs than the above options? Option 1 - Table by skill cap definitions Dodge skill cap at 65 230 - Monk - need %? mod to reach next breakpoint 210 - Rogue - need %? mod to reach next breakpoint 190 - Warrior - need %? mod to reach next breakpoint 170 - Pal/Rng/SK/Bard/Bst - need %? mod to reach next breakpoint 75 - Clr/Dru/Shm/Nec/Wiz/Mag/Enc - need %? mod to reach next breakpoint Parry skill cap at 65 230 - Warrior / Rogue - need %? mod to reach next breakpoint 220 - Ranger - need %? mod to reach next breakpoint 205 - Pal / SK - need %? mod to reach next breakpoint 185 - Bard - need %? mod to reach next breakpoint Riposte skill cap at 65 225 - Warrior / Monk / Rogue - need %? mod to reach next breakpoint 200 - Pal / SK - need %? mod to reach next breakpoint 150 - Ranger - need %? mod to reach next breakpoint 75 - Bard - need %? mod to reach next breakpoint Option 2 - Table by AC Soft Cap by class Warrior - need %? mod for Dodge, %? mod for Parry, %? mod for Riposte to reach next breakpoint Pal, Sk, Clr, Brd - need %? mod for Dodge, %? mod for Parry, %? mod for Riposte to reach next breakpoint Rng, Shm - need %? mod for Dodge, %? mod for Parry, %? mod for Riposte to reach next breakpoint Dru, Bst, Rog, Casters - need %? mod for Dodge, %? mod for Parry, %? mod for Riposte to reach next breakpoint Monk - need %? mod for Dodge, %? mod for Parry, %? mod for Riposte to reach next breakpoint Option 3 - Table by OverCap Returns by class Warrior - need %? mod for Dodge, %? mod for Parry, %? mod for Riposte to reach next breakpoint Knights - need %? mod for Dodge, %? mod for Parry, %? mod for Riposte to reach next breakpoint Bard - need %? mod for Dodge, %? mod for Parry, %? mod for Riposte to reach next breakpoint Rng, Bst - need %? mod for Dodge, %? mod for Parry, %? mod for Riposte to reach next breakpoint Mnk, Rog - need %? mod for Dodge, %? mod for Parry, %? mod for Riposte to reach next breakpoint Others (priest and silk casters) - need %? mod for Dodge, %? mod for Parry, %? mod for Riposte to reach next breakpoint Sorry to be pedantic about it, it keeps coming up in our guild discussions, and only reference I have is this thread which is quite ambiguous. Would be really good to have a definitive list of working mods in our era. Thanks to anyone who can help!

AFAIK, this is the current TAKP formula for dodge, riposte, parry and block chances: Code: [ Only registered users can see the bbcode. Click Here To Register... ] In that formula, floor(X) is the largest integer below X. For example, floor(1.2) = 1 and floor(3.99) = 3. Here's what that formula gives for the skill caps at level 60 in the table you linked, Rimi. (Caveat: I don't know if that table is accurate.) Block skill cap at 60 230 - Monk - need 7% mod to reach next breakpoint 200 - Bst - need 9% mod to reach next breakpoint Dodge skill cap at 60 230 - Monk - need 10% mod to reach next breakpoint 210 - Rogue - need 2% mod to reach next breakpoint 190 - Warrior - need 9% mod to reach next breakpoint 170 - Pal/Rng/SK/Bard/Bst - need 17% mod to reach next breakpoint 75 - Clr/Dru/Shm/Nec/Wiz/Mag/Enc - need 3% mod to reach next breakpoint Parry skill cap at 60 230 - Warrior / Rogue - need 7% mod to reach next breakpoint 220 - Ranger - need 10% mod to reach next breakpoint 205 - Pal / SK - need 15% mod to reach next breakpoint 185 - Bard - need 6% mod to reach next breakpoint Riposte skill cap at 60 225 - Warrior / Monk / Rogue - need 2% mod to reach next breakpoint 200 - Pal / SK - need 10% mod to reach next breakpoint 185 - Bst - need 16% mod to reach next breakpoint 150 - Ranger - need 10% mod to reach next breakpoint 75 - Bard - need 26% mod to reach next breakpoint So in Luclin, almost nothing matters. The only exceptions are Laminate Bracer for monks/BLs, a few dodge mods for rogues/priests/casters, Ring of Reflex for warriors/rogues/bards, Bloodfrenzy for warriors, and Mask of Resiliance or Crystal Shadow Cloak for monks/rogues (and warriors without Bloodfrenzy). I think there's a problem with the skill cap table. The data appear to be identical at 60 and 65.

Amazing thank you Slouch! Have added new section to http://wiki.takp.info/index.php?title=Game_Play_Mechanics with the above info documented.

No problemo! I can run the numbers for level 65, too, if the skill cap table gets updated. I'm curious m'self whether the 8% dodge mod on the melee AG earring will do anything, whether knights should bother farming the 12% riposte mod mace from PoFire, etc.