Vanilla Wow Hunter Macros

This is our Vanilla Wow Hunter Macros page. Macros will make playing hunter easier and more efficient. You can put different spells in to one macro instead of having several keybindings for them. This makes it easier – helping you avoid human error. It also allows you to cast them faster – pressing the same key three times is quicker then pressing three different keys. You can also set certain conditions on your macros – for example: Only casting Viper Sting if the target has mana.
Macros are completely customisable so you’ll are able to edit the ones you find below.
Table of Contents



Pull / Kite
Hits the target with rank 1 of arcane shot then stops Auto Shot. Perfect for pulling and kiting.

/script CastSpellByName(“Arcane Shot(Rank 1)”); SpellStopCasting();


Auto Shot & Aspect of the Hawk
Starts Auto Shot & if Aspect of the Hawk is not active it will cast it.

/cast Auto Shot
/script if (not string.find(UnitBuff(“player”, 1), “Raven”)) then CastSpellByName(“Aspect of the Hawk()”);end


Mark, Pet Attack & Shoot

/script CastSpellByName(“Hunter’s Mark”);PetAttack();CastSpellByName(“Auto Shot”);


Will only cast Concussiv shot if the target has not been Wing Clipped.

/script if (not isClipped(“target”)) then CastSpellByName(“Concussive Shot”); end


Viper & Serpent
If the target has mana, it casts Viper Sting and if not, it casts Serpent Sting.

/script if UnitPowerType(“target”)==0 then CastSpellByName(“Viper Sting”) else CastSpellByName(“Serpent Sting”); end



Scatter Shot
Casts Scatter Shot, has your pet wait by the target and sets it to passive.

/cast Scatter Shot
/script PetWait()
/script PetPassiveMode()


Feign Death / Freeze Trap
If you didn’t know, you can use Freeze Trap while in combat by casting Feign Death (to briefly leave combat) then casting Freeze Trap. Spam this macro to Feign Death, put your pet on passive (so it doesn’t break the trap) and drop a Freeze Trap. This macro will also just cast Freeze Trap if clicked once while out of combat.

/cast Freezing Trap
/script PetPassiveMode();
/cast Feign Death


Announce Pull
Will announce which mob you are pulling. If in a raid will talk in to /raid. If in a party will talk in to /p.

/script smsg=”<< Incoming >> << %t >>”; if (GetNumRaidMembers() > 0) then SendChatMessage(smsg,”RAID”) elseif (GetNumPartyMembers() > 0) then SendChatMessage(smsg,”PARTY”) end




The Big Melee Macro
This macro is to be spammed while in melee to cast Aspect of the Monkey (if it is not already active), start attacking, then cycle through your melee abilities if they available to use.

/script if (not string.find(UnitBuff(“player”, 1), “Mon”)) then CastSpellByName(“Aspect of the Monkey”);end
/script if (not PlayerFrame.inCombat) then CastSpellByName(“Attack”); end
/cast Raptor Strike
/cast Mongoose Bite
/cast Wing Clip


Monkey & Attack
This will check to see if Aspect of the Monkey is active. If it is not, it will cast it and start attacking. If you are already attacking it will cast AotM without stopping your Auto Attack.

/script if (not string.find(UnitBuff(“player”, 1), “Mon”)) then CastSpellByName(“Aspect of the Monkey”);end
/script if (not PlayerFrame.inCombat) then CastSpellByName(“Attack”);end


If counterattack is available it will cast it. If not, it will cast Wing Clip.

/cast Counterattack
/cast Wing Clip



The Big Pet Macro
If your target is friendly it will assist that target. If your target is hostile it will attack that target. Using the macro again will recall your pet back to you.

/script if UnitExists(“target”) then if UnitIsFriend(“player”,”target”) then AssistUnit(“target”);PetAttack();else if UnitExists(“pettarget”) and UnitIsUnit(“target”, “pettarget”) then PetFollow();else PetAttack();end;end;else PetFollow();end;


Revive / Mend Pet
If your pet is alive you cast Mend Pet. If your pet is dead you cast Revive Pet.

/script if not UnitExists(“pet”) then CastSpellByName(“Revive Pet”); else if UnitIsDead(“pet”) then CastSpellByName(“Revive Pet”);else CastSpellByName(“Mend Pet”);end;end


Call / Dismiss Pet
If your pet is dismissed, call pet. If your pet is active, dismiss pet.

/script if PetCanBeAbandoned() then CastSpellByName(“Dismiss Pet”) else CastSpellByName(“Call Pet”);end


Feed Pet
Checks whether you are in combat. If not, feeds pet. It finds the item in Slot Y in Bag X and feeds your pet that item. Replace “X” with your bag slot (starts from 0 going from right to left). Replace “Y” with the item slot in the bag (starts from 1 going from left to right, top to bottom).

/script if (not PlayerFrame.inCombat) then if (not GetContainerItemLink(X,Y)) then OpenBag(X); else CastSpellByName(“Feed Pet”); PickupContainerItem(X,Y); end end