Установка файлов сервера Lineage 2: точный порядок действий

Чтобы установить lineage 2 server, нужно сделать четыре вещи в фиксированном порядке: подготовить среду выполнения, создать и заполнить базу данных, направить конфиги логин- и гейм-сервера на неё, а затем подключить пропатченный клиент. Почти каждая неудачная первая установка — это проблема последовательности, а не кода: база установлена после правки конфигов, версия Java новее, чем ожидает сборка, или гейм-сервер так и не зарегистрировался на логин-сервере.
Ниже вся последовательность с точкой проверки после каждого этапа, чтобы вы знали, какой шаг сломался, а не гадали. Она работает для L2J, L2JMobius и aCis; имена файлов немного отличаются между сборками, и я отмечаю где. Если вы ещё выбираете сборку, сначала прочитайте лучшие сборки и файлы сервера и L2J против L2OFF, потому что сборка определяет всё дальнейшее.
1. Сначала выберите сборку и хронику
Сборка Interlude и сборка High Five требуют разных клиентов, разных датапаков и часто разных версий Java. Определите пару (сборка + хроника) и держитесь её всю установку. Смешивание ядра High Five с датапаком Interlude даёт сервер, который запускается, пишет ошибки об отсутствующих NPC и отключает игроков на выборе персонажа.
Две разумные отправные точки, обе поддерживаются:
- L2J Server — эталонная реализация High Five от оригинального проекта. Официальная документация актуальна: руководство по установке L2J Server.
- L2JMobius — одна папка на хронику, от C4 до современных линеек. Код и релизы: MobiusDevelopment/L2J_Mobius.
- aCis — ориентирован на Interlude, легче Mobius и популярен на лоу-рейт серверах. Код: Tryskell/acis_public.
Если нужна инструкция именно по сборке, а не общий порядок, это установка L2JMobius и установка сборки aCis Interlude.

2. Подготовьте среду: Java, база данных, инструмент сборки
Три компонента, установленные до клонирования чего-либо:
- JDK. Берите ту версию, которую ожидает сборка, а не самую новую. Текущая линия L2J собирается на JDK 25, и в документации используется
winget install EclipseAdoptium.Temurin.25.JDK. Ветки aCis рассчитаны на JDK 8, 11 или 21 в зависимости от ревизии — README иbuild.xmlуказывают нужную. - Сервер базы данных. Рекомендуется MariaDB; MySQL 8 тоже работает. Создайте отдельного пользователя вместо запуска от
rootи ограничьте его своей схемой:CREATE USER IF NOT EXISTS 'l2j'@'localhost' IDENTIFIED BY 'смените-этот-пароль'; GRANT ALL PRIVILEGES ON l2j.* TO 'l2j'@'localhost'; FLUSH PRIVILEGES; - Инструмент сборки. Maven для L2J (в комплекте есть wrapper:
mvnw.cmd installв Windows,./mvnw installв остальных системах), Ant для L2JMobius и aCis, обычно из Eclipse.
Точка проверки: java --version показывает версию, которую ожидает сборка, и вы входите в MariaDB новым пользователем. Если что-то не так здесь — остановитесь. Дальше ничего не заработает.
ЗадайтеJAVA_HOMEи поставьте%JAVA_HOME%\binпервым вPATH. Два JDK на одной машине — самая частая причина «вчера собиралось» в Windows.
3. Соберите и разверните файлы сервера
Собирайте из исходников, а не доверяйте репаку. Это занимает десять минут и доказывает, что цепочка инструментов верна.
У L2J три модуля: логин-сервер, гейм-сервер и датапак. Соберите все три, разверните артефакты логина и игры в отдельные папки, а датапак распакуйте внутрь папки гейм-сервера, чтобы появился каталог data:
mvnw.cmd install
mkdir C:\opt\l2j\server\login
mkdir C:\opt\l2j\server\game
В L2JMobius и aCis обычный путь — сборка Ant в build/ или dist/, после чего скомпилированные папки login и game копируются в путь без пробелов. L2JMobius поставляет один датапак на хронику, поэтому папка data уже лежит внутри папки игры.
Точка проверки: в каждой развёрнутой папке есть скрипт запуска (startLoginServer.bat / LoginServer.vbs в зависимости от сборки) и каталог config с файлами свойств. Нет конфигов — нет развёртывания: вы распаковали не тот артефакт.

