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.
| 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.
- 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.confdirectly - AzerothCore Single Player includes a Modules section with buttons for each module config file
- CMaNGOS launchers include an Anti-Cheat Config button to open
- 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.txtwith fully customizable colors; CMaNGOS launchers ship with expansion-specific accent colors (Gold for Vanilla, Green for TBC, Blue for WotLK)
| 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.
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
-
Run the launcher — double-click
Launcher.batin the server root. If Windows asks for permission, click Run anyway (the script is not signed). -
Start your servers — from the Dashboard, click Launch Servers to start Database → Auth → World in sequence. Or use Server Manager to start them individually.
-
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.
-
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.
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.
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 buttonIf a path does not exist the corresponding button is simply disabled — the launcher will not crash.
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 = AzerothCoreThe 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 fromMySQL.txt.
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: wotlkrealmdThe server name displayed at the top of the left navigation sidebar.
AzerothCore
The text shown in the title bar of the launcher window.
WoW Server Launcher
A small version string shown at the bottom of the sidebar.
WoW Server Launcher vX.X
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.
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
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>\asauth.sqlandcharacters.sql.
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.
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
namecolumn of therealmlisttable. - External Address — the public IP address (or hostname) players use to connect. Written to the
addresscolumn of therealmlisttable. On TrinityCore (bnetserver variant), SPP-LegionV2, and DestinyCore, also updates theLoginREST.ExternalAddressline inbnetserver.confautomatically.
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.
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.)
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.
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 = 0EColor 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.
PowerShell execution policy may be blocking the script. Open PowerShell as Administrator and run:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSignedThen try running Launcher.bat again.
A syntax error was introduced in Launcher.ps1 (usually by a manual edit). Restore the file from a backup or re-download the launcher.
- Check that the paths in
Directories.txtare correct and the files actually exist. - Make sure MySQL is running before starting Auth or World — the launcher's Launch Servers button handles this automatically.
- Check
Logs\for server-side errors.
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.
- 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.
- Confirm MySQL is running and the credentials in
connection_auth.cnfare correct. - Check that the
databasefield inconnection_auth.cnfmatches your auth database name:auth— AzerothCore, TrinityCore, TrinityCore-WotLK, SPP-LegionV2, DestinyCoreclassicrealmd— CMaNGOS-Vanillatbcrealmd— CMaNGOS-TBCwotlkrealmd— CMaNGOS-WotLK
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.
| 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 regeneratesphp_overrides.inifor the current install path automatically.
DestinyCore
account_accessnote: 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.
