Skip to content

The-Alpha-Project/alpha-core

Repository files navigation

logo Alpha Core


❤️ Enjoy the Project or Want to Support?

Ko-fi


The Alpha Project - alpha-core

alpha-core is an experimental emulator written in Python for version 0.5.3 of the Friends & Family Alpha of World of Warcraft.


⚙️ Configuration

  1. In etc/config, create a copy of config.yml.dist and rename it to config.yml.
    Edit the file as needed for your setup.

  2. You need Python 3.9 or higher. Install it from python.org.

  3. Generate .map and .nav files

    • In config.yml, configure the Extractor section by setting wow_root_path.
    • Run:
      python main.py -e
      This extracts .map and .nav files.
    • After extraction, enable use_map_tiles and use_nav_tiles in the config.
  4. If Python isn't on your PATH (common with Docker or fresh installs), use:

    py main.py -e

Note

If you're not using Docker, ensure that Database => Connection in config.yml matches your MariaDB credentials.
By default:

username: alphapython
password: alphapython
host: 127.0.0.1
  1. In etc/databases, run create_databases.sql with a root (or equivalent) user. This creates:
    • User: alphapython
    • Databases: alpha_realm, alpha_world, alpha_dbc

Note

If you're using Docker and want to use the alphapython user, you may need to change 'alphapython'@'localhost' to 'alphapython'@'IPv4OfYourDockerContainer' in create_databases.sql if you encounter permission errors.

  1. Each folder (dbc, realm, world) in etc/databases contains:
    • Base SQL files
    • Updates in the /updates subfolder
      Example: dbc/updates should be applied to the alpha_dbc database.

📦 Installation

Traditional Setup

  • Install MariaDB.
  • Install project requirements:
    pip3 install -r requirements.txt

Note

Make sure you're inside the project folder before running commands. Example:
/home/user/GitHub/alpha-core


Docker Setup

  • Minimum requirements:

    • Docker 19.03+
    • docker-compose 1.28+ (install with pip3 install docker-compose if needed)
  • Start the containers:

    docker-compose up -d

Development in Docker

  • The project is mounted at /var/wow inside the main container.
  • Access the container:
    docker-compose exec main bash
  • View logs:
    docker-compose logs -f main
  • Enable developer mode (hot reload, auto-restart on changes):
    docker-compose --profile dev up
  • Manually restart the server:
    docker-compose restart main
  • phpMyAdmin is available at: http://localhost:8080.

Rebuild the Database

To wipe and rebuild from scratch (removes custom data, including accounts):

docker-compose up --renew-anon-volumes sql

🖥 Client Setup

  1. Create realmlist.wtf in the same folder as WoW.exe:

    SET realmlist "127.0.0.1"
    
  2. (Optional) Clear the cache by adding the following before the start command in your batch file:

    Rmdir /S "WDB"
    
  3. In-game, you may need to click Change Realm to log into your server.

  4. On your first login, it is recommended to run:

    pwdchange
    

    Follow the on-screen instructions. If you run more than one realm, keep in mind that the username and password are per realm—there is no shared auth server currently.

Auth Options

Legacy

  • Create wow.ses. The first and second lines must contain your username and password:
    username
    password
    
  • To launch an unmodified client, start WoWClient.exe with the -uptodate parameter (and it's highly recommended to use -windowed). Example batch file:
    start WoWClient.exe -uptodate -windowed

SRP6

  • Login Server — requires a login.txt file at the WoW root pointing to the login server, e.g.:
    127.0.0.1:3724
    
  • WoW.exe should be executed with elevated admin rights so it can read/write wow.ses.
  • Update Server (Optional) — requires an Update.txt file at WoW/Data pointing to the update server, e.g.:
    127.0.0.1:9081
    

⚠️ Common Issues

  • Port already in use (MariaDB / Docker):

    Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.
    

    Make sure port 3306 is not being used by another MariaDB, MySQL, or similar service.

  • Invalid realm list
    If you've set the correct information in config.yml but still get this error, the server likely hasn't fully started yet.
    Look for a message similar to:

    2025-08-01 01:11:25 [INFO] [01/08/2025 01:11:25] Alpha Core is now running.
    

    When you see this, it is ready to accept logins.

Important

Due to the age and experimental nature of the 0.5.3 client build, you may experience stability and performance issues. These are client-related and not caused by the core server implementation.


Disclaimer

The Alpha Project does not distribute a client. You will need to obtain a clean 0.5.3 client yourself.

The Alpha Project Team and Owners do not sponsor or support unofficial public servers. If you use these projects to run an unofficial public server rather than for testing and learning, it is your personal choice.


License

The Alpha Project – alpha-core source components are released under the GPL-3.0 license.

alpha-core is not an official Blizzard Entertainment product and is not affiliated with or endorsed by World of Warcraft or Blizzard Entertainment.

About

0.5.3 experimental emulator written in Python.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Languages