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

Como adicionar novos monstros (BMD) ao cliente de MU Online

Guia técnico para inserir novos modelos de monstro (BMD) no cliente de MU Online: pasta Monster, texturas OZT/OZJ, slot de modelo, animações e a sincronização com o MonsterList do servidor.

GA Gabriel · Atualizado em 5 jul 2025 · ⏱ 16 min de leitura
Resposta rápida

Inserir um monstro inédito no MU Online é o tipo de customização que impressiona qualquer jogador veterano: um chefe de evento exclusivo, uma criatura que ninguém viu em outro servidor, um mob temático que dá identidade a um mapa novo. Mas por trás desse efeito está um dos trabalhos mais técnicos do

Inserir um monstro inédito no MU Online é o tipo de customização que impressiona qualquer jogador veterano: um chefe de evento exclusivo, uma criatura que ninguém viu em outro servidor, um mob temático que dá identidade a um mapa novo. Mas por trás desse efeito está um dos trabalhos mais técnicos do lado do cliente, porque um monstro no MU não é uma imagem — é um modelo tridimensional com malha, esqueleto, animações e texturas, empacotado no formato BMD e amarrado a um slot de modelo que o executável do jogo espera encontrar. E, tão importante quanto, esse modelo só vira um inimigo de verdade quando o servidor sabe que ele existe, quanto de vida tem, que dano causa e onde aparece. Este tutorial é para o administrador avançado que quer dominar todo o fluxo: preparar o BMD, tratar as texturas, encaixar no slot correto do cliente e sincronizar com o servidor. Como sempre, nomes de arquivos, numeração de slots e estrutura de pastas variam por season e cliente; use os exemplos como ilustração de conceitos reais e valide no seu próprio pacote.

Pré-requisitos

Antes de importar qualquer modelo, tenha em mãos o ambiente correto:

  • Backup completo da pasta Data\Monster do cliente e dos arquivos de monstro do servidor (MonsterList, Monster.txt, spawns).
  • Um cliente de teste isolado, para nunca distribuir um modelo quebrado direto aos jogadores.
  • Uma ferramenta de manipulação de BMD compatível com sua season (editores/visualizadores de BMD ou plugin de import/export para software 3D).
  • Conversores de OZT/OZJ para preparar as texturas no formato criptografado que o cliente lê.
  • Acesso ao MonsterList/Monster.txt do servidor e aos arquivos de spawn.
  • Base de servidor já funcionando. Se ainda não tem, comece pelo guia de como criar um servidor de MU Online.

> Nunca edite o BMD original que já está em uso. Trabalhe em cópias renomeadas e mantenha o modelo base intacto para poder voltar atrás.

Anatomia de um arquivo BMD

O BMD (Binary Model Data) é o coração de tudo que é tridimensional no MU Online. Um único arquivo .bmd de monstro contém, de forma compactada:

  • Malha (mesh): os vértices, faces e coordenadas de textura (UV) que formam a geometria visível.
  • Ossos (bones): a hierarquia de esqueleto que permite ao modelo se deformar e animar.
  • Ações (actions): as animações, cada uma indexada — andar, atacar, receber dano, morrer. O cliente chama essas ações por índice.
  • Referências de textura: os nomes dos arquivos de textura (OZT/OZJ) que cada parte da malha usa.

O detalhe crucial é que o BMD referencia as texturas pelo nome, e essas texturas precisam existir na mesma pasta do modelo. Se você importa um monstro de outro pacote e esquece de trazer as texturas — ou renomeia o BMD sem ajustar as referências —, o cliente carrega a geometria mas a pinta de branco, preto ou faz o modelo "piscar".

Onde os monstros vivem no cliente

Os modelos de monstro ficam, na maioria dos clientes, na pasta Data\Monster. A convenção de nomes costuma ser MonsterXX.bmd, com XX sendo um número que identifica o slot do modelo, acompanhado de suas texturas. Um monstro pode usar mais de uma textura: uma OZJ para o corpo sólido e uma OZT para partes com transparência, por exemplo.

ElementoExemplo de arquivoPapel
ModeloMonster123.bmdMalha, ossos, animações e referências de textura
Textura sólidamonster123.OZJJPG criptografado, sem canal alfa
Textura com alfamonster123_wing.OZTTGA criptografado, preserva transparência

