Keep in mind, that WoW Classic (1.13) uses the modern WoW client API!
Most Vanilla (1.12) macros/addons relying on scripted targeting or spell casting will not work!
You may want to macro this into the majority of your abilities, except a few like Charge and mouse-over Sunder Armor to not break CC. 1.13:
#showtooltip /startattack /cast Mortal Strike
1.12, you need to replace the number (72) with the location of auto attack on your bars:
/script if not IsCurrentAction(72) then UseAction(72) end; /cast Mortal Strike /cast Shield Slam /cast Bloodthirst
1.13, switches to Defensive Stance if you aren't in it and casts Disarm. Can be adapted to any other stance (1 Battle Stance, 2 Defensive Stance, 3 Berserker Stance) and skill:
#showtooltip Disarm /cast [nostance:2] Defensive Stance; Disarm
...or:
/cast [stance:1/3] Defensive Stance; Disarm
1.12:
/run _,_,a=GetShapeshiftFormInfo(2);if(a==1)then CastSpellByName("Sunder Armor");else CastShapeshiftForm(2) end;
1.12, if you don't want to switch stances automatically, but just cast a spell if you are in that stance:
/run _,_,a=GetShapeshiftFormInfo(2);if(a==1)then CastSpellByName("Disarm");end;
Charge/Intercept + Hamstring, 1.13:
#showtooltip /startattack /cast [stance:1] Charge; [stance:3] Intercept /cast Hamstring
1.12:
/cast Charge /cast Hamstring /cast Intercept
You may to have this for Taunt, Overpower and Mocking Blow, too. 1.13:
/cast [@mouseover,harm,nodead,exists] Sunder Armor
Uses ability on mouse-over target if it exists, otherwise uses it on current target, 1.13:
/cast [@mouseover,harm,nodead,exists] Sunder Armor; Sunder Armor
Uses Shield Bash if a shield is equipped and you are in Battle/Defensive Stance, otherwise uses Pummel or switches to Berserker Stance
#showtooltip [stance:3] Pummel; Shield Bash /stopcasting /cast [nomounted,stance:1/2,equipped:Shields] Shield Bash; [nomounted,stance:1] Berserker Stance; [nomounted,stance:3] Pummel;
With mouse-over:
One button ranged, 1.13:
/cast [worn:gun] Shoot Gun; [worn:crossbow] Shoot; [worn:bow] Shoot; Throw
1.12:
/cast Shoot Gun /cast Shoot Crossbow /cast Shoot Bow /cast Throw
Weapon equip macros (2H, DW, 1H+Shield, slot 16 is MH, slot 17 is OH), 1.13:
/stopcasting /equip Bonereaver's Edge
/stopcasting /equipslot 16 Tooth of Eranikus /equipslot 17 Serathil
/stopcasting /equipslot 16 Tooth of Eranikus /equipslot 17 Aegis of Stormwind
For 1.12 weapon swapping you want to use an AddOn like ItemRack, create and keybind sets there.
1.13, use upper/lower trinket. This also works with other equipment slots and on-use items (1 head, 5 chest, 6 belt, 8 feet, 15 back, 17 offhand):
/use 13 /use 14
1.12:
/run UseInventoryItem(13); /run UseInventoryItem(14);
Mount macro, adapt the mount names to your mounts. Cancels Bloodrage and can be used to drop flag in WSG (Horde version, Alliance needs to replace "Alliance Flag" with "Horde Flag"). Uses AQ mount when in AQ40, 1.13:
/cancelaura Bloodrage /cancelaura Alliance Flag /use Red Qiraji Resonating Crystal /use Horn of the Black War Wolf
Cancel Bloodrage, 1.12:
/run local i=0 g=GetPlayerBuffTexture;if(not g(i)) then i=1;end while(g(i)) do if(string.find(g(i),"Ability_Racial_BloodRage"))then CancelPlayerBuff(i) end i=i+1 end
Reset instances:
/run ResetInstances();
Textual form on wowpedia. Visualization:
(modified based on an image from Feenix forums, unknown author, Jan 2012 or older)
KEYBIND EVERYTHING!