Instalar os arquivos de um servidor de Lineage 2: a ordem exata

Para instalar lineage 2 server você faz quatro coisas em ordem fixa: preparar o ambiente de execução, criar e popular o banco de dados, apontar as configurações do login e do servidor de jogo para ele e, por fim, conectar um cliente com patch. Quase toda primeira instalação que falha é problema de sequência, não de código: banco instalado depois de editar as configurações, versão de Java mais nova do que o pacote espera ou servidor de jogo que nunca se registrou no login.
Esta é a sequência completa com um ponto de verificação após cada etapa, para você saber qual passo quebrou em vez de adivinhar. Funciona com L2J, L2JMobius e aCis; os nomes de arquivo mudam um pouco entre pacotes e eu sinalizo onde. Se ainda está escolhendo o pacote, leia antes os melhores arquivos e pacotes de servidor e L2J contra L2OFF, porque o pacote decide tudo o que vem depois.
1. Escolha o pacote e a crônica antes de tudo
Um pacote de Interlude e um de High Five exigem clientes diferentes, datapacks diferentes e muitas vezes versões de Java diferentes. Decida o par (pacote + crônica) e mantenha durante toda a instalação. Misturar um core de High Five com um datapack de Interlude gera um servidor que inicia, registra erros de NPCs ausentes e desconecta os jogadores na seleção de personagem.
Dois pontos de partida sensatos, ambos mantidos:
- L2J Server — a implementação de referência de High Five do projeto original. A documentação oficial está atualizada: guia de instalação do L2J Server.
- L2JMobius — uma pasta por crônica, de C4 até as linhas modernas. Código e versões em MobiusDevelopment/L2J_Mobius.
- aCis — focado em Interlude, mais leve que o Mobius e popular em servidores de rate baixo. Código em Tryskell/acis_public.
Se quiser o guia específico de um pacote em vez da ordem geral, são estes: instalação do L2JMobius e instalação do pacote aCis Interlude.

2. Prepare o ambiente: Java, banco de dados e ferramenta de build
Três peças de software, instaladas antes de clonar qualquer coisa:
- JDK. Use o que o pacote espera, não o mais novo. A linha atual do L2J compila com JDK 25 e sua documentação instala com
winget install EclipseAdoptium.Temurin.25.JDK. As branches do aCis usam JDK 8, 11 ou 21 conforme a revisão: o README e obuild.xmlinformam qual. - Servidor de banco de dados. MariaDB é a recomendação; MySQL 8 também serve. Crie um usuário dedicado em vez de rodar como
roote limite-o ao schema:CREATE USER IF NOT EXISTS 'l2j'@'localhost' IDENTIFIED BY 'troque-esta-senha'; GRANT ALL PRIVILEGES ON l2j.* TO 'l2j'@'localhost'; FLUSH PRIVILEGES; - Ferramenta de build. Maven para L2J (traz wrapper:
mvnw.cmd installno Windows,./mvnw installnos demais), Ant para L2JMobius e aCis, normalmente a partir do Eclipse.
Ponto de verificação: java --version mostra a versão que o pacote espera e você entra no MariaDB com o usuário novo. Se algo falhar aqui, pare. Nada depois disso vai funcionar.
DefinaJAVA_HOMEe coloque%JAVA_HOME%\binprimeiro noPATH. Dois JDKs na mesma máquina são a causa mais comum do "compilava ontem" no Windows.
3. Compile e implante os arquivos do servidor
Compile a partir do código em vez de confiar em um repack. Leva dez minutos e prova que a cadeia de ferramentas está correta.
O L2J tem três módulos: servidor de login, servidor de jogo e datapack. Compile os três, implante os artefatos de login e jogo em pastas separadas e descompacte o datapack dentro da pasta do servidor de jogo para que exista um diretório data:
mvnw.cmd install
mkdir C:\opt\l2j\server\login
mkdir C:\opt\l2j\server\game
No L2JMobius e no aCis o fluxo comum é um build Ant para build/ ou dist/, e então você copia as pastas login e game compiladas para um caminho sem espaços. O L2JMobius distribui um datapack por crônica, então a pasta data já vem dentro da pasta de jogo.
Ponto de verificação: cada pasta implantada tem um script de inicialização (startLoginServer.bat / LoginServer.vbs conforme o pacote) e um diretório config com os arquivos de propriedades. Sem arquivos de configuração não há implantação: você descompactou o artefato errado.

