O maior portal de MU Online do Brasil — desde 2003
Tutorial Avançado Servidor

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.

GA Gabriel · Atualizado em 20 jun 2024 · ⏱ 17 min de leitura
Resposta rápida

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 (.bak ou 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:

OrdemServiçoFunçãoDepende de
1SQL ServerGuarda contas, personagens, guild, ranking
2DataServerPonte entre os servidores e o bancoSQL Server
3ConnectServerLista de servidores / porta de entrada do cliente— (mas útil cedo)
4JoinServerAutentica login de contaDataServer
5GameServerO 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

  1. 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.
  2. Abra o SSMS e conecte na instância local (ex.: .\SQLEXPRESS ou localhost).
  3. 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 .sql fornecidos.
-- 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;
  1. Confirme que o login sa está 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:

  1. Abra o ODBC Data Source Administrator (procure por odbcad32). Em builds 32-bit, use o odbcad32 da pasta SysWOW64.
  2. Crie um System DSN (ex.: nome MuOnline) apontando para a sua instância SQL, com autenticação SQL Server (login sa + senha).
  3. 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_Name deve bater exatamente com o DSN criado no passo 2 (ou com o nome do banco, dependendo da build).
  • DB_Password é a senha do sa.
  • 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:

  1. Porta de escuta — a porta em que o cliente bate (comumente algo como 44405, mas varia por build). Ela precisa casar com o .dat do cliente (mais sobre isso no Passo 7).
  2. 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/DataServerPort tê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
ServerCodeCódigo que casa com a ServerListPrecisa bater com o Passo 4
DataServerIP / PortOnde está o DataServerIgual ao Passo 3
JoinServerIP / PortOnde está o JoinServerIgual ao Passo 5
GameServerPortPorta que o cliente usa para o mundoPrecisa casar com a ServerList
ExperienceRateTaxa de EXPAjuste 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:

  1. A porta aqui tem que ser a mesma do ConnectServer (Passo 4).
  2. Para teste local, 127.0.0.1; para público, o IP externo/domínio.
  3. Cliente e emulador têm que ser da mesma season, ou o cliente crasha no login.
  4. 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

  1. Suba a stack na ordem: SQL → DataServer → ConnectServer → JoinServer → GameServer.
  2. Confira que cada console mostrou conexão bem-sucedida (sem loops de reconexão).
  3. Abra o cliente, crie uma conta (o registro pode ser via web/tool ou direto no banco, conforme a build).
  4. Logue: você deve ver a lista de servidores (ConnectServer OK) e conseguir entrar no mundo (JoinServer + GameServer OK).
  5. 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

SintomaCausa provávelSolução
Executável nem abreVC++ Redistributable faltandoInstale as versões que a build exige
DataServer não conecta ao bancoDSN/ODBC ou senha sa erradosRefaça o DSN e teste; confira TCP/IP no SQL
GameServer sobe e caiDataServer/JoinServer fora do ar ou IP/porta erradoRespeite a ordem; corrija IP/porta nos .dat
Lista de servidores não aparecePorta do ConnectServer ≠ porta do clienteAlinhe as portas do Passo 4 e Passo 7
"Server not available" ao entrarServerList com IP/porta errado do GameServerAjuste a ServerList e o ServerCode
Cliente crasha no loginCliente e emulador de seasons diferentesUse cliente da mesma season do IGCN
Ninguém de fora entra127.0.0.1 na ServerList / portas fechadasUse IP externo e libere firewall/roteador

Checklist de lançamento

  • SQL Server em modo misto, sa habilitado 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.

GA
Editor de guias e builds

Gabriel cobre gameplay, builds de classes, PvP e progressão. Testa cada estratégia em servidor antes de publicar.

Continue lendo

Artigos relacionados