Skip to content

SirFerMoX/WoW-Server-Launcher

Repository files navigation

WoW Server Launcher

A graphical desktop launcher for self-hosted World of Warcraft servers built on PowerShell + WPF. Manage all your server processes, databases, accounts, and backups from a single polished interface — no command line required.

PowerShell 5.1 Platform License


Supported Server Cores

Launcher Core Auth Process World Process
AzerothCore AzerothCore authserver.exe worldserver.exe
AzerothCore Single Player ASP (AzerothCore repack) authserver.exe worldserver.exe
TrinityCore TrinityCore (BNet) bnetserver.exe worldserver.exe
TrinityCore-WotLK TrinityCore (Auth) authserver.exe worldserver.exe
SPP-LegionV2 Single Player Project bnetserver.exe worldserver.exe
DestinyCore DestinyCore (Legion) bnetserver.exe worldserver.exe
CMaNGOS-Vanilla CMaNGOS (Classic) realmd.exe mangosd.exe
CMaNGOS-TBC CMaNGOS (The Burning Crusade) realmd.exe mangosd.exe
CMaNGOS-WotLK CMaNGOS (Wrath of the Lich King) realmd.exe mangosd.exe

Each core has its own launcher folder. The interface is identical across all versions — only the underlying process names, config file paths, and database schemas differ.


Features

  • Dashboard — real-time status indicators, one-click server launch/stop, embedded server consoles
  • Server Manager — individual control over each server process (Database, Auth, World, Website)
  • Saves Manager — full database backup and restore with named slots
  • Account Manager — create, edit, change password, and delete player accounts directly from the UI (not available on SPP-LegionV2, which delegates to external tools)
  • Settings — realm name editor, MySQL connection display, config file shortcuts, and tools
    • CMaNGOS launchers include an Anti-Cheat Config button to open anticheat.conf directly
    • AzerothCore Single Player includes a Modules section with buttons for each module config file
  • Maintenance — install prerequisites, create desktop shortcuts, check for updates
    • AzerothCore Single Player includes a Check Repack Updates button linking to the ASP GitHub releases
  • Per-launcher theming — each launcher has its own Theme.txt with fully customizable colors; CMaNGOS launchers ship with expansion-specific accent colors (Gold for Vanilla, Green for TBC, Blue for WotLK)

Preview

Launcher


Requirements

Requirement Notes
Windows 10 / 11 64-bit recommended
PowerShell 5.1 Included with Windows — no installation needed
.NET Framework 4.x Included with Windows — required for WPF
WoW Server A pre-compiled server with MySQL, server binaries, and database already set up

The launcher does not set up a WoW server from scratch. It is a management tool for an already working pre-compiled server.


Folder Structure

The launcher expects this layout inside your server root folder:

[Server Root]/
├── Launcher.bat                    ← Double-click to start the launcher
├── Database/
│   ├── MySQL_Server.bat            ← MySQL startup script
│   └── bin/
│       └── mysql.exe               ← MySQL client (used internally)
├── Servers/
│   ├── authserver.exe              ← Auth server binary  (AzerothCore / TrinityCore-WotLK)
│   ├── worldserver.exe             ← World server binary (AzerothCore / TrinityCore / DestinyCore)
│   ├── bnetserver.exe              ← BNet server binary  (TrinityCore / SPP-LegionV2 / DestinyCore)
│   ├── realmd.exe                  ← Auth server binary  (CMaNGOS)
│   ├── mangosd.exe                 ← World server binary (CMaNGOS)
│   ├── anticheat.conf              ← Anti-cheat config   (CMaNGOS only)
│   └── configs/  (or Servers/ root)
│       ├── authserver.conf
│       ├── worldserver.conf
│       ├── bnetserver.conf
│       ├── realmd.conf
│       └── mangosd.conf
├── Website/
│   └── Apache/
│       └── Apache_Server.bat       ← Web server startup script (optional)
├── Saves/                          ← Database backup slots (auto-created)
├── Logs/                           ← Server log files
└── Tools/
    ├── HeidiSQL/
    │   └── heidisql.exe            ← Database management tool (optional)
    ├── Notepad/
    │   └── notepad++.exe           ← Text editor for config files (optional)
    ├── Redist/
    │   └── Install_VC_AiO.bat      ← Installs all Visual C++ Redistributable packages
    └── Launcher/
        ├── Icons/                  ← .ico files for the launcher window
        ├── Connections/
        │   ├── connection.cnf            ← MySQL credentials (used by HeidiSQL shortcut)
        │   ├── connection_auth.cnf       ← MySQL credentials for auth DB queries
        │   └── connection_characters.cnf ← MySQL credentials for characters DB queries
        └── Scripts/
            ├── Launcher.ps1        ← Main launcher script
            ├── Directories.txt     ← Server executable paths
            ├── MySQL.txt           ← MySQL connection settings (Settings display + HeidiSQL)
            ├── Theme.txt           ← Color theme — edit to customize the interface
            ├── Name.txt            ← Server name shown in the sidebar
            ├── AppName.txt         ← Window title bar text
            ├── Version.txt         ← Version string shown in the sidebar
            └── Updates.txt         ← URL for the "Check for Updates" button

