Macros are your friends. They are powerful, but not all-powerful. They can mean squeezing the most out of some classes, saving time at the auction house, or having your interface setup for best possible raid encounter. Though you can only use one ability or one spell, it can be one of many. Macros can help you quickly cast specific spells on many different targets using @mouseover, or on a predetermined target using @focus. They are there to help make your in-game life easier, and were given to us for just that purpose. After reading this guide, you should have the knowledge to make the most of them.
NOTE: Macro examples below are just examples. You can probably do better!
The Macro Window
There are two ways to open the macro window. Either you can open the Main Menu (default key is Esc) or you can enter the command /macro. The macro window consists of a list of macros on the left, and the macro editor on the right.
The Anatomy of a Macro
Every macro consists of 3 things: Icon, Title, and Script.
- The icon list includes 100 unique icons to choose from.
- The title can be as long as you wish, however the macro list only displays the first 31 characters, and the ability bar can only display five..
- The last piece, the script, can consist of 25 lines. The lines can be any length, however you can only perform a single command per line. The special thing to remember about macros, is the / is understood. You do not need to add a slash before commands.
Your First MacroLets begin by writing a very simple macro.
- Open the macro editor
- Click on the ? icon, and choose any icon
- Change New Macro to Hello
- Under Commands go ahead and put: say Hello, World!
- Click Save
- Drag the icon from the left column to any open action bar button
- Click it!
Your character should have just said, "Hello, World!"
A Helpful Macro
Now, a common type of macro that is helpful for the achievers. Begin by creating a new macro, and lets call it Rares. Here is a script to copy and paste...
target tormented wisp
target sea scuttler
target crepit pokeit
When you save, it should be seven lines.
Why is this helpful? While in Freemarch, you can press a single button and instantly attempt to target a rare npc. If they are within targeting range, you'll find them. Quite helpful for those pesky rare-killer achievements. Substituting for the names of rares in your zone of choice will help you there as well.
Now, you should have a grasp of selecting icons, naming, and using macros. For the rest of the guide, it's assumed you can handle that portion yourself. All remaining teaching will simply deal with the Script of the macro.
the commands available at the command line have a few that are either macro-only, or only really useful from within a macro. Here is a list of commands and keywords that are special for macros. You can find more slash commands at Slash Commands Guide.
|suppressmacrofailures||Only usable within a macro, prevents macro failure notices.|
|saveequip #||ie: [I]/saveequip 1.[/I] Saves the currently equipped set of equipment to the specified index number.|
|loadequip #||ie: [I]/loadequip 1.[/I] Loads the saved set of equipment from the specified index.|
|cast [@modifier] <ability name> [target]||casts the specified ability. You can specify a target for that ability using special targeting syntax (e.g. [I]/cast @mouseover Commander's Order[/I])|
|focus [@modifier] [target]||Sets your focus to the named player or NPC. If no target is specified, it uses current target.|
|target [@modifier]<name>||Selects the player or NPC.|
|use [@modifier] <item name>||this uses the item named.|
|wait #||Where # is a number of seconds. Causes the macro to wait the specified number of seconds before issuing the next command. [I]Also /macrowait.[/I]|
|stopcasting||Causes the macro to stop the current action. A necessary intermediate step between chained macro commands.|
|use <item name>||this uses the item named.|
|equip <item name>||this equips the item named.|
|bindmacrofile <key> <filename>||Bind a macro saved as a text file in the same directory as rift.exe to a key.|
|%o||Returns the objective gender-specific pronoun for the target (Him, Her, It).|
|%p||Returns the possessive gender-specific pronoun for the target (His, Her, Its).|
|%s||Returns the subjective gender-specific pronoun for the target (He, She, It).|
|%t||Returns the name of your current target.|
|@self <spell name>||Cast a spell on yourself.|
|@focus <spell name>||Cast a spell the focused target.|
|@focustarget <spell name>||Cast a spell at a target of a focused target.|
|@lasttarget <spell name>||Cast a spell on the last target before your current target.|
|@targettarget <spell name>||Cast a spell on your target's target.|
|@pet <spell name>||Cast a spell on your primary pet.|
|@mark # <spell name>||Cast a spell on the creature or player marked with # (only usable in group/raid).|
|@gtae <spell name>||Causes the macro to inherit the icon and ability icon of the skill.|
|#show "ability"||Cast an AOE spell at the location of the target.|
Advanced MethodologyNow, we've covered a simple a multi-line target, but what else can macros do?
There are some special rules to macros that make them quite helpful. The largest being fall-through.
Lets create a focus-based multi-command pyromancer script.
cast @focus Burn
cast @focus Fulminate
cast @focus Cinder Burst
cast @focus Flame Bolt
cast @focus Fulminate
cast @focus Fireball
To use this macro, you first must set a target as your focus by either binding a key to set focus or by macro command to set focus. Now, as stated before, only a single spell will be cast, but there are several listed. What happens is the first command tells the game, if something doesn't work, we don't need to know about it. This prevents spam to us when using the macro. Next, it attempts to cast Burn. Burn has a 45 second cooldown, so it'll cast it, then it won't be able to cast it for 45 seconds. During that time, it'll go to the next line. Fulminate has a 45 second cooldown as well, so it'll cast once, then be skipped for 45 seconds. Cinder Burst has a 30 second cooldown... and so on. The final spell has no cooldown. So if you repeatedly press the button, it will cast them in order, and cause cooldowns. After the spells are on cooldown, it will cast spells as they become available. If none in the list are available, the very last spell is spam-able, so it will always be able to fall all the way back to it. Get it?
Now, lets try a multi-target macro. This one is for a Shaman\Warden\Inquisitor. This macro is simply an example of specific situation involving cooldowns. It assumes the user needs to: keep their 'bubble' up; keep Friend A (focus) free of a damage over time; have to keep healing whichever friend is being hit by the target; the user wishes to keep a small heal going on everyone; and doesn't need to worry about a lot else so will add in a little dps as well.
cast Glacial Shield
cast @focus Curative Waters
cast @targettarget Deluge
cast Healing Showers
cast @target Bolt of Depravity
Again, all but the last have cooldowns. The first command prevents spam when the macro fails to perform a cast because of a cooldown. The first keeps up the bubble, then it casts the damage over time remover on the focus, followed by a targeted heal on the target's target, then an area of effect heal on everyone, and lastly, a spam-able direct damage spell on the target.
Hint" Always have a spam-able spell or ability last so the button always does something, but don't put any more after it or they will never trigger in fall-through.
Mouseover and Modifiers
The following macro would be beneficial for a pure healer. Its an example of using a single key for many spells and targets, without fall through.
#show Healing Spray
cast [shift] Healing Flood
cast [shift] @mouseover Healing Showers
cast [ctrl] @mouseover Healing Current
cast [ctrl] Healing Current
cast [alt] @mouseover Deluge
cast [alt] Deluge
cast @mouseover Healing Spray
cast Healing Spray
Now, there is no fall through on this one. State of the mouse and keys determine what is going to happen. If CTRL is held down, the mouse is over someone, and the button is pressed; the spell Healing Current is cast on the person the mouse is over. If the mouse isn't over someone, and ALT is held down, and the button is pressed; it will cast Deluge on your present target. If the button is simply pressed, it will cast Healing Spray on your current target. The first command with #show makes it simply appear like Healing Spray in your hotbar.
Other Uses for Macros
Lets take a look at other uses, such as for a merchant who crafts their wares. First, they will need to setup their UI for exploring, collecting, and fighting. The standard interface for most. Now, once they have everything setup they can /exportui collectui.dat followed by /exportkeybindings collectkb.dat. Next, they head to town, rearrange the UI so that the map is smaller, the chat is bigger, their hotkeys are set to open crafting windows, and so on. They then perform /exportui craftui.dat followed by /exportkeybindings craftkb.dat. Now, they create 2 files in their rift.exe folder, named collect.txt and craft.txt.
bindmacrofile / craft.txt
bindmacrofile / collect.txt
Next, in game, they perform the command bindmacrofile / collect.txt then press /.
The game will perform a quick loading screen, and arrange everything to be setup for fighting, exploring, and collecting. After they are back in town, they can again press / and the game will perform a short reload, and will then be setup for town, with presumably a larger chat window, smaller bags that fit on screen with the auction house and craft windows, and so on.
The uses for this expand far beyond a crafter. One could have a specific raid setup, with a certain row of keys that raid-specific that are all 'tweaked' for the encounter. Then it can be made for a single button press to load the very specific encounter UI and key bindings, and press again to reload the standard set. Also PvE and Warfront sets, and so forth.