Paladin Macros

From Turtle WoW Wiki

Aura

Rotate aura

/run s={"Retribution Aura", "Concentration Aura", "Devotion Aura"} if not q then q=1 end CastSpellByName(s[q]) q=q+1 if q>table.getn(s) then q=1 end


Rotate resistance aura

/run s={"Fire Resistance Aura", "Shadow Resistance Aura", "Frost Resistance Aura"} if not q then q=1 end CastSpellByName(s[q]) q=q+1 if q>table.getn(s) then q=1 end

Auto attack

uses a loop to check if attack is set to auto-repeat.

/run for i=1,120 do if IsCurrentAction(i) then return end end CastSpellByName("Attack")


This one is decent enough but it is known to be unreliable if spammed.

/run if (not PlayerFrame.inCombat) then AttackTarget() end


This one is more reliable. but it requires auto attack to be found on the action bar.

/run for z=1,172 do if IsAttackAction(z)then if not IsCurrentAction(z)then UseAction(z);end;end;end

Bandage

Divine Protection, Self-Bandage

/run CastSpellByName("Divine Protection"); for b=0,4 do for s=1,GetContainerNumSlots(b) do local n=GetContainerItemLink(b,s) if n and strfind(n,"Bandage") then UseContainerItem(b,s) TargetUnit("player") end end end

Blessing of Freedom

Blessing of Freedom on target / self

/run if UnitIsFriend ("player", "target") then CastSpellByName("Blessing of Freedom") else CastSpellByName("Blessing of Freedom",1)  end


Blessing of Freedom on mouse focused target

/run i=(GetMouseFocus().unit) if i then CastSpellByName("Blessing of Freedom") SpellTargetUnit(i) else CastSpellByName("Blessing of Freedom") end

Blessing of Might

Blessing of Might on target if target is a player, else Blessing of Might on oneself

/run if UnitIsFriend ("player", "target") then CastSpellByName("Blessing of Might") else CastSpellByName("Blessing of Might",1)  end; TargetLastEnemy();

Blessing of Protection

Blessing of Protection on target if a player, else Blessing of Protection oneself

/run if UnitIsFriend ("player", "target") then CastSpellByName("Blessing of Protection") else CastSpellByName("Blessing of Protection",1)  end


Cast Blessing of Protection on the target of your target if this target isn't you. Tanking taunt

/run if not UnitIsUnit("player", "targettarget") then TargetUnit("targettarget") CastSpellByName("Blessing of Protection") TargetLastEnemy() end

Blessing of Wisdom

Blessing of Wisdom if target got mana, else Blessing of Might

/run power = UnitPowerType("target"); if ( power == 0 ) then CastSpellByName("Blessing of Wisdom") else CastSpellByName("Blessing of Might") end

Blessing of Sacrifice

Quicker Blessing of Sacrifice

/run if UnitIsPlayer("target") and not UnitIsUnit("player", "target") then CastSpellByName("Blessing of Sacrifice(Rank 1)") else TargetNearestFriend() end

Cleanse

Self cast Cleanse or on friendly targets

/run C=CastSpellByName; A="Cleanse" if UnitIsFriend("player","target") then C(A) else if not UnitIsFriend("player","target") then C(A, 1) end; end

Consecration

Rank 1 Consecration, max rank if combat

/run if not UnitAffectingCombat("player") then CastSpellByName("Consecration(Rank 1)") else CastSpellByName("Consecration") end


Turns off pvp and uses rank 1 Consecration until you are no longer flagged for PvP

/run if not pvpTime then pvpTime = 0 end if UnitIsPVP("player") then CastSpellByName("Consecration(Rank 1)") end if pvpTime == 0 and UnitIsPVP("player") then TogglePVP() pvpTime = GetTime() end if GetTime() - pvpTime > 300 then pvpTime = 0 end

Divine Favor

Divine Favor + Holy Shock

/run local c,s=CastSpellByName,"Divine Favor";local i=nil;for j=1,180 do local n=GetSpellName(j,BOOKTYPE_SPELL);if n and strfind(n,s) then i=j;break;end end if i then if GetSpellCooldown(i,BOOKTYPE_SPELL)<1 then c(s)else c("Holy Shock")end end

Divine Protection

cast + unbuff max rank Divine Protection

/cast Divine Protection
/script local i=0 g=GetPlayerBuff while not (g(i) == -1) do if(strfind(GetPlayerBuffTexture(g(i)), "Spell_Holy_Restoration"))then CancelPlayerBuff(g(i))end i = i + 1; end


cast + unbuff rank 1 Divine Protection