4. Установите схему базы данных
Обоим серверам нужны таблицы, и нужны отдельные установки, даже если они используют одно имя базы. В L2J это делается через CLI с явным режимом и типом:
l2jcli.bat
db install -sql C:\opt\l2j\server\login\sql -u l2j -p ВАШПАРОЛЬ -m FULL -t LOGIN -c -mods
db install -sql C:\opt\l2j\server\game\sql -u l2j -p ВАШПАРОЛЬ -m FULL -t GAME -c -mods
L2JMobius содержит папку db_installer с установщиком для логина и для игры; форки без неё дают папки SQL логина и игры, которые импортируются по порядку. Запустите оба против одной схемы и примите значения по умолчанию, если только вы намеренно не разделяете базы.
Точка проверки: в схеме есть два семейства таблиц — аккаунты и таблицы логина, плюс таблицы игры. Если установка игровой части оборвалась, исправьте ошибку и повторите полную установку; не продолжайте с частичной схемой.
5. Направьте оба конфига на базу данных
Здесь застревает почти каждая установка: учётные данные нужно править в двух местах, а имена файлов зависят от сборки:
| Сборка | Конфиг логина | Конфиг игры |
|---|---|---|
| L2J Server | папка config в каждом развёрнутом сервере: у логина и игры свои, и в каждой свой database.properties | |
| L2JMobius | login/config/LoginServer.properties | game/config/Server.properties |
| aCis | config/loginserver.properties | config/server.properties |
Задайте URL, пользователя и пароль в обоих. Оставьте хосты по умолчанию, пока сервер не заработает локально: настройка LAN/WAN — отдельная задача, она разобрана в настройке гейм- и логин-сервера.
Точка проверки: первый запуск логина доходит до «listening» без ошибки JDBC, а гейм-сервер пишет об успешном подключении к базе. Communications link failure здесь означает учётные данные или URL, а не схему.
6. Сначала логин-сервер, затем гейм-сервер
Порядок важен: гейм-сервер регистрируется на логине при старте, поэтому логин должен быть уже запущен.
- Запустите логин-сервер. Порт по умолчанию для клиентов: 2106.
- Запустите гейм-сервер. Он подключается к логину по 9014 и открывает 7777 для игроков.
- Посмотрите в лог логина строку регистрации и убедитесь, что гейм-сервер прожил целую минуту.
Точка проверки: логин сообщает о зарегистрированном гейм-сервере, а гейм-сервер перестаёт писать «not registered». Если он сразу закрывается, обычные подозреваемые — неверная версия Java, отсутствующий путь к датапаку или пользователь базы без прав на игровую схему.
7. Пропатчите клиент и войдите
Для локального теста документированный способ L2J не трогает клиент: либо добавить запись в hosts
127.0.0.1 l2authd.lineage2.com
либо запустить бинарник с аргументом IP (l2.bin IP=127.0.0.1). Ни один из способов не правит файлы клиента. Документация L2J указывает, что модификации клиента, включая GameGuard и изменения L2.ini, не разрешены, поэтому держите клиент чистым и используйте один из этих двух методов.
Создайте администраторский аккаунт через CLI (account create -u ВашеИмя -p -a 8, где 8 — мастер-доступ), войдите и убедитесь, что попадаете в мир, а не на отключённый список персонажей.
Точка проверки: вы создаёте персонажа и делаете десять шагов без зависания клиента. Один этот тест проверяет рукопожатие логина, гейм-сервер и датапак одновременно.
8. Таблица для диагностики неудачной установки
| Симптом | Сломанный этап | Что проверить |
|---|---|---|
| Ошибки сборки Ant или Maven | Среда | Версия JDK против цели сборки, JAVA_HOME |
db install обрывается | Схема | Права пользователя, путь к папке SQL, версия MariaDB |
| Логин стартует, игра закрывается | Конфигурация | Учётные данные, корень датапака, занятый порт |
| Серверы работают, клиент не подключается | Сеть | Порты 2106/7777, внешний адрес, фаервол |
| Логин работает, список персонажей пуст | Датапак | Датапак другой хроники для этого ядра |
Исправляйте этап, а не симптом. Переустановка базы из-за того, что клиент не подключается, стоит вечера и ничего не меняет.
9. Прежде чем кого-то приглашать
Локальный вход — не рабочий сервер. Нужно загрузить geodata (иначе игроки проходят сквозь стены, а мобы агрятся через них), рейты и дроп должны совпадать с рекламой, а патч клиента нужно распространять с лаунчером. Следующий шаг — загрузить geodata: настройка geodata объясняет файлы и три важных параметра.
Когда сервер готов для игроков, разместите его там, где люди смотрят. Бесплатное размещение в L2Calendar занимает несколько минут и ставит сервер перед игроками, которые ищут по хронике и рейтам: добавьте свой сервер. Если нужен верх категории, а не третья страница, VIP-размещение — платный вариант, и перед тратой стоит прочитать окупается ли VIP.
