Important
ALE is designed specifically for AzerothCore. If you're looking for compatibility with other emulators, check out ElunaAzerothCore for original Eluna compatibility.
Before installing ALE, ensure you have:
- AzerothCore Server: A working AzerothCore installation
- Git: Version control system for cloning repositories
- CMake: Build system (3.16 or higher recommended)
- Compiler with C++11 Support:
- Windows: Visual Studio 2019 or later
- Linux: GCC 7+ or Clang 5+
- macOS: Xcode 10+
ALE can use either:
- ACE (ADAPTIVE Communication Environment), or
- Boost (for filesystem library)
These should already be available if you have AzerothCore set up.
Open your terminal (or Git Bash on Windows) and navigate to your AzerothCore modules directory:
cd <azerothcore-path>/modulesExample:
cd /home/user/azerothcore/modulesClone the mod-ale repository into your modules folder:
git clone https://github.com/azerothcore/mod-ale.gitThis will create a mod-ale folder containing all necessary files.
Navigate to your AzerothCore build directory and configure with CMake:
cd <azerothcore-build-directory>
cmake ../ -DLUA_VERSION=luajitChoose your preferred Lua version with the -DLUA_VERSION flag:
| Version | Flag | Notes |
|---|---|---|
| LuaJIT | luajit |
Recommended - Best performance via JIT compilation |
| Lua 5.2 | lua52 |
Default - Used if no version specified |
| Lua 5.3 | lua53 |
Newer features, compatible |
| Lua 5.4 | lua54 |
Latest version, all features |
Examples:
# Using LuaJIT (recommended for performance)
cmake ../ -DLUA_VERSION=luajit
# Using Lua 5.3
cmake ../ -DLUA_VERSION=lua53
# Using default (Lua 5.2)
cmake ../Compile AzerothCore with the newly added module:
Linux/macOS:
make -j$(nproc)Windows:
cmake --build . --config ReleaseTip
The -j$(nproc) flag uses all available CPU cores for faster compilation.
Caution
Critical Step: After compiling, you must use the newly generated configuration files!
The compilation process generates updated config files with ALE settings. Without these, ALE may not function correctly (no error messages, logging issues, etc.).
Location of config files:
- Usually in your server's
etc/modulesorconfigs/modulesdirectory - Look for files like
mod-ale.conf
Copy the new .conf.dist files:
# Example - adjust paths as needed
cp mod-ale.conf.dist mod-ale.confThen edit worldserver.conf and configure ALE settings (see Configuration below).
After installation, configure ALE by editing your mod-ale.conf file:
###################################################################################################
# ALE (AZEROTHCORE LUA ENGINE)
###################################################################################################
# Enable or disable ALE
# Default: 1 (enabled)
ALE.Enabled = 1
# Enable traceback for detailed error information
# Useful for debugging but has performance overhead
# Default: 1 (enabled)
ALE.TraceBack = 1
# Script folder location (relative to server binary)
# Default: "lua_scripts"
ALE.ScriptPath = "lua_scripts"Create the scripts folder next to your server executable:
mkdir lua_scriptsPlace your .lua script files in this folder. ALE will automatically load them on server start.
Keep your ALE installation up to date with the latest features and bug fixes.
- Navigate to the mod-ale directory:
cd <azerothcore-path>/modules/mod-ale- Pull the latest changes:
git pull- Navigate to your build directory:
cd <azerothcore-build-directory>- Reconfigure if needed (optional):
cmake ../ -DLUA_VERSION=luajit- Recompile:
# Linux/macOS
make -j$(nproc)
# Windows
cmake --build . --config Release- Restart your server to load the updated version
Tip
Always backup your database and scripts before updating!
Check these things:
- Config file: Ensure you're using the new
worldserver.confgenerated after compilation - Enabled setting: Verify
ALE.Enabled = 1in config - Script path: Ensure
lua_scriptsfolder exists in the correct location - Logs: Check server logs for error messages
If you're not seeing ALE errors:
- Solution: You're using an old config file. Copy the new
.conf.distfile and reconfigure.
"Lua headers not found":
- ALE should automatically download Lua dependencies
- Ensure you have internet connection during CMake configuration
C++11 errors:
- Update your compiler to one that supports C++11 or later
ACE/Boost errors:
- These should be installed with AzerothCore
- Check your AzerothCore installation
- Check file extension: Must be
.lua - Check file names: Must be unique across all subdirectories
- Check syntax: Look for errors in the log file
- Check location: Scripts must be in the configured
ScriptPathfolder
If you encounter issues:
- GitHub Issues: Report problems
- Discord: Join our community
- AzerothCore Discord: Get support
Now that ALE is installed, you're ready to start scripting!
- Usage Guide - Learn how to write your first script
- Implementation Details - Advanced features and best practices
- API Documentation - Complete API reference
- Hooks Reference - Available event hooks
Create a test script to verify everything works:
File: lua_scripts/test.lua
local function OnServerStartup()
print("ALE is working! Server started successfully.")
end
RegisterServerEvent(33, OnServerStartup) -- SERVER_EVENT_ON_CONFIG_LOADRestart your server and look for the message in the console.
ALE is built upon the foundation of the Eluna Lua Engine. We acknowledge and thank the Eluna team for their pioneering work in Lua scripting for World of Warcraft server emulators.