This is a full list of all API events compiled on one page. It might be more useful to use the normal Event API indexed pages which are simpler to glance at.

This page is aimed at simplifying event finding using the find feature in your browser, looking for a particular word or result. Use the Event API indexed pages if you know the name of the event and want to know what it returns, which might be simpler to glance at and will load faster and will save the wiki bandwidth.

This page is automatically updated from the sub pages. It does not need to be edited. It may however need to be purged sometimes to update with the individual indexed page changes.

Fired when the actionbar numbers disappear, typically when you finish dragging something to the actionbar

arg1

the mouse button used to click the button. Known values: "LeftButton", "RightButton"

arg2

true or false for unknown reason.

"ACTIONBAR_PAGE_CHANGED"

Category: Action Bar

Fired when the actionbar page changes, typically when you press the pageup or pagedown button.

arg1

the mouse button used to click the button. Known values: "LeftButton", "RightButton"

arg2

true or false for unknown reason.

"ACTIONBAR_SHOWGRID"

Category: Action Bar

Fired when the actionbar numbers appear, typically when you drag a spell to the actionbar.

no arguments|}

"ACTIONBAR_SLOT_CHANGED"

Category: Action Bar

Fired when any actionbar slot's contents change; typically the picking up and dropping of buttons. On 4/24/2006,

Slouken stated "ACTIONBAR_SLOT_CHANGED is also sent whenever something changes whether or not the button should be dimmed. The first argument is the slot which changed." This means actions that affect the internal fields of action bar buttons also generate this event for the affected button(s). Examples include the Start and End of casting channeled spells, casting a new buff on yourself, and the cancellation or expiration of a buff on yourself.

Fired when the cooldown for an actionbar or inventory slot starts or stops. Also fires when you log into a new area.

arg1

if the cooldown is starting, the mouse button used to click the button. Known values: "leftButton"

if the cooldown is stopping or you are logging into a new zone, this is nil

"ACTIONBAR_UPDATE_STATE"

Category: Action Bar

Fired when the state of anything on the actionbar changes. This includes cooldown and disabling.

arg1

the mouse button used to click the button. Known values: "LeftButton", "RightButton"

can also be nil

"ACTIONBAR_UPDATE_USABLE"

Category: Action Bar

Fired when something in the actionbar or your inventory becomes usable (after eating or drinking a potion, or entering/leaving stealth; for example). This is affected by rage/mana/energy available, but not by range.

no arguments|}

"ACTIVE_TALENT_GROUP_CHANGED"

Category: Player

Fired when a player switches changes which talent group (dual specialization) is active.

This event fires whenever an AddOn is loaded (fires once for each AddOn loaded if multiple AddOns are being loaded), whether that is during the inital Loading Phase or when an AddOn is loaded using the LoadAddOn("addonname") or UIParentLoadAddon("addonname") function. This event always fires after SavedVariables of the AddOn have been loaded from disk and its OnLoad function has been executed.

arg1

name of the AddOn that was just loaded

"AREA_SPIRIT_HEALER_IN_RANGE"

Category: Death

}

"AREA_SPIRIT_HEALER_OUT_OF_RANGE"

Category: Death

}

"ARENA_TEAM_INVITE_REQUEST"

Category: Arena

}

"ARENA_TEAM_ROSTER_UPDATE"

Category: Arena

This event fires whenever an arena team is opened in the character sheet. It also fires (3 times) when an arena member leaves, joins, or gets kicked. It does NOT fire when an arena team member logs in or out. |}

"ARENA_TEAM_UPDATE"

Category: Arena

This does NOT fire when an arena member joins the team, leaves, gets kicked, logs in/out. Still unsure when this actually fires. |}

"ARENA_OPPONENT_UPDATE"

Category: Arena

? |}

"ARENA_SEASON_WORLD_STATE"

Category: Arena

? |}

"AUCTION_BIDDER_LIST_UPDATE"

Category: Auction

}

"AUCTION_HOUSE_CLOSED"

Category: Auction

This event is fired when the auction interface is closed.

Note

This event fires twice; once while auction information is still available and once when it is not.

"AUCTION_HOUSE_DISABLED"

Category: Auction

Fired when the auction house is not operational. |}

"AUCTION_HOUSE_SHOW"

Category: Auction

This event is fired when the auction interface is first displayed. This is generally done by right-clicking an auctioneer in a major city. |}

"AUCTION_ITEM_LIST_UPDATE"

Category: Auction

This event is fired when the Auction list is updated. Note that this is not only the case, if the list is completely changed but also if it is sorted (i.e. SortAuctionItems() is called). |}

