Concrete Examples and Useful Classic Warlock Macros

Chat icon
Transcript
Related articles

Concrete Examples and Useful Classic Warlock Macros

Leveling Macros

Max Rank Spells

/cast spell_name

Casts the highest rank of spell_name. Great while leveling, so you never forget to put the new rank of the spell on your bars after training new spells.

Spammable Wand

/castsequence !Shoot,!Shoot

Starts your Shoot wand ability, and won’t cancel the wanding if you press again. Helps a lot if you like to spam your keys. Note: this will occasionally misbehave. No idea why.

Drain Soul / Delete Shards v1 (easily modifiable)

#showtooltip Drain Soul(Rank 1)
/cast Drain Soul(Rank 1)
/run local bN = GetBagName(4) if bN=="Small SoulPouch" or bN=="Soul Pouch" or bN=="Box of Souls" thenlocal nS=GetContainerNumSlots(4) PickupContainerItem(4,nS) DeleteCursorItem()end

The classic “Drain Soul” macro. Casts Rank 1 Drain Soul and deletes a Soul Shard from the last slot of your shard bag, as long as the shard bag is in the left-most slot (furthest from the Backpack). This macro does not recall the pet, since Improved Drain Soul procs from pet killing blows in Classic (on beta, at least). Does not work with the high-level shard bags, to save characters in the macro – but that shouldn’t be an issue as long as you aren’t trying to get Improved Drain Soul buff at level 60! :P Note: this version is easily modifiable to include non-soulbags, simply replace the bag names with the bag you will be using for shards.

Repair only main hand weapon or wand

/click MerchantRepairItemButton
/click CharacterMainHandSlot or /clickCharacterRangedSlot

When talking to a repair NPC, repairs only your mainhand or wand slot (with one button).

Drain Soul / Delete Shards v2 (smarter)

/use [nochanneling:drain soul]Drain Soul(Rank 1)
/run for i=1,4 do n=GetBagName(i)if n then ifn:find('[Sl][oca][ulk]') then if GetContainerNumFreeSlots(i)==0 thenPickupContainerItem(i,GetContainerNumSlots(i))DeleteCursorItem()break end end end end

The same as the previous, but you don’t have to have a shard bag in the left-most slot. This will find your shard bag for you! Again, does nothing for non-soul bags.

1-button Grinding

/castsequence reset=target Immolate, Curse of Agony, Corruption, Shoot

Converts your entire grinding rotation into one button. Modify the spells as it suits you. Can make long grinding sessions a bit similar to playing a retribution paladin. The sequence of spells will reset when you change targets.

Drain Life without canceling itself

#showtooltip Drain Life
/cast [nochanneling:Drain Life] Drain Life

Allows you to spam Drain Life without interrupting ticks, which reduces the mana efficiency of your spell. Also works for Drain Mana, Drain Soul, Rain of Fire, Hellfire, etc.

Unstuck + Hearthstone Warning

/run a,b=GetItemCooldown(6948)if a+b<GetTime()andGetItemCount(6948)>0 then message("\124cffff0000WARNING: USINGHEARTHSTONE!\124r")PlaySoundFile("Sound\creature\Voljin\VoljinAggro01.ogg")elsePlaySound(8585)end
/click HelpFrameCharacterStuckStuck

Uses your “unstuck”, and makes a popup warning if you are about to use your Hearthstone. Useful for death skips! If you don’t want the popup, you can have a chat message by changing message to print.

XP bar text

/console xpBarText 1

Enables displaying the numeric value of your XPBar progress. May need to mouse-over your bar to get it to display the first time.

Stones, Buffs, and Other Party-Support Macros

Soulstone clicking

/cast [button:1] Create Soulstone (Major)
/use [nomod,button:2] Major Soulstone; [mod:shift,@player, button:2] Major Soulstone

Creates a Major Soulstone on left-click, applies/uses the Soulstone on right-click, and soulstones yourself on shift-right-click. Modify this to suit you.

One-button Soulstone with announcement

