wow-midnight-server

Как получить игровой клиент (RU)

English

Эта страница отвечает на вопрос, о который спотыкаются раньше, чем доходят до SETUP.md: откуда взять клиент?

Короткий ответ: у Blizzard, самостоятельно. Клиент World of Warcraft скачивается бесплатно — подписка нужна только чтобы играть на официальных серверах Blizzard. Этот проект клиент не поставляет, не зеркалит и не распространяет, и чужая копия вам не нужна.

Не качайте клиент с торрент-трекеров и файлообменников. Распространение клиента Blizzard — нарушение авторских прав, сторонние сборки это непроверяемые бинарники, которые вы запускаете у себя, и в этом попросту нет смысла: официальная загрузка бесплатна и делается одной командой. См. DISCLAIMER.md.


Что понадобится

   
Аккаунт Battle.net Создаётся бесплатно. Для скачивания подписка не нужна.
Место на диске ~100 ГБ под полную современную установку retail.
Правильный билд Проект держится живого билда — сейчас 12.0.7.68974. Билд обязан совпадать с базой мира.

Вариант A — приложение Battle.net (проще всего)

  1. Установите десктопное приложение Battle.net с сайта Blizzard.
  2. Войдите и установите World of Warcraft.
  3. Запомните путь установки, например C:\Program Files (x86)\World of Warcraft\_retail_.

Оговорка: приложение всегда ставит текущий живой билд. Если retail уже ушёл дальше билда, который ждёт ваш сервер, вы получите клиент новее своей базы, и логин будет падать с несовпадением версии.


Прочитайте это до того, как качать 100 ГБ

Поставить старый билд не может ничто. Ни приложение Battle.net, ни Battle.Net-Installer ниже: он управляет агентом Blizzard, а агент забирает только то, что живо прямо сейчас. Аргумента для id билда или хеша buildconfig нет, и произвольные прошлые билды Blizzard не отдаёт.

Проверьте, что сейчас живо, до загрузки:

(Invoke-WebRequest 'http://us.patch.battle.net:1119/wow/versions' -UseBasicParsing).Content

Колонка VersionsName в строке us — это тот билд, который вы получите. scripts/setup-client.ps1 делает эту проверку сам и не даёт начать загрузку, которая приведёт к неверному билду.

Если живой билд новее серверного, есть два реальных пути:

  1. Перевести сервер на живой билд. Обновить TrinityCore, освежить игровые данные и выставить gamebuild реалма. Это устойчивое решение: retail двигается раз в несколько недель, и сервер, прибитый к билду, который уже никто не может скачать, — тупик для новых игроков.
  2. Сохранить существующую установку старого билда и запретить приложению Battle.net её обновлять. Направить её на сервер через scripts/setup-client.ps1 -SkipInstall.

Этот репозиторий держится живого билда — сейчас 12.0.7.68974. Это осознанная политика: живой билд может скачать любой, поэтому новичок никогда не оказывается в тупике. Retail уйдёт дальше — тогда вариант 1.

Перевод сервера куда легче, чем кажется. maps, vmaps и mmaps привязаны к версии формата TrinityCore, а не к номеру игрового билда, поэтому обычно переносятся как есть: переход 68275 → 68974 не потребовал переизвлечения ни одного из них. На деле нужно пересобрать ядро, освежить dbc, применить новые world-обновления и выставить gamebuild. См. SETUP.md.


Вариант B — Battle.Net-Installer (выбор продукта, локали и каталога)

Battle.Net-Installer управляет собственным агентом Battle.net, чтобы установить, обновить или починить продукт в выбранный вами каталог. Это не обходной загрузчик: он использует агент и CDN самой Blizzard — поэтому и требует установленное приложение Battle.net с недавним входом в аккаунт.

Требования: Windows, .NET 8.0, установленный и авторизованный Battle.net. Ставятся только продукты, помеченные в базе TACT как Active.

BNetInstaller.exe --prod wow --lang ruRU --dir "C:\Games\WoW_Midnight" --uid wow --verbose false
Флаг Значение
--prod Код продукта TACT. wow — это retail; точный код виден в поле Product файла .build.info любой существующей установки.
--lang Язык ассетов, например enUS, ruRU. Доступность зависит от продукта.
--dir Каталог установки.
--uid Agent UID, если отличается от кода продукта.
--repair Починка вместо установки/обновления.