Quick Start

  1. Run the launcher — double-click Launcher.bat in the server root. If Windows asks for permission, click Run anyway (the script is not signed).

  2. Start your servers — from the Dashboard, click Launch Servers to start Database → Auth → World in sequence. Or use Server Manager to start them individually.

  3. Wait for the consoles — the embedded server windows appear inside the Dashboard once each process opens its main window. This can take 30 seconds to several minutes for the World server on first boot.

  4. Check the status dots — green means running, red means stopped. The realm name appears below the Dashboard title when the database is online.

Tip: Start everything in order — Database first, then Auth, then World. The launcher's Launch Servers button does this automatically, polling the database until it is ready before starting the next process.


Configuration Files

All configuration is done by editing plain text files inside Tools\Launcher\Scripts\. You can edit them manually with any text editor, or use the shortcuts in the Settings and Maintenance sections.

Directories.txt — Server Paths

Defines where each executable is located. Paths can be relative to the server root or absolute.

The key names for the auth server and its config file differ per launcher variant:

Launcher Auth key Auth config key
AzerothCore Auth AuthConf
TrinityCore Bnet BnetConf
TrinityCore-WotLK Auth AuthConf
SPP-LegionV2 Bnet BnetConf
DestinyCore Bnet BnetConf
CMaNGOS-Vanilla Auth AuthConf
CMaNGOS-TBC Auth AuthConf
CMaNGOS-WotLK Auth AuthConf
MySQL         = Database\MySQL_Server.bat
Auth          = Servers\authserver.exe        # or Bnet = Servers\bnetserver.exe
World         = Servers\worldserver.exe       # or mangosd.exe for CMaNGOS
Website       = Website\Apache\Apache_Server.bat
HeidiSQL      = Tools\HeidiSQL\heidisql.exe
Notepad       = Tools\Notepad\notepad++.exe
ConfigFolder  = Servers\configs               # folder opened by "Folder" button in Settings
LogsFolder    = Logs                          # folder opened by "Server Logs" button
AuthConf      = Servers\configs\authserver.conf   # or BnetConf / realmd.conf
WorldConf     = Servers\configs\worldserver.conf  # or mangosd.conf
AntiCheatConf = Servers\anticheat.conf        # CMaNGOS only — Anti-Cheat Config button

If a path does not exist the corresponding button is simply disabled — the launcher will not crash.

MySQL.txt — Database Connection

Used to display connection info in the Settings page and to pre-fill the HeidiSQL shortcut.

Host        = 127.0.0.1
Port        = 3306
User        = root
Password    = 123456
Description = AzerothCore

The launcher connects to MySQL for internal queries (account management, realm name, saves) using the credentials stored in Tools\Launcher\Connections\connection_auth.cnf. That file is a standard MySQL options file ([client] section) and is separate from MySQL.txt.

connection_auth.cnf — MySQL Client Credentials

Located in Tools\Launcher\Connections\. Used internally for all auth database queries.

[client]
user     = root
password = 123456
host     = 127.0.0.1
port     = 3306
database = auth          # AzerothCore / TrinityCore / TrinityCore-WotLK / SPP-LegionV2 / DestinyCore
                         # CMaNGOS-Vanilla:  classicrealmd
                         # CMaNGOS-TBC:      tbcrealmd
                         # CMaNGOS-WotLK:    wotlkrealmd

Name.txt — Sidebar Title

The server name displayed at the top of the left navigation sidebar.

AzerothCore

AppName.txt — Window Title

The text shown in the title bar of the launcher window.

WoW Server Launcher

Version.txt — Version Label

A small version string shown at the bottom of the sidebar.

WoW Server Launcher vX.X

Sections In Detail

Dashboard

The main page. Shows at a glance whether each server is running and allows launching or stopping all servers at once.

  • Status pills — colored dots (green = running, red = stopped) for Database, Auth, World, and Website
  • Launch Servers — starts Database → Auth → World (and optionally Website) in sequence, waiting for the database to be ready before proceeding
  • Shut Down All — gracefully stops all servers
  • Embedded consoles — the server terminal windows are embedded directly inside the Dashboard. You can type commands into the World console from within the launcher

The realm name appears as a subtitle below "Dashboard" once MySQL is online.


Server Manager

Gives you individual control over each server process.

  • Start / Stop / Restart buttons per server (Database, Auth, World, Website)
  • Start All / Stop All bulk actions
  • Each row shows the process name and current status

Saves Manager