O número do modelo (123 no exemplo) é o que amarra tudo: o servidor, ao descrever um monstro, informa um tipo que o cliente traduz para um índice de modelo. Esse mapeamento de tipo para modelo, dependendo da season, mora no executável ou em um arquivo de definição do cliente. Descobrir onde está esse mapeamento no seu pacote é parte essencial do trabalho.

Passo a passo para adicionar o monstro

  1. Escolha um slot de modelo livre. Verifique quais números de MonsterXX.bmd já estão ocupados e escolha um índice não utilizado, ou um slot que você pretende substituir.
  2. Prepare o BMD. Se o modelo veio de outro pacote, abra-o na sua ferramenta e confirme que as animações essenciais existem: idle/andar, ataque, dano e morte. Ajuste escala e orientação se necessário.
  3. Ajuste as referências de textura. Garanta que os nomes de textura dentro do BMD batem com os arquivos que você vai colocar na pasta.
  4. Converta as texturas. Transforme as imagens em OZJ (sólido) ou OZT (com alfa) usando o conversor do seu pacote.
  5. Renomeie e posicione. Coloque MonsterXX.bmd e suas texturas em Data\Monster, usando o número do slot escolhido.
  6. Registre o mapeamento de modelo. Faça o cliente associar o tipo de monstro do servidor ao slot de modelo, seja no executável seja no arquivo de definição, conforme sua season.
  7. Teste no cliente local antes de qualquer distribuição.

> Um monstro pode carregar visualmente sem HP, drop ou IA — isso é responsabilidade do servidor. Confirme o visual primeiro, depois amarre o comportamento no lado servidor.

Animações e ações: por que o índice importa

Cada ação de um monstro (andar, atacar, morrer) é uma animação indexada dentro do BMD. O engine do MU chama essas ações por número: quando o servidor manda o monstro atacar, o cliente reproduz a ação de índice correspondente. Se o modelo importado tem as animações em ordem diferente da esperada, você verá comportamentos bizarros — o monstro "ataca" fazendo a animação de morte, ou fica parado numa pose de dano permanente. Por isso, ao trazer um modelo de fora, é comum precisar reordenar ou remapear as ações para que os índices batam com o que o cliente espera para aquela categoria de criatura. Modelos de chefe (boss) e de mob comum podem ter conjuntos de animação diferentes, então respeite a categoria do slot que você está ocupando.

# Ilustração conceitual dos índices de ação esperados (varia por season/cliente)
Action 0 : Stop/Idle      # parado
Action 1 : Walk           # andando
Action 2 : Attack         # ataque
Action 3 : Shock/Damage   # recebendo dano
Action 4 : Die            # morte

Texturas: quando usar OZT e quando usar OZJ

A escolha entre OZT e OZJ não é estética, é técnica, e definir errado gera artefatos visuais:

  • OZJ é um JPG criptografado. Não tem canal alfa (transparência). Use para superfícies sólidas: pele, armadura, pedra, metal. É mais leve e comprime bem cores contínuas.
  • OZT é um TGA criptografado. Preserva o canal alfa, ou seja, transparência real. Use para asas, membranas, efeitos, cabelos vazados, qualquer parte que precise de bordas transparentes.

Se você aplicar uma textura sólida (OZJ) numa parte que deveria ser vazada, o monstro ganha "retângulos" opacos ao redor de asas ou tentáculos. Se aplicar OZT desnecessariamente, desperdiça memória. Prefira dimensões potência de dois (256x256, 512x512) para compatibilidade máxima do engine.

Sincronização com o servidor: MonsterList

O modelo no cliente é só metade do trabalho. O monstro existe para o jogo quando o servidor o define. No lado servidor, tipicamente em um arquivo MonsterList/Monster.txt, você declara os atributos do monstro: nome, tipo (que aponta para o slot de modelo do cliente), nível, HP, dano mínimo e máximo, defesa, resistências, e associa a tabela de drop e o comportamento de IA.

# Ilustração conceitual de uma entrada de MonsterList (formato varia por emulador)
# Type  Name              Level  HP     MinDmg MaxDmg Def  MoveRange AttackType
  123   "Guardiao Sombrio" 120   45000   850    1100   420   3         1

O campo Type é a ponte entre servidor e cliente: é ele que precisa corresponder ao slot de modelo MonsterXX.bmd. Se o servidor spawna o tipo 123 mas no cliente o Monster123.bmd não existe ou está mapeado para outra coisa, os jogadores veem um monstro invisível, um modelo genérico ou o cliente trava. Depois de registrar o monstro no MonsterList, você ainda precisa adicioná-lo ao spawn de algum mapa (arquivo de spawn/MonsterSetBase), informando o mesmo tipo, o mapa, as coordenadas e a quantidade. Cliente, MonsterList e spawn precisam falar o mesmo número.