Три вещи, которые съедят вам вечер

  1. Сначала закройте приложение Battle.net. Оно конкурирует с агентом за ту же установку.
  2. Передавайте --verbose false. Подробный вывод прогресса читает позицию курсора и падает, когда нет интерактивной сессии рабочего стола.
  3. Ошибка агента 2310 — на 2026-08-08 инструмент не работает вообще. Проверено на машине, где в июле он работал: апстримный релиз v2.1 падает с Agent Error: 2310, и свежая сборка форка, чей пул-реквест #27 («Nice try Blizzard») чинил 2310 в феврале 2026, падает ровно так же. Оба — при запущенном и авторизованном агенте, с --uid и без, на любой локали, в пустой каталог.

    Blizzard, судя по всему, снова ужесточила проверку на стороне агента. Февральская правка выставляла MonitorPid в реальный id процесса и добавляла корректные JSON-заголовки — этого больше недостаточно. Пока инструмент не обновят, используйте вариант A: приложение Battle.net ставит WoW в выбранный вами каталог и этой проблемой не затронуто.

    (В более ранней версии этой страницы причиной назывался отсутствующий User-Agent phoenix-agent/1.0. Это неверно — апстрим всегда его отправлял.)

Если клиент нужен только чтобы извлечь данные для сервера, а не играть, этот шаг можно пропустить целиком: экстракторы TrinityCore читают хранилище CASC от Blizzard онлайн. См. Извлечение без полной установки.


Как выглядит правильная установка

Проверено на рабочей ретейл-установке (~131 ГБ):

WoW_Midnight\
├── .build.info                     <- продукт и точная версия лежат здесь
├── .product.db
├── Data\                           <- хранилище CASC (config, data, indices, …)
├── _retail_\
│   ├── Wow.exe                     <- сам исполняемый файл игры
│   └── WTF\Config.wtf              <- единственный файл, который вы правите
├── Arctium Game Launcher.exe       <- в КОРНЕ, а не внутри _retail_
└── World of Warcraft Launcher.exe

Две детали, на которых спотыкаются: Arctium лежит в корне установки, рядом с _retail_, а не рядом с Wow.exe. И правите вы _retail_\WTF\Config.wtf, а не какой-то Config.wtf в корне.

Проверьте билд

От этого зависит всё дальнейшее. Самая быстрая и надёжная проверка — .build.info в корне установки. Это текстовый файл с разделителем |, и поле Version содержит точный билд:

Get-Content .build.info | Select-String "12\.0\.7"

Нужен билд вашего сервера — здесь 12.0.7.68974. Поле Product в том же файле должно быть wow (retail) — именно этот код продукта передаётся в --prod.

Билд также виден на экране входа в нижнем углу и в свойствах Wow.exeПодробно.

Если билд не совпадает с базой мира, логин будет падать каждый раз с ошибкой версии. Обходного пути нет — только привести одно к другому.

Запретите автообновление

Если ставили через приложение Battle.net, оно с удовольствием обновит клиент и сломает совпадение. Либо держите отдельную копию папки клиента, которой приложение не управляет, либо ставьте вариантом B в каталог, о котором приложение не знает.


Что происходит с клиентом дальше

  1. Извлечь игровые данныеmapextractor, vmap4extractor + vmap4assembler и mmaps_generator запускаются внутри папки клиента и дают dbc/, maps/, vmaps/, mmaps/, cameras/. Это уезжает в каталог данных сервера. Описано в SETUP.md.
  2. Направить клиент на ваш сервер — лаунчер Arctium плюс одна строка в Config.wtf. Описано в CONNECT.md.

Извлечённые данные принадлежат Blizzard. Они остаются на вашей машине и вашем сервере, никуда не передаются и в этом репозитории их нет.


Извлечение без полной установки

Экстракторы TrinityCore умеют читать хранилище CASC от Blizzard онлайн, поэтому сервер можно собрать, скачав только данные, а не игру целиком. Именно так собирался эталонный сервер этого проекта. Это те же данные Blizzard, полученные у Blizzard, на тех же условиях — удобство лишь в том, что полный клиент не обязан лежать на хосте сервера.

Флаги экстракторов — в SETUP.md.


Если что-то не так

Симптом Причина Решение
Билд на экране входа ≠ серверному Клиент обновился или ставился «живым» Понизить билд нельзя — переводите сервер на живой билд, либо восстановите установку старого и уберите папку из-под управления Battle.net
Экстракторы не находят данные Запуск не из той папки Запускать внутри папки клиента, рядом с WoW.exe
CASC качает гигантский объём Кэш лежит рядом с данными Кэш CASC можно удалить после извлечения, он до-качается по требованию
«Version mismatch» при входе Билд клиента ≠ билду базы Привести одно к другому — см. выше

Когда билд совпал и данные извлечены — переходите к SETUP.md, а затем к CONNECT.md.