/script local i=0 g=GetPlayerBuff while not (g(i) == -1) do if (strfind(GetPlayerBuffTexture(g(i)), "Spell_Holy_Restoration")) then CancelPlayerBuff(g(i)) end i = i + 1; end
/cast Divine Protection(Rank 1)

Divine Shield

cast + unbuff max rank Divine Shield

/cast Divine Shield
/script local i=0 g=GetPlayerBuff while not (g(i) == -1) do if(strfind(GetPlayerBuffTexture(g(i)), "Spell_Holy_DivineIntervention"))then CancelPlayerBuff(g(i))end i = i + 1; end

Exorcism

Exorcism if undead or demon, else Holy Light

/run if UnitCreatureType("target")=="Undead" or UnitCreatureType("target")=="Demon" then CastSpellByName("Exorcism")else CastSpellByName("Holy Light")end

Flash of Light

Flash of Light on targeted player or self cast if no player targeted

/run if UnitIsPlayer("target") then CastSpellByName("Flash of Light") else CastSpellByName("Flash of Light",1)  end


Flash of Light on mouse focused target

/run i=(GetMouseFocus().unit) if i then CastSpellByName("Flash of Light") SpellTargetUnit(i) else CastSpellByName("Flash of Light") end


Flash of Light + Top Trinket

/run if UnitAffectingCombat("player") and  GetInventoryItemCooldown("player", 13)==0 then UseInventoryItem(13)elseif UnitIsPlayer("target") then CastSpellByName("Flash of Light") else CastSpellByName("Flash of Light",1)  end

Hammer of Wrath

Hammer of Wrath if target have 20% hp, else Judgement

/run if UnitHealth("target")/UnitHealthMax("target") < 0.2 then CastSpellByName("Hammer of Wrath")CastSpellByName("Judgement")else CastSpellByName("Judgement")end

Hearthstone

Divine Protection, Hearthstone

/run CastSpellByName("Divine Protection") for b=0,4 do for s=1,GetContainerNumSlots(b) do local n=GetContainerItemLink(b,s) if n and strfind(n,"Hearthstone") then UseContainerItem(b,s)  end end end

Holy Light

Holy Light on other players or self cast if no friendly player targeted

/run if UnitIsPlayer("target") then CastSpellByName("Holy Light") else CastSpellByName("Holy Light",1)  end


Holy Light on mouse focused target

/run i=(GetMouseFocus().unit) if i then CastSpellByName("Flash of Light") SpellTargetUnit(i) else CastSpellByName("Holy Light") end

Purify

Purify target if friendly, else Purify oneself

/run if UnitIsFriend ("player", "target") then CastSpellByName("Purify") else CastSpellByName("Purify",1)  end

Redemption

Redemption if target is dead, else Holy Light on target or self

/run if UnitIsDead("target") then CastSpellByName("Redemption") elseif UnitIsFriend ("player", "target") then CastSpellByName("Holy Light") else CastSpellByName("Holy Light",1)  end


Redemption RP macro

/cast Redemption
/run if not lr or GetTime()-lr>5 then lr=GetTime() if UnitIsDead("target") then i=math.random(1,2) c=i>1 and "%t, you are terminated." or "What, %t has fallen? Arise, my champion!" SendChatMessage(c,"YELL") end end

Repentance

Repentance / send chat message

/run CastSpellByName("Repentance") if SpellCanTargetUnit("target") then SendChatMessage('Repentance on %t', 'Say') else SpellStopTargeting() end

Retribution Aura

Spammable Retribution Aura

/run i=0;s=0;while(1) do b=GetPlayerBuff(i,"HELPFUL") if b==-1 then break;end t=GetPlayerBuffTexture(b); if string.find(t,"AuraOfLight") then s=1;end i=i+1;end if s==0 then CastSpellByName("Retribution Aura");end


Seal of Command

/run local i,x=1,0 while UnitBuff("player",i) do if UnitBuff("player",i)=="Interface\\Icons\\Ability_Warrior_InnerRage" then x=1 end i=i+1 end if x==0 then CastSpellByName("Seal of Command") else CastSpellByName("Judgement")end

Seal of Justice

Seal of Justice + Judgement

/run c=CastSpellByName j="Judgement" q="y_SealOfWrath" function b(k)for i=1,32 do if strfind(tostring(UnitBuff("player",i)),k)then return 1 end end end if not b(q) then c("Seal of Justice")else c(j) end


Seal of Justice only when you don't have it active. Judgement if seal is active.

