wow-midnight-server

WoW Midnight Server

WoW Midnight Server — TrinityCore 12.0.7 (build 68974)

A documented, community-maintained World of Warcraft: Midnight private server built on TrinityCore master, on the retail 12.0.7 line — plus a set of original server-side fixes that make the newest content actually playable.

On build numbers: everything here is written against build 12.0.7.68974, which was the live retail build on 2026-07-05. Retail moves every few weeks and nothing can install an older build, so a client downloaded today will be newer. Point the server at whatever build you can actually get — see CLIENT.md.

🌐 Language: English · Русский

⚠️ Read first: this repo contains documentation + our original fixes only. It does not include the game client, game data, or a world database — those are Blizzard’s property and cannot be redistributed. You build those yourself from your own retail client. See DISCLAIMER.md.


What makes this project different

Most public WoW private servers run old expansions (Wrath 3.3.5a, Cata, MoP…). This one targets current retail — patch 12.0.7 “Midnight” and is kept honest and playable:

  This project Typical private server
Client build 12.0.7 (Midnight) — the current retail line 3.3.5a / 4.3.4 / 5.4.8
Races All 26 incl. allied races unlocked, Dracthyr Evoker intro working Classic races only
Content span Vanilla → Midnight in one DB, 517 maps populated Single-expansion
Companion bots Creature bots (.bot) + fake-player bots (.pbot) Usually none / 3rd-party only
Data policy Maximized to the public-data ceiling, gaps documented honestly Often silently broken
Fixes Curated, reversible, ID-band-safe community fixes (this repo) Ad-hoc

Highlights


Content at a glance (verified DB counts)

Metric Count
Quests 48,257
Quest objectives 61,101
Quest starters / enders (NPC) 27,695 / 34,525
Creature templates / spawns 227,684 / 730,180
GameObject templates / spawns 89,967 / 197,732
Maps with spawns 517
Loot table rows 3,084,867
Vendor rows 172,414
Retail build 12.0.7.68974

Content statistics

Architecture

Architecture

In-game screenshots

These are placeholders — drop your own real gameplay screenshots into assets/screenshots/ and they’ll show up here. (We ship no Blizzard game imagery; see DISCLAIMER.)

No screenshots yet — contributions welcome.

Two ways to install

  Path Guide
🛠 Manual Build & run on the host directly this branch — docs/en/SETUP.md
🐳 Docker Compose Everything in containers, fixes auto-applied docker branch

Both lead to the same server. Either way you supply your own client-extracted data and world DB (Blizzard’s property — see DISCLAIMER).

Quick start (manual)

  1. Get the client — you download it from Blizzard yourself, free. Note that you always get whatever build is live right now; nothing can install an older one, so check before downloading 100 GB. → docs/en/CLIENT.md
  2. Build the core — TrinityCore master. → docs/en/SETUP.md
  3. Extract game data from your own retail client (maps/vmaps/mmaps/dbc).
  4. Import the world DB and run worldserver + bnetserver.
  5. Apply the community fixes in sql/. → sql/README.md
  6. Connect your client. → docs/en/CONNECT.md

Full walkthrough: docs/en/SETUP.md · Features & content: docs/en/FEATURES.md · Fix details: docs/en/FIXES.md

The short way (two scripts)

# on YOUR PC - installs a retail client and points it at the server.
# Checks the build against your server's BEFORE downloading and stops if they differ.
.\scripts\setup-client.ps1 -InstallDir C:\Games\WoW -ServerIP 192.168.1.50
# on the SERVER - creates a login you can actually use, with GM rights
SOAP_USER='1#1' SOAP_PASS='...' scripts/create-account.sh -e you@example.com -p secret -g 3

The account name is an email: a retail client logs in through Battle.net, so account create produces something you cannot log in with. See CONNECT.md.

Where do I get the client? From Blizzard, free, yourself — see CLIENT.md. Please don’t ask for or share a client download; it’s copyright infringement, third-party builds are unverifiable binaries, and the official download takes one command.


Repository layout

.
├── README.md / README.ru.md      Project overview (EN / RU)
├── DISCLAIMER.md                 Legal — what we can and cannot ship
├── LICENSE                       MIT (original materials only)
├── docs/
│   ├── en/  CLIENT · SETUP · CONNECT · FEATURES · FIXES · ANNOUNCEMENT
│   └── ru/  CLIENT · SETUP · CONNECT · FEATURES · FIXES · ANNOUNCEMENT
├── sql/                          Community fix SQL (reversible, ID-band-safe)
│   └── hotfixes/                 Applies to the hotfixes DB, not world
└── scripts/
    ├── setup-client.ps1          Install a retail client, check the build, point it at your server
    ├── create-account.sh         Create a Battle.net account (+ GM level) on a running server
    ├── apply_fixes.sh            Apply the SQL fix pack
    └── vmssh.py                  SSH helper (credentials from env vars)

Contributing

Issues and PRs welcome — especially additional reversible, ID-band-safe data fixes for the newest content. Please never commit secrets or Blizzard game assets (the .gitignore guards against both). See DISCLAIMER.md.

Credits

Built on TrinityCore (GPL-2.0). World of Warcraft® © Blizzard Entertainment. Fan, non-commercial, educational project.