Back up and restore your entire server database with a single click.

  • 10 save slots — each slot stores a full dump of both the auth and characters databases
  • Save — exports both databases to the selected slot (existing save is overwritten)
  • Load — imports both databases from the selected slot (server must be stopped first)
  • Delete — removes the save files for a slot
  • Each slot shows its name and the date/time it was created

Saves are stored in [Server Root]\Saves\<slot number>\ as auth.sql and characters.sql.


Account Manager

Manage player accounts without touching the database directly. (Not available on SPP-LegionV2.)

Action What it does
New Account Creates an account with a username, password, email, and GM level
Change Password Updates the stored password hash so the new password works immediately
Edit Account Changes username, email, or GM level
Delete Account Removes the account and all associated data (characters, bans, etc.)

GM Levels:

Level Name Description
0 Player Normal player — no special permissions
1 Moderator Can use basic in-game moderation commands
2 Game Master Full GM toolkit
3 Administrator Server administrator access

Password hashing varies by core. TrinityCore and SPP-LegionV2 use SRP6v2 with a salt and verifier. AzerothCore and TrinityCore-WotLK use GruntSRP6 (little-endian). CMaNGOS uses GruntSRP6 (big-endian). DestinyCore uses a legacy scheme: SHA1 for the game account and SHA256 (reversed byte order) for the BNet account. In all cases the launcher computes the correct hash — you never store a plain-text password.


Settings

MySQL Connection — shows the connection parameters from MySQL.txt (read-only display).

Realm Settings — edit and apply two values that control how players connect to your server:

  • Realm Name — the name shown in the in-game server list and on the Dashboard. Written to the name column of the realmlist table.
  • External Address — the public IP address (or hostname) players use to connect. Written to the address column of the realmlist table. On TrinityCore (bnetserver variant), SPP-LegionV2, and DestinyCore, also updates the LoginREST.ExternalAddress line in bnetserver.conf automatically.

Both fields sit side by side — edit one or both and click Apply on each independently.

Configuration Files — quick buttons to open config files directly in Notepad++:

Button File opened
Auth Config authserver.conf / bnetserver.conf / realmd.conf
World Config worldserver.conf / mangosd.conf
Anti-Cheat Config anticheat.conf (CMaNGOS only)
Folder Config folder in Explorer

Tools — shortcut buttons for HeidiSQL (database browser) and the server logs folder.


Maintenance

Install Visual C++ Redistributable — runs the official Microsoft VC++ Redist installer (x86 + x64). Required if the server binaries show DLL errors on first launch.

Create Desktop Shortcut — creates a shortcut to Launcher.bat on your Desktop, using the launcher's icon.

Check Launcher Updates — opens the URL defined in Updates.txt in your browser.

Check Repack Updates — opens the repack's GitHub releases page. (AzerothCore Single Player only.)


Theme System

Every launcher has a Theme.txt file in Tools\Launcher\Scripts\ that controls all interface colors. Edit it with any text editor — changes take effect after restarting the launcher.

The CMaNGOS launchers ship with expansion-specific default accent colors:

