Multiboxing macros

What is Multiboxing
Multiboxing is a term used to denote one user playing multiple accounts simulataneously. This can be done using one or more machines. Solutions exist for both the PC and Mac. There are also solutions for using both PC and Mac at the same time. Look to Multiboxing for a general overview on this subject.

Macros
Macros are the key to successful Multiboxing. The importance comes from the fact that with multiboxing keypresses are echoed from one client to another. As such the actions performed by those keypresses must take into account the abilities of each character. It would make no sense for a Priest to Power Word: Shield himself each time a Mage casts a Fireball. Let alone a Warrior to Charge while the Druid heals himself.

Focus
Perhaps one of the most important macro terms to understand is Focus. It provides an alternative method of targetting that is different than Target. The common use with multiboxing is to designate the lead character. Think of it as having a saved target.

Target
Simply put, it designates what will be the subject of an effect.

Options
Options allow for a more exacting degree of control with a macro. Examples

[harm] [help] [mouseover] [exists]

Examples
This is not meant to be a comprehensive list. The idea is to present some common macros to make it easier to work with multiple characters simultaneously.

Invite
Use this to assemble your group. Put this key on your main character in a slot not used as a hotkey for other characters.

/invite charcter1 /invite charcter2 /invite charcter3 /invite charcter4

Accept
A one button solution to respond to group invites, trades, Resurrect at your corpse, or release to the Graveyard

/script AcceptGroup; /script AcceptQuest; /script AcceptTrade; /script RetrieveCorpse; /script RepopMe;

Focus
Use this macro to keep your secondary characters "focused" on your main. The proper use it to put all the characters into a group. Have them target your main character, set your main as their focus, and then hit the key assigned to this macro. Afterward you can use this key to keep your group together and targetted.

/target focus /follow /assist /stopcasting

Simple Spell Attack
This is an example of a simple casting macro. It will only execute if the target isn't dead and it is hostile.

/cast [target=focus, nodead, harm] Smite

Pain followed by Wand
This works well for followers. /assist focus /cast Shadow Word: Pain /stopcasting /Use Shoot

Wand Attack
Have your followers use their wand on your main's target.

/assist focus /cast [harm] shoot;

Silence cast by alt
This is a good macro to have an alt cast silence on an enemy spell caster your main is fighting.

/stopcasting /cast [harm][target=targettarget,harm] Silence

Advanced Spell usage
This is an example for the main character, provided it is a priest. It will Smite the current target, or it can heal a friendly if you mouseover their portrait or character, or cast resurrection if they are dead.

/cast [harm, nodead] Smite /cast [target=mousover, noharm, nodead] Lesser Heal /cast [target=mouseover, noharm, dead] Resurrection

PyroBlast Opener Fireball Followup
This macro will cast a fireball if the party member has a current target otherwise it will assist the main character and lead off with a pyroblast. What this also allows is after the initial pyroblast the main can switch targets leaving the mage on a separate target.

/cast [exists,harm,nodead] fireball /stopmacro [exists,harm,nodead] /assist party1 /cast [exists,harm,nodead,combat] fireball; [exists,harm,nodead,nocombat] pyroblast

Mouseover
Mouseover is a very powerful tool. It allows you to cast on a target without changing your current target or focus. This is done by mousing over the unitframe of the target in question. Normally this is the player or mob portrait.

/cast [target=mouseover,exist] Healing Touch; Healing Touch

Using the ALT key
This example shows how using an extra key can affect the spell cast. If the ALT key is held down the Healthstone is created otherwise it is used.

/stopcasting /cast [modifier:alt] Create Healthstone; Healthstone

Four Frost Novas
Got a full group with four mages? Here is a nice trick to use one key to fire off Frost Nova from each mage one at a time. Each of the Mages will need just a slightly different version of the macro. Each comma represents a step in the sequences.

#1: /castsequence reset=24 Frost Nova,,, #2: /castsequence reset=24 ,Frost Nova,, #3: /castsequence reset=24 ,,Frost Nova, #4: /castsequence reset=24 ,,,Frost Nova

Polymorph
This uses macro options which are covered in Part II. The first line sets your focus to your current target if a) you don't already have a focus, b) your current focus is dead, or c) your current focus is friendly. If you aren't targeting anything, it will clear your focus. The second line keeps the macro from proceeding if you don't have a focus. Finally, it casts Polymorph on your focus. This gives you a one-button solution for your crowd control with focus.