"AUCTION_MULTISELL_FAILURE"

Category: Auction

Fired when listing of multiple stacks fails (or is aborted?). |}

"AUCTION_MULTISELL_START"

Category: Auction

Fired when the client begins listing of multiple stacks.

arg1

Number - total number of stacks the client has to list.

"AUCTION_MULTISELL_UPDATE"

Category: Auction

Fired when the client lists a stack as part of listing multiple stacks.

arg1

Number - number of stacks listed so far.

arg2

Number - total number of stacks in the current mass-listing operation.

Fired when a bags inventory changes. Bag zero, the sixteen slot default backpack, may not fire on login. Upon login (or reloading the console) this event fires even for bank bags. When moving an item in your inventory, this fires multiple times: once each for the source and destination bag. If the bag involved is the default backpack, this event will also fire with a container ID of "-2" (twice if you are moving the item inside the same bag).

arg1

container ID

"BAG_UPDATE_COOLDOWN"

Category: Item

Fired when a cooldown update call is sent to a bag

arg1

container ID (may also be nil, 00:47, 15 January 2007 (EST))

"BANKFRAME_CLOSED"

Category: Bank

Fired twice when the bank window is closed.

Only at the first one of them the bank data is still available (GetNumBankSlots(), GetContainerItemLink(), ...)

indicates number of talent points changed: -1 indicates one used (learning a talent), 1 indicates one gained (leveling)

"CHAT_MSG_ACHIEVEMENT"

Category: Communication,Guild,Achievements

Fired when a player in your vicinity completes an achievement.

arg1

The full body of the broadcast message.

arg2, arg5

The name of player who has just completed the achievement.

arg7, arg8

Some integer.

"CHAT_MSG_ADDON"

Category: Communication

<Added in Patch 1.12>
Fired when the client receives a message from SendAddonMessageSince patch 4.1, you must register the addon prefix with RegisterAddonMessagePrefix otherwise, events triggered by other players are blocked.

If arg5 has a value then this is the user affected ( eg: "Player Foo has been kicked by Bar" ), if arg5 has no value then it's the person who caused the event ( eg: "Channel Moderation has been enabled by Bar" )

arg4

Channel name with number

arg5

Player that caused the event (eg "Player Foo has been kicked by Bar" )

Example:
Place this:RegisterEvent("CHAT_MSG_SAY"); in the <OnLoad>/</OnLoad> section of your MyMod.xml file.
Then, have an if (event == "CHAT_MSG_SAY") then MyMod_Say(event, arg1, arg2, arg3); end line, or something like it, in the <OnEvent>/</OnEvent> section

This would store the previous message, player who said it, and language it was said in into some variables.

"CHAT_MSG_SKILL"

Category: Player,Skill

Fired when some chat messages about skills are displayed.

arg1

The content of the chat message.

arg1 formats are found in Blizzard's GlobalStrings.lua. Some possibilities:

ERR_SKILL_GAINED_S (eg. "You have gained the Blacksmithing skill.")

ERR_SKILL_UP_SI (eg. "Your skill in Cooking has increased to 221.")

"CHAT_MSG_SYSTEM"

Category: Communication

Fired when a system chat message (they are displayed in yellow) is received.

arg1

The content of the chat message.

arg1 formats are found in Blizzard's GlobalStrings.lua. Some possibilities:

ERR_LEARN_RECIPE_S (eg. "You have learned how to create a new item: Bristle Whisker Catfish.")

MARKED_AFK_MESSAGE (eg. "You are now AFK: Away from Keyboard")

Note: Be very careful with assuming when the event is actually sent. For example, "Quest accepted: Quest Title" is sent before the quest log updates, so at the time of the event the player's quest log does not yet contain the quest. Similarly, "Quest Title completed." is sent before the quest is removed from the quest log, so at the time of the event the player's quest log still contains the quest.

"CHAT_MSG_TARGETICONS"

Category: Communication

Fired when a target marker is set. This is used by the chat filter, if the player is watching target markers in chat output (in the Filters right-click menu, under Other, look for Target Icons).

arg1

The formatted message to be displayed in the chat window.

arg12

