Como configurar um servidor de MU Online no Zhyper MuServer
Suba um servidor de MU Online com o pacote Zhyper MuServer do zero: banco no SQL Server, restauração das databases MuOnline/Me_MuOnline, configuração de IP e portas no ConnectServer, DataServer, JoinServer e GameServer, e primeiro login testado.
O Zhyper MuServer é um dos pacotes de arquivos de servidor de MU Online mais usados por quem está começando, justamente porque entrega tudo pré-montado: os executáveis do MuServer (Main), o banco de dados e um cliente compatível. Ainda assim, "pré-montado" não é "clique e jogue" — você precisa resta
O Zhyper MuServer é um dos pacotes de arquivos de servidor de MU Online mais usados por quem está começando, justamente porque entrega tudo pré-montado: os executáveis do MuServer (Main), o banco de dados e um cliente compatível. Ainda assim, "pré-montado" não é "clique e jogue" — você precisa restaurar as databases no SQL Server, alinhar o IP e as portas em quatro executáveis diferentes e sincronizar o cliente. Errar um único IP ou pular a ordem de inicialização faz o GameServer fechar sem explicação. Este tutorial percorre a montagem completa, do banco ao primeiro login, com os pontos onde o iniciante mais trava. Se você ainda não tem uma visão geral, vale ler antes o guia de como criar um servidor de MU Online.
O que é o Zhyper MuServer
O Zhyper não é um emulador escrito do zero: é uma distribuição (um "files") que empacota binários de MuServer já compilados, scripts SQL para criar/restaurar o banco e um cliente na mesma season dos binários. A arquitetura segue o padrão de qualquer servidor de MU: quatro processos que conversam entre si e um banco de dados por trás. Entender essa divisão é o que faz a configuração deixar de ser "tentativa e erro". Os detalhes de menu, arquivos e nomes de pastas variam por release do pacote — trate os exemplos abaixo como referência, não como valores fixos.
Componentes do servidor
| Componente | Papel | Porta padrão (exemplo) |
|---|---|---|
| DataServer | Faz a ponte entre o GameServer e o SQL Server | 55960 / 55970 |
| ConnectServer | Lista os servidores e recebe a primeira conexão do cliente | 44405 |
| JoinServer | Valida login/conta e gerencia a sessão | 55970 |
| GameServer | O mundo do jogo em si (mapas, mobs, jogadores) | 55901 / 44405 |
As portas acima são exemplos e mudam conforme o release do Zhyper. O que nunca muda é a lógica: o DataServer é o único que fala com o banco; o GameServer nunca acessa o SQL diretamente.
Pré-requisitos
- Windows (Server 2012+ ou Windows 10/11) com direitos de administrador.
- SQL Server 2008 R2 / 2012 / 2014 com autenticação SQL habilitada (usuário
sa). - SQL Server Management Studio (SSMS) para restaurar e inspecionar o banco.
- O pacote Zhyper MuServer (Main + Databases) e o cliente correspondente.
- Redistribuíveis Visual C++ (2010/2013/2015) instalados — a falta deles derruba os executáveis no boot.
- Um IP definido:
127.0.0.1para teste local ou o IP público da sua VPS para produção.
Passo 1 — Instalar e preparar o SQL Server
- Instale o SQL Server escolhendo o modo Mixed Mode Authentication (Windows + SQL) e defina uma senha para o usuário
sa. - Abra o SQL Server Configuration Manager e confirme que o protocolo TCP/IP está Enabled.
- Reinicie o serviço do SQL Server para aplicar.
- Abra o SSMS e conecte usando
sae a senha definida — se conectar, a base para o MuServer está pronta.
> Se você só consegue logar com autenticação do Windows, o MuServer não vai conectar. Ele depende de usuário e senha SQL nos arquivos de config.
Passo 2 — Restaurar as databases (MuOnline e Me_MuOnline)
O Zhyper acompanha dois bancos: geralmente MuOnline (dados do jogo: contas, personagens, itens) e Me_MuOnline (ranking/eventos, conforme o release). Você pode restaurar por arquivo .bak ou executando os scripts .sql.
Restaurando por backup no SSMS:
- Clique com o botão direito em Databases → Restore Database.
- Em Device, aponte para o arquivo
.bakdo pacote. - Confirme o nome de destino (
MuOnline) e finalize. - Repita para o segundo banco (
Me_MuOnline).
Se o pacote traz scripts em vez de .bak, abra cada .sql no SSMS e execute (F5), criando os bancos manualmente. Ao final, confirme que as duas databases aparecem na árvore de Databases.
-- Verificação rápida: as databases existem?
SELECT name FROM sys.databases
WHERE name IN ('MuOnline', 'Me_MuOnline');
Passo 3 — Configurar a conexão do DataServer com o banco
Dentro da pasta Main do Zhyper, o DataServer tem um arquivo de conexão (comumente MuOnline.ini, Connection.ini ou similar — o nome varia por emulador/release). Nele você informa a instância do SQL, o nome das databases e as credenciais.
[MuOnline]
Server = (local)
Database = MuOnline
User = sa
Password = suaSenhaAqui
[Me_MuOnline]
Server = (local)
Database = Me_MuOnline
User = sa
Password = suaSenhaAqui
Server = (local)funciona para instância padrão local; em VPS pode ser.\SQLEXPRESSou o nome da instância.- Usuário e senha precisam ser exatamente os do
sa(ou do usuário que você criou).
Salve e abra apenas o DataServer. Se ele listar as tabelas/queries sem erro de conexão, a ponte com o banco está de pé.
Passo 4 — Alinhar IP e portas nos executáveis
Este é o passo onde 90% dos iniciantes travam. O mesmo IP precisa constar em todos os arquivos de configuração dos executáveis e no cliente. Os nomes de arquivo variam (ConnectServer.ini, ServerList.dat, GameServerInfo.dat, IpList.dat, JoinServer.ini), mas a lógica é sempre a mesma:
- ConnectServer — define a lista de servidores exibida no cliente. Aponte o IP e a porta do GameServer aqui (
ServerList.dat/IpList.dat). - JoinServer — configure o IP de bind e a porta que o GameServer vai usar para validar login.
- GameServer — em
GameServerInfo.dat(ou equivalente), preencha o IP do ConnectServer, do JoinServer e do DataServer. - Use
127.0.0.1em tudo para teste local; troque para o IP público apenas quando for publicar.
> Nunca misture 127.0.0.1 em um arquivo e o IP público em outro. Ou é tudo local, ou é tudo o IP externo. Misturar gera "servidor cheio" ou desconexão logo após o login.
Passo 5 — Iniciar os executáveis na ordem correta
A ordem importa porque cada processo depende do anterior estar no ar:
- DataServer — conecta no SQL Server (abra primeiro, sempre).
- ConnectServer — sobe a lista de servidores.
- JoinServer — fica pronto para autenticar contas.
- GameServer — carrega mapas e mobs; é o último a subir.
Muitos pacotes Zhyper incluem um Server Start.exe ou um .bat que abre tudo na ordem certa. Se você abrir manualmente, respeite a sequência. Um GameServer aberto antes do DataServer não encontra o banco e fecha.
Passo 6 — Criar a conta e apontar o cliente
Com os servidores no ar:
- No SSMS, insira uma conta na tabela de contas (comumente
MEMB_INFO) ou use a ferramenta de registro que acompanha o pacote. - Na pasta do cliente do Zhyper, localize o arquivo que define o IP de conexão (frequentemente um
.datcriptografado editável por uma ferramenta do pacote, ou umServerListem texto). - Aponte o cliente para
127.0.0.1(local) ou para o IP público (produção). - Execute o cliente pelo launcher/main do próprio Zhyper, não por um
main.exeavulso de outra season.
Passo 7 — Testar o primeiro login
- Abra o cliente e confirme que a lista de servidores aparece (isso valida o ConnectServer).
- Faça login com a conta criada — se autenticar, o JoinServer está OK.
- Entre com um personagem: se o mundo carregar, o GameServer e o DataServer estão comunicando.
- Crie um personagem novo e verifique se ele persiste após relogar (isso confirma a escrita no banco).
- Teste um comando de GM (ex.: criar item) para validar permissões.
Erros comuns e soluções
| Sintoma | Causa provável | Solução |
|---|---|---|
| GameServer fecha ao abrir | DataServer não iniciado ou banco não restaurado | Restaure as databases e abra o DataServer antes |
| "Disconnected" logo após login | IP/porta divergente entre arquivos | Alinhe o mesmo IP em todos os .ini/.dat e no cliente |
| Lista de servidores vazia | ConnectServer sem IP do GameServer | Ajuste ServerList.dat/IpList.dat |
| Erro de conexão com SQL | sa desabilitado ou senha errada | Ative Mixed Mode e confira usuário/senha no config |
| Cliente crasha no login | Cliente de season diferente do Main | Use o cliente que acompanha o release do Zhyper |
| Executável some sem mensagem | Visual C++ Redistributable ausente | Instale os redistribuíveis 2010/2013/2015 |
| "Server is full" | Mistura de IP local e público | Padronize local OU público em todos os arquivos |
Checklist de lançamento
- SQL Server em Mixed Mode, TCP/IP habilitado e
safuncionando. - Databases
MuOnlineeMe_MuOnlinerestauradas e visíveis no SSMS. - DataServer conectando ao banco sem erros.
- Mesmo IP em ConnectServer, JoinServer, GameServer e cliente.
- Executáveis iniciados na ordem: Data → Connect → Join → Game.
- Conta criada e login validado in-game.
- Personagem criado persiste após relogar (escrita no banco OK).
- Portas liberadas no firewall (apenas para publicação externa).
- Backup da pasta Main e das databases antes de abrir ao público.
Com o Zhyper rodando e o primeiro login testado, você tem uma base estável para evoluir: ajustar taxas de experiência e drop, configurar eventos, adicionar itens e customizações. Antes de abrir para jogadores, faça um backup completo da pasta Main e das duas databases — assim, qualquer edição futura que quebre o servidor pode ser revertida em minutos, sem perder o trabalho de montagem.
Perguntas frequentes
O que é o Zhyper MuServer?
É um pacote de arquivos (files) de servidor de MU Online distribuído pela comunidade, já pré-montado com Main (executáveis do MuServer), banco de dados e cliente compatível. Ele reúne ConnectServer, DataServer, JoinServer e GameServer em uma estrutura pronta, o que reduz o trabalho de montar tudo do zero. A season exata varia por release do pacote.
Preciso de que versão do SQL Server?
O Zhyper roda bem com SQL Server 2008 R2, 2012 ou 2014 (Express serve para testes locais). O importante é que a instância aceite autenticação SQL (usuário sa) e não só a do Windows, porque os arquivos de conexão do MuServer usam usuário e senha do banco.
Consigo rodar o Zhyper na minha própria máquina para testar?
Sim. Para teste local você usa o IP 127.0.0.1 em todos os arquivos de configuração e no cliente. Para abrir para a internet é preciso IP público/VPS, liberar as portas no firewall e apontar o cliente para o IP externo. Comece sempre local antes de publicar.
Qual a ordem de inicialização dos executáveis?
Sempre DataServer primeiro (ele conecta no banco), depois ConnectServer, JoinServer e por último o GameServer. Se você abrir o GameServer antes do DataServer, ele não acha o banco e fecha ou trava na tela de conexão.
O cliente do Zhyper serve para qualquer season?
Não. O cliente precisa ser exatamente o que acompanha aquele release do Zhyper (mesma season e revisão). Um cliente de season diferente gera erro de conexão, crash no login ou itens invisíveis. Use sempre o cliente do próprio pacote.
Por que o GameServer fecha sozinho ao abrir?
Quase sempre é banco não restaurado, IP/porta errados nos arquivos de config ou o DataServer não estar aberto antes. Verifique nessa ordem: databases restauradas, DataServer rodando, IPs iguais em todos os .dat/.ini e portas livres.