/focus [target=focus, noexists] [target=focus, dead] [target=focus, help] /stopmacro [target=focus, noexists] /cast [target=focus] Polymorph

Skinning
This macro allows a character other than your main to skin the selected target. Put this macro on the background character and activate it when the main has a skinnable corpse targeted. /cast [target=party1target, exists, dead] Skinning

Heal rotation
To have a healing wave rotation on your 5 shaman party use these 5 macros. Each shaman will need a slight different version:

#1: /castsequence [target=focustargettarget] reset=alt,combat Healing Wave,,,, #2: /castsequence [target=focustargettarget] reset=alt,combat ,Healing Wave,,, #3: /castsequence [target=focustargettarget] reset=alt,combat ,,Healing Wave,, #4: /castsequence [target=focustargettarget] reset=alt,combat ,,,Healing Wave, #5: /castsequence [target=focustargettarget] reset=alt,combat ,,,,Healing Wave

The above macros assume you are using the focus macro on one of your chars(probably your main char). Each time you press the shortcut, a different shaman will heal your current "tank" - as in the one current taking damage from the mob. This only works if you are fighting one mob. One nice part of these macros are that they will not change your current target(s), so you can continue nuking meanwhile and also avoiding the delay of switching targets. If you press it twice before a heal lands, you will have multiple heals being cast, which is nice for hard hitting bosses. But beware, if you do it, the heal rotation order can get a bit screwed. If that happens and you don't like the new order, just use the "ALT" modifier to reset the heal order.

Healing madness
What if I want a heal rotation with the choice at any moment which chars to get healed? If you want to actually be able to heal damage coming from multiple sources to multiple chars in your party, things can get a bit messy. You can either setup a "healer" char and hope he never gets aggro/dies(e.g. they will kill your healer char in pvp asap), because then you are screwed. Or you can use 25 macros, 5 in each healing capable char. The objective is to have 5 keys, each key designed to heal one of your chars from a rotated healer. Let's assume you have a setup like mine and you have assigned shortcuts F1,F2,F3,F4 and F5. These are the macros for each of my shamans(Wyv,Wyi,Wyii,Wyiil,Wyiv):

"Wyv" - main

F1: /castsequence [target=player] reset=alt,combat ,,,,Healing Wave F2: /castsequence [target=party1] reset=alt,combat ,,,,Healing Wave F3: /castsequence [target=party2] reset=alt,combat ,,,,Healing Wave F4: /castsequence [target=party3] reset=alt,combat ,,,,Healing Wave F5: /castsequence [target=party4] reset=alt,combat ,,,,Healing Wave

"Wyi" - follower

F1: /castsequence [target=party1] reset=alt,combat ,,,Healing Wave, F2: /castsequence [target=party2] reset=alt,combat ,,,Healing Wave, F3: /castsequence [target=party3] reset=alt,combat ,,,Healing Wave, F4: /castsequence [target=party4] reset=alt,combat ,,,Healing Wave, F5: /castsequence [target=player] reset=alt,combat ,,,Healing Wave,

"Wyii" - follower

F1: /castsequence [target=party1] reset=alt,combat ,,Healing Wave,, F2: /castsequence [target=party2] reset=alt,combat ,,Healing Wave,, F3: /castsequence [target=party3] reset=alt,combat ,,Healing Wave,, F4: /castsequence [target=player] reset=alt,combat ,,Healing Wave,, F5: /castsequence [target=party4] reset=alt,combat ,,Healing Wave,,

"Wyiil" - follower

F1: /castsequence [target=party1] reset=alt,combat ,Healing Wave,,, F2: /castsequence [target=party2] reset=alt,combat ,Healing Wave,,, F3: /castsequence [target=player] reset=alt,combat ,Healing Wave,,, F4: /castsequence [target=party3] reset=alt,combat ,Healing Wave,,, F5: /castsequence [target=party4] reset=alt,combat ,Healing Wave,,,

"Wyiv" - follower

F1: /castsequence [target=party1] reset=alt,combat Healing Wave,,,, F2: /castsequence [target=player] reset=alt,combat Healing Wave,,,, F3: /castsequence [target=party2] reset=alt,combat Healing Wave,,,, F4: /castsequence [target=party3] reset=alt,combat Healing Wave,,,, F5: /castsequence [target=party4] reset=alt,combat Healing Wave,,,,

The above macros will most likely have to be adapted, because the exact names of your chars influence the position in the party, I leave that task to you. Just like the previous heal rotation macros, these also don't change your current target, so you can continue nuking happily.