[ Disclaimer, --- , ]
Aggro (noun) is a behavioral state of most NPCs in Everquest which generally describes an aggressive pursuit and attack of players or other NPCs. When used as a verb, it refers to the action of putting an NPC in that state. Players can accomplish this in many ways, primarily by dealing melee, ranged or spell damage, casting other detrimental spells, or using detrimental skills. Pets can also cause aggro if directed to attack an NPC. NPCs will also attack players without provocation under a number of circumstances and conditions.
In contrast, an NPC's initial state (before aggro) can be classed in several ways. The most common is a static spawn, where an NPC simply stands exactly where he spawned without moving. Most citizens of cities and monsters within dungeons behave this way. A patrolling spawn (pat) will move from where he spawned along a predictable or random path of fixed nodes. Most dungeons feature a minority of pats, and most animals in outdoor zones also act this way. A scripted spawn will behave in some other, more dynamic way, based on other conditions.
When aggroed, the NPC is assigned a hate table (which is opaque to the player) that ranks players primarily based on a numerical value called hate or threat, but also on other factors. Very generally, most NPCs will pursue the top-ranked player (who is said to have hard aggro, top hate or top aggro) on this table until they are within range, often using a straight-line path towards the player in outdoor zones and fixed routes within indoor zones and many parts of cities. Once in range, they attack the player with melee or spells. However, this pursuit can be hindered, slowed, delayed, or stopped by a number of crowd-control methods, and such methods are significant gameplay features of Everquest and following MMORPGs. Many players also informally or imprecisely refer to hate (a.k.a. threat) as aggro. Though related concepts, it is useful to distinguish between them. Hate is a number used to rank players, and this article will refer to the player or NPC with top ranking as having top hate.
To eliminate aggro and return an NPC to its initial state (either standing peacefully at a static location, or patrolling on a route) all players must be removed from its hate table. Probably the most common methods of losing aggro are zoning (changing zones) or camping (sitting and logging out), either will remove the acting player from all hate tables of any number of NPCs. This can also be accomplished with skills or spells such as Memory Blur or Blanket of Forgetfulness which may remove all players from targeted NPC(s)' hate table, or Feign Death which may remove the Monk/caster from all NPCs' hate tables. Mez spells also have a (small) chance to eliminate aggro. All spells and skills that eliminate aggro are not completely reliable at that job, but camping and zoning will always work (if all affected players do so).
In some zones, NPCs may leash; eliminating aggro on players who have run very far away, outside of leash range. This mechanic was implemented relatively recently on P99, and can be unpredictable. Some zones where leashing can occur are Temple of Veeshan, Western Wastes, Kael Drakkel, and Plane of Sky. NPCs which successfully Gate may also leash. Sometimes NPCs will leash instantly, other times they seem to require some unknown or variable period of time. The precise conditions and range of leashing are still being explored by the author.
When a player (or NPC) is close to an NPC the target will make several checks on every server tick (6 seconds) to determine if it should aggro. This is called body aggro, in contrast to attacking or provoking the NPC in some way, which is called initial aggro. Because body aggro can be slow, and generally requires a short distance, it is usually unintentional. Initial aggro also caps the offending action's hate to about 300 or so.
- Faction: A player who /cons scowling or threatening may be attacked by an NPC. This check is skipped for invisible players when the NPC cannot see invisible, for players who Sneak behind an NPC, or for charmed or merchant NPCs.
- Line of Sight: NPCs must have line of sight with the player to aggro them. Since line of sight generally goes both ways, a player can begin to cast a spell on an NPC, then duck it if desired. If the player received a line of sight error, then the NPC will never aggro them from that position. Note: casting on an underwater NPC while you are on land or vice-versa may block spells, but probably won't block line of sight checks for aggro purposes.
- Distance: A distant NPC will never aggro. The threshold distance is different depending on the NPC, and can be reduced with spells like Lull or Harmony. A sitting player may be aggroed from much further away. Players who are many levels lower compared to an NPC, or who are less levels higher than an NPC, will also be aggroed from longer distances.
- Level: In addition to distance penalties described above, higher level players may never be attacked by many lower level NPCs. Sitting often negates this bonus, and some monsters such as many undead simply ignore this check altogether.
- Luck: There does seem to be some random chance to avoid body aggro entirely on a given server tick. Individuals within a large group of NPCs perform this check independently, so you're more likely to aggro a large group quickly.
When one NPC is close to another on the same faction (or perhaps on a list of related or allied factions) they will aggro if their comrades are aggroed. Unlike body aggro, social aggro checks occur much more frequently, many times per second. Social aggro can be controlled through a similar list of checks:
- Faction: NPCs will check the faction of their peer. If they share the same primary faction, they will probably social aggro. If they have related factions, they might or might not. For example, live frogloks will not assist undead frogloks, but they will assist each other. Sontalak (Claws of Veeshan) will assist Esorpa of the Ring (Ring of Scale), Kromzek and Kromrif giants will always assist each other. Invisibility, Sneak, and other player faction adjustments no longer prevent social aggro on P99. NPCs never check YOUR faction when they social.
- Line of sight: An NPC must have line of sight with another NPC to gain social aggro.
- Distance: NPCs must be close together to social aggro with each other. This required distance seems to generally be shorter than body aggro thresholds.
- Level: Higher level players will be more likely to single pull an NPC from certain sparse packs. This check might not be independent from the distance check but rather reduces the distance threshold.
Luck:Social aggro tends to be much more predictable than body aggro. If you gained social aggro in a situation, it's likely to occur every time in the same circumstances.
This is a special case for players who Feign Death. FD, when successful, will immediately remove all aggro on all NPCs. However, if the player stands, or if a spellcasting NPC lands or is resisted by the player (dispell spells excluded) the FD is broken and all NPCs will re-engage. If the player is not cast on, and waits for every NPC to return to their spawn points, the NPCs reset. At that point, the player may stand up without re-aggroing them. Rarely, the FD performs a silent critical success, allowing the player to stand up before the NPCs reset. This is rare however, and the player receives no notification when it happens, often coming as an unexpected, minor annoyance.
The elimination, avoidance, and management of this type of aggro is left as an exercise for the reader.
See Wife Faction
The general concepts of Everquest hate mechanics are very common in MMORPGs. The following example illustrates a simple case and demonstrates the mechanics of hate:
Three players approach a froglok. The froglok, being ornery and scowling to all of these adventurers, immediately aggroes and begins attacking. Cerate Salve, a barbarian shaman, Pint, a dwarf paladin, and Calias Darkstar, a high elf wizard. Calias, being a typical wizard, decides to quickly retaliate with Sunstrike, dealing 1615 damage. Cerate, underestimating the froglok, forgoes casting a slow and also nukes with Ice Strike, but only for 675. Pint slashes the beastly amphibian for 200 damage. In this scenario, the froglok was already in melee range of all three adventurers, so Calias gains top hate and gets smacked by a slimy fist. He immediately dies, because wizards are basically made of glass. The froglok now turns to Cerate, who caused the second most damage and is now top hate.
If Cerate were wiser, they would have cast their spells from afar. Players who are within melee range of a monster have their hate directly compared, but when they are some distance away, this value is effectively reduced. The exact reduction isn't documented but it's probably divided in half or something similar. (Please revise if an exact reduction is demonstrated or better estimated.) Calias probably would have drawn aggro even if he were far away because of the recklessly large nuke he cast.
If Calias were wiser, he would have waited for Pint to do more damage first before engaging. When the tank has a head-start, his hate number will be higher when you land your nuke. Warriors are especially slow at generating hate since their damage is primarily melee damage, which has reduced hate overall (see Sakuragi's Warrior Guide for specifics). Paladins do have additional tools for generating hate: such as the Taunt skill, and blind and stun spells, which deal hate equivalent to hundreds of points of damage that spells can do. Other spells, such as debuffs, snares, slows, and poison DoTs also generate large amounts of hate, over and above any damage they might do (if any). Resisted spells and spells which do not take hold seem to generate the same hate has landed spells, if not more. Healing usually generates very little aggro, although an early Complete Healing can certainly draw an NPC on the cleric.
Pint sighs, knowing Calias and Cerate too well, and casts Root on the froglok and steps as close to the beast as he can. The beast turns from Cerate to Pint who is now much easier to reach.
While rooted, NPCs behave differently. They temporarily ignore (but do not forget!) their hate table and simply attack whichever player is the closest to them, if any are in melee or spell range. Root can be an excellent tool for the temporary control of aggro, but your tank must either expect, notice, or be notified of the NPC being rooted in order to ensure they step closer than other melee characters in the fight.
Some other factors to consider are sitting, which temporarily generates large amounts of hate (sit hate seems to be forgotten immediately when the player stands). Faction and level differences also are rumored to have effects on hate. Passive differences between classes which affect hate generation are also unconfirmed (given the wide differences between the abilities and damage bonuses of various classes, it would be difficult to test).