Full reference for WoW Retail frame events, payloads, and event handling patterns. Includes setup, registration, and categorized event lists with payloads.
Installation
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Full reference for WoW Retail frame events, payloads, and event handling patterns. Includes setup, registration, and categorized event lists with payloads.
WoW Events (Frame Events)
This skill documents frame events that the WoW client sends to UI code via OnEvent handlers. It covers setup, payload handling, and a categorized list of events with their payloads.
Register or handle events (RegisterEvent, RegisterUnitEvent).
Understand event payloads and argument order.
Map events to UI systems (Inventory, Quest, Party, etc.).
Build event-driven addon logic.
How to Use This Skill
Start with the event handling primer below.
Open the reference file that contains the event category you need.
Use the event payload list to unpack ... in your handler.
Cross-check unusual events on their wiki pages if a payload is unclear.
Event Handling Primer
Core APIs
CreateFrame("Frame") creates an event handler frame.
frame:RegisterEvent("EVENT_NAME") subscribes to a specific event.
frame:RegisterUnitEvent("UNIT_EVENT", "unit") filters to units.
frame:SetScript("OnEvent", handler) assigns the handler.
frame:UnregisterEvent("EVENT_NAME") or frame:UnregisterAllEvents() removes subscriptions.
Handler Signature
An OnEvent handler receives:
self - the frame
event - event name string
... - event payload arguments (vary per event)
From the Handling events guide:
The global event and argX variables were removed in patch 4.0.1.
Always unpack payloads from ....
Dispatch Table Pattern
local f = CreateFrame("Frame")
local handlers = {}
functionhandlers:PLAYER_LOGIN()print("Login")
endfunctionhandlers:BAG_UPDATE(bagID)print("Bag updated", bagID)
end
f:SetScript("OnEvent", function(self, event, ...)local handler = handlers[event]
if handler then
handler(handlers, ...)
endend)
for name inpairs(handlers) do
f:RegisterEvent(name)
end