wow-api-widget

WoW Widget API (Curated)

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "wow-api-widget" with this command: npx skills add jburlison/wowaddonapiagents/jburlison-wowaddonapiagents-wow-api-widget

WoW Widget API (Curated)

This skill documents the Widget API for World of Warcraft Retail. It is curated: it highlights the core types, methods, and patterns you use most. For exhaustive lists, follow the source links.

Source of truth: https://warcraft.wiki.gg/wiki/Widget_API Script handlers: https://warcraft.wiki.gg/wiki/Widget_script_handlers XML schema: https://warcraft.wiki.gg/wiki/XML_schema Current as of: Patch 12.0.0 (Retail)

When to Use This Skill

Use this skill when you need to:

  • Create or manipulate UI frames (CreateFrame , Frame:SetPoint , Frame:Show )

  • Work with textures and visual regions (Texture:SetTexture , TextureBase:SetAtlas )

  • Handle font strings and text display (FontString:SetText , FontInstance:SetFont )

  • Build animations (AnimationGroup:Play , Animation:SetDuration )

  • Manage tooltips (GameTooltip:SetOwner , GameTooltip:AddLine )

  • Handle buttons and interactive controls (Button:SetText , EditBox:SetText , Slider:SetValue )

  • Work with status bars and cooldowns (StatusBar:SetValue , Cooldown:SetCooldown )

  • Use model frames for 3D displays (Model:SetModel , ModelScene:CreateActor )

  • Anchor, size, show or hide, and parent UI elements

  • Register frames for events (Frame:RegisterEvent , Frame:RegisterUnitEvent )

  • Set up script handlers (ScriptObject:SetScript , ScriptObject:HookScript )

Widget Hierarchy (Short)

FrameScriptObject Object ScriptObject ScriptRegion (+ ScriptRegionResizing + AnimatableObject) Region TextureBase -> Texture, MaskTexture, Line FontString (+ FontInstance) Frame (+ FontInstance) Button -> CheckButton EditBox, MessageFrame, ScrollFrame, Slider, StatusBar, Cooldown GameTooltip, SimpleHTML, ColorSelect, MovieFrame Model -> PlayerModel -> CinematicModel, DressUpModel -> TabardModel ModelScene -> ModelSceneActor

AnimationGroup -> Animation -> Alpha, Rotation, Scale, Translation, Path, FlipBook Font (FrameScriptObject + FontInstance)

How to Use This Skill

  • Identify the widget type you are working with (for example: Frame , Texture , Button ).

  • Check the hierarchy above to find base types it inherits from.

  • Open the relevant reference file for core methods and examples.

  • Use the source links for exhaustive method lists.

Reference Files

Reference Contents

BASE-WIDGETS.md Base types, anchoring, input, scripts, visibility

TEXTURE-WIDGETS.md TextureBase, Texture, MaskTexture, Line

FONT-WIDGETS.md FontInstance, Font, FontString

ANIMATION-WIDGETS.md AnimationGroup, Animation, Alpha, Rotation, Scale, Translation, Path

FRAME-WIDGETS.md Frame core behavior, events, layering, movement

FRAME-CONTROLS.md Button, CheckButton, EditBox, ScrollFrame, Slider, StatusBar, Cooldown, MessageFrame, SimpleHTML

ADVANCED-WIDGETS.md GameTooltip, Model/PlayerModel, ModelScene, ColorSelect, MovieFrame

Core Patterns

Create and Anchor

local frame = CreateFrame("Frame", "MyFrame", UIParent, "BackdropTemplate") frame:SetSize(240, 120) frame:SetPoint("CENTER")

local title = frame:CreateFontString(nil, "OVERLAY", "GameFontNormal") title:SetPoint("TOP", 0, -12) title:SetText("Hello")

Events and Scripts

local f = CreateFrame("Frame") f:RegisterEvent("PLAYER_LOGIN") f:SetScript("OnEvent", function(self, event) print("Ready", event) end)

Buttons

local btn = CreateFrame("Button", nil, UIParent, "UIPanelButtonTemplate") btn:SetSize(120, 32) btn:SetPoint("CENTER") btn:SetText("Click") btn:RegisterForClicks("AnyUp") btn:SetScript("OnClick", function(self, button) print("Clicked", button) end)

Animations

local ag = frame:CreateAnimationGroup() local fade = ag:CreateAnimation("Alpha") fade:SetFromAlpha(0) fade:SetToAlpha(1) fade:SetDuration(0.25) ag:Play()

XML Schema Quickstart

<Ui> <Frame name="MyXmlFrame" parent="UIParent" hidden="true"> <Size x="240" y="120"/> <Anchors> <Anchor point="CENTER"/> </Anchors> <Scripts> <OnLoad> self:RegisterEvent("PLAYER_LOGIN") </OnLoad> <OnEvent> print(event) </OnEvent> </Scripts> </Frame> </Ui>

Script Handlers Quick Map

  • ScriptRegion: OnShow , OnHide , OnEnter , OnLeave , OnMouseDown , OnMouseUp , OnMouseWheel

  • Frame: OnEvent , OnUpdate , OnSizeChanged , OnDragStart , OnDragStop , OnKeyDown , OnKeyUp

  • Button: OnClick , OnDoubleClick , PreClick , PostClick

  • EditBox: OnTextChanged , OnEnterPressed , OnEscapePressed , OnTabPressed

  • Slider/StatusBar: OnValueChanged , OnMinMaxChanged

  • AnimationGroup/Animation: OnPlay , OnStop , OnFinished , OnUpdate

For the full handler list by widget type, see https://warcraft.wiki.gg/wiki/Widget_script_handlers.

Specialized Widgets (Summary)

For advanced widgets (GameTooltip, Model, ModelScene, ColorSelect, MovieFrame), see ADVANCED-WIDGETS.md. Use the Widget API page for full method lists and specialized widget details.

Security Annotations

Methods tagged in the API reference have usage restrictions:

  • #protected

  • Blizzard secure code only.

  • #secureframe

  • Not callable on protected frames during combat.

  • #nocombat

  • Not callable during combat lockdown.

  • #restrictedframe

  • Returns nil for protected frames from insecure code in combat.

  • #anchorfamily

  • Anchor family restrictions apply.

Sources

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

wow-addon-structure

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

wow-api-map-navigation

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

wow-api-lua-environment

No summary provided by upstream source.

Repository SourceNeeds Review