Some kind of number; no more is known at the time of writing. (Yes, that's a "12", not a typo for "2".)

arg1 is formatted from the global variable TARGET_ICON_SET, which by default in an English client is set to the string

Language (or nil if universal, like messages from GM) (always seems to be an empty string; argument may have been kicked because whispering in non-standard language doesn't seem to be possible [any more?])

Supposed to fire whenever the world map is closed/hidden, though it doesn't. A workaround for this is to use "WORLD_MAP_UPDATE" to set a global variable to use elsewhere with an OnUpdate function; e.g.

local Map_Changed = false;
function MyAddon_OnEvent()
if ( (event == "WORLD_MAP_UPDATE") and WorldMapFrame:IsVisible() ) then
Map_Changed = true;
end
end
function MyAddon_OnUpdate()
if ( (Map_Changed) and not WorldMapFrame:IsVisible() ) then
...do this...
Map_Changed = false;
end
end

When the second function is called, it checks to see if the map has been opened/closed (Map_Changed), then checks to see if the map is currently open (WorldMapFrame).
The effect is a code that executes only when the map closes.

"COMBAT_LOG_EVENT"

Category: Combat

<Added in Patch 2.4.0> See API COMBAT LOG EVENT.
This event fires only if it matches current global combat log filter settings.

"COMBAT_LOG_EVENT_UNFILTERED"

Category: Combat

<Added in Patch 2.4.0> See API COMBAT LOG EVENT.
AddOns wanting to parse all events the moment they happen should register for this event.
(See this blue posting for more info)

<Added in Patch 1.12>
Fired when the currently watched entity (as set by the CombatTextSetActiveUnit function) takes or avoids damage, receives heals, gains mana/energy/rage, etc. This event is used by Blizzard's floating combat text addon.

For damage, power gain and honor gains, this is the amount taken/gained. For heals, this is the healer name. For auras, the aura name. For block/resist/absorb messages where arg3 is not nil (indicating a partial block/resist/absorb) this is the amount taken. For faction gain, this is the faction name. For the SPELL_ACTIVE message, the name of the spell (abilities like Overpower and Riposte becoming active will trigger this message).

arg3

For heals, the amount healed. For block/resist/absorb messages, this is the amount blocked/resisted/absorbed, or nil if all damage was avoided. For faction gain, the amount of reputation gained.

arg3 does NOT return amount absorbed since at least patch 2.4

"COMMENTATOR_ENTER_WORLD"

Category: Non-Public

Fired when the character logs in and the server sends the greeting text. (Currently "Scammers are trying harder than ever to phish for your account information!...") This is not fired when reloading the UI.

No arguments.

"COMMENTATOR_MAP_UPDATE"

Category: Non-Public

"COMMENTATOR_PLAYER_UPDATE"

Category: Non-Public

"COMMENTATOR_SKIRMISH_MODE_REQUEST"

Category: Non-Public

"COMMENTATOR_SKIRMISH_QUEUE_REQUEST"

Category: Non-Public

"COMPANION_LEARNED"

Category: Companion

<Added in Patch 3.0 (WotLK)>

"COMPANION_UNLEARNED"

Category: Companion

"COMPANION_UPDATE"

Category: Companion

<Added in Patch 3.0 (WotLK)>

If the type is nil, the UI should update if it's visible, regardless of which type it's managing. If the type is non-nil, then it will be either "CRITTER" or "MOUNT" and that signifies that the active companion has changed and the UI should update if it's currently showing that type.

This event fires when any of the following conditions occur:

You, or anyone within range, summons or dismisses a critter

You, or anyone within range, mounts or dismounts

Someone enters range with a critter summoned

Someone enters range while mounted

"Range" appears to be at least 40 yards. If you are in a major city, expect this event to fire constantly.

"CONFIRM_BINDER"

Category: Misc

"CONFIRM_DISENCHANT_ROLL"

Category: Loot

<Added in patch 3.3>
Fires when you try to roll "disenchant" for and item which Binds on Pickup.

Note that arg2 should never be 3. In that case the event "CONFIRM_DISENCHANT_ROLL" would be fired.

"CONFIRM_SUMMON"

Category: Misc

"CONFIRM_TALENT_WIPE"

Category: Misc

Fires when the user selects the "Yes, I do." confirmation prompt after speaking to a class trainer and choosing to unlearn their talents.

arg1

Cost (260000 is equivalent to 26g). This value is then passed to different frames, depending on where the event is being handled, by calling the MoneyFrame_Update() function. In the case of this event, the cost of the transaction is displayed in a small static popup, and the user prompted for confirmation one final time.

"CONFIRM_XP_LOSS"

Category: Death

Accept durability(!) loss in exchange for his body back.

History: Way back before WoW was released, you lost experience rather than durability when you resurrected at a spirit healer.

"CORPSE_IN_INSTANCE"

Category: Death

"CORPSE_IN_RANGE"

Category: Death

Fired when the player is in range of his body.

"CORPSE_OUT_OF_RANGE"

Category: Death

Fired when the player is out of range of his body.

"CRITERIA_UPDATE"

Category: Achievements

Fired when the criteria for an achievement has changed.
(Fires several times at once, presumably for different levels of achievements and yet-unknown feats of strength, but this has yet to be confirmed and there may be another use for this Event. joequincy (talk) 18:24, 20 October 2008 (UTC))

"CURRENT_SPELL_CAST_CHANGED"

Category: Spell

Fired when the spell being cast is changed.

"CURRENCY_DISPLAY_UPDATE"

Category: Player,Misc

"CURSOR_UPDATE"

Category: Misc

Fired when the player right-clicks terrain, and on mouseover before UPDATE_MOUSEOVER_UNIT and on mouseout after UPDATE_MOUSEOVER_UNIT. This excludes doodads, player characters, and NPCs that lack interaction.

This event typically fires when you are given several choices, including choosing to sell item, select available and active quests, just talk about something, or bind to a location. Even when the the only available choices are quests, this event is often used instead of QUEST_GREETING.

Fired when the group's player's group member status changes. ADDED (5.0.4)

Note: The below needs to be validated with 5.0.4 or newer.

Fired whenever a raid is formed or disbanded, players are leaving or joining a raid (unsure if rejected join requests also fire the event), or when looting rules are changed (regardless of being in raid or party.)

As of 1.8.3 this event also fires when players are moved around in a Raid and when a player leaves the raid. This holds true even if the changes do not affect your party within the raid.

4-2-05 Edit: This event is called twice when the event PARTY_LOOT_METHOD_CHANGED is called.

7-28-05 EDIT: This event is generated when someone joins or leaves the group, also generated whenever someone rejects an invite and you're in a group. Also, if for instance you have 3 people in your group and you invite a 4th, it will generate 4 events. If you call GetNumPartyMembers() it will return 0, 1, 2, and 3. First event returing zero, 2nd event returning 1, etc etc.

Fired when the minimap scaling factor is changed. This happens, generally, whenever the player moves indoors from outside, or vice versa. There are no arguments to this event. To test the player's location, compare the minimapZoom and minimapInsideZoom CVars with the current minimap zoom level (see GetZoom).

This event does not relate to the + and - minimap zoom buttons.

"MINIMAP_UPDATE_TRACKING"

Category: Map

Added in 2.3, this event is fired when the player selects a different tracking type from the menu attached to the mini map. There seems to be no useful arguments as of the time of this writing.

As of 1.8.3 this event also fires when players are moved around in a Raid and when a player leaves the raid. This holds true even if the changes do not affect your party within the raid.

4-2-05 Edit: This event is called twice when the event PARTY_LOOT_METHOD_CHANGED is called.

7-28-05 EDIT: This event is generated when someone joins or leaves the group, also generated whenever someone rejects an invite and you're in a group. Also, if for instance you have 3 people in your group and you invite a 4th, it will generate 4 events. If you call GetNumPartyMembers() it will return 0, 1, 2, and 3. First event returing zero, 2nd event returning 1, etc etc.

Fired when a petition is closed, e.g. by you signing it. See PETITION_SHOW.

"PETITION_SHOW"

Category: Arena,Guild

Fired when you are shown a petition to create a guild or arena team. This can be due to someone offering you to sign it, or because of you clicking your own charter in your inventory. GetPetitionInfo() will tell you more.

This event fires when the raid leader changes the difficulty of an instance.

"PLAYERBANKBAGSLOTS_CHANGED"

Category: Bank

This event only fires when bank bags slots are purchased. It no longer fires when bags in the slots are changed. Instead, when the bags are changed, PLAYERBANKSLOTS_CHANGED will fire, and arg1 will be NUM_BANKGENERIC_SLOTS + BagIndex.

Fired when the One of the slots in the player's 24 bank slots has changed, or when any of the equipped bank bags have changed.

Does not fire when an item is added to or removed from a bank bag.

arg1

When (arg1 <= NUM_BANKGENERIC_SLOTS), arg1 is the index of the generic bank slot that changed. When (arg1 > NUM_BANKGENERIC_SLOTS), (arg1 - NUM_BANKGENERIC_SLOTS) is the index of the equipped bank bag that changed.

"PLAYER_ALIVE"

Category: Death

Fired when the player:

Releases from death to a graveyard.

Accepts a resurrect before releasing their spirit.

Does not fire when the player is alive after being a ghost. PLAYER_UNGHOST is triggered in that case.

Called when a buff or debuff is either applied to a unit or is removed from the player. (Further details to follow, study needed).

Also fired when you start eating and/or drinking (which really is only a buff being applied like any other).

Druid

This event is also called when a Druid changes form (or prowl state). arg1 - arg9 are all nil in this case. These args are probably nil for other classes as well. Also, this event is called multiple times per form change.

Fired when the player enters the world, enters/leaves an instance, or respawns at a graveyard. Also fires any other time the player sees a loading screen.

To check if the player is entering an instance, check [[API_IsInInstance|IsInInstance].

Correction on the above comment: When PLAYER_ENTERING_WORLD fires, you'll notice that WORLD_MAP_UPDATE fires just before it. My instincts tell that leaving an instance puts the player in void space momentarily. So for the case that you are entering AND leaving an instance, GetPlayerMapPosition always returns the coordinates [0,0] and hence there is no way to determine using the event PLAYER_ENTERING_WORLD if the player is entering an instance or not. When leaving an instance the following events fire (ignoring party/raid events).

WORLD_MAP_UPDATE

PLAYER_ENTERING_WORLD

WORLD_MAP_UPDATE <--- Player coordinates are non-zero here

Instances do have coordinates for units once the second WORLD_MAP_UPDATE event has fired. For the case of entering a battleground such as WSG, WORLD_MAP_UPDATE won't fire until you leave Silverwing Hold or Warsong Lumber Mill and you are outside. --Salanex

Fired when a player engages auto-attack. Note that firing a gun or a spell, or getting aggro, does NOT trigger this event.

From a post by Dhrago on the WoW forums:

PLAYER_ENTER_COMBAT and PLAYER_LEAVE_COMBAT are for *MELEE* combat only. They fire when you initiate autoattack and when you turn it off. However, any spell or ability that does not turn on autoattack does not trigger it. Nor does it trigger when you get aggro.

WoW appears to condense simultaneous flag changes into a single event. If you are currently AFK and not(DND) but you type /dnd you'll see two Chat Log messages ("You are no longer AFK" and "You are now DND: Do Not Disturb") but you'll only see a single PLAYER_FLAGS_CHANGED event.

"PLAYER_EQUIPMENT_CHANGED"

Category: Player

?

"PLAYER_FOCUS_CHANGED"

Category: Combat,Unit Info

This event is fired whenever the player's focus target (/focus) is changed, including when the focus target is lost or cleared.

Triggered immediately before PLAYER_ENTERING_WORLD on login and UI Reload, but NOT when entering/leaving instances.

Note: Player skills such as those available through GetNumSkillLines() and relatives does not appear to be available when this event or PLAYER_ENTERING_WORLD fires during an actual player login from character-selection, as all the GetNumSkillLines()-function returns is 0 in those cases. When these events trigger from other reasons, such as zoning, the skill-related functions appear to work normally.

"PLAYER_LOGOUT"

Category: System

Sent when the player logs out or the UI is reloaded, just before SavedVariables are saved. The event fires after PLAYER_LEAVING_WORLD.

"PLAYER_LOSES_VEHICLE_DATA"

Category: Player,Vehicle

?

"PLAYER_MONEY"

Category: Player

Fired whenever the player gains or loses money.

To get the amount of money earned/lost, you'll need to save the return value from GetMoney() from the last time PLAYER_MONEY fired and compare it to the new return value from GetMoney().

Fired when the player tries to quit, as opposed to logout, while outside an inn. This event does not indicate that the "player has quit", but instead that the "player has the quitting option".

The dialog which appears after this event, has choices of "Exit Now" or "Cancel". The dialog which appears when you try to logout outside an inn, only has a "Cancel" choice, and the event is not fired.

Fired whenever you enter combat, as normal regen rates are disabled during combat. This means that either you are in the hate list of a NPC or that you've been taking part in a pvp action (either as attacker or victim).

"PLAYER_REGEN_ENABLED"

Category: Player,Combat

Fired after ending combat, as regen rates return to normal. Useful for determining when a player has left combat. This occurs when you are not on the hate list of any NPC, or a few seconds after the latest pvp attack that you were involved with.

Fired when the player changes between dual talent specs, and possibly when learning or unlearning talents (?).

"PLAYER_TARGET_CHANGED"

Category: Combat,Unit Info

This event is fired whenever the player's target is changed, including when the target is lost.

arg1

up if you click the target directly, down if you press Escape to clear the target selection, LeftButton if you select the target using static frames in the UI, nil if the target moves out of range and is lost.

"PLAYER_TOTEM_UPDATE"

Category: Player

This event fires whenever a totem is dropped (cast) or destroyed (either recalled or killed).

arg1

The number of the totem slot (1-4) affected by the update. See for example GetTotemInfo() for the uses of the totem slot number.

This event is fired very often. This includes, but is not limited to: viewing a quest for the first time in a session in the Quest Log; (once for each quest?) every time the player changes zones across an instance boundary; every time the player picks up a non-grey item; every time after the player completes a quest goal, such as killing a mob for a quest. It also fires whenever the player (or addon using the CollapseQuestHeader or ExpandQuestHeader() functions) collapses or expands any zone header in the quest log.

"QUEST_PROGRESS"

Category: Quest

Fired when a player is talking to an NPC about the status of a quest and has not yet clicked the complete button.

"QUEST_WATCH_UPDATE"

Category: Quest

Fired just before a quest goal was completed. At this point the game client's quest data is not yet updated, but will be after a subsequent QUEST_LOG_UPDATE event.

Fired when the player enters an instance that saves raid members after a boss is killed.

arg1

instance name

arg2

seconds until reset

"RAID_ROSTER_UPDATE"

Category: Party

REMOVED (5.0.4) - see: GROUP_ROSTER_UPDATE

Fired whenever a raid is formed or disbanded, players are leaving or joining a raid (unsure if rejected join requests also fire the event), or when looting rules are changed (regardless of being in raid or party!)

"RAID_TARGET_UPDATE"

Category: Party,Unit Info

New in 1.11. Fired when a raid target icon is changed or removed. Also fired when player join or leave a party or raid. arg1 is who gets updated.

Note: Does not get triggered if a mob wearing a raid target icon dies (the icon is removed from that mob, however.)

Question/Correction: I can not pick up arg1 at all from this event. Change in 1.12? Please clarify if possible.
Question/Correction: You are correct. The only arg is 1, which is the event name itself. --Robinson 02:34, 15 January 2007 (CDT)

Spellbook initially loads on client initialization. (Attempting to use GetSpellName before this is complete will result in a UI error. Note: This event happens after ADDON_LOADED and VARIABLES_LOADED.)

Learning new stuff that goes in the spellbook.

Opening the spellbook.

Equipping/Removing/Swapping primary weapon. (Changes the Attack icon)

UpdateSpells() function is called, which is used throughout the spellbook.

arg1

nil when the char learns stuff. Also when changing weapons and shapeshifting. In addition it seems to be called on regular intervals for no apparent reason.

when the user opens the spellbook.

'LeftButton' when using the mouse to open the spellbook or to browse through the pages and tabs of the open spellbook.

This event is fired every three seconds for no apparent reason (correct as of patch 3.3.3).
When a spell that has a cooldown is triggered it gets fired twice in quick succession and then again a few milliseconds later.

"SPELL_UPDATE_USABLE"

Category: Spell

This event is fired when a spell becomes useable or unusable. However the definition of useable and unusable is somewhat confusing. Firstly, range is not taken into account. Secondly if a spell requires a valid target and doesn't have one it gets marked as useable. If it requires mana or rage and there isn't enough then it gets marked as unusable. This results in the following behaviour:

Start) Feral druid in bear form out of combat, no target selected.

1) Target enemy. Event is fired as some spells that require rage become marked as unusable. On the action bar the spell is marked in red as unusable.

2) Use Enrage to gain rage. Event is fired as we now have enough rage. On the action bar the spell is marked unusable as out of range.