Launcher Accent color Console
CMaNGOS-Vanilla Gold (#C8960C / #FFD100) 0E — Yellow text
CMaNGOS-TBC Green (#3D9E45 / #56E05F) 0A — Light green text
CMaNGOS-WotLK Blue (#2B78C2 / #58B4F0) 03 — Dark cyan text

All other launchers (AzerothCore, TrinityCore, TrinityCore-WotLK, SPP-LegionV2, DestinyCore) use a neutral dark theme and can be customized freely.

Customizing the Theme

Open Tools\Launcher\Scripts\Theme.txt with any text editor and adjust the values. All keys are optional — omitted keys fall back to the script defaults.

# Background colors
BgWindow   = #313338    # Main window background
BgSidebar  = #1E1F22    # Left sidebar background
BgCard     = #2B2D31    # Card / panel background
BgHover    = #35373C    # Navigation button hover
BgSelected = #404249    # Selected list items / text box background
BgConsole  = #111214    # Embedded console background

# Borders
BorderAccent = #4E5058  # Borders, dividers, secondary button background

# Text
TextPrimary   = #F2F3F5  # Titles, labels, config values
TextSecondary = #B5BAC1  # Nav labels, table headers
TextMuted     = #949BA4  # Subtitles, descriptions

# Accent colors
AccentGreen    = #C8960C   # Primary button background (Start, Launch, Save, Apply)
AccentGreenAlt = #A07808   # Button hover and confirm dialog button
AccentBlue     = #FFD100   # Text accent (app name, selected nav item, cursor)

# Status
StatusStopped = #F23F43    # Stopped status dots, labels, and stop/delete buttons

# Overlay (shown while server actions are in progress)
OverlayDim = #99000000     # Outer dim layer  (AA = opacity: 00=invisible, FF=opaque)
OverlayBg  = #CC313338     # Central card background

# Console color (CMD format: two hex digits XY — X=background Y=foreground)
ConsoleColor = 0E

Color format:

  • #RRGGBB — solid color (e.g. #FFD100)
  • #AARRGGBB — with transparency (AA: 00 = invisible, FF = opaque)

Console color codes:

0=Black     1=DarkBlue     2=DarkGreen   3=DarkCyan
4=DarkRed   5=DarkMagenta  6=DarkYellow  7=Gray
8=DarkGray  9=Blue         A=LightGreen  B=LightCyan
C=LightRed  D=Magenta      E=Yellow      F=White

Example: ConsoleColor = 0A → black background + light green text.


Troubleshooting

The launcher opens and immediately closes

PowerShell execution policy may be blocking the script. Open PowerShell as Administrator and run:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

Then try running Launcher.bat again.


"XAML Error" dialog on startup

A syntax error was introduced in Launcher.ps1 (usually by a manual edit). Restore the file from a backup or re-download the launcher.


Status dots are all red / servers won't start

  1. Check that the paths in Directories.txt are correct and the files actually exist.
  2. Make sure MySQL is running before starting Auth or World — the launcher's Launch Servers button handles this automatically.
  3. Check Logs\ for server-side errors.

The realm name doesn't appear on the Dashboard

The Dashboard subtitle only shows the realm name when MySQL is online. If it still doesn't appear after MySQL starts, verify that connection_auth.cnf has the correct credentials and that the realmlist table exists and contains at least one row.


The embedded console is blank or mispositioned

  • Resize the launcher window slightly — the console repositions itself on every layout update.
  • Make sure the server process has fully opened its main window. Very large world servers can take several minutes before the console window appears.

Account creation fails silently

  • Confirm MySQL is running and the credentials in connection_auth.cnf are correct.
  • Check that the database field in connection_auth.cnf matches your auth database name:
    • auth — AzerothCore, TrinityCore, TrinityCore-WotLK, SPP-LegionV2, DestinyCore
    • classicrealmd — CMaNGOS-Vanilla
    • tbcrealmd — CMaNGOS-TBC
    • wotlkrealmd — CMaNGOS-WotLK

HeidiSQL or Notepad++ buttons do nothing

The paths in Directories.txt for HeidiSQL and Notepad do not exist. Update them to point to your actual installation paths, or install the tools in the expected Tools\ subfolder.


Differences Between Versions

Feature AzerothCore AzerothCore Single Player TrinityCore TrinityCore-WotLK SPP-LegionV2 DestinyCore CMaNGOS-Vanilla CMaNGOS-TBC CMaNGOS-WotLK
Auth process authserver.exe authserver.exe bnetserver.exe authserver.exe bnetserver.exe bnetserver.exe realmd.exe realmd.exe realmd.exe
World process worldserver.exe worldserver.exe worldserver.exe worldserver.exe worldserver.exe worldserver.exe mangosd.exe mangosd.exe mangosd.exe
Directories auth key Auth Auth Bnet Auth Bnet Bnet Auth Auth Auth
Auth database auth acore_auth auth auth auth auth classicrealmd tbcrealmd wotlkrealmd
Characters database characters acore_characters characters characters characters characters classiccharacters tbccharacters wotlkcharacters
Config folder Servers\configs\ Server\configs\ Servers\ Servers\ Servers\ Servers\ Servers\ Servers\ Servers\
Account Manager — (external)
Password format GruntSRP6 (LE) GruntSRP6 (LE) GruntSRP6 + BnetSRP6v2 GruntSRP6 (LE) GruntSRP6 + BnetSRP6v2 SHA1 + SHA256 (reversed) GruntSRP6 (BE) GruntSRP6 (BE) GruntSRP6 (BE)
battlenet_accounts table
account_access table ✔ (legacy columns)
gmlevel on account
External Address — DB
External Address — conf bnetserver.conf bnetserver.conf bnetserver.conf
Modules section
Integrated website Apache + Node.js
Anti-Cheat Config button
Updater button
Check Repack Updates
Theme accent Red Blue Blue Blue Green Green Gold Green Blue

AzerothCore Single Player note: Uses the acore_ database prefix (acore_auth, acore_characters, acore_world). The integrated website (Apache + Node.js Armory) is auto-configured on first launch — the launcher patches Apache conf files and regenerates php_overrides.ini for the current install path automatically.

DestinyCore account_access note: This core uses legacy column names (id, gmlevel, RealmID) instead of the newer TrinityCore schema (AccountID, SecurityLevel, RealmID). The launcher handles this automatically.


Built with PowerShell 5.1 + WPF (.NET Framework). No external dependencies required beyond a standard Windows installation.

About

Launcher for WoW servers (AzerothCore-TrinityCore-CMaNGOS)

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors