Tower Priority

List

Closest enemy hero attacking a friendly hero with auto attack

Closest enemy creep attacking a friendly hero with auto attack

Closest enemy creep or hero attacking the tower itself with auto attack

Closest enemy creep or hero attacking any friendly unit with auto attack

Closest enemy creep or hero

Closest enemy catapult

The targeted enemy creep or hero dies



The targeted enemy creep or hero becomes unattackable. (Though "dying" is a special case of "becoming unattackable", I think it is worth stating both conditions separately for clarity).



An enemy creep or hero targets a friendly hero



An enemy hero being attacked by the tower manually attacks an enemy creep or hero (This is the famous tower target switch technique, where you A-attack one of your creeps to "reset the aggro")

There is nothing random in the process. It is an algorithm: The tower will recognize the target with the highest priority in the moment, and will attack it to death if no Reseter occurs



Spells ARE NOT AUTO-ATACK . This means you can spam spells under a tower and it won't switch.



. This means you can spam spells under a tower and it won't switch. Auto-cast spells (like Frost Arrows, Searing Arrows, Arcane Orb), even though are "attacks", count as SPELLS for the tower IF YOU CAST THEM AT THE ENEMY INSTEAD OF USING THROUGH AUTO-CAST AND RIGHT-CLICK . Like before, you can spam them under a tower and it won't switch.



for the tower . Like before, you can spam them under a tower and it won't switch. Wards and ward-like spells have the same priority as a catapult. This includes: Plague Wards, Mass Serpent Wards, Nether Ward etc and even movable wards like Healing Ward and Frozen Sigil.



Think about it this way: The tower chooses someone, based on its priority and sticks to it until it dies (a priori). A reseter induces a memory loss on the tower. Then it chooses another unit, based on its priority, and sticks to it until it dies. And so on.



(a priori). A reseter induces a on the tower. Then it chooses another unit, based on its priority, and sticks to it until it dies. And so on. You may have noticed the list is a bit different from the wiki. The wiki's list is wrong, this is the right one. You can test it yourself : ).

Illustrative

Program-like

Let's talk about what matters, and what is the skeleton of this guide: The tower priority.I'll explain how it works in three different ways: List, Illustrative and Program-like.This is the priority list for a tower's target, with 1 being top priority:And these are the "Reseters" (I am hereby defining the following things as "Reseters", and this is how I'll call them throughout the guide, even in the videos), meaning: the tower resets its priority search, if one of the following happens:Some observations have to be made:Here comes an illustration of the process:And here comes an example with Drow's arrows:And if you don't believe this kind of knowledge is useful, here is an application of it in a real game (if Jugg didn't switch the tower's target, he would be dead):And here is N0tail fountain diving with meepo, where he uses this knowledge:So, now we have the skeleton. But the skeleton is important, so let's do it one more time, but with another approach.I'll explain the process in a lucid way now:I am the tower. I am the almighty tower. There comes some units!IS SOMEONE ATTACKING MY HEROES NEAR ME?????Oh, no? Ok...IS SOMEONE ATTACKING ME????Oh, no? Ok...IS SOMEONE ATTACKING SOMEONE THAT I LIKE???Oh, there is a creep attacking one of my creeps! I'll KILL IT!Oh, yeah! DEAD![Memory Loss]???? I am the tower. I am the almighty tower. Hey, there are some units nearby!IS SOMEONE ATTACKING MY HEROES NEAR ME?????Oh, no? Ok...IS SOMEONE ATTACKING ME????Oh, a pesky Sven is attacking me! I'll kill him![Sven retreats a bit, in order not to be close to the tower, and A-attack a creep][Memory Loss]???? I am the tower. I am the almighty tower. Hey, there are some units nearby!(and so on.)Now, if you are familiar with programming, I'll make a pseudo-algorithm to illustrate (mind me, there's a long time I don't play with programming):if priority 1:attack target until RESETER, then go back to beginningelse:if priority 2:attack target until RESETER, then go back to beginningelse:if priority 3:attack target until RESETER, then go back to beginningelse:if priority 4:attack target until RESETER, then go back to beginningelse:if priority 5:attack target until RESETER, then go back to beginningelse:if priority 6:attack target until RESETER, then back to beginningelse:back to beginning