3) Move into range. Event is not fired. On the action bar the spell is marked usable.

4) Rage runs out. Event is fired as we no longer have enough rage.

5) Remove target. Event is fired and spell is marked as useable on action bar.

It appears that the definition of useable is a little inaccurate and relates more to how it is displayed on the action bar than whether you can use the spell. Also after being attacked the event started firing every two seconds and this continued until well after the attacker was dead. Targetting a fresh enemy seemed to stop it.

Fired when a timed event for an achievement begins or ends. The achievement does not have to be actively tracked for this to trigger.

arg1

achievmentID

arg2

criteriaID

arg3

Actual time

, arg4 : Time limit

"TRADE_ACCEPT_UPDATE"

Category: Trade

Fired when the status of the player and target accept buttons has changed. Target agree status only shown when he has done it first. By this, player and target agree status is only shown together (arg1 == 1 and arg2 == 1), when player agreed after target.

arg1

Player has agreed to the trade (1) or not (0)

arg2

Target has agreed to the trade (1) or not (0)

"TRADE_CLOSED"

Category: Trade

Fired when the trade window is closed by the trade being accepted, or the player or target closes the window.

This event may be sent more than once to represent the same change if the affected entity can be accessed through multiple UnitIDs. For example, two UNIT_HEALTH events will be sent for raid party members who are also in your party group.

