wow-api-lua-environment

Document the World of Warcraft Lua 5.1 sandbox, security model, and taint system for addon developers.

1|Updated Feb 22, 2026
One-click install
npx skills add https://github.com/pfchrono/SimpleUnitFrames --skill wow-api-lua-environment-pfchrono
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: wow-api-lua-environment
Source: https://github.com/pfchrono/SimpleUnitFrames/tree/main/.agents/skills/wow-api-lua-environment
Command: npx skills add https://github.com/pfchrono/SimpleUnitFrames --skill wow-api-lua-environment-pfchrono

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill provides a comprehensive understanding of the World of Warcraft Lua environment, its security restrictions, and how to safely interact with the game's API, preventing common errors and enabling robust addon development.

Core Features & Use Cases

  • Lua Sandbox & Taint System: Understand blocked functions, taint propagation, and secure execution contexts.
  • API Reference: Detailed information on timers, hooks, restricted actions, and logging utilities.
  • Use Case: Debugging why your addon is failing to cast spells in combat or encountering "action blocked" errors by understanding the taint system and combat lockdown rules.

Quick Start

Use the wow-api-lua-environment skill to understand how to safely hook Blizzard functions in World of Warcraft.

Frequently Asked Questions about wow-api-lua-environment

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why does my WoW addon get an action blocked error during combat?

WoW addon action blocked errors occur because the taint system and combat lockdown restrict insecure code from executing protected actions. InCombatLockdown prevents frame modifications and spell casts during combat to maintain UI security integrity.

How does taint propagation work in the World of Warcraft Lua sandbox?

Taint propagation in the WoW Lua sandbox spreads insecurity from tainted variables to secure execution contexts. When insecure code modifies global state, that taint flows through calls, blocking protected Blizzard APIs from executing if the execution path is compromised.

How do I safely hook Blizzard functions without causing taint in WoW addon development?

Safely hook Blizzard functions in WoW addon development by using hooksecurefunc to attach post-execution callbacks. This secure hooking method allows monitoring function calls without propagating taint to the original secure execution path.

Can I check if a variable is secure using issecurevariable in the WoW Lua environment?

Yes, issecurevariable checks if a variable in the WoW Lua environment is free from taint. It returns whether the variable is secure and its current taint source, allowing addon developers to verify execution context safety before calling restricted functions.

What is the best way to run delayed code in a WoW addon without triggering taint?

The best way to run delayed code in a WoW addon without triggering taint is using C_Timer. This timer API provides secure scheduling within the Lua sandbox, executing callbacks after specified delays while maintaining the secure execution context.

What functions are blocked by the FrameScript sandbox in World of Warcraft?

The FrameScript sandbox in World of Warcraft blocks standard Lua functions like os.execute and loadfile to prevent malicious code execution. Restricted actions are instead routed through C_RestrictedActions to safely manage protected UI and gameplay modifications.