Distribuição via launcher

Uma vez testado localmente, o monstro precisa chegar aos jogadores. O MonsterXX.bmd e suas texturas entram no pacote de patch do launcher/updater: o jogador baixa o modelo e as texturas antes de conectar. Se um jogador não tiver os arquivos, ele não conseguirá renderizar a criatura — no melhor caso vê um modelo genérico, no pior o cliente fecha ao tentar desenhá-lo. Por isso, sempre que você adiciona um monstro que aparece em produção, os arquivos do cliente entram na atualização obrigatória. Versione o patch para que quem já baixou não repita o download e para que novos jogadores recebam o conjunto completo de modelos.

Erros comuns e soluções

SintomaCausa provávelSolução
Monstro aparece branco, preto ou piscandoTextura ausente ou nome divergente da referência no BMDConfira e alinhe os nomes das texturas com o que o BMD referencia
Monstro invisível no jogoSlot de modelo errado ou tipo do servidor sem BMD correspondenteGaranta que o Type do servidor aponta para o MonsterXX.bmd existente
Animação de ataque parece morte/danoÍndices de ação do BMD fora da ordem esperadaReordene/remapeie as ações conforme a categoria do slot
Bordas opacas em asas/partes vazadasTextura sólida OZJ onde deveria ser OZT com alfaReconverta a parte transparente para OZT
Cliente trava ao spawnar o monstroModelo corrompido ou índice de modelo inexistenteRestaure do backup e reimporte o BMD com cuidado
Monstro aparece mas não tem HP/dropRegistrado só no cliente, não no MonsterListDeclare o monstro no MonsterList e amarre a tabela de drop

Checklist de lançamento

  • Backup de Data\Monster (cliente) e dos arquivos de monstro do servidor
  • Slot de modelo livre escolhido e confirmado
  • BMD com as animações essenciais (idle, andar, atacar, dano, morte)
  • Referências de textura do BMD conferidas e alinhadas
  • Texturas convertidas corretamente (OZJ sólido, OZT com alfa)
  • MonsterXX.bmd e texturas posicionados em Data\Monster
  • Mapeamento de tipo para modelo ajustado conforme a season
  • Monstro registrado no MonsterList com atributos e drop
  • Spawn adicionado no mapa com o mesmo Type
  • Comportamento testado no cliente local (visual, ataque, morte)
  • Arquivos do modelo adicionados ao launcher/updater e versionados
  • Teste final com cliente "limpo" baixando via patch

Adicionar um monstro é um exercício de precisão: o modelo, as texturas, as animações e o registro no servidor precisam estar todos coerentes, amarrados pelo mesmo número de tipo. Quando tudo se encaixa, o resultado é uma criatura que parece parte nativa do jogo — e é exatamente essa sensação de "isso não existe em outro servidor" que fideliza sua comunidade.

Perguntas frequentes

O que é um arquivo BMD?

É o formato binário de modelo 3D do MU Online. Um BMD guarda a malha (mesh), os ossos (bones), as animações (actions) e as referências às texturas do modelo, seja de personagem, monstro, item ou objeto de cenário.

Onde ficam os modelos de monstro no cliente?

Tipicamente na pasta Data\\Monster, com nomes como MonsterXX.bmd acompanhados de suas texturas OZT/OZJ. O caminho exato varia por season e cliente, então confirme no seu pacote.

Preciso registrar o monstro no servidor também?

Sim. O cliente apenas desenha o modelo; o monstro só ganha vida, HP, dano, drop e spawn quando é registrado no MonsterList do servidor. O tipo do monstro precisa apontar para o slot de modelo certo no cliente.

As texturas do monstro são OZT ou OZJ?

Depende. OZT é um TGA criptografado e preserva transparência (alfa), útil para partes vazadas; OZJ é um JPG criptografado, sem alfa, para superfícies sólidas. Um mesmo monstro pode usar os dois.

Por que meu monstro novo aparece deitado, invisível ou piscando?

Quase sempre é slot de modelo errado, textura ausente/renomeada, ou animações incompatíveis. O cliente espera índices de ação específicos (andar, atacar, morrer); se o BMD não os tiver, a renderização quebra.

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