#showtooltip
/cast [mod:shift] Create Soulstone (Major)
/stopmacro [mod:shift]
/use Major Soulstone
/run s="SS on " f=SendChatMessaget=UnitName("target") j=strjoinf(j("",s,"you"),"WHISPER",nil,t)f(j("",s,t),(UnitInRaid("player") and "RAID" or"PARTY"))

With shift held, it creates a Major Soulstone.Without shift held, it uses the Major Soulstone on your target, announces “SSon targetname” in party or raid chat,and whispers the target “SS on you”.

Self- and Target- Buffing

/cast [mod:shift, @player][] Detect Greater Invisibility

Casts Detect Greater Invisibility (you can replace this with Underwater Breathing) on your target, unless you press Shift, in which case it will buff yourself instead.

Summon Announcer (raid, party, whisper)

#showtooltip
/cast Ritual of Summoning
/run s="Summoning " f=SendChatMessagez=GetMinimapZoneText() t=UnitName("target") j=strjoinf(j("",s,"you to ",z),"WHISPER",nil,t)f(j("",s,t," to ",z,", please assist."),(UnitInRaid("player")and "RAID" or "PARTY"))

Summons your target and announces in raid or party chat (depending on which group type you are in) “Summoning (target) to (subzone), please assist.” and whispers the target “Summoning you to (subzone)”. Feel free to modify the message as you like.

Summon Announcer (say, whisper)

#showtooltip
/cast Ritual of Summoning
/s Summoning %t, please assist!
/run t=UnitName("target") msg=strjoin("","Summoning you to",GetMinimapZoneText(),"in",GetZoneText())SendChatMessage(msg,"WHISPER",nil,t)

Summons your target and announces it in /say and whispers the target “Summoning you to (subzone) in (zone)” Feel free to modify the message as you like.

Curse of Recklessness Rank Control

/cast [group:raid] Curse of Recklessness; Curse of Recklessness(Rank 1)

Casts maximum-rank Curse of Recklessness if you’re in a raid, Rank 1 Curse of Recklessness if you are not in a raid.

Minimap Tracking Cycler

/castsequence Sense Demons, Find Minerals, Find Herbs

Changes the currently-tracked objects on your minimap from Demons, to Ore, to Herbs, and back again

Unequip Everything

/script local t={1,3,5,6,7,8,9,10,16,17,18}; for k,v in pairs(t) do PickupInventoryItem(v); PutItemInBackpack(); end

Removes all your gear. Great for deathskips!

PvP, Items, and Crowd-Control Macros

Use ALL the heals

/use Major Healthstone
/use Greater Healthstone
/use Healthstone
/use Major Healing Potion
/use Greater Healing Potion
/use Healing Potion
/use Furbolg Medicine Pouch

Uses as many healing items as possible, using the largest heal from each category first. Since healthstone does not share a cooldown with potions (and there are other items with their own cooldowns), this macro can look like a Lay On Hands. It’s up to you to decide which items you toss into this macro.

Cannibalize, Eat and Drink at the same time

#showtooltip Conjured Crystal Water
/cast Cannibalize
/use [nocombat] Conjured Crystal Water
/use [nocombat] item:8076

Uses Cannibalize while also eating and drinking at the same time to minimize downtime.

Mouseover spells

/cast [@mouseover,exists] spell_name

Casts spell_name at your current mouseover target. Does nothing if your mouse is not hovering over a target. Great candidates for this macro would be: Fear, Death Coil, Curse of Tongues, Seduction, Spell Lock, DevourMagic. You may want to add harm to the list of conditions.

Mouseover/target cast toggle

/cast [mod:shift, @mouseover][] spell_name

Casts spell_name at your current mouseover target if you are holding shift, otherwise casts it at your target. Great candidates for this macro would be: Fear, Death Coil, Curse of Tongues, Seduction, Spell Lock, Devour Magic. You may want to add harm to the list of conditions.

Infernal on cursor

/cast [@cursor] Inferno

Summons an Infernal at the location of your mouse, without having to click the location.

Rank 1 Rain of Fire on cursor

/cast [@cursor] Rain of Fire(Rank 1)

