Managing the AzerothCore Warcraft Server

Introduction

This page covers basic operation and updating for an AzerothCore (WotLK) server on Ubuntu. It assumes your database and other prerequisite services are already installed and running. For full installation and configuration documentation, see azerothcore.org.

Getting started: Connect to the server using SSH (PuTTY on Windows is fine). Log in with a sudo-privileged account. If the server is running, stop authserver and worldserver before updating.


Help Off

Operating the Server

What are these services? AzerothCore runs two processes: authserver (login/authentication) and worldserver (the game world). If either is stopped, players will not be able to log in or play.

Note: The commands below assume you have systemd/service entries named ac-authserver and ac-worldserver. If your service names differ (or you run the binaries manually), adjust accordingly.

  1. Log in to the server using a sudo-privileged account and/or the user designated to maintain AzerothCore.
  2. Authserver controls
    sudo service ac-authserver start
    sudo service ac-authserver stop
    sudo service ac-authserver restart
  3. Worldserver controls
    sudo service ac-worldserver start
    sudo service ac-worldserver stop
    sudo service ac-worldserver restart
  4. Switch to the server user (if you build/update as a dedicated user).
    su - azeroth

Updating the Server

  1. Stop the servers:
    sudo service ac-worldserver stop
    sudo service ac-authserver stop

    Stop worldserver first, then authserver, to ensure active sessions shut down cleanly.

  2. Navigate to the source code directory:
    cd /home/azeroth/azerothcore-wotlk/

    This is the folder containing the AzerothCore source code.

  3. Update the source code:
    git pull origin main

    This pulls the latest changes from the AzerothCore repository.

  4. Update installed modules (if you use them):
    cd modules/
    cd mod-solo-lfg/ && git pull && cd ../
    cd mod-better-item-reloading/ && git pull && cd ../
    cd mod-eluna/ && git pull && cd ../
    cd mod-ah-bot/ && git pull && cd ../
    cd ../

    Modules are maintained separately. If a module falls behind, it may break the build until it is updated or removed.

  5. Configure and build:
    cd build/
    cmake ../ -DCMAKE_INSTALL_PREFIX=/home/azeroth/azerothcore-wotlk/env/dist/ -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DWITH_WARNINGS=1 -DTOOLS_BUILD=all -DSCRIPTS=static -DMODULES=static

    This configures the build and sets the install destination (where the updated binaries will be installed).

    make -j 11 && make install

    This compiles and then installs the updated server binaries. The number 11 here represents the total available processor cores of the system minus one. You can use nproc --all to determine the number of cores available on your system.

  6. Start the servers:
    sudo service ac-authserver start
    sudo service ac-worldserver start

    Start authserver first, then worldserver.

Optional: Run the entire update in one block.

sudo service ac-worldserver stop sudo service ac-authserver stop cd /home/azeroth/azerothcore-wotlk/ && \ git checkout master && \ git pull && \ cd modules/ && \ ( cd mod-solo-lfg && git pull ) && \ ( cd mod-better-item-reloading && git pull ) && \ ( cd mod-eluna && git pull ) && \ ( cd mod-ah-bot && git pull ) && \ cd .. && \ cd build/ && \ cmake ../ -DCMAKE_INSTALL_PREFIX=/home/azeroth/azerothcore-wotlk/env/dist/ -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DWITH_WARNINGS=1 -DTOOLS_BUILD=all -DSCRIPTS=static -DMODULES=static && \ make -j"$(nproc)" && \ make install sudo service ac-authserver start sudo service ac-worldserver start

Note: If the build fails, read the error output carefully. If your source tree is in a bad state (merge conflicts, broken build directory, etc.), use “Force Updating the Server” below.

Force Updating the Server

