Como configurar um servidor de MU Online no emulador IGCN
Configure do zero um servidor de MU Online no emulador IGCN: banco de dados SQL Server, ConnectServer, DataServer, JoinServer e GameServer, arquivos .dat de conexão, portas, IP externo e o primeiro teste de login em jogo.
Montar um servidor de MU Online no IGCN é, na prática, orquestrar cinco peças que precisam conversar entre si na ordem certa: um SQL Server com as bases restauradas, o DataServer (que fala com o banco), o ConnectServer (a porta de entrada do cliente), o JoinServer (autenticação de contas) e o GameSe
Montar um servidor de MU Online no IGCN é, na prática, orquestrar cinco peças que precisam conversar entre si na ordem certa: um SQL Server com as bases restauradas, o DataServer (que fala com o banco), o ConnectServer (a porta de entrada do cliente), o JoinServer (autenticação de contas) e o GameServer (o mundo em si). Se qualquer uma dessas peças estiver apontando para um IP, porta ou senha errada, a stack sobe pela metade e o jogador trava na tela de login. Este tutorial percorre a instalação e configuração completa do IGCN — do banco ao primeiro personagem em jogo — destacando onde os valores mudam de build para build. Antes de mergulhar, se você ainda não tem a base montada, veja o tutorial de criação de servidor de MU Online, que cobre os conceitos gerais que aqui vamos aplicar ao IGCN especificamente.
O que é o emulador IGCN
O IGCN é um dos emuladores (ou "MuServer") mais usados da história dos servidores privados de MU. Ele reimplementa a lógica dos servidores oficiais, permitindo que você rode seu próprio MU sem os binários da Webzen. Uma build típica do IGCN vem organizada em pastas por serviço — normalmente algo como ConnectServer, DataServer, JoinServer e GameServer (ou MuServer\...), cada uma com seu executável e seus arquivos de configuração .dat/.txt. A season mais difundida do IGCN na comunidade é a Season 6, mas existem builds para outras versões. A regra de ouro: cliente e emulador têm que ser da mesma season.
Pré-requisitos
- Windows (Server ou Desktop) com privilégios de administrador.
- SQL Server instalado (2008/2012/2014 costumam funcionar sem dor) e o SQL Server Management Studio (SSMS).
- Visual C++ Redistributables (várias versões — o IGCN costuma exigir 2010/2013/2015 dependendo da build).
- A build do IGCN com as bases de dados (
.bakou scripts.sql) inclusas. - Um cliente de MU compatível com a season do emulador.
- Conhecimento básico de firewall e redirecionamento de portas, caso vá abrir para fora.
- Backup de tudo antes de editar qualquer arquivo.
Arquitetura: as peças e a ordem de inicialização
Cada serviço tem uma responsabilidade e uma dependência. Suba sempre nesta ordem:
| Ordem | Serviço | Função | Depende de |
|---|---|---|---|
| 1 | SQL Server | Guarda contas, personagens, guild, ranking | — |
| 2 | DataServer | Ponte entre os servidores e o banco | SQL Server |
| 3 | ConnectServer | Lista de servidores / porta de entrada do cliente | — (mas útil cedo) |
| 4 | JoinServer | Autentica login de conta | DataServer |
| 5 | GameServer | O mundo jogável (mapas, mobs, drops) | DataServer + JoinServer |
Inverter essa ordem é a causa nº 1 de "o GameServer abre e fecha sozinho". Sem DataServer no ar, ninguém fala com o banco.
Passo 1 — Preparar o SQL Server e restaurar as bases
- Instale o SQL Server em modo misto (SQL Server and Windows Authentication) e defina uma senha para o usuário
sa. Anote essa senha — ela vai em vários arquivos.dat. - Abra o SSMS e conecte na instância local (ex.:
.\SQLEXPRESSoulocalhost). - Restaure as bases que vêm na build. Normalmente são duas: a principal (frequentemente chamada
MuOnline) e uma de ranking/eventos (nome varia por build). Use Restore Database apontando para os.bak, ou rode os scripts.sqlfornecidos.
-- Exemplo de restauração (o nome do arquivo e o caminho variam por build)
RESTORE DATABASE MuOnline
FROM DISK = N'C:\MuServer\DB\MuOnline.bak'
WITH REPLACE, RECOVERY;
- Confirme que o login
saestá habilitado (Security → Logins → sa → Status → Enabled) e que o TCP/IP está ativo no SQL Server Configuration Manager. Sem TCP/IP habilitado, o DataServer não conecta.
> Os nomes das bases e a senha do sa são exemplos comuns — cada build do IGCN pode usar nomes e senhas diferentes. Confira o README da sua build.
Passo 2 — Instalar dependências e checar o ODBC/DSN
Muitas builds do IGCN conectam ao banco via DSN (ODBC). Se a sua for uma delas:
- Abra o ODBC Data Source Administrator (procure por
odbcad32). Em builds 32-bit, use oodbcad32da pastaSysWOW64. - Crie um System DSN (ex.: nome
MuOnline) apontando para a sua instância SQL, com autenticação SQL Server (loginsa+ senha). - Teste a conexão dentro do próprio assistente. Se falhar aqui, vai falhar no emulador.
Instale também os Visual C++ Redistributables exigidos. Um sintoma clássico de VC++ faltando é o executável nem abrir, ou fechar sem mensagem.
Passo 3 — Configurar o DataServer
O DataServer é quem realmente fala com o banco. No arquivo de configuração dele (nomes variam: DataServer.dat, MuOnline.dat, IGC_DataServer.txt, etc.), você define a conexão ao SQL. Um bloco típico:
[Database]
ODBC_Name = MuOnline
DB_User = sa
DB_Password = suaSenhaAqui
Port = 55960
ODBC_Namedeve bater exatamente com o DSN criado no passo 2 (ou com o nome do banco, dependendo da build).DB_Passwordé a senha dosa.- A
Porté a que os outros serviços usam para achar o DataServer — anote-a.
Suba o DataServer e verifique no console dele a mensagem de conexão bem-sucedida com o banco. Só avance quando ele estiver estável.
Passo 4 — Configurar o ConnectServer e a lista de servidores
O ConnectServer é a porta de entrada: o cliente conecta nele primeiro e recebe a lista de servidores. Dois pontos importam aqui:
- Porta de escuta — a porta em que o cliente bate (comumente algo como
44405, mas varia por build). Ela precisa casar com o.datdo cliente (mais sobre isso no Passo 7). - Lista de servidores — um arquivo (ex.:
ServerList.dat) onde você define os GameServers exibidos, cada um com um IP e uma porta.
; ServerList.dat (exemplo — formato varia por build)
; ServerName ServerCode IP Port
Servidor01 0 127.0.0.1 55901
Para teste local, use 127.0.0.1. Para abrir ao público, use o IP externo (ou domínio No-IP) da máquina. Um erro clássico é deixar 127.0.0.1 na lista e depois estranhar que ninguém de fora consegue entrar.
Passo 5 — Configurar o JoinServer
O JoinServer cuida da autenticação de contas — ele valida usuário e senha contra o banco (via DataServer). Na configuração dele, o essencial é apontar para o DataServer correto:
[JoinServer]
DataServerIP = 127.0.0.1
DataServerPort = 55960
JoinPort = 55970
DataServerIP/DataServerPorttêm que apontar para o DataServer do Passo 3.JoinPorté a porta que o GameServer usa para falar com o JoinServer.
Suba o JoinServer e confirme, no console, que ele conectou ao DataServer. Se ficar reconectando em loop, o IP/porta do DataServer está errado ou o DataServer está fora do ar.
Passo 6 — Configurar o GameServer
O GameServer é o mundo jogável. Ele depende de DataServer e JoinServer. Nos arquivos de configuração (nomes variam: GameServerInfo.dat, IGC_GameServer.txt, GameServer.dat), os campos críticos são:
| Campo (exemplo) | O que é | Cuidado |
|---|---|---|
ServerCode | Código que casa com a ServerList | Precisa bater com o Passo 4 |
DataServerIP / Port | Onde está o DataServer | Igual ao Passo 3 |
JoinServerIP / Port | Onde está o JoinServer | Igual ao Passo 5 |
GameServerPort | Porta que o cliente usa para o mundo | Precisa casar com a ServerList |
ExperienceRate | Taxa de EXP | Ajuste ao seu projeto |
Além das conexões, é aqui que você começa a customizar o servidor: taxas de EXP e drop, limites de reset, eventos e afins — mas isso só depois que a stack estiver de pé e logando. Suba o GameServer por último. Se ele conectar e cair, revise DataServer/JoinServer (ordem e IP/porta).
Passo 7 — Configurar o cliente e o main/.dat de conexão
Do lado do cliente, o jogador precisa apontar para o seu ConnectServer. Dependendo da season, isso é feito editando um arquivo de conexão (frequentemente criptografado — ex.: um .dat lido pelo main.exe) com o IP e a porta do ConnectServer:
; Exemplo conceitual — o formato real costuma ser criptografado
IpAddress = 127.0.0.1
Port = 44405
Regras práticas:
- A porta aqui tem que ser a mesma do ConnectServer (Passo 4).
- Para teste local,
127.0.0.1; para público, o IP externo/domínio. - Cliente e emulador têm que ser da mesma season, ou o cliente crasha no login.
- Se sua build usa launcher com verificação de arquivos, gere/atualize a lista de hashes depois de editar o cliente.
Passo 8 — Firewall, portas e IP externo
Para jogadores de fora entrarem, libere as portas usadas — tipicamente a do ConnectServer e a de cada GameServer — no Firewall do Windows e, se estiver atrás de roteador, faça o redirecionamento de portas (port forwarding) para o IP interno da máquina.
# Exemplo: liberar a porta do ConnectServer no Firewall do Windows (ajuste a porta)
netsh advfirewall firewall add rule name="MU ConnectServer" dir=in action=allow protocol=TCP localport=44405
Sem IP fixo, use um serviço de DNS dinâmico (No-IP/DuckDNS) e coloque o domínio na ServerList e no cliente. Nunca exponha a porta do SQL Server (1433) para a internet — deixe o banco acessível só localmente.
Passo 9 — Primeiro teste de login em jogo
- Suba a stack na ordem: SQL → DataServer → ConnectServer → JoinServer → GameServer.
- Confira que cada console mostrou conexão bem-sucedida (sem loops de reconexão).
- Abra o cliente, crie uma conta (o registro pode ser via web/tool ou direto no banco, conforme a build).
- Logue: você deve ver a lista de servidores (ConnectServer OK) e conseguir entrar no mundo (JoinServer + GameServer OK).
- Crie um personagem e ande alguns passos — se o char aparece e o mapa carrega, sua stack está saudável.
Erros comuns e soluções
| Sintoma | Causa provável | Solução |
|---|---|---|
| Executável nem abre | VC++ Redistributable faltando | Instale as versões que a build exige |
| DataServer não conecta ao banco | DSN/ODBC ou senha sa errados | Refaça o DSN e teste; confira TCP/IP no SQL |
| GameServer sobe e cai | DataServer/JoinServer fora do ar ou IP/porta errado | Respeite a ordem; corrija IP/porta nos .dat |
| Lista de servidores não aparece | Porta do ConnectServer ≠ porta do cliente | Alinhe as portas do Passo 4 e Passo 7 |
| "Server not available" ao entrar | ServerList com IP/porta errado do GameServer | Ajuste a ServerList e o ServerCode |
| Cliente crasha no login | Cliente e emulador de seasons diferentes | Use cliente da mesma season do IGCN |
| Ninguém de fora entra | 127.0.0.1 na ServerList / portas fechadas | Use IP externo e libere firewall/roteador |
Checklist de lançamento
- SQL Server em modo misto,
sahabilitado e TCP/IP ativo. - Bases restauradas e DSN/ODBC testado com sucesso.
- VC++ Redistributables instalados.
- DataServer conectado ao banco (console limpo).
- ConnectServer com porta correta e ServerList configurada.
- JoinServer apontando para o DataServer certo.
- GameServer com ServerCode, IPs e portas casando com o restante.
- Cliente da mesma season apontando para o ConnectServer.
- Firewall/roteador liberados (portas do Connect e Game); SQL fechado para fora.
- Login, criação de conta e entrada no mundo testados de ponta a ponta.
- Backup do banco e da pasta do MuServer antes de abrir ao público.
Com a stack de pé e o primeiro login funcionando, o trabalho pesado de infraestrutura acabou — daqui pra frente é ajuste de projeto: taxas de EXP e drop, eventos, resets, sistemas de itens e a economia do seu servidor. Documente cada porta, IP e senha em um arquivo interno (fora do cliente público): quando o servidor crescer e você separar o banco em outra máquina, esse mapa de conexões é o que evita horas de dor de cabeça.
Perguntas frequentes
O IGCN é gratuito?
As versões antigas do IGCN circulam pela comunidade há anos e são amplamente usadas para estudo e servidores privados. Já as builds mais recentes e com suporte costumam ser pagas/licenciadas. Sempre baixe de fontes confiáveis e escaneie os binários antes de rodar.
Qual versão de SQL Server o IGCN usa?
A maioria das builds roda bem em SQL Server 2008/2012/2014. Versões muito novas podem exigir ajustes de compatibilidade no banco. O importante é subir a instância, restaurar as bases (MuOnline e o banco de ranking/eventos) e criar o usuário sa com a senha que os .dat esperam.
Preciso de IP fixo para abrir o servidor?
Para testar localmente, 127.0.0.1 basta. Para jogadores externos entrarem, você precisa do IP público (ou um domínio/No-IP apontando para ele) configurado no ConnectServer e no cliente, além de liberar as portas no firewall e no roteador.
Por que o GameServer conecta e cai logo depois?
Quase sempre é o DataServer/JoinServer fora do ar ou apontando para o banco errado. Suba a stack na ordem correta (SQL → DataServer → ConnectServer → JoinServer → GameServer) e confira o IP/porta e a senha do sa nos arquivos .dat.
O IGCN funciona em qualquer season?
O IGCN tem builds para várias seasons (Season 6 é a mais comum na comunidade). Cliente, arquivos de dados e emulador precisam ser da MESMA season/versão — misturar versões causa crash de cliente e desconexão no login.
Posso rodar tudo em um único PC?
Sim. Para desenvolvimento e testes, banco, emulador e cliente convivem na mesma máquina usando 127.0.0.1. Só ao abrir para o público você separa (ou pelo menos protege) o banco e usa o IP externo.