Casts Rank 1 Rain of Fire at the location.Great for unstealthing rogues/druids, and interrupting the flag in AB/AV.

Iron Grenade on cursor, with interrupt

/use [@cursor] Iron Grenade
/stopcasting

Uses an Iron Grenade at the location of the mouse cursor, and interrupts the throw upon a second press. You don’t want to spam this macro! The stopcasting command is useful because enemies will often run out of your previous target circle, and you can stop the grenade from being wasted.

Self trash-buff cycler

/castsequence [@player] Detect Greater Invisibility, Unending Breath

Casts “trash buffs” on yourself with one keypress per buff. Great for preventing dispels.

Shadow reflect downranking

/cast [mod:shift] Corruption(Rank 1); Corruption

●     Casts a Rank 1 Corruption on yourself when shift is held, very useful against Shadow Reflectors because the DoT can make you immune to CC but deal very little damage. Additionally, you can get instant Shadowbolt casts if you are specced for Nightfall. Other great candidates are Siphon Life (long duration, damage cancels itself out), Curse of recklessness(Rank 1) (make yourself immune to fear at the cost of some armor).

Totem stomping

/petattack
/petattack [@mana tide totem]
/petattack [@windfury totem]
/petattack [@tremor totem]
/petattack [@grounding totem]                                                            

Sends your pet to attack, and destroy, shaman totems of high PVP impact. If no totems are found, simply attacks your current target. The totems listed at the bottom of the macro will be attacked first. Add totems to this as you see fit.

Spellstone equip/use/switch back to offhand (need testing)

/use Major Spellstone
/equip name_of_offhand
/equip Major Spellstone

Equips your spellstone on the first press. Another press will use your Spellstone and immediately equips your normal offhand substitute name_of_offhand for your offhand item). NOTE: If you press this again before the 30-second timer of equipping your Spellstone, the timer will be reset!

Max camera distance

/console cameraDistanceMaxZoomFactor 3.5

Set your maximum camera zoom to as far as the game will allow, letting you see much more area around your character. This is extremely helpful while in battlegrounds or questing/grinding in areas of dense can make it helps you detect attackers sooner.

Use equipment slot (for engi gadgets, trinkets, offhands, etc)

#showtooltip
/use number

Uses the item in the slot number number. 1 = helm, 6 = belt, 8= boots, 17 = offhand, 13 = trinket1, 14 = trinket2. Feel free to add mouseover conditions and such to this!

Pet Macros

Pet-specific binds, with modifier set

#showtooltip
/cast [pet:imp,mod:shift]FireShield;[pet:imp]Firebolt;[pet:voidwalker,mod:shift]Sacrifice;[pet:voidwalker]Torment;[pet:succubus,mod:shift]Seduction;[pet:succubus]Lashof Pain;[pet:felhunter,mod:shift]Spell Lock;[pet:felhunter]Devour Magic;

Casts a different pet ability depending on which pet you have out. Changes to a second set of abilities when Shift is pressed. The tooltip should update to the correct spell. Modify this to suit your needs.

Devour Magic on mouseover, targeted ally, self

/cast [@mouseover,exists][help][@player] Devour Magic

Casts Devour Magic at your mouseover target (if there is one), casts Devour Magic at your target if your target is an ally, casts Devour Magic at yourself if you have no mouseover target and your target is not an ally (or you have no target).

Pet Attack Mouse Over,Pet Attack Target, and Pet Return in one

/petfollow
/petattack
/petfollow [@pettarget,exists]
/petattack [@mouseover]
/script UIErrorsFrame:Clear()

Commands your pet to attack your current mouse-over target. If you do not have a mouse-over target, attacks your current target. Will also command the pet to return if your pet is currently attacking and you have no mouse-over target. If you have a target and a mouse-over target, your pet will begin attacking the mouse-over target. Also, command your pet to follow if your pet is initially on “stay”. Suppresses“You don’t have a target.” errors.

Thanks for reading! I hope you found this guide useful. If you have any issues or need further guidance, check out the Discord!

Share this lesson