Note: Use this only if a regular update fails and you want to start from a clean source checkout.

  1. Stop the servers:
    sudo service ac-worldserver stop
    sudo service ac-authserver stop

    Stop worldserver first, then authserver.

  2. Back up configuration files and scripts:
    sudo mkdir -p /home/azeroth/backup/ac-$(date +%F)
    sudo cp -a /home/azeroth/azerothcore-wotlk/env/dist/etc /home/azeroth/backup/ac-$(date +%F)/
    sudo cp -a /home/azeroth/azerothcore-wotlk/env/dist/bin/lua_scripts /home/azeroth/backup/ac-$(date +%F)/ 2>/dev/null || true
    sudo cp -a /home/azeroth/azerothcore-wotlk/env/dist/bin/scripts /home/azeroth/backup/ac-$(date +%F)/ 2>/dev/null || true

    This creates a dated backup folder and copies your current server configuration (env/dist/etc) and any Lua/script folders if present. After the rebuild, restore files as needed (for example, re-copy your worldserver.conf, authserver.conf, and custom Lua/scripts back into the new install).

  3. Delete the source directory:
    rm -r -f /home/azeroth/azerothcore-wotlk/

    This removes the existing source code folder so you can clone a fresh copy.

  4. Clone a fresh copy into the same path:
    git clone https://github.com/azerothcore/azerothcore-wotlk.git --branch master --single-branch /home/azeroth/azerothcore-wotlk/

    This downloads a fresh copy of the AzerothCore source code.

    cd /home/azeroth/azerothcore-wotlk/
    mkdir -p build
  5. Reinstall modules (if you use them):
    cd modules/
    git clone https://github.com/azerothcore/mod-solo-lfg.git
    git clone https://github.com/azerothcore/mod-better-item-reloading.git
    git clone https://github.com/azerothcore/mod-eluna.git
    git clone https://github.com/azerothcore/mod-ah-bot.git

    Because the source directory was deleted, modules must be cloned again (or restored from backup).

  6. Configure the build:
    cd ../build
    cmake ../ -DCMAKE_INSTALL_PREFIX=/home/azeroth/azerothcore-wotlk/env/dist/ -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DWITH_WARNINGS=1 -DTOOLS_BUILD=all -DSCRIPTS=static -DMODULES=static

    This configures the build and sets the install destination.

  7. Compile and install:
    make -j 11 install

    This builds and installs the server. If it succeeds, start the services.

  8. Start the servers:
    sudo service ac-authserver start
    sudo service ac-worldserver start

Optional: Run the entire forced update in one block.

sudo service ac-worldserver stop sudo service ac-authserver stop rm -rf /home/azeroth/azerothcore-wotlk/ && \ git clone https://github.com/azerothcore/azerothcore-wotlk.git --branch master --single-branch /home/azeroth/azerothcore-wotlk/ && \ cd /home/azeroth/azerothcore-wotlk/ && \ mkdir -p build && \ cd modules/ && \ git clone https://github.com/azerothcore/mod-solo-lfg.git && \ git clone https://github.com/azerothcore/mod-better-item-reloading.git && \ git clone https://github.com/azerothcore/mod-eluna.git && \ git clone https://github.com/azerothcore/mod-ah-bot.git && \ cd ../build && \ cmake ../ -DCMAKE_INSTALL_PREFIX=/home/azeroth/azerothcore-wotlk/env/dist/ -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DWITH_WARNINGS=1 -DTOOLS_BUILD=all -DSCRIPTS=static -DMODULES=static && \ make -j"$(nproc)" && \ make install sudo service ac-authserver start sudo service ac-worldserver start

Server Map Data

The server requires map/client data (dbc/maps/vmaps/mmaps). If AzerothCore changes how it reads data, you may need to refresh your data. The easiest approach is to download the latest prebuilt data from the client-data releases repository.

Download New Map Data:

  1. Delete old map data (example path):
    cd ~/server && rm -rf data/ && mkdir -p data/ && cd data/

    This assumes your server install is in ~/server and your data lives in ~/server/data. If you install to /home/azeroth/azerothcore-wotlk/env/dist/, update these paths to match your setup.

  2. Download the latest data.zip:
    wget [paste-release-url-here]

    Open the releases page, find the newest data.zip, copy its link, and paste it into wget. Example:

    wget https://github.com/wowgaming/client-data/releases/download/v16/data.zip

    The example URL may not be the latest release; always use the newest data.zip from the releases page.

  3. Extract:
    unzip data.zip

    After extracting, you should have folders like dbc, maps, vmaps, and mmaps.

Compile New Map Data:

To generate map data yourself (instead of downloading it), you need access to a 3.3.5a (Build 12340) client. A simple layout is:

If your install path is different (for example, /home/azeroth/azerothcore-wotlk/env/dist/), adjust the commands accordingly.

  1. Delete old map data:
    cd ~/server && rm -rf data/ && mkdir -p data
  2. Extract maps:
    cd ~/client && ~/server/bin/map_extractor
  3. Extract vmaps:
    cd ~/client && mkdir -p vmaps && ~/server/bin/vmap4_extractor && ~/server/bin/vmap4_assembler Buildings vmaps

    Note: If vmap4_extractor is interrupted, delete the Buildings directory before retrying.

  4. Generate mmaps:
    cd ~/client && mkdir -p mmaps && ~/server/bin/mmaps_generator

    Note: Generating mmaps can take a long time, depending on CPU and disk speed.

  5. Install the new data into the server data directory:
    mv dbc maps vmaps mmaps Cameras ~/server/data/ && rm -rf Buildings

    Important: mv -r is not valid for mv. Use plain mv as shown above.