April 28, 2007

Macro Commands and You

This list attempts to cover the most commonly used macro slash commands—excluding the /script command, which is out of the scope of this entry. A few are unlikely to be used in macros, but are included anyway for completeness and edification.

A number of commands may accept a unit id as a parameter. This lets you refer to a player or unit without hardcoding their name. Valid unit ids include:
  • player: You.
  • target: Your target.
  • pet: Your pet.
  • focus: Your focus.
  • mouseover: The player you are hovering your mouse over, either their interface representation or their character in-game.
  • party{1-4}: A specific member of your party (not including yourself).
  • raid{1-40}: A specific member of your raid (including yourself).
  • partypet{1-4}: The pet of a specific member of your party (not including your pet).
  • raidpet{1-40}: The pet of a specific member of your raid (including your pet).
You may also append target to any of these an indefinite number of times to refer to their targets. (For example, targettarget refers to your target's target.)

Also, italics around a parameter indicate that the parameter is optional.

Many commands allow you to specify conditions or options inside square brackets. Multiple conditions or options are seperated with commas. Valid conditions are:
  • actionbar:{1-6}: True if a specific action bar is currently active.
  • button:{1-5}: True if the macro was activated with a specific mouse button (activating from a keypress counts as button #1).
  • channeling: True if you are channeling a spell.
  • channeling:{spell}: True if you are channeling a specific spell.
  • combat: True if you or your pet is in combat.
  • dead: True if the command's target is dead.
  • equipped:{item type}: True if you have an item equipped of the specified type.
  • exists: True if the command's target exists.
  • flyable: True if you are in a zone where flying is allowed.
  • flying: True if you are on a flying mount or are in a flying form.
  • group: True if you are in a group.
  • group:{party/raid}: True if you are in a specific type of group.
  • harm: True if the command's target is hostile.
  • help: True if the command's target is friendly.
  • indoors: True if you are indoors.
  • modifier: True if you are pressing down a modifier key.
  • modifier:{shift/alt/ctrl}: True if you are pressing down a specific modifier key.
  • mounted: True if you are mounted.
  • outdoors: True if you are outdoors.
  • party: True if the command's target is in your party.
  • pet: True if you have a pet currently.
  • pet:{name/family}: True if your current pet has a specific name or is of a specific animal family.
  • raid: True if the command's target is in your raid.
  • stance: True if you are in a stance or are shapeshifted.
  • stance:{#}: True if you are in a specific stance or shapeshift form.
  • stealth: True if you are stealthed.
  • swimming: True if you are swimming.
If a condition has options, you can specify that the condition is true for multiple parameters by seperating them with a slash (/) character.

The only valid option is:
  • target={unit}: Specifies the command's target. This is used for all places where the "command's target" is referred to above, and it is used as the target of a command by several of the commands below. It may be a name or a unit id.
And now, the commands:

/assist [{conditions}] {player}
Assist a specified player if the conditions are satisfied, by name or unit id. If no player is specified, uses your current target.

/cancelaura [{conditions}] {buff name}
Cancels a beneficial buff on your character if the conditions are satisfied.

/cast [{options}] {action}; [{options}] {action}; …
Casts the first spell or uses the first item whose conditions are satisfied.

/castrandom [{options}] {action 1}, {action 2}, …; [{options}] {action 1}, {action 2}, …; …
Casts a random spell or uses a random item from the first list whose conditions are satisfied.

/castsequence [{options}] reset={reset conditions} {action 1}, {action 2}, …; [{options}] reset={reset conditions} {action 1}, {action 2}, …; …
Casts a spell or uses an item from the first sequence whose conditions are satisfied. Starts at the beginning of the list and uses each consecutive spell or item, one at a time. It will only advance to the next spell or item if the prior one was used successfully. Upon reaching the end, restarts at the beginning. Also restarts if any of the reset conditions are satisfied. The reset options are:
  • {number}: Restart after this many seconds from the first cast have elapsed.
  • target: Restarts if your target changes.
  • combat: Restarts every time you enter combat.
  • shift: Restarts if you activate the sequence while holding down Shift.
  • alt: Restarts if you activate the sequence while holding down Alt (Option on a Mac).
  • ctrl: Restarts if you activate the sequence while holding down Control.
/concede
Surrender to the player you are currently dueling.

/changeactionbar [{conditions}] {bar}
Switches to a specified action bar (numbered from 1 to 6) if the conditions are satisfied.

/dismount [{conditions}]
Dismounts from your mount if the conditions are satisfied.

/duel {player name}
Challenge a player to a duel, by name. If no name is specified, uses your current target.

/equip [{conditions}] {item name}
Equips a specified item if the conditions are satisfied.

/equipslot [{conditions}] {slot number} {item name}
Equips a specified item into a specific slot if the conditions are satisfied. For slot numbers, see /use, below.

/focus [{conditions}] {unit}
Uses a specified player or unit as your focus if the conditions are satisfied, by name or unit id. If no player is specified, uses your current target.

/clearfocus [{conditions}]
Clears your focus if the conditions are satisfied.

/follow {player}
/f {player}
Starts following a specified player, by name or unit id. If no player is specified, uses your current target.

/friend {player name}
Adds a specified player to your friends list, by name. If no player is specified, opens the Friends frame.

/removefriend {player name}
/remfriend {player name}
Removes a specified player from your friends list, by name.

/ignore {player name}
Adds a specified player to your ignore list, by name. If no player is specified, opens the Ignore frame.

/unignore {player name}
Removes a specified player from your ignore list, by name. If no player is specified, opens the Ignore frame.

/inspect {player}
/ins {player}
Inspects a specified player, by name or unit id. If no player is specified, uses your current target.

/invite {player}
/i {player}
Invites the specified player to a group, by name or unit id. If no player is specified, uses your current target.

/uninvite {player}
/u {player}
Removes the specified player from your group (if you are the leader or a raid assistant), by name or unit id. If no player is specified, uses your current target.

/petaggressive [{conditions}]
Switches your pet to Aggressive mode if the conditions are met.

/petattack [{conditions}]
Orders your pet to attack if the conditions are met.

/petautocaston [{conditions}] {ability}
Activates autocast on a specific pet ability if the conditions are met.

/petautocastoff [{conditions}] {ability}
Deactivates autocast on a specific pet ability if the conditions are met.

/petdefensive [{conditions}]
Switches your pet to Defensive mode if the conditions are met.

/petfollow [{conditions}]
Orders your pet to follow you if the conditions are met.

/petpassive [{conditions}]
Switches your pet to Passive mode if the conditions are met.

/petstay [{conditions}]
Orders your pet to stay where it is if the conditions are met.

/promote {player name}
/pr {player name}
If you are the current group leader, promotes a new player to group leader, by name.

/pvp
Toggles your PvP flag.

/readycheck
If you are the group leader, perform a ready check.

/startattack [{conditions}]
Activates melee autoattack if the conditions are satisfied.

/stopattack [{conditions}]
Deactivates melee autoattack if the conditions are satisfied.

/stopcasting [{conditions}]
Stops any spellcasting if the conditions are satisfied. Has the side effect of allowing you to cast another spell in the same macro afterwards, if none of the spells you've already cast invoke the global cooldown.

/stopmacro [{conditions}]
Immediately stops execution of the macro if the conditions are met.

/swapactionbar {bar 1} {bar 2}
Specify two action bar numbers (from 1 to 6). Toggles between the two action bars. If neither are currently activated, switches to the first one specified.

/target [{conditions}] {player}; [{conditions}] {player}; …
Targets the first player whose conditions are satisfied, by name or unit id.

/cleartarget [{conditions}]
Clears your target if the conditions are satisfied.

/targetenemy [{conditions}] {reverse}
Cycles through nearby hostile players or units. If the parameter is 1, cycles in reverse order.

/targetfriend [{conditions}] {reverse}
Cycles through nearby friendly players. If the parameter is 1, cycles in reverse order.

/targetparty [{conditions}] {reverse}
Cycles through nearby players in your party. If the parameter is 1, cycles in reverse order.

/targetraid [{conditions}] {reverse}
Cycles through nearby players in your raid group. If the parameter is 1, cycles in reverse order.

/use [{options}] {item name}
/use [{options}] {inventory item number}
/use [{options}] {bag id} {slot number}
Uses an item by name, in a specific inventory slot (equipped on your character), or in a bag. Useful inventory slot numbers:
  • 1: Helm.
  • 2: Necklace.
  • 3: Shoulder slot.
  • 5: Chest armor.
  • 6: Belt.
  • 7: Pants.
  • 8: Boots.
  • 9: Bracers.
  • 10: Gloves.
  • 11: Upper ring slot.
  • 12: Lower ring slot.
  • 13: Upper trinket slot.
  • 14: Lower trinket slot.
  • 15: Cloak.
  • 16: Main-hand weapon.
  • 17: Off-hand weapon/shield.
  • 18: Ranged weapon/Relic.
Bags are numbered right-to-left, starting with 0 for the backpack and 1-4 for your other bags.

/userandom [{options}] {item 1}, {item 2}, …; [{options}] {item 1}, {item 2}, …; …
As /castrandom, above, except it can only use items and you can specify items as you can in /use.

If there are any inaccuracies or glaring omissions, please let me know!

October 25, 2006

Profanity and You

You are not allowed to use profanity in World of Warcraft. Yes, there is a optional profanity filter. No, that doesn't mean you can swear anyway. Why? The official reason is in the World of Warcraft Terms of Use, section 3.B.i:
When engaging in Chat in World of Warcraft, or otherwise utilizing World of Warcraft, you may not:

(i) Transmit or post any content or language which, in the sole and absolute discretion of Blizzard Entertainment, is deemed to be offensive, including without limitation content or language that is unlawful, harmful, threatening, abusive, harassing, defamatory, vulgar, obscene, hateful, sexually explicit, or racially, ethnically or otherwise objectionable, nor may you use a misspelling or an alternative spelling to circumvent the content and language restrictions listed above…
The Terms of Service overrules your logic for this purpose. But what is logical reason, anyway? World of Warcraft has a T (Teen) rating, and not for profanity. There is, obviously, a "Game Experience May Change During Online Play" notice, which when combined with the enabled-by-default profanity filter is ammunition against outraged parents claiming their child doubled their vocabulary since acquiring the game.

The profanity filter exists if you or someone else happens to get offended by whatever profanity may be used in defiance of the Terms of Service; it is not license to swear. If the profanity filter caught everything and was impossible to circumvent, then there would be a logical reason to treat the profanity filter as an opt-in.

Of course, the Terms of Service aren't zealously enforced—I seem to recall a statement from a GM along the lines of "we don't care about profanity in guild/party/raid chat unless it's reported," but don't quote me on that.

October 07, 2006

The Add-On/Macro Lockdown and You

Outdated—no longer relevant.

Blizzard recently announced a big change being made to World of Warcraft when the Burning Crusade is released (regardless of if you purchase the expansion). There is a lot of hysteria about this change. I hope to clarify below exactly what you can expect.

Macros and add-ons will still be able to use abilities or target someone, but they will not be able to make a decision about what ability is used, what rank of spell to use, who it is used on, or who you target. You will always be required to specify, whether by pressing a specific key or clicking a specific button, exactly what you want to happen.

This is currently accomplished by forcing a key or button to trigger a specific action—casting a spell or changing to a specific target—and forbidding the interface to alter the behavior of any key binding or action button while in combat. The UI will allow for certain, very specific, automatic behavior modifications—for example, allowing a button to cast a different spell depending on if your target is friendly or hostile, or depending on if you are pressing a modifier key. You will also still be able to switch action bars—so warriors will be able to have different buttons depending on stance, druids different buttons depending on current form, and rogues different buttons depending on if you are in stealth or not. You will remain able to switch action bars manually while in combat, if you want certain abilities to be available in different situations.

Add-ons that allow you to pick a target and cast a spell at the same time (click-casting) will still be available. It will also be possible to differentiate between left-click and right-click (up to five mouse buttons, actually) as well as shift-click, alt-click, and control-click.

There will be a feature that allows a key or a button to open up a menu of actions, which can keep you from needing all your abilities on the screen at once. Making the key bindings automatically associate with items in a menu while the menu is open (for example, pressing 3 to open a menu, and then 4 to select an item in the menu, even though 4 means something else while the menu is closed) is not currently implemented, but it is on the list of features that will be added if there is enough time.

Because you can change key bindings and button actions out of combat, it is likely that add-ons such as Whispercast which automate buffing will continue to work, but only out-of-combat.

Any part of the visual interface that uses an ability or changes your target will not be able to move, appear, or disappear while you are in combat. This prevents add-ons from conditionally moving certain buttons under your cursor, for example. However, there will be no restrictions on what information the UI will be able to present to you. An add-on can highlight raid members' frames depending on if they have a debuff you can remove, or if they're badly hurt, or they want you to cast a certain spell on them, and so on. It will be possible to create a prioritized list of raid members (like the Emergency Monitor of CT_RaidAssist), but the list will not be directly interactive; you won't be able to click on a name and target/cast a spell on that player. The add-on would, however, be able to indicate when anyone on your static list of raid members is in dire need in any way it likes: a noticeable highlight, a large animated red arrow, whatever. You would then need to click on the list of raid members or press a key corresponding to that specific raid member to heal them. It will be able to advise you very overtly, but you'll have to make the final decision.

Any "main tank targets" add-on you have will remain nearly unscathed—you will not be able to customize the list of main tanks while you are in combat, but clicking to target or cast a spell on either the main tank or his target will be unaffected.

Any macro that uses slash commands only will mostly be unaffected. Any macro that uses a /script command to target a unit or cast a spell will not work, but many macros which do so without making conditional statements (if this is true, then do this) will be able to be rewritten in slash commands. You will still be able to use macros which consist of a series of /cast commands (which allows a button to use a different action if it is clicked and the first action is unusable for any reason).

Anyone who foresees the game turning into some sort of "whack-a-mole," remember that it was entirely possible before to make the UI into a whack-a-mole with only a single mole. It's also important not to judge anything by the status quo. There will be very little raiding of the current raid instances once the expansion comes out—and remember the new raid size is 25, which greatly reduces the number of people to keep track of. This change could easily be awful if the wrong types of raid bosses are implemented in the Burning Crusade. But this change was pushed for by the raid designers so that they don't have to consider add-ons like Decursive—which means that we will only get mass-debuff fights if the fight is designed to be monotonous (unlikely, to say the least). Also remember that if there is an inadvertent side effect of these changes, you can bet that it will at least be looked at.

I will update this post whenever I think or have my attention brought to something that needs to be mentioned or clarified. Don't hesitate to add a comment if there's something I'm missing, something that I'm wrong about, a question that you have, or if you hate my guts.

Last updated on October 11, 2006 at 5:00 PM.

October 06, 2006

This Blog and You

Hello. I'm glad you made it here. I think that both you and I will benefit if you read this, as you might have strong opinions on a topic.

I'm planning to make posts that respond to any seriousness that you might accidentally stumble across on the World of Warcraft forums. I plan to do this because I always see the same topics come up again and again. Instead of getting involved, I will instead copy and paste a link to this blog, as such:
I think that both you and I will benefit if you read this, as you seem to have strong opinions on this topic:

http://warcraft-and-you.blogspot.com/2006/10/this-blog-and-you.html
I hope that I will generate massive uproar and comment spam. This would make me happy in the pants. But I also hope that I learn something, because I am woefully ignorant of many things. I also hope that you learn something, because you are probably woefully ignorant of many other things.

I highly suggest that you flame me. If you do make a coherent point, we will both be better off. If you do not, it merely allows me to laugh at you all the harder. If you wish to respond logically, you are more than welcome, but you may need to shout to make yourself heard.

If no one shows up, I might sit here and doodle to myself. That would work too. But it'd be boring.