Topic (Sticky) Combat tables, diminishing returns and PANDAS
Edited by Waniou on 1/20/13 1:21 AM (PST)
Hello, I'm Waniou, and I'm here to give you a somewhat brief guide to how monsters attack you in WoW. Since this is the tank forum, I'm looking at solely things from a tank point of view so I really don't care at all about diminishing returns on crit rating and stuff. Just avoidance.
Firstly, very important update: As of 5.0, CTC capping is no longer possible, since block is now on its own special roll. Second important update: Block now suffers from diminishing returns.
1. The Combat Table
So, firstly, we look at how attacks on WoW are calculated. For normal attacks, WoW uses what's called a single roll system, so basically, when you or a mob attacks, a single random number is generated and the results of the attack are determined based on that. Think of it like rolling a dice. Say, for example, you have a 1/6 chance to be missed, you have a 1/6 chance to dodge and a 1/6 chance to parry. If you roll a 1, the attack is a miss, if you roll a 2, the attack is dodged, if you roll a 3, the attack is parried. Anything else and the attack lands.
This might seem unimportant but it has two very important results.
Firstly, avoidance is additive, not multiplicative. One of the common mistakes people make in coming into the game is getting that wrong. What's the difference? Well, if it were multiplicative, it would mean that first the game would calculate if the attack was missed. If it wasn't, it would then calculate if the attack was dodged. If it wasn't, it would then calculate if the attack was parried. This results in a different total avoidance to what it actually is. For the maths, you'd get
This is wrong. Don't use this. To get your total avoidance, you can simply add your avoidance stats together. Which leads to the second very important result: It's theoretically possible to become what is referred to as "unhittable". What this means is simply that any attack made against you will be avoided. If avoidance were multiplicative, this would only be possible if you had a move like Evasion (Which gives 50% dodge chance) on top of 50% dodge. With a combat table, you can have, say, 50% dodge, 45% parry and 5% miss and you'd be completely unhittable. With a multiplicative system, you'd still be hit roughly 25% of the time. This isn't too important unless you're interested in the maths of it, so to sum up, basically to get your total avoidance you simply add your avoidance stats (ie, miss, dodge and parry).
The combat table is filled out in that order, from top to bottom. Now, criticals are kept in for the sake of completion here (I've left out a few things that tanks need never worry about, such as glancing or crushing blows) but against bosses, the critical chance is always 0% due to your spec passives. There are mobs, however, who can crit despite having those talents but that's not going to be covered in this thread.
It's worth noting here that player attacks use the same sort of combat table (I'll touch on this later)
So, to fill out the table with some generic avoidance stats, we get this:
Anyone who's done any basic maths knows a list of percent chances needs to add up to 100, so whatever's not avoidance is chance to be fully hit:
This is where being unhittable comes in. If you can increase your avoidance stats high enough, you can reduce that hit chance to 0%. At this point, you're unhittable, but like I said, this will only ever be possible with short term buffs.
It's worth pointing out here, that mobs higher levelled than you have an innately higher chance to hit. It works out to be a 1.5% decrease to each avoidance stat per level above you, so for a mob one level above you, you lose 4.5% avoidance (Or 3% if you're a bear, since you can't parry anyway), and for mobs two levels above you, you lose 9% avoidance (Or 6% if you're a bear), and for mobs three levels above you (ie, raid bosses), you lose 12%. Wait! What's that? Shouldn't it be 13.5%, because it's 1.5% x 3 levels (4.5%) x 3 avoidance stats? (13.5%)? Well not quite, because you only have a 3% chance to be missed. You can't have a -1.5% chance to be missed, so it's 3% less miss chance, plus 4.5% each for parry and dodge. Or, well, 7.5% for a bear.
So the way this works in combat is similar to the dice roll I mentioned earlier. Every time a monster hits you, the computer calculates a random number between 0.00% and 100%, then based on that, looks up what that number corresponds to in the attack table and then does whatever with it. So, say, if it rolls a 3.67%, that becomes a miss. If it rolls a 17.91%, it becomes a dodge and so on.
Edited by Waniou on 10/3/12 2:19 AM (PDT)
This brings me to blocks. If you played before 5.0, you'd have heard of CTC (Combat Table [C]overage) capping, which involved filling up your combat table with blocks instead of hits. This is no longer possible. Blocks are now rolled after your avoidance. What does this mean? Well, it goes back to the multiplicative chance before. Say you a combat table like the one above, plus 65% block chance. Under the pre-5.0 system, you'd have a combat table like this:
You can no longer do this. Blocks are now rolled after your normal attacks, so 65% of the attacks that aren't avoided are now blocked instead. 65% of 65% is 42.25%, so 42.25% of all attacks made against you (Including the ones you avoid) are blocked, while 22.75% (35% of 65%) of all attacks made against you do full damage. If you like, you can pretend you have a combat table something like this:
This means you will never fill your combat table unless you have 100% block chance, or 100% of your other avoidance stats and Blizzard intends for this to only be possible with short term buffs such as Shield Block.
Critical blocks work on a third roll. After you block, it rolls a third time to see if the block was a critical.
This does bring up another question though, of where do absorbs (including Savage Defense and Blood Shield, or priest moves like Power Word: Shield) lie? As They're a unique case that's calculated after the attack table. If it's a miss, no damage is done to be absorbed, if it's blocked, only the reduced hit is absorbed.
There's another minor point to bring up: Special attacks. You may have heard the terms "white damage" and "yellow damage" floating around. Quite simply, white damage is your normal, melee auto-attacks (The numbers are white on your screen) and yellow damage is from your abities such as Shield Slam or Crusader Strike or whatever.
Yellow damage is special because it works on a 2-roll system. First, avoidance is calculated the same as above, then afterwards, it rolls again to see if it crits. Which simply means, if your hit and expertise rating are low, your special abilities will have a lower chance of critically hitting (Your normal melee attacks won't though, because they're on a single-roll system). Is this important for tanking? Vengeance means lolthreat and nobody's going around stacking crit rating anyway?
Unless you're a bear. I'll leave the details to bear specialists, but long story short, hit and expertise will give a bear more survivability because their Mangles will crit more, proccing Primal Fury more and giving more rage.
"But Wani! I don't want to keep having to add up my avoidance and doing funny things with calculating overall block chance every time I check my gear! How do I do it simply?" Don't worry! There is a macro that will solve your problems:
Run that and it'll tell you your total avoidance. Simple!
And that's really all there is to the combat table. So now, we go onto the other topic of this thread:
2. Diminishing Returns
This is another this with a slightly confusing name because it shares it with another concept in WoW, which is diminishing returns on Crowd Control. Those who pvp a lot know that if you try to keep CCing an enemy player, the spell suffers diminishing returns, with a reduced duration. I won't go into the details but what it means is, say you polymorph that hunter. The first time, it lasts for 8 seconds. Second time, for 4 seconds. Then 2, then 1, then it becomes immune for a time. I have no idea if that's exactly how it works but that's the basics of it.
Why do I mention this here? For a very simple reason.
Avoidance diminishing returns do not work like this.
There is a unfortunately common misconception that, what avoidance diminishing returns means is that if you avoid an attack, the chance of avoiding the next attack is lower. This is not true at all and avoidance diminishing returns is nothing like this. If you have 10% dodge at the start of the battle, you will have 10% dodge after dodging an attack, you will have 10% dodge after parrying an attack and this will not change because you dodged or parried or blocked. It might change if you gain a buff, but not solely because of having dodged an attack earlier.
If anyone tells you that dodging an attack reduces the chance that you will dodge the next attack is telling you lies. It is in no way true and never has been true.
Forgive my repeated boldings, but I feel this simply is that important that it needs to be stated repeatedly.
Edited by Waniou on 11/3/12 9:11 PM (PDT)
So, this raises the very important and very obvious question: What does avoidance diminishing returns mean?
It's really quite simple. Well, the maths isn't so much but the concept is very simple. As you gain more dodge rating, the amount of dodge you get per point is lower and as you gain more parry rating, the amount of parry you get per point is lower and if you're a warrior or paladin, the more mastery rating you have, the amount of block you get per point is lower. This is always in effect, there's no magic % where it starts kicking in. It just becomes harsher at higher levels of avoidance.
It's also worth pointing out that the three avoidance stats aren't linked in diminishing returns. Having high parry will not increase the amount diminishing returns affects dodge and vice versa.
Now, you're probably wondering, why do we have diminishing returns on avoidance? What's the point? Does Blizzard just hate tanks and want us all to suffer?
No, that's absurd. Diminishing returns are not a bad thing and exist for two main reasons.
Firstly, high avoidance is bad. Well, yes, we want high avoidance, but it's a bad thing for the game. When tank avoidance is really high (Like it was back in Wrath of the Lich King because of talents and not as harsh diminishing returns), in order to threaten tanks, bosses need to swing really really hard, which means that healers need to be able to heal for stupidly huge amounts, which means we have a fun wee rollercoaster ride from full health to 10% health, back to full health and the only challenge for healers is how quickly they can hit their Flash Heal button. By restricting tank avoidance, bosses don't have to hit as hard and healers become more limited by their mana, which is a more involved game for them and it makes things generally better for the tank/healer game as a whole.
The second reason is more subtle, but still important. If we don't have diminishing returns on avoidance, the more avoidance you get, the better it becomes for you.
To look at an extreme example, but it's one that illustrates the point perfectly, pretend you have 97% avoidance, and 100 parry rating will always give 1% parry. At the moment, only 3% of attacks make it through. You get an upgrade and it gives you an extra 100 parry rating over what you had. Now you've got 98% avoidance, so only 2% of attacks make it through. In other words, you've reduced the damage you take over the course of a fight by a 33%. After killing another boss, you gain another upgrade, giving you another 100 parry rating, so now you have 99% avoidance. This 100 parry rating reduced the damage you take by another 50%, making it about 50% better than the last 100 parry rating you got.
You can see how it works? As you gain more avoidance, your damage reduction increases exponentially, meaning the more avoidance you've got, the better it is for you. Again, this isn't something good for the game and diminishing returns keeps this in check.
So, to get into the maths of it, we have this lovely formula:
It's not too ugly (Although I say this as someone with a degree in maths) but you can clearly see from it that 1: Like I said, it doesn't change in combat depending on previously having dodged things) and 2: Like I also said, there's no magic number where it starts kicking in. There's no such thing as a dodge or a parry cap, where suddenly you don't want parry or dodge. The cap shown isn't a number you'll ever reach, it's what maths calls an "asymptote", meaning it's a number you'll never reach and the closer you get to it, the harder it is to reach.
Edited by Waniou on 11/30/12 9:04 PM (PST)
It's also worth pointing out that your base avoidance doesn't suffer from diminishing returns. This is the 3-5% your character always has, regardless of spec and gear. This also includes the avoidance you get from your base strength and agility (Not from extra strength/agility on gear or from buffs). Strip your character, right click off any buffs and that's your base avoidance and that's added on after all your avoidance from buffs and gear, which all does suffer from diminishing returns. Which probably sounds confusing, so say you're a warrior, so you have 3% base parry, then your gear gives you another 15% parry before diminishing returns. Say diminishing returns reduces your parry by 20%, so this will only work on the latter number, giving you 12% parry from gear and buffs, plus another 3% from your base parry, giving you a total of 15%, not 14.4% you'd get if your base parry also suffered from diminishing returns.
The obvious next question is where's the best place to be? Obviously, we want to lose as little avoidance as possible to diminishing returns. This becomes slightly complicated, unless you're a druid, because druids can't parry, or a monk because you won't find any parry leather. For druids and monks, just get dodge like you normally would and kinda ignore parry.
It's a little more complicated for plate tanks. As in, I'm about to maths a bit here. Dodge suffers much harsher diminishing returns for us than parry does, so in general, you want more parry than dodge (Contrast with WotLK, where it was reversed and parry was terrible because it suffered harsher diminishing returns, and Cata where you wanted them balanced). Where exactly is a much more complicated question that involves either looking at pretty graphs or using funny equations. Theck, being the awesome mathematician that he is, and having paid far more attention to the MoP beta than me gives us this one:
This looks funny because it's written in a funny way and you probably haven't studied maths like me. But basically, Cp and Cd are the diminishing returns caps from the formula above for parry and dodge respectively. So how can we use this formula? Basically, we can make a macro like this:
For warriors or DKs:
Pallies have slightly lower base strength and a few different constant, so use this one:
This'll give you how much parry you should be aiming for, for your current amount of dodge. Firstly, note that this doesn't mean you should sacrifice other, more important stats to maintain this balance. You really won't gain that much by doing this and this is sort of a "Do this last" thing. Secondly, note that this number will change if you're reforging dodge into parry. The less dodge you have, the lower the ratio the formula will give you.
Lastly, armour is also affected by diminishing returns in a similar way. The equation for this (above 85) is:
Like with avoidance diminishing returns, this isn't a bad thing and it basically means that armour is worth more-or-less the same for you, no matter how much armour you've already got.
I've probably gone into more detail here than was needed, but hopefully, this will clear up any questions.
So. Combat table is a single roll, then a second one for block. Your total avoidance is worked out by adding it up and if it's more than 102.4%, bosses can't hit you.
Diminishing returns simply means that the more dodge you have, the less dodge chance you get from dodge rating and the same for parry and block.
It's really not that complicated at all.
4. Ending stuff
My sources for this stuff come from
and for some of the MoP changes:
Thanks to all the OTers and other people around here who helped me get this information. You people are the main reason I come back to this forum :D
Edited by Waniou on 8/28/12 1:52 AM (PDT)
5. Appendix: More information if you care.
Here's a good post from Mnemonic, giving examples of why diminishing returns aren't as bad as it sounds. It's based in Cata, but the point still stands.
Skip down to the quote if you're only interested in the numbers.
The original attack tables guide (It's now locked) is available here: http://us.battle.net/wow/en/forum/topic/1869253719
Might be still worth a read for some of the comments but much of the information is now outdated.
Edited by Celyndrashad on 5/8/11 4:04 PM (PDT)
Also you wrote half the macro. You deserve credit for it as well!
Also for anyone wanting to go thru the comments of the original:
Edited by Celyndrashad on 5/11/11 4:32 PM (PDT)
Throwing this in.
I tend to dislike thinking of it that way because people might multiply their post kings agility/str by those numbers instead.
There are two basic ways of look at it (using 100 unbuffed agility):
(1.05 kings)*(0.58)*(100 unbuffed agility)=0.61*100 unbuffed agility
(1.05kings)*(0.58)*(100 unbuffed agility)=0.58*(105 kings buffed agility)
Saying that its 0.61 after kings i think the average player will do this:
(1.05kings)*0.61*(100 unbuffed agility)=0.61*(105 kings buffed agility) which is wrong.
I know theck et al use 0.61 but they are not likely to make that mistake.
I am bringing this alt up. I have heard on other forums, maybe DK cause I am doing one of those too, that there is a DR with parry and dodge being too far apart. They recommend one being ahead of the other since they can get that buffed in the raid. This presentation does not mention a problem with that disparity. Is there a reason to have them close together?
Diminishing returns on parry and dodge are independant of each other. As an example, if you have 1000 parry rating, getting 100 more will increase your parry chance by the same amount whether you have 100 dodge rating or 10000 dodge rating. So basically, to get the most avoidance, you want to minimise how much you lose to diminishing returns, which is why you want to balance them out.
But you're kinda right, getting buffs will affect your avoidance because you get more avoidance from agility than strength, and the way Kings/MotW affects your agility is different to how it affects your strength (Because you'll have about 10 times as much strength as agility). If you look at the two macros there, you'll see a +549 and a *1.05, that's the macro taking that into account. If you get your parry that much more than your dodge, when you get full raid buffs, you'll have your dodge/parry perfectly balanced.
85 Blood Elf Paladin
A question regarding the DM macro for Dodge and Parry. I run the macro and it gives me a number of say...keep 150 parry rating over dodge. What if I am like twice as stacked in the parry % than dodge? I guess what I am trying to ask is... Should I reforge all my parry to dodge to keep it with in the desired rating? I currently have ~10% dodge and ~16% parry.
Is the avoidance formula assuming certain talents within the tanking tree of a given tank-class, or does it just go from the raw numbers? I just want to make sure I'm using it right before I start tweaking my gear to hit the right numbers.
Edited by Celyndrashad on 7/1/11 1:46 PM (PDT)
In preparation for 4.2 my new macro:
==Paladins/warriors/dks using mastery food===
If you prefer a macro giving a positive number this is the same thing:
===Using dodge food===
If you prefer a macro giving a positive number this is the same thing: