Druid Cat Macros
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;
Cat form
Spammable cat form
/run local _, _, active = GetShapeshiftFormInfo(3) if not active then CastShapeshiftForm(3)end
Claw
Claw/Ferocious Bite. Change 4 to 5 if you want it to build to 5 combo points before Ferocious Bite
/run for z=1,172 do if IsAttackAction(z)then if not IsCurrentAction(z)then UseAction(z) elseif GetComboPoints()>=4 then CastSpellByName("Ferocious Bite") else CastSpellByName("Claw") end;end;end UIErrorsFrame:Clear()
Dash
Unshifts if not in Cat form, then shifts to Cat form, then uses Dash
/run local f=0 for i=1,GetNumShapeshiftForms()do if({GetShapeshiftFormInfo(i)})[3]then f=i end end if f ~= 0 and f ~= 3 then CastShapeshiftForm(f) else if f == 3 then CastSpellByName("Dash") else CastShapeshiftForm(3) end end
Feral Faerie Fire
Feral Faerie Fire when shapeshifted, Faerie Fire if not
/script i=1;m=0;while(UnitBuff("player",i)~=nil) do if(strfind(UnitBuff("player",i),"Form")~=nil) then m=1; end;i=i+1;end; c=CastSpellByName; if(m==1) then c("Faerie Fire (Feral)()");else c("Faerie Fire");end;
Pounce
Pounce if out of combat, Rip if 3 combo point, else Rake
/run C=CastSpellByName if not UnitAffectingCombat("player")then C("Pounce") elseif GetComboPoints()>=3 then C("Rip") else C("Rake") end UIErrorsFrame:Clear()
Powershift
Powershift Shred. Energy level is set to 30, change to a different number for a different cutoff for when you shift to caster
/run u=UnitMana('Player'); c=CastSpellByName; f=UnitPowerType("Player"); if (u<=30) and (f==3) then c"Cat Form"; elseif (f==0) then c"Cat Form"; end; for z=1,172 do if IsAttackAction(z)then if not IsCurrentAction(z)then UseAction(z);end;end;end;c"Shred"
Shred, Ferocious Bite, and Powershifting one button option
/run if GetComboPoints()>=4 then CastSpellByName("Ferocious Bite") else CastSpellByName("Shred") end /script u=UnitMana('Player'); c=CastSpellByName; f=UnitPowerType("Player"); if (u<=30) and (f==3) then c"Cat Form"; elseif (f==0) then c"Cat Form"; end;
Prowl
Cat Form, else Prowl
/run local _, _, active = GetShapeshiftFormInfo(3) if not active then CastShapeshiftForm(3) else CastSpellByName("Prowl")end
Unshifts if not in Cat form, then shifts to Cat form, then uses Prowl
/run local f=0 for i=1,GetNumShapeshiftForms()do if({GetShapeshiftFormInfo(i)})[3]then f=i end end if f ~= 0 and f ~= 3 then CastShapeshiftForm(f) else if f == 3 then CastSpellByName("Prowl") else CastShapeshiftForm(3) end end
Ravage
Ravage if out of combat, Ferocious Bite if 3 combo point, else Shred
/run C=CastSpellByName if not UnitAffectingCombat("player")then C("Ravage") elseif GetComboPoints()>=3 then C("Ferocious Bite") else C("Shred") end UIErrorsFrame:Clear()
Rip
Rip / Claw / Auto attack
/run for z=1,172 do if IsAttackAction(z)then if not IsCurrentAction(z)then UseAction(z) elseif GetComboPoints()>=3 then CastSpellByName("Rip") else CastSpellByName("Claw") end;end;end UIErrorsFrame:Clear()
Shred
Shred/Ferocious Bite. Change 4 to 5 if you want it to build to 5 combo points before Ferocious Bite.
/run for z=1,172 do if IsAttackAction(z)then if not IsCurrentAction(z)then UseAction(z) elseif GetComboPoints()>=4 then CastSpellByName("Ferocious Bite") else CastSpellByName("Shred") end;end;end UIErrorsFrame:Clear()
Tiger’s Fury
Uses Tiger’s Fury if the hast buff is missing
/run local i,x=1,0 while UnitBuff("player",i) do if UnitBuff("player",i)=="Interface\\Icons\\Ability_GhoulFrenzy" then x=1 end i=i+1 end if x==0 then CastSpellByName("Tiger's Fury") else CastSpellByName("Claw") end UIErrorsFrame:Clear()
Spammable Tiger’s Fury
/run i=0 m=0 c=CastSpellByName while not (GetPlayerBuff(i)==-1) do if (strfind(GetPlayerBuffTexture(GetPlayerBuff(i)),"Ability_Mount_JungleTiger")) then m=1 end i=i+1 end if m==0 then c("Tiger's Fury") end