Эта страница отвечает на вопрос, о который спотыкаются раньше, чем доходят до SETUP.md: откуда взять клиент?
Короткий ответ: у Blizzard, самостоятельно. Клиент World of Warcraft скачивается бесплатно — подписка нужна только чтобы играть на официальных серверах Blizzard. Этот проект клиент не поставляет, не зеркалит и не распространяет, и чужая копия вам не нужна.
Не качайте клиент с торрент-трекеров и файлообменников. Распространение клиента Blizzard — нарушение авторских прав, сторонние сборки это непроверяемые бинарники, которые вы запускаете у себя, и в этом попросту нет смысла: официальная загрузка бесплатна и делается одной командой. См. DISCLAIMER.md.
| Аккаунт Battle.net | Создаётся бесплатно. Для скачивания подписка не нужна. |
| Место на диске | ~100 ГБ под полную современную установку retail. |
| Правильный билд | Проект держится живого билда — сейчас 12.0.7.68974. Билд обязан совпадать с базой мира. |
C:\Program Files (x86)\World of Warcraft\_retail_.Оговорка: приложение всегда ставит текущий живой билд. Если retail уже ушёл дальше билда, который ждёт ваш сервер, вы получите клиент новее своей базы, и логин будет падать с несовпадением версии.
Поставить старый билд не может ничто. Ни приложение 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 делает эту проверку сам и не даёт начать загрузку,
которая приведёт к неверному билду.
Если живой билд новее серверного, есть два реальных пути:
scripts/setup-client.ps1 -SkipInstall.Этот репозиторий держится живого билда — сейчас 12.0.7.68974. Это осознанная политика: живой билд может скачать любой, поэтому новичок никогда не оказывается в тупике. Retail уйдёт дальше — тогда вариант 1.
Перевод сервера куда легче, чем кажется.
maps,vmapsиmmapsпривязаны к версии формата TrinityCore, а не к номеру игрового билда, поэтому обычно переносятся как есть: переход 68275 → 68974 не потребовал переизвлечения ни одного из них. На деле нужно пересобрать ядро, освежитьdbc, применить новые world-обновления и выставитьgamebuild. См. SETUP.md.
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 |
Починка вместо установки/обновления. |
--verbose false. Подробный вывод прогресса читает позицию
курсора и падает, когда нет интерактивной сессии рабочего стола.Ошибка агента 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 в каталог, о котором приложение не знает.
mapextractor, vmap4extractor +
vmap4assembler и mmaps_generator запускаются внутри папки клиента и дают
dbc/, maps/, vmaps/, mmaps/, cameras/. Это уезжает в каталог данных
сервера. Описано в SETUP.md.Config.wtf. Описано в CONNECT.md.Извлечённые данные принадлежат Blizzard. Они остаются на вашей машине и вашем сервере, никуда не передаются и в этом репозитории их нет.
Экстракторы TrinityCore умеют читать хранилище CASC от Blizzard онлайн, поэтому сервер можно собрать, скачав только данные, а не игру целиком. Именно так собирался эталонный сервер этого проекта. Это те же данные Blizzard, полученные у Blizzard, на тех же условиях — удобство лишь в том, что полный клиент не обязан лежать на хосте сервера.
Флаги экстракторов — в SETUP.md.
| Симптом | Причина | Решение |
|---|---|---|
| Билд на экране входа ≠ серверному | Клиент обновился или ставился «живым» | Понизить билд нельзя — переводите сервер на живой билд, либо восстановите установку старого и уберите папку из-под управления Battle.net |
| Экстракторы не находят данные | Запуск не из той папки | Запускать внутри папки клиента, рядом с WoW.exe |
| CASC качает гигантский объём | Кэш лежит рядом с данными | Кэш CASC можно удалить после извлечения, он до-качается по требованию |
| «Version mismatch» при входе | Билд клиента ≠ билду базы | Привести одно к другому — см. выше |
Когда билд совпал и данные извлечены — переходите к SETUP.md, а затем к CONNECT.md.