Направляем ретейл-клиент 12.0.7.68974 на твой сервер. Страница намеренно конкретная: отдельно что меняешь на сервере и отдельно что меняешь в клиенте.
Игровые данные ты не трогаешь. Только:
Arctium Game Launcher.exe в корень установки (рядом с _retail_)._retail_\WTF\Config.wtf: SET portal "IP_СЕРВЕРА".Всё остальное — на стороне сервера.
В bnetserver.conf:
; Адрес, до которого достучится КЛИЕНТ (публичный или LAN IP сервера)
LoginREST.ExternalAddress = IP_СЕРВЕРА
LoginREST.LocalAddress = IP_СЕРВЕРА
LoginREST.Port = 8081
В базе auth реалм, который видит клиент, берётся из таблицы realmlist
(никакого realmlist.wtf):
UPDATE realmlist
SET address = 'IP_СЕРВЕРА', localAddress = 'IP_СЕРВЕРА', port = 8085
WHERE id = 1;
Открой клиенту порты: 8081 (REST-логин), 1119 (bnet), 8085 (мир).
Создай аккаунт (консоль worldserver). Это должен быть Battle.net-аккаунт, а имя — адрес почты: retail-клиент входит через Battle.net.
bnetaccount create you@example.com yourpassword
Команда печатает созданный привязанный игровой аккаунт с именем вида <id>#1.
Права GM выдаются на него, а не на почту:
bnetaccount listgameaccounts you@example.com
account set gmlevel 1#1 3 -1
Не используй здесь
account create. Она создаёт обычный игровой аккаунт без привязки к Battle.net, и клиент таким войти не может. TrinityCore говорит об этом прямо:account createотказывается от любого имени с@и отправляет к bnet-командам, аbnetaccount createнаоборот его требует.
Либо пусть всё сделает скрипт, включая уровень GM:
SOAP_USER='1#1' SOAP_PASS='...' scripts/create-account.sh -e you@example.com -p yourpassword -g 3
Билд клиента обязан совпадать с билдом базы мира сервера. Несовпадение =
отказ на логине каждый раз. Как получить клиент и что делать, когда живой билд
больше не совпадает с серверным — в CLIENT.md, либо запусти
scripts/setup-client.ps1: он сверяет билд до загрузки и прописывает портал.
Скопируй Arctium Game Launcher.exe в корень установки — рядом с
_retail_, Data и .build.info, а не внутрь _retail_ рядом с Wow.exe.
Это самая частая ошибка при настройке.
WoW_Midnight\
├── Data\
├── _retail_\Wow.exe
└── Arctium Game Launcher.exe <- сюда
Arctium патчит запущенный клиент в памяти, чтобы он:
Ни один файл игры не меняется навсегда.
Открой _retail_\WTF\Config.wtf (обрати внимание на _retail_ — в корне
установки Config.wtf нет) и добавь, либо поправь, если строка уже есть:
SET portal "IP_СЕРВЕРА"
Опционально — форс локали / пропуск проверки апдейта лаунчера:
SET textLocale "ruRU"
SET audioLocale "ruRU"
portal— единственная обязательная правка клиента. Она говорит клиенту, с каким Battle.net-хостом общаться — с твоимbnetserver.
Запускай Arctium, а не Battle.net.exe. Он стартует пропатченный клиент и
показывает экран логина Battle.net, направленный на твой сервер.
bnetaccount create.Логин современного ретейла идёт через HTTP REST dev-сертификат (порт 8081),
а не через старый realmlist.wtf. 95% зависаний — это одно из:
| Симптом | Причина | Решение |
|---|---|---|
| Зависло на «Connecting» / «Authenticating» | Недоступен REST-эндпоинт 8081 или неверный portal |
Проверь LoginREST.ExternalAddress + открыт ли 8081; проверь SET portal |
| «Version mismatch» / отбрасывает на логине | Билд клиента ≠ 68974 | Переустанови/зафиксируй клиент на 68974 |
| Пустой список реалмов | Неверный realmlist.address или worldserver (8085) выключен |
Поправь строку в realmlist; проверь, что 8085 слушает |
| Ошибка сертификата/handshake | Не через Arctium или сертификат не доверенный | Всегда запускай через Arctium |
| В игре, но у персонажа нет квестов | Пробел в данных/цепочке квестов | См. FIXES.md |
.bot — спутники на базе существ..pbot — боты-игроки с персистентностью + боевыми ротациями.См. FEATURES.md.