/run i=0;s=0;while(1) do b=GetPlayerBuff(i,"HELPFUL") if b==-1 then break;end t=GetPlayerBuffTexture(b);if string.find(t,"SealOfWrath") then CastSpellByName("Judgement");s=1;break;end i=i+1;end;if s==0 then CastSpellByName("Seal of Justice");end

Seal of Light

Seal of Light + Judgement

/run local i,x=1,0 while UnitBuff("player",i) do if UnitBuff("player",i)=="Interface\\Icons\\Spell_Holy_HealingAura" then x=1 end i=i+1 end if x==0 then CastSpellByName("Seal of Light") else CastSpellByName("Judgement")end


Seal of light that cannot be reapplied while buff is up

/run i=0;s=0;while(1) do b=GetPlayerBuff(i,"HELPFUL") if b==-1 then break;end t=GetPlayerBuffTexture(b); if string.find(t,"HealingAura") then s=1;end i=i+1;end if s==0 or IsControlKeyDown() then CastSpellByName("Seal of Light"); end

Seal of Righteousness

Seal of Righteousness + Judgement

/run local z=0 for i=1,27 do t=UnitBuff("player",i) if (t and strfind(t,"ThunderBolt")) then z=1 break end end if z==1 then CastSpellByName("Judgement") else CastSpellByName("Seal of Righteousness") end 

Seal of Righteousness that cannot be reapplied while buff is up

/run local z=0 for i=1,27 do t=UnitBuff("player",i) if (t and strfind(t,"ThunderBolt")) then z=1 break end end if z==0 then CastSpellByName("Seal of Righteousness") end

Seal of Wisdom

Seal of Wisdom + Judgement

/run c=CastSpellByName j="Judgement" q="y_Righteou" function b(k)for i=1,32 do if strfind(tostring(UnitBuff("player",i)),k)then return 1 end end end if not b(q) then c("Seal of Wisdom")else c(j) end

Seal of Wisdom that cannot be reapplied while buff is up

/run i=0;s=0;while(1) do b=GetPlayerBuff(i,"HELPFUL") if b==-1 then break;end t=GetPlayerBuffTexture(b); if string.find(t,"RighteousnessAura") then s=1;end i=i+1;end if s==0 or IsControlKeyDown() then CastSpellByName("Seal of Wisdom"); end

Seal of the Crusader

Seal of the Crusader + Judgement

/run c=CastSpellByName j="Judgement" q="y_HolySmite" function b(k)for i=1,32 do if strfind(tostring(UnitBuff("player",i)),k)then return 1 end end end if not b(q) then c("Seal of the Crusader")else c(j) end

This one checks for both Seal of the Crusader and Seal of Righteousness and only recasts Seal of Righteousness if none of them are active. This helps a lot when tanking.

/run c=CastSpellByName j="Judgement" q="y_ThunderB" r="y_HolyS" function b(k)for i=1,32 do if strfind(tostring(UnitBuff("player",i)),k)then return 1 end end end if b(r)or b(q) then c(j)end if not b(q) and not b(r)then c("Seal of Righteousness")end

Symbol of Kings

This one will buy 10 stacks of Symbol of Kings from the merchant, which should be 200

/run for i=1,100 do if "Symbol of Kings"==GetMerchantItemInfo(i) then BuyMerchantItem(i,10) end end

Target Dummy

Uses Target Dummy, aims at dummy and if target is found casts Blessing of Protection

/run for b=0,4 do for s=1,GetContainerNumSlots(b) do local n=GetContainerItemLink(b,s) if n and strfind(n,"Dummy")then UseContainerItem(b,s) end end end; TargetByName("Target Dummy");if UnitExists("target")then CastSpellByName("Blessing of Protection")end

Turn Undead

Turn Undead if combat, else Summon Warhorse

/run if UnitAffectingCombat("player") and UnitCreatureType("target")=="Undead" then CastSpellByName("Turn Undead") else CastSpellByName("Summon Warhorse")end

Weapon Oil

Enchant Brilliant Mana Oil on weapon

/run for b=0,4 do for s=1,18 do local i=GetContainerItemLink if not(i(b,s)==nil)then if strfind(i(b,s), "Brilliant Mana Oil")then  UseContainerItem(b,s)PickupInventoryItem(16)ReplaceEnchant()ClearCursor()end end end end


Enchant Brilliant Wizard Oil on weapon

/run for b=0,4 do for s=1,18 do local i=GetContainerItemLink if not(i(b,s)==nil)then if strfind(i(b,s), "Brilliant Wizard Oil")then  UseContainerItem(b,s)PickupInventoryItem(16)ReplaceEnchant()end end end end