Brian Koponen

Programming and Tech Tips

Custom Priest Macros for Vanilla World of Warcraft

I haven't played that much as a Priest as my main character, but when I saw what the Zorlen function library provided for Priests, I had to give it a try. These are pretty basic macros, but the Zorlen functions for some of these are doing a lot of work behind the scenes. These are still a work in progress, so I'm sure I'll make more in the future.

These macros are made for the 1.12.1 client version of World of Warcraft and require this addon:

Also, many of these macros use modifier keys to alter their functionality. You may want to switch those modifier keys depending on your preference. Those functions are:

Macro Tips

Action Bar Range and Cooldown

A really handy macro trick is to make the first line:

/run --CastSpellByName("Spell")

This will give the macro the cool down and range check on your action bar of the spell you put in the quotes. This doesn't actually cast the spell because the double dash is used as a comment delimiter and prevents the rest of the line from being executed. However, the World of Warcraft client simply looks for the first CastSpellByName reference, even if it is in a comment, to decide how the cool down and range check will be determined.

Target Nearest Enemy

This is a useful line to have in many macros. It simply targets the nearest enemy if you don't already have a target.

/run if GetUnitName("target")==nil then TargetNearestEnemy() end


Melee Attack

This gets a target, if you don't already have one, and starts attacking with your melee weapon.

/run --CastSpellByName("Attack")
/run if GetUnitName("target")==nil then TargetNearestEnemy() end
/run if( IsShiftKeyDown() ) then stopAttack() else castAttack() end

Wand Attack

Similarly, this gets a target, if you don't already have one, but starts attacking with your wand.

/run --CastSpellByName("Shoot")
/run if GetUnitName("target")==nil then TargetNearestEnemy() end
/run if( IsShiftKeyDown() ) then stopShoot() else castShoot() end


Casts Smite and starts your auto attack.

/run --CastSpellByName("Smite")
/run castSmite()
/run castAttack()


Basic Heal

This is really effective heal macro. It will cast either Lesser Heal, Heal or Greater Heal on the group member with the lowest health, including yourself. It maximizes mana efficiency by choosing the best rank of any of the spells to not over-heal the target. If you hold down shift, it will only heal yourself.

/run --CastSpellByName("Lesser Heal")
/run if( IsShiftKeyDown() ) castSelfPriestHeal() else castGroupPriestHeal() end


Similarly, this casts the best rank of Renew on your target, or casts on yourself if you have an enemy targeted. Hold shift to force it cast on yourself.

/run --CastSpellByName("Renew")
/run if( IsShiftKeyDown() ) then castSelfRenew() else castRenew() end


Power Word: Shield

This casts Power Word: Shield and interrupts any current casting to do so.

/run --CastSpellByName("Power Word: Shield")
/run if Zorlen_isCasting() then SpellStopCasting() end
/run castPowerWordShield()

Power Word: Fortitude

Every time you activate this, it will find a party member, including yourself, who needs Power Word: Fortitude and cast it on them. You can spam this to buff your entire party very quickly.

/run --CastSpellByName("Power Word: Fortitude")
/run castGroupPowerWordFortitude()


If you haven't played a Priest before, definitely try it out with these macros. It makes doing some basic healing an absolute breeze and you might find you like it more than you thought you would.

You may also be interested in these World of Warcraft related pages:

World of Warcraft Macros

Question or Comment?