Files
AzerothCore-RealmMaster/scripts/hooks

Post-Install Hooks System

This directory contains post-install hooks for module management. Hooks are executable scripts that perform specific setup tasks after module installation.

Architecture

Hook Types

  1. Generic Hooks - Reusable scripts for common patterns
  2. Module-Specific Hooks - Custom scripts for unique requirements

Hook Interface

All hooks receive these environment variables:

  • MODULE_KEY - Module key (e.g., MODULE_ELUNA_SCRIPTS)
  • MODULE_DIR - Module directory path (e.g., /modules/eluna-scripts)
  • MODULE_NAME - Module name (e.g., eluna-scripts)
  • MODULES_ROOT - Base modules directory (/modules)
  • LUA_SCRIPTS_TARGET - Target lua_scripts directory (/azerothcore/lua_scripts)

Return Codes

  • 0 - Success
  • 1 - Warning (logged but not fatal)
  • 2 - Error (logged and fatal)

Generic Hooks

copy-standard-lua

Copies Lua scripts from standard locations to runtime directory. Searches for:

  • lua_scripts/*.lua
  • *.lua (root level)
  • scripts/*.lua
  • Server Files/lua_scripts/*.lua (Black Market pattern)

copy-aio-lua

Copies AIO-specific Lua scripts for client-server communication. Handles both client and server scripts.

apply-compatibility-patch

Applies source code patches for compatibility fixes. Reads patch definitions from module metadata.

Module-Specific Hooks

Module-specific hooks are named after their primary module:

  • mod-ale-patches - Apply mod-ale compatibility fixes
  • black-market-setup - Black Market specific setup

Usage in Manifest

{
  "post_install_hooks": ["copy-standard-lua", "apply-compatibility-patch"]
}