O maior portal de MU Online do Brasil — desde 2003
Tutorial Intermediário Cliente

Como empacotar o cliente de MU Online para distribuição (instalador)

Aprenda a transformar a pasta do cliente de MU Online em um instalador profissional, com atalhos, registro de versão e verificação de integridade para distribuir aos jogadores.

BR Bruno · Atualizado em 14 jul 2026 · ⏱ 12 de leitura
Resposta rápida

Empacotar o cliente de MU Online é a etapa que separa um projeto amador de um servidor que passa credibilidade logo no primeiro contato. O jogador baixa um único arquivo, executa, escolhe a pasta, ganha um atalho na área de trabalho e abre o jogo. Nada de ZIP solto com dezenas de DLLs espalhadas, na

Empacotar o cliente de MU Online é a etapa que separa um projeto amador de um servidor que passa credibilidade logo no primeiro contato. O jogador baixa um único arquivo, executa, escolhe a pasta, ganha um atalho na área de trabalho e abre o jogo. Nada de ZIP solto com dezenas de DLLs espalhadas, nada de "extraia aqui e reze para funcionar". Um instalador bem feito reduz o suporte, diminui a taxa de desistência no download e ainda protege a integridade dos arquivos que você distribui.

Neste tutorial você vai montar, do zero, um instalador profissional para o cliente do seu servidor usando o Inno Setup (com menções ao NSIS como alternativa). Vamos cobrir a preparação da pasta base, o script de compilação, atalhos, ícone, verificação de versão, requisitos de sistema, assinatura digital e as armadilhas mais comuns que fazem o antivírus do jogador apagar seu cliente antes mesmo do primeiro login. Os valores citados (versões de DirectX, tamanho, nomes de pastas) são exemplos e variam por season/cliente.

Se você ainda não tem a base do servidor rodando, comece pelo guia como montar um servidor de MU Online e volte aqui quando o cliente já estiver conectando na sua Season.

Pré-requisitos

Antes de abrir qualquer ferramenta de empacotamento, tenha em mãos:

  • Pasta do cliente já funcional e testada, conectando no IP/porta do seu servidor. Se o cliente não abre na sua máquina, ele não vai abrir empacotado.
  • Main.exe editado (via editor de Main compatível com sua season) apontando para o IP público ou domínio, porta do Connect Server e serial correto.
  • Arquivos de proteção (anti-cheat/packet, ex.: GameGuard, Themida wrap, ou o esquema que sua season usa) já integrados e testados.
  • Inno Setup 6+ instalado (gratuito, em jrsoftware.org) ou NSIS 3+.
  • Ícone .ico do servidor (256x256 recomendado) para o atalho e o executável do instalador.
  • Espaço em disco equivalente a pelo menos 2x o tamanho do cliente, para gerar o setup sem apertos.
  • Opcional, mas recomendado: certificado de assinatura de código (Code Signing) para reduzir alertas de antivírus.

Uma dica de ouro: crie uma pasta limpa chamada cliente_release e copie apenas os arquivos que o jogador precisa. Não inclua .pdb, logs, dumps, arquivos .bak, editores de Main ou ferramentas internas. Cada arquivo desnecessário aumenta o download e o risco de falso positivo.

Estrutura recomendada da pasta do cliente

Antes de empacotar, organize. Uma estrutura típica de cliente (varia por season/cliente) se parece com:

ItemFunçãoIncluir no instalador?
main.exeExecutável principal do jogoSim
Data\Modelos, texturas, mapas (BMD/OZB/OZJ/OZT)Sim
Data\Local\Interface e textos localizadosSim
Music\ e Sound\ÁudioSim (ou opcional)
launcher.exeLauncher/atualizador do servidorSim (recomendado)
*.dll de proteçãoAnti-cheat / DirectX wrappersSim
readme.txtInstruções e regras rápidasOpcional
*.pdb, *.log, dump\DepuraçãoNão

Rode o cliente uma última vez a partir dessa pasta limpa. Se logar normalmente, ela está pronta para virar instalador.

Passo 1 — Escolhendo a ferramenta de empacotamento

Há três abordagens comuns:

  1. Inno Setup — o mais popular na cena de MU. Script legível (Pascal-like), documentação farta, suporte a compressão LZMA2 forte, páginas customizáveis e pós-instalação simples.
  2. NSIS — extremamente flexível e leve, gera instaladores menores, mas a linguagem de script é mais crua.
  3. Empacotadores comerciais (InstallShield, Advanced Installer) — bonitos, porém pagos e exagerados para o caso.

