Back to skills
extension
Category: Development & EngineeringNo API key required

s-develop

Core WoW addon development patterns using Ace3 framework and Blizzard UI APIs. Covers event-driven design, SavedVariables, frame architecture, and API resilience. Use when building addons, designing systems, or integrating libraries. Triggers: addon, WoW, Lua, Ace3, frame, event, SavedVariables, architecture.

personAuthor: jakexiaohubgithub

Developing WoW Addons

Expert guidance for building World of Warcraft addons with a focus on testability and maintenance.

Related Commands

  • c-develop - Build or extend addon features workflow

CLI Commands (Use These First)

MANDATORY: Always use CLI commands before manual exploration.

| Task | Command | |------|---------| | Create Addon | mech call addon.create -i '{"name": "MyAddon"}' | | Sync Junctions | mech call addon.sync -i '{"addon": "MyAddon"}' | | Validate TOC | mech call addon.validate -i '{"addon": "MyAddon"}' | | Check Libraries | mech call libs.check -i '{"addon": "MyAddon"}' | | Sync Libraries | mech call libs.sync -i '{"addon": "MyAddon"}' |

Capabilities

  1. Event-Driven Design — Register events, handle callbacks, bucket patterns
  2. Frame Architecture — Three-layer design (Core/Bridge/View), layouts, templates
  3. SavedVariables — Database design, AceDB, versioning, defaults
  4. Combat Lockdown — Protected functions, taint avoidance, secure handlers
  5. API Resilience — Defensive programming, C_ namespaces, secret values

Routing Logic

| Request type | Load reference | |--------------|----------------| | Addon architecture, layers | ../../docs/addon-architecture.md | | Event registration, callbacks | references/event-patterns.md | | Frame creation, UI engineering | references/frame-engineering.md | | SavedVariables, AceDB | references/saved-variables.md | | Combat lockdown, secure code | references/combat-lockdown.md | | Blizzard API, C_ namespaces | references/api-patterns.md | | MechanicLib integration | ../../docs/integration/mechaniclib.md | | Performance profiling | ../../docs/integration/performance.md |

Quick Reference

Create New Addon

mech call addon.create -i '{"name": "MyAddon", "author": "Name"}'
mech call addon.sync -i '{"addon": "MyAddon"}'

Core Principles

  1. Headless Core: Keep logic in pure Lua functions (Layer 1)
  2. Event-Driven: Avoid OnUpdate polling; use events (Layer 2)
  3. Defensive API: Always check for nil and use pcall for uncertain APIs
  4. Combat Aware: Never modify protected frames in combat