10
GitHub Stars
1
Bundled Files
3 weeks ago
Catalog Refreshed
2 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstart where the catalogue uses aiagentskills.
npx veilstart add skill falkicon/mechanic --skill s-develop- SKILL.md2.8 KB
Overview
This skill teaches core World of Warcraft addon development patterns using Ace3 and Blizzard UI APIs. It focuses on maintainable, testable architecture, event-driven design, SavedVariables management, and resilient API usage. Use it to build robust addons that behave safely in combat and under changing game APIs.
How this skill works
I guide you through a three-layer frame architecture (Core/Bridge/View), event registration patterns, and AceDB-backed SavedVariables. The skill shows defensive techniques for calling Blizzard C_ namespaces, avoiding taint, and designing secure handlers for combat lockdown. It also centralizes debugging, error capture, and performance monitoring practices for in-game testing.
When to use it
- Starting a new addon or refactoring an existing one
- Designing frame layouts and UI templates with layer separation
- Implementing event-driven features and reducing polling
- Integrating Ace3 libraries and AceDB for SavedVariables
- Hardening code against API changes and combat lockdown
Best practices
- Keep logic in a headless core (pure Lua) and separate UI code into bridge/view layers
- Prefer event registration and bucket patterns over OnUpdate polling
- Use AceDB for SavedVariables with explicit defaults and version upgrade paths
- Wrap uncertain API calls with pcall and validate C_ namespace returns before use
- Avoid modifying protected frames while in combat; use secure handlers and attribute-driven updates
- Centralize error capture and lightweight profiling for reproducible bug reports
Example use cases
- Build a buff/debuff tracker using events and a view layer for frames
- Create a settings panel backed by AceDB with migration logic between versions
- Instrument addon startup and runtime with lightweight performance hooks for slow-path detection
- Integrate a third-party library safely by validating library versions and syncing junctions
- Implement secure click handlers and attribute templates that survive combat lockdown
FAQ
Use AceDB with a clearly versioned defaults table, run a migration step on load that checks db.version and applies transformations before use.
When should I use pcall versus explicit nil checks?
Use explicit checks for expected nils and structural validation; reserve pcall for calls to APIs that may throw or for optional libraries where failures are acceptable.