It's all about who hit the mob last.
TL;DRExcluding special mechanics, mob aggro table is based entirely on a combination of "who hit me first" and an astonishingly short attention span. The person who first taps the mob, either by hitting it as they pull or simply having a heal tick after it's been alerted to your presence, will get somewhere in the range of 7 seconds (+/-2) of aggro on that mob. At that point, if that person is still attacking without interruption, they will maintain that aggro until they are interrupted. If, however, that person does nothing after that first tap, the mob will swap to whoever has attacked them most recently at that point in time.
Background
First up, a quick definition: In this context, "Aggro" is basically who a hostile NPC or monster (a.k.a. mob or boss) wants to attack. If you have aggro, you're about to get smacked.
To find out just how hostiles decide who to attack in ESO, I took a tank and some dps buddies out to test just how the heck aggro mechanics work with your average dungeon boss. I've done a lot of tanking, including plenty without bothering to taunt, so I thought I had a decent grasp on aggro mechanics, but I was inspired by a post on the forums to see if I could find some hard values. I thought dps+shields+heals must have to exceed a certain % value of whoever pulled first before aggro changed. I was so wrong.
It's about recent activity, not total output. We tested facepulling, dps, healing+dps+shielding, burst vs consistent dps, proximity, and a few other variables you can preview in the "Methods" spoiler below. For information on where and how we did this, see "Testing Variables." The only thing we didn't do was taunt. We're open to additional ideas, but we felt like all of this testing led us to a very clear conclusion:
Aggro in Practice
To look at an extreme example, consider the final boss in vCoA1. We have a group of 3 sorcs. The first sorc, Anti, runs in and hits the boss with a single light attack, then just stands around doing nothing but absorbing damage. Our second sorc, Moo, spams his lightning weapon attack. Moo is wearing no gear, mind you, and his staff was picked up off a trash mob three pulls ago, so he's doing less than 2% of the dps at best. Our final sorc, Fish, gets straight to work and proceeds to deal direct damage to the tune of 98% of our dps. Now, we already know the boss is going to attack Anti for ~7 seconds, but who do you think he will go for next? The one absolutely and visibly demolishing him, or the naked dude who is basically tickling him?
Moo pulls aggro. Then Moo dies, because he's a good sport and took off all his gear for his shameful role in this test, and the boss proceeds to return fire on Fish, who is still demolishing him at this point. Fish already has taken a concerning chunk of this mob's health away while Anti has done exactly as much as you'd expect from an Anti (nothing but laugh at Moo's death). If Fish stops attacking at this point out of the sheer hopelessness of this group and Anti musters the care to cast any single damage or attack, you know what happens? You're absolutely right if you guessed this poor memory-less boss then switches to the person who has contributes 2 buttons clicks so far.
Testing Variables
Location: We did all of our testing in vFG1 and vCoA1. FG1 and CoA1 because there were plenty of bosses with minimal confounding mechanics and vet because it gave us enough hit points to achieve reasonable time and dps numbers. Special thanks go out to the first mini-boss in vFG1, who provided an especially convenient target since it is very easy to reset, thus allowing us to test dozens of strategies and duplicate curious findings. We mostly moved on to vCoA1 to replicate our findings on additional bosses and to test out additional factors on a ranged boss (the final boss).
Characters: We used sorcs for all testing. The availability of heals, shields, dots, dd, and hots that could be used independently of each other as well as the flexibility to be at range or next to a boss allowed us to test a comfortable variety of effects. For most effects, we used two characters. One was a tank+heal hybrid that is primarily magicka, the other was pure mag dps. For our final round of testing, we brought in an additional magsorc who did an outstanding job being an absolute crap dps who wore nothing but a random green lightning staff and spammed light attack (more on that in methods, though).
Addons: Our primary tool for getting times, dps, hps, and other values was Combat Metrics. Initially, we took screenshots when aggro swapped to capture values, but eventually we swapped to self-reporting as thresholds became clear and our goals shifted toward testing extremes.
Limitations: By no means did we get enough of a sample size to capture exact values on reset times and additional, more precise testing is needed to know exactly what the timer is on aggro reset.
Methods
Facepulling: No efffect. I removed all passives that would tick a heal, shield, or damage. My only buffs were food and items that stritctly affect my own stats. I then walked up to the mob and stood there (sort of -- it took me a couple attempts to not instinctively do tank stuff). The mob immediately peeled off me to the dps.
Initial Hit: Worth approximately 7 seconds of aggro. Our average observed time when the dps would pull off me was 7-8seconds, but I suspect some delays in effects would lower that value. I would tap the mob, then do nothing. The dps tried both immediately laying into the boss with high-damage attacks and waiting to the count of 5 before attacking. Either way, the boss switched to the DPS when the ~7seconds was up.
Blocking: Added no visible difference in duration of aggro held.
Bubble: Doubled duration of aggro held. I cast sorc bubble and made initial tap on the boss, with DPS attacking only after I had made initial contact as usual. Boss did not switch target to the DPS until after 15 seconds, with variable duration on repeat testing but always much longer than initial tap alone. I suspect the shield acts like a heal in that every time the boss took a chunk of it, the boss registered my tank as having done something, and he swapped only when there was a gap in his attacks long enough for DPS actions to tick prior to my bubble.
Healing: More testing is on the docket to determine effects or lackthereof on overhealing. Overhealing and the uneven nature of damage received makes me wary to make any strong conclusions on our results, but we did try a few rounds with healing. We do know direct heals, such as twilight matriarch's ability, are able to pull aggro outside of the ~7sec period. Mutagen was not enough to hold aggro. but this ability in particular was tricky since it combines both gaps in actual healing (vs overhealing) due to variable boss damage and the ability's ticks per time nature (I don't know it's casting rate offhand -- let's say once per second). Healing springs was easier to control casting rate (spam like you've got a master's resto and all stamina, baby, yeaaah) and the first tick does appear to count toward aggro, but it was not as effective as weapon spamming and I couldn't tease out whether additional ticks of it's heal count or the overhealing issue.
All-In: Unlimited aggro duation as long as no gap in activity. I ran in and weaved aoe (liquid lightining)+weapon attack (resto staff)+bubble (empowered ward)+healing springs without pause. The DPS laid into the boss, getting as high as 4x my total heal+dps+absorbed numbers without pulling aggro.
Weapon Attack Spam: Unlimited aggro duration as long as no gap in activity. With a sword n board, I ran up and spammed light attack and DPS only pulled aggro if the boss knocked me back or I had to pause to cast bubble. Without the range limitations on my resto staff, I was able to maintain aggro for the full duration of the fight simply by spamming heavy attack.
Proximity: No observed effect on aggro. We tried with single DPS standing close vs as distance and the only difference was how long it took the boss to actually reach them, not how long until it actually turned. We then tried on the ranged final boss in vCoA1, using the setup from the "Aggro in Practice" example in the main summary above (i.e., 3 characters, one weapon spamming, one DD, one initial tap only) with alternating patterns of who was standing in the boss' immediate reach vs who was at range. Regardless of where we positioned our characters, the boss always went for the weapon spammer.
Pets: Twilight Matriarch has an independent aggro table. I made initial tap, DPS started in after, then I began to spam flappy's heal after the initial time was up. If aggro swapped to DPS and they ceased action, a heal from pet turned aggro onto it.
So, folks, this is why healers get so much aggro -- their constant ticks of heals always have them sitting fresh on mobs memories. This is why I will let you die if you sprint ahead of my fast-pulling tank just to get the first light attack hit on a group of mobs (especially if you proceed to spread them out rather than group them up like my tank, but that's a separate topic). Aggro has nothing to do with output/input and everything to do with activity.
This is all helpful, perhaps even vindicating info, and highly entertaining to certain nerds among us just for testing's sake. That said, I thought I'd throw in some
suggested ways to apply what we know of aggro into your gameplay:
- Taunts are still super great since they allow you pause attacks long enough to, say, block/bash/move/switch targets...
- Let the person who is supposed to have aggro make initial contact.
- If you are pulling, lay down the biggest aoe you got, and lay it down a couple times if you have to spread over the mobs you want. Then just tell your dps to burn it all in 5sec or deal with aggro (or keep casting aoe effects, you soft-hearted pleb).
- If you need to swap aggro without taunt, swap who is actively attacking it (keeping in mind that heals- and damage-over time effects will keep ticking for their duration).
Edit Log
1/25/2018: Fixed formatting, added pet, healing, and proximity test descriptions to Methods.