Para 90% dos servidores, Inno Setup é a escolha certa: gratuito, robusto e fácil de manter entre seasons. Seguiremos com ele.

Passo 2 — Criando o script do Inno Setup

Instale o Inno Setup e abra o Compiler. Você pode usar o assistente (Script Wizard), mas escrever o .iss manualmente dá muito mais controle. Crie um arquivo setup.iss ao lado da pasta cliente_release com o conteúdo abaixo (ajuste nomes, versões e caminhos ao seu projeto):

[Setup]
AppName=ViciadosMU Season X
AppVersion=1.0.0
AppPublisher=ViciadosMU
DefaultDirName={autopf}\ViciadosMU
DefaultGroupName=ViciadosMU
UninstallDisplayIcon={app}\main.exe
OutputBaseFilename=ViciadosMU_Setup_v1.0.0
Compression=lzma2/max
SolidCompression=yes
SetupIconFile=icone.ico
WizardStyle=modern
PrivilegesRequired=admin
ArchitecturesInstallIn64BitMode=x64

[Languages]
Name: "brazilian"; MessagesFile: "compiler:Languages\BrazilianPortuguese.isl"

[Files]
Source: "cliente_release\*"; DestDir: "{app}"; Flags: recursesubdirs createallsubdirs ignoreversion

[Icons]
Name: "{group}\ViciadosMU"; Filename: "{app}\main.exe"
Name: "{group}\Desinstalar ViciadosMU"; Filename: "{uninstallexe}"
Name: "{autodesktop}\ViciadosMU"; Filename: "{app}\main.exe"; Tasks: desktopicon

[Tasks]
Name: "desktopicon"; Description: "Criar atalho na Área de Trabalho"; GroupDescription: "Atalhos:"

[Run]
Filename: "{app}\main.exe"; Description: "Iniciar o jogo agora"; Flags: nowait postinstall skipifsilent

Cada seção tem um papel:

  • [Setup] define nome, versão, pasta padrão ({autopf} = Program Files), ícone e compressão. SolidCompression=yes com lzma2/max costuma render a melhor taxa para clientes de MU.
  • [Files] empacota tudo dentro de cliente_release, recursivamente. ignoreversion garante que os arquivos sejam sempre substituídos, evitando o clássico bug de DLL antiga não atualizada.
  • [Icons] cria os atalhos no menu Iniciar e, opcionalmente, na área de trabalho.
  • [Tasks] transforma o atalho de desktop em uma opção marcável pelo jogador.
  • [Run] oferece iniciar o jogo ao final da instalação.

Passo 3 — Compilando o instalador

No Inno Setup Compiler, abra o setup.iss e pressione F9 (ou Build > Compile). Ao final, o instalador aparecerá em Output\ViciadosMU_Setup_v1.0.0.exe. Teste-o em uma máquina limpa (ou máquina virtual) sem cliente instalado: essa é a única forma confiável de descobrir dependências faltando.

Durante o teste, confirme:

  1. A instalação escolhe pasta corretamente e cria atalhos.
  2. O jogo abre e conecta no servidor após instalar.
  3. A desinstalação remove os arquivos (guarde Save/configs se necessário).
  4. Nenhum arquivo essencial ficou de fora (teste em máquina que nunca teve MU).

Passo 4 — Requisitos de sistema e dependências

Clientes de MU costumam depender de DirectX 9.0c e, dependendo da season, de Visual C++ Redistributable e do .NET Framework (para launchers). Nunca assuma que a máquina do jogador tem tudo. Inclua os redistribuíveis e execute-os silenciosamente:

[Files]
Source: "redist\dxwebsetup.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall
Source: "redist\vc_redist.x86.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall

[Run]
Filename: "{tmp}\vc_redist.x86.exe"; Parameters: "/quiet /norestart"; StatusMsg: "Instalando componentes..."
Filename: "{tmp}\dxwebsetup.exe"; Parameters: "/Q"; StatusMsg: "Verificando DirectX..."

Isso elimina a esmagadora maioria dos erros de "o programa não pôde ser iniciado porque falta xxxx.dll". As versões exatas variam por season/cliente.

Passo 5 — Verificação de integridade e versão

Para evitar que o jogador rode um cliente corrompido pela metade (download interrompido), o instalador já garante a integridade dos arquivos internos via checksum do próprio .exe. Mas você deve também versionar o cliente para que o launcher saiba quando atualizar. Uma prática comum é gerar um arquivo version.txt na raiz com a versão e um hash da pasta:

version=1.0.0
build=20251026
data_hash=8f3c9e1a...

