MacroExtender

World of Warcraft addon

Download as .zip Download as .tar.gz View on GitHub

MacroExtender

MacroExtender AddOn for 1.12.1 World of Warcraft

MacroExtender allows you to create conditional statement macros that are found in WOW Expansion's TBC+ and more

Version

1.06.10

Read the Changelog.txt for details

Installation

If you are updating MacroExtender, please delete all contents of the old directory first to prevent any issues.

Conflicts

REPORT ALL BUGS to https://github.com/PROXiCiDE/MacroExtender/issues

Configuration

All of the config options can be changed with command line More options will be made available in the future development process

/mex option param1 param2 param3
Option Paramaters Description
macroui on/off Enable or Disable the MacroUI interface enhancements
actionbars on/off Enable or Disable the ActionBar interface enhancements
inventory on/off Enable or Disable the Inventory interface enhancements

Macro UI

You are now able to link items from your bags into the Macro UI. This allows cutting down time from typing a item by name

You can disable these features by disabling them

/mex macroui off
Key Combinations UI Frame If Empty Non Empty
Shift + Left Click Character Frame /use SlotID SlotID
Shift + Control + Left Click Character Frame /equip [condition]ItemName /equip [condition]ItemName
Shift + Left Click Bag Frame /use ItemName ItemName

Conditional Statements

These can also be checked for falseness instead of trueness by prefixing them with "no". For example, [nocombat] is a valid conditional and will only perform the actions following it if you are not in combat.

Aliases are for creating a macro shorter if you run out of space

Retail Conditions