UNIT_HEALTH events are sent for raid and party members regardless of their distance from the character of the host. This makes UNIT_HEALTH extremely valuable to monitor party and raid members.

Fired when the player equips or unequips an item. This can also be called if your target, mouseover or party member changes equipment (untested for hostile targets).

This event is also raised when a new item is placed in the player's containers, taking up a new slot. If the new item(s) are placed onto an existing stack or when two stacks already in the containers are merged, the event is not raised. When an item is moved inside the container or to the bank, the event is not raised. The event is raised when an existing stack is split inside the player's containers.

This event is also raised when a temporary enhancement (poison, lure, etc..) is applied to the player's weapon (untested for other units). It will again be raised when that enhancement is removed, including by manual cancellation or buff expiration.

If multiple slots are equipped/unequipped at once it only fires once now.

This event is no longer triggered when changing zones or logging in. Inventory information is available when PLAYER_ENTERING_WORLD is triggered.

Added in 2.0. Fired when a unit begins channeling in the course of casting a spell. Received for party/raid members as well as the player.

arg1

Unit casting the spell

arg2

Spell name

arg3

Spell rank (deprecated in 4.0)

arg4

Spell lineID counter

arg5

Spell ID (added in 4.0)

"UNIT_SPELLCAST_CHANNEL_STOP"