4. Instale o schema do banco de dados
Os dois servidores precisam de tabelas, e precisam de instalações separadas mesmo quando compartilham o mesmo nome de banco. O L2J faz isso pela CLI, com modo e tipo explícitos:
l2jcli.bat
db install -sql C:\opt\l2j\server\login\sql -u l2j -p SUASENHA -m FULL -t LOGIN -c -mods
db install -sql C:\opt\l2j\server\game\sql -u l2j -p SUASENHA -m FULL -t GAME -c -mods
O L2JMobius traz uma pasta db_installer com um instalador para login e outro para jogo; forks que não a trazem entregam as pastas SQL de login e de jogo para importar em ordem. Rode os dois contra o mesmo schema e aceite os padrões, a menos que queira separar bancos de propósito.
Ponto de verificação: existem duas famílias de tabelas no schema — contas e login, mais as tabelas do jogo. Se a instalação do jogo parar no meio, corrija o erro e repita com instalação completa; não siga com schema parcial.
5. Aponte as duas configurações para o banco
É aqui que quase toda instalação trava, porque as credenciais precisam ser editadas em dois lugares e os nomes de arquivo mudam por pacote:
| Pacote | Config do login | Config do jogo |
|---|---|---|
| L2J Server | a pasta config de cada servidor implantado: cada lado tem o próprio database.properties | |
| L2JMobius | login/config/LoginServer.properties | game/config/Server.properties |
| aCis | config/loginserver.properties | config/server.properties |
Defina URL, usuário e senha nos dois. Deixe os hosts no padrão até o servidor funcionar localmente: a configuração LAN/WAN é outro trabalho, coberto em configuração do servidor de jogo e login.
Ponto de verificação: a primeira inicialização do login chega a "listening" sem erro JDBC e o servidor de jogo registra conexão bem-sucedida com o banco. Um Communications link failure aqui é credencial ou URL, não schema.
6. Inicie o login primeiro, depois o servidor de jogo
A ordem importa: o servidor de jogo se registra no login ao iniciar, então o login precisa estar no ar antes.
- Inicie o servidor de login. Porta padrão voltada ao cliente: 2106.
- Inicie o servidor de jogo. Ele conecta ao login em 9014 e abre 7777 para os jogadores.
- Observe o log do login para a linha de registro e confirme que o servidor de jogo continua vivo por um minuto inteiro.
Ponto de verificação: o login informa um servidor de jogo registrado e o servidor de jogo para de registrar "not registered". Se ele fecha imediatamente, os suspeitos de sempre são versão de Java errada, caminho de datapack ausente ou usuário de banco sem permissão no schema do jogo.
7. Aplique o patch no cliente e entre
Para um teste local o método documentado do L2J não toca no cliente: ou você adiciona a entrada de host
127.0.0.1 l2authd.lineage2.com
ou inicia o binário com um argumento de IP (l2.bin IP=127.0.0.1). Nenhuma das rotas edita arquivo do cliente. A documentação do L2J afirma que modificações no cliente, incluindo GameGuard e mudanças no L2.ini, não são permitidas, então mantenha o cliente limpo e use um destes dois métodos.
Crie uma conta de administrador pela CLI (account create -u SeuNome -p -a 8, onde 8 é acesso mestre), entre e confirme que você chega ao mundo e não a uma lista de personagens desconectada.
Ponto de verificação: você cria um personagem e anda dez passos sem o cliente congelar. Esse único teste exercita o handshake do login, o servidor de jogo e o datapack de uma vez.
8. Uma tabela para diagnosticar uma instalação que falhou
| Sintoma | Etapa que falhou | O que verificar |
|---|---|---|
| Erros de build no Ant ou Maven | Ambiente | Versão de JDK contra o alvo do pacote, JAVA_HOME |
db install para no meio | Schema | Permissões do usuário, caminho da pasta SQL, versão do MariaDB |
| Login sobe, jogo fecha | Configuração | Credenciais, raiz do datapack, porta já em uso |
| Servidores rodam, cliente não conecta | Rede | Portas 2106/7777, endereço externo, firewall |
| Login funciona, lista de personagens vazia | Datapack | Datapack de crônica diferente do core |
Corrija a etapa, não o sintoma. Reinstalar o banco porque o cliente não conecta custa uma noite e não muda nada.
9. Antes de convidar alguém
Um login local não é um servidor em produção. É preciso carregar geodata (sem ela, jogadores atravessam paredes e mobs agridem através delas), os rates e drops devem combinar com o que você anunciou, e o patch do cliente precisa ser distribuído com um launcher. O próximo passo é carregar geodata: configuração de geodata explica os arquivos e os três ajustes que importam.
Quando o servidor estiver pronto para jogadores, divulgue onde as pessoas procuram. Uma listagem gratuita no L2Calendar leva minutos e coloca o servidor diante de jogadores que navegam por crônica e rate: adicione seu servidor. Se quiser o topo da categoria em vez da terceira página, a listagem VIP é a opção paga, e vale ler se o VIP compensa antes de gastar.