condition alias paramater description
channeling chan spell1/spell2/../spellN Is the player currently channeling a spell
combat In combat
dead Target is dead
equipped eq item type item type is equipped (item type can be an inventory slot name or numeric slot value / item type or item subtype)
exists Target exists
pet pet type The given pet is out
harm Can cast harmful spells on the target
help Can cast helpful spells on the target
modifier mod shift/ctrl/alt Holding the given key
mounted Self explanatory
party Target is in your party
raid Target is in your raid/party
stance form 0/1/2/.../n In a stance
group party/raid Player is in the given type of group (if argument is omitted, defaults to party)
stealth Stealthed (Rogue & Druid only self explanatory
swimming swim Only detects when submerged in water and the Breathing Timer is available, will return false if in Aquatic Form or any type of water breathing buff

Non Retail Conditions

condition alias paramater description
ismelee Target is a melee class
iscaster Target is a caster class
mana relational operators #n Target mana is compared with #n
health relational operators #n Target health is compared with #n
pmana relational operators #n Same as mana except it checks the player character only
phealth relational operators #n Same as health except it checks the player character only
shadowform shform Priest is currently in shadowform
petloyalty petl 1/2/.../n Hunter's pet loyalty level
pethappy peth Hunter's pet is happy
smartcast Mana efficiency casting, will down rank the spell until it meets the required mana cost, if doesn't meet the requirement it will fail and try to cast without rank
buff texture Contains buff texture
debuff texture Contains debuff texture
pbuff texture Same as buff except it checks the player character only
pdebuff texture Same as debuff except it checks the player character only

Relational operators for mana / health condition for comparison

operator description
< Less than
> Greater than
>= Greater than or equal to
<= Less than or equal to
== Equal to

Buff and Debuff should be used with risk, There is no correct way to determine what buff or debuff belongs to a specific caster

Following macros that accept conditional behavior

command alias description
cast use OR castx Extended version of cast which allow conditional behavior
castsequence castseq Cast spells in successive order
castrandom userandom Cast a random spell from the list
click Simulate a mouse click on a frame of type Button
equip eq Equip items from the list
pick Picks up a item in the players inventory
stopcasting Stop casting or channeling a spell
dismount Dismounts your character
cancelform Cancels your current shapeshift/shadow/ghost wolf form
mount Mounts your character

#show and #showtooltip

They do not benefit from conditional behavior

Syntax

#showtooltip spellname         <--Shows a spell icon
#showtooltip itemname          <--Shows an item by name
#showtooltip BagId slotNum     <--Shows an item by bag slot
#showtooltip InvSlot           <--Shows an item by inventory slot

Examples

The following macro will allow you to show the shard count and use the spell Drain Soul from one entire macro, If no Soul Shard's are present then it will show Drain Soul icon instead until a Shoul Shard is found in the player inventory

#show Soul Shard
/cast [nochanneling:drain soul]drain soul

Inventory Slots

The current IDs for Inventory Slots are

name numeric value
ammoslot 0
headslot 1
neckslot 2
shoulderslot 3
shirtslot 4
chestslot 5
waistslot 6
legsslot 7
feetslot 8
wristslot 9
handsslot 10
finger0slot 11
finger1slot 12
trinket0slot 13
trinket1slot 14
backslot 15
mainhandslot 16
offhandslot 17
secondaryhandslot 17
rangedslot 18
tabardslot 19
bag0slot 20
bag1slot 21
bag2slot 22
bag3slot 23

Parameter Usage

Multiple parameters can be included by separating them with a slash [/] check reference table to see which is supported

condition:param1/param2/.../paramN

Following example checks if any modifier key is down and not channeling the spell drain soul. If requirements are not met it will cast the next sequence in the list

/castsequence [mod,nochanneling:drain soul]drain soul;reset=target/combat corruption,curse of agony,shadow bolt,shadow bolt,shadow bolt,shadow bolt

To prevent the above example from continuing with the next sequence in the list which could interrupt your channeling spell, add the [nochan] which is the alias for nochanneling.

/castsequence [mod,nochanneling:drain soul]drain soul;[nochan]reset=target/combat corruption,curse of agony,shadow bolt,shadow bolt,shadow bolt,shadow bolt

smartcast

Mana efficiency casting, will down rank the spell until it meets the required mana cost, if doesn't meet the requirement it will fail and try to cast without rank /pick, /use, /equip, /cast, /castrandom, /castsequence

Creation is class specific only

name useable by create description
conjure water all create conjure water Mage conjured water
conjure food all create conjure food Mage conjured food
conjure mana all create conjure mana Mage mana crystals such as Mana Agate/etc...
food all none All non conjured items
bandage all none Bandages
healthpotion all none Healing potions
manapotion all none Mana potions
healthstone all create healthstone Warlock healthstone
firestone Warlock create firestone Warlock firestone
spellstone Warlock create spellstone Warlock spellstone
soulstone Warlock create soulstone Warlock soulstone

Usage

If the players health is Lesser or Equal to 75% then smartcast will look up the player inventory and search for a healthstone of all ranks starting with the highest rank first.

/use [smartcast,target=player,health:<=75]healthstone

Creating a healthstone if the player is a warlock

/cast [smartcast]create healthstone

Buff / Debuff

Adding a prefix "@" in the front of the Buff/Debuff will check the player instead of the target. This allows you too still direct harmful spells at the target

Following example checks for Nightfall Proc on the player if found will cast shadow bolt at target. CastSequence will reset every 12 seconds / combat or target changes

Correct way

/cast [buff:@Shadow_Twilight]shadow bolt
/castsequence [nochanneling,pet] reset=12/combat/target corruption,curse of agony,immolate

Wrong way

This will not succeed as it will target the player to cast shadow bolt

/cast [target=player,buff:Shadow_Twilight]shadow bolt

PBuff / PDebuff

This does not require the prefix "@" as this checks the player only.This was implemented so it didn't seem confusing for users

Will cast shadow bolt only if the warlock has gained Nightfall proc, otherwise cast immolate

/cast [pbuff:Shadow_Twilight]shadow bolt;Imolate

Pet commands

command description
petassist Player will assist the pet
petaggressive Sets your pet to aggressive mode
petdefensive Sets your pet to defensive mode
petpassive Sets your pet to passive mode
petattack Instructs your pet to attack
petfollow Sets your pet to follow you around
petstay Sets your pet to stay in its current location

Macro's that don't have conditional behavior

command description
reload Reloads the user interface

Examples

Warrior

/cast [stance:1]Heroic Strike;Rend
/cast [equipped:shields]defensive stance

Hunter

/cast [pet,nopethappy]feed pet
/pick [pet:boar,nopethappy]roasted quail

Rogue

/cast [stealth]Rupture;Sinister Strike

Warlock

/cast [smartcast]Shadow Bolt
/cast [mod:ctrl]Immolate;Curse of Agony
/cast [mod:shift,harm,nochanneling]Drain Life;Health Funnel
/cast [harm,nodebuff:Shadow_CurseOfSargeras]Curse of Agony;Corruption

/castrandom [combat]shadow bolt,immolate;curse of agony,corruption

/castsequence reset=target/combat corruption,curse of agony,immolation,shadow bolt,shadow bolt,shadow bolt

/castsequence reset=30 demon armor, soul link

/castsequence [health:>=25]immolate,corruption,curse of agony,shadow bolt,shadow bolt,shadow bolt;drain soul

/petassist [pet,nomod,combat]
/petattack [pet,mod:shift]

/cast [nochanneling:drain life]Drain Life

/eq [smartcast]firestone

To create a warlock healthstone without repetitive editing of a macro each spell rank learned, use the smartcast option. Passing the spell without any rank information such as minor/lesser/../major If major is learned by the player then it will cast Create Soulstone (Major)() automatically for the player if the mana requirement is met, if not it will down rank until successful. This works with all Create [Spell's]/Conjure [Spell's],

/cast [smartcast]create healthstone

To use the best healthstone found in the player inventory ordered as follows major/greater/../lesser

/use [smartcast]healthstone

Create healthstone while a modifier key is down otherwise use the healthstone

/cast [mod,smartcast]create healthstone
/use [nomod,smartcast]healthstone

Bellow is equivalent of the example above just shorter

/cast [mod,smartcast]create healthstone;[smartcast]healthstone

Following macro allows you to create a spellstone if a modifier key is down, if no modifier key is down then equip it if not already equipped then use it

/cast [mod,smartcast]create spellstone;[nomod,smartcast,noequipped:17]spellstone;17

Mage

With 1.06.5 Changes, creating conjured items has changed. This allows the mage to create multiple stacks of water, before it would only create 1 stack then use the stack until it was gone, then repeat by recreating a new stack

Creating Conjured Water
/cast [smartcast]create conjure water
Using Conjured Water
/use [smartcast]conjure water
Creating Mana Crystal
/cast [smartcast]create conjure mana
Using Mana Crystal
/use [smartcast]conjure mana

Druid

/cast [nostance:3]cat form;[stance:3,nostealth]prowl;pounce

Misc

/dismount [combat,mounted]
/castrandom [nocombat]corruption,immolate,curse of agony;shadow bolt

/equip [stance:2]The Face of Death, Quel'Serrar

/equip [nocombat] dreadmist mask,dreadmist robe,dreadmist bracers,dreadmist wraps,dreadmist belt,dreadmist leggings,dreadmist sandals,blade of the new moon,rune band of wizardry,tome of the lost

Mount

If left empty it will use the first mount found in the inventory

/mount

Randomly

Will randomly select a mount in the players inventory

/mount random

Search

Will search the player inventory and will mount the character with very the first results found red skele. The ordered of search is determined by location of the bag and inventory slot

If the player inventory contains the following mounts

The search will go from Top to Bottom until the search criteria is met. The result would be Red Skeletal Warhorse as long the player is not in combat

/mount [nocombat]red skele
Wildcard Search

Wildcard searching for Red Skeletal Warhorse. It will search all of the player collected mounts until the first pattern in the search criteria found

/mount [nocombat]red.*war