O launcher, ao abrir, lê esse arquivo, compara com o servidor de patch e baixa apenas o que mudou. Assim as próximas atualizações não exigem novo instalador completo.

Passo 6 — Assinatura digital (opcional, mas recomendada)

O maior inimigo da distribuição não é o jogador: é o antivírus. Instaladores empacotados, launchers e wrappers de proteção são frequentemente marcados como suspeitos. Assinar o .exe com um certificado de code signing reduz muito os falsos positivos e mostra o nome do seu projeto no aviso do Windows (em vez de "Editor desconhecido"). No Inno Setup, configure o assinante:

[Setup]
SignTool=meucert

E registre a ferramenta de assinatura (signtool.exe) nas preferências do Inno Setup. Sem certificado, ao menos submeta seu instalador aos formulários de "falso positivo" dos principais antivírus antes do lançamento.

Erros comuns e soluções

ErroCausa provávelSolução
Antivírus apaga o instaladorFalso positivo em wrapper/launcherAssinar o .exe, submeter aos fornecedores, usar Themida com cautela
"Falta d3dx9_XX.dll"DirectX ausente na máquina do jogadorIncluir e rodar dxwebsetup.exe /Q no [Run]
Cliente abre mas não conectaMain.exe apontando para IP local/erradoReeditar o Main com IP público e recompilar o setup
DLL antiga não atualizaFalta a flag ignoreversionAdicionar ignoreversion na seção [Files]
Instalador giganteIncluiu Music/Sound sem compressão sólidaAtivar SolidCompression=yes e lzma2/max
Atalho não abre nadaFilename apontando para caminho erradoUsar {app}\main.exe, testar em máquina limpa
"Editor desconhecido" assusta jogadoresExecutável não assinadoObter certificado de code signing

Boas práticas de distribuição

  • Nunca distribua a pasta de desenvolvimento inteira. Sempre parta de uma cliente_release limpa.
  • Hospede o instalador em pelo menos dois espelhos (ex.: um serviço de armazenamento e um mirror próprio), evitando ponto único de falha no dia do lançamento.
  • Publique o hash MD5/SHA-256 do instalador no site para o jogador conferir integridade.
  • Mantenha um changelog visível: jogadores confiam mais em projetos que documentam o que muda a cada versão.
  • Teste em Windows 10 e 11 e, se possível, em máquina sem privilégios de administrador para ver o comportamento do UAC.

Checklist de lançamento

  • Pasta cliente_release limpa, sem arquivos de debug ou editores
  • Main.exe apontando para IP/porta/serial corretos e testado
  • Arquivos de proteção integrados e validados
  • Redistribuíveis (DirectX, VC++) incluídos e executando silenciosamente
  • Script .iss compilado sem avisos
  • Instalação testada em máquina/VM limpa (sem MU prévio)
  • Atalhos de menu e desktop funcionando
  • Jogo conecta ao servidor após instalar
  • Desinstalação removendo arquivos corretamente
  • version.txt gerado para o launcher de patch
  • Instalador assinado (ou submetido a falso positivo nos antivírus)
  • Hash SHA-256 publicado e dois espelhos de download ativos

Com o instalador pronto, testado em máquina limpa e assinado, seu servidor entrega uma primeira impressão de projeto sério. O próximo passo natural é reduzir o tamanho do download para que mais jogadores completem a instalação sem desistir no meio do caminho.

Perguntas frequentes

Preciso pagar por um instalador?

Não. Ferramentas como Inno Setup e NSIS são gratuitas e cobrem 99% das necessidades de um servidor de MU Online.

O antivírus acusa meu instalador como vírus, é normal?

Falsos positivos são comuns com launchers e instaladores empacotados. Assinar o executável com um certificado de código e submeter aos fornecedores de antivírus reduz drasticamente o problema.

Devo incluir o Main.exe já editado no instalador?

Sim, o cliente distribuído deve conter o Main já apontando para o IP/porta e serial do seu servidor, mais os arquivos de proteção configurados.

Qual a diferença entre instalador e arquivo compactado?

O compactado apenas descompacta arquivos; o instalador cria atalhos, registra a versão, valida requisitos e permite desinstalação limpa, passando mais confiança ao jogador.

Posso atualizar o cliente depois sem reinstalar?

Sim. O ideal é que o instalador coloque um launcher que faça patch incremental, evitando novos downloads completos a cada season.

BR
Editor de eventos, mapas e itens

Bruno é especialista em eventos, mapas, bosses e economia de itens do MU Online. Documenta cada detalhe com base em jogo real.

Continue lendo

Artigos relacionados