Category: Unit Info,Spell

Added in 2.0. Fired when a unit stops channeling. Received for party/raid members as well as the player.

arg1

Unit casting the spell

arg2

Spell name

arg3

Spell rank (deprecated in 4.0)

arg4

Spell lineID counter

arg5

Spell ID (added in 4.0)

"UNIT_SPELLCAST_CHANNEL_UPDATE"

Category: Unit Info,Spell

Added in 2.0. Received for party/raid members, as well as the player

arg1

Unit casting the spell

arg2

Spell name

arg3

Spell rank (deprecated in 4.0)

arg4

Spell lineID counter

arg5

Spell ID (added in 4.0)

"UNIT_SPELLCAST_DELAYED"

Category: Unit Info,Spell

Added in 2.0. Fired when a unit's spellcast is delayed, including party/raid members or the player

arg1

Unit casting the spell

arg2

Spell name

arg3

Spell rank (deprecated in 4.0)

arg4

Spell lineID counter

arg5

Spell ID (added in 4.0)

"UNIT_SPELLCAST_FAILED"

Category: Unit Info,Spell

Added in 2.0. Fired when a unit's spellcast fails, including party/raid members or the player

arg1

Unit casting the spell

arg2

Spell name

arg3

Spell rank (deprecated in 4.0)

arg4

Spell lineID counter

arg5

Spell ID (added in 4.0)

"UNIT_SPELLCAST_FAILED_QUIET"

Category: Unit Info,Spell

arg1

Unit casting the spell

arg2

Spell name

arg3

Spell rank (deprecated in 4.0)

arg4

Spell lineID counter

arg5

Spell ID (added in 4.0)

"UNIT_SPELLCAST_INTERRUPTED"

Category: Unit Info,Spell

Added in 2.0. Fired when a unit's spellcast is interrupted, including party/raid members or the player

arg1

Unit casting the spell

arg2

Spell name

arg3

Spell rank (deprecated in 4.0)

arg4

Spell lineID counter

arg5

Spell ID (added in 4.0)

"UNIT_SPELLCAST_INTERRUPTIBLE"

Category: Unit Info,Spell

Added in 3.2 (Had to guess at the args)

arg1

Unit casting the spell

arg2

Spell name

arg3

Spell rank

"UNIT_SPELLCAST_NOT_INTERRUPTIBLE"

Category: Unit Info,Spell

Added in 3.2 (guessing at the args)

arg1

Unit casting the spell

arg2

Spell name

arg3

Spell rank

"UNIT_SPELLCAST_SENT"

Category: Unit Info,Spell

<Added in Patch 2.0> Fired when an event is sent to the server. Other messages indicate when the server begins timing or considers the cast successful.

arg1

Unit casting the spell

arg2

Spell name

arg3

Spell rank (deprecated in 4.0)

arg4

Spell target

"UNIT_SPELLCAST_START"

Category: Unit Info,Spell

Added in 2.0. Fired when a unit begins casting, including party/raid members or the player

arg1

Unit casting the spell

arg2

Spell name

arg3

Spell rank (deprecated in 4.0)

arg4

Spell lineID counter

arg5

Spell ID (added in 4.0)

"UNIT_SPELLCAST_STOP"

Category: Unit Info,Spell

Added in 2.0. Fired when a unit stops casting, including party/raid members or the player

arg1

Unit casting the spell

arg2

Spell name

arg3

Spell rank (deprecated in 4.0)

arg4

Spell lineID counter

arg5

Spell ID (added in 4.0)

"UNIT_SPELLCAST_SUCCEEDED"

Category: Unit Info,Spell

Added in 2.0. Fired when a spell is cast successfully. Event is received even if spell is resisted.

arg1

Unit casting the spell

arg2

Spell name

arg3

Spell rank (deprecated in 4.0)

arg4

Spell lineID counter

arg5

Spell ID (added in 4.0)

"UNIT_STATS"

Category: Unit Info

Fired when a units stats are being passed to the player/thing

arg1

Unit Name

"UNIT_TARGET"

Category: Unit Info

Fired when the target of yourself, raid, and party members change: 'target', 'party1target', 'raid1target', etc.. Should also work for 'pet' and 'focus'. This event only fires when the triggering unit is within the player's visual range. New in 2.x.

Fires whenever an item's durability status becomes yellow (low) or red (broken). Signals that the durability frame needs to be updated. May also fire on any durability status change, even if that change doesn't require an update to the durability frame.

"UPDATE_INVENTORY_DURABILITY"

Category: Item,Player

Should fire whenever the durability of an item in the character's possession changes. (?)

"UPDATE_LFG_LIST"

Category: Communication

When fired prompts the LFG UI to update the list of LFG players. Signals LFG query results are available. See API LFGQuery.

"UPDATE_LFG_LIST_INCREMENTAL"

Category: Looking for Group

"UPDATE_LFG_TYPES"

Category: Communication

"UPDATE_MACROS"

Category: System

"UPDATE_MASTER_LOOT_LIST"

Category: Loot

"UPDATE_MOUSEOVER_UNIT"

Category: Misc,Unit Info

Fired when the mouseover object needs to be updated.

Fired when the target of the UnitID 'mouseover' has changed and is a 3d model. (Does not fire when UnitExists('mouseover') becomes nil, or if you mouse over a unitframe.)

Fired in response to the CVars, Keybindings and other associated "Blizzard" variables being loaded. Since key bindings and macros in particular may be stored on the server they event may be delayed a bit beyond the original loading sequence.

Previously (prior to 3.0.1) the VARIABLES_LOADED event was part of the loading sequence. Although it still occurs within the same general timeframe as the other events, it no longer has a guaranteed order that can be relied on. This may be problematic to addons that relied on the order of VARIABLES_LOADED, specifically that it would fire before PLAYER_ENTERING_WORLD.

Addons should not use this event to check if their addon's saved variables have loaded. They can use ADDON_LOADED (testing for arg1 being the name of the addon) or another appropriate event to initialize, ensuring that the addon works when loaded on demand.

Fired when the client receives the result of a SendWho() request from the server. use API SetWhoToUI to manipulate this functionality. This event is only triggered if the Who panel was open at the time the Who data was received (this includes the case where the Blizzard UI opens it automatically because the return data was too big to display in the chat frame).

"WORLD_MAP_NAME_UPDATE"

Category: Map

"WORLD_MAP_UPDATE"

Category: Map

Fired when the world map should be updated.

When entering a battleground, this event won't fire until the zone is changed (i.e. in WSG when you walk outside of Warsong Lumber Mill or Silverwing Hold --Salanex

Fired when the player enters a new zone in which the player is not indoors see also ZONE_CHANGED_INDOORS. Zones are the smallest named subdivions of the game world and are contained within areas (also called regions). Whenever the text over the minimap changes, either this event is fired or ZONE_CHANGED_INDOORS or ZONE_CHANGED_NEW_AREA

"ZONE_CHANGED_INDOORS"

Category: Map

Fired when a player enters a new zone and enters a location which is inside (Instances appear to be counted as indoors) See also ZONE_CHANGED or ZONE_CHANGED_NEW_AREA as mutually exclusive events
For coding it would be advisable to register for all three events

"ZONE_CHANGED_NEW_AREA"

Category: Map

Fired when the user enters a new zone and a new area. e.g. moving from Duskwood to Stranglethorn Vale. In interface terms, this is anytime you get a new set of channels. The ZONE_CHANGED events are mutually exclusive!

Note: When this event fires, the UI may still think you're in the zone you just left. Don't depend on GetRealZoneText() and similar functions to report the new zone in reaction to ZONE_CHANGED_NEW_AREA. (untested for similar events)