El mayor portal de MU Online de Brasil — desde 2003
Tutorial Avanzado Cliente

Cómo agregar nuevos mapas al cliente de MU Online

Aprende a agregar un nuevo mapa al cliente de MU Online desde cero: carpeta World, archivos EncTerrain, height map, lightmap, objetos BMD y la sincronización obligatoria con el servidor.

BR Bruno · Actualizado el 30 jun 2025 · ⏱ 16 min de lectura
Respuesta rápida

Agregar un nuevo mapa al cliente de MU Online es una de las tareas más completas que un administrador puede enfrentar del lado del cliente: implica entender cómo el juego representa terreno, colisión, altura, iluminación y objetos tridimensionales, y cómo todos esos archivos deben conversar entre sí

Agregar un nuevo mapa al cliente de MU Online es una de las tareas más completas que un administrador puede enfrentar del lado del cliente: implica entender cómo el juego representa terreno, colisión, altura, iluminación y objetos tridimensionales, y cómo todos esos archivos deben conversar entre sí y, principalmente, con el servidor. No es un trabajo de "copiar y pegar una carpeta"; es un ejercicio de comprender la arquitectura de mundo de MU y respetar las dependencias entre cliente y emulador. Este tutorial fue escrito para el administrador avanzado que ya domina la estructura básica de un servidor y ahora quiere expandir el mundo del juego con un mapa nuevo, sea un escenario personalizado de evento, una arena de PvP o una zona de farm exclusiva. Como siempre en el universo de los emuladores, los nombres exactos de archivos, los IDs y la estructura de carpetas varían por season y cliente; trata los ejemplos de abajo como ilustración de conceptos reales y revisa siempre la organización de tu propio paquete antes de aplicar.

Requisitos previos

Antes de tocar cualquier archivo, asegúrate de tener el entorno y el conocimiento mínimos para trabajar con seguridad:

  • Backup completo de la carpeta Data del cliente y de los archivos de configuración de mapa del servidor. Este es el paso innegociable.
  • Un cliente de prueba separado del que usan los jugadores, para no distribuir archivos rotos.
  • Un editor de mapas de MU compatible con tu season (comúnmente llamado World Editor, MU Map Editor o similar).
  • Herramientas de cifrado/descifrado de archivos EncTerrain y conversores de OZB, OZJ y OZT de tu paquete.
  • Acceso a los archivos de configuración de mapa del servidor (definiciones de gates, zonas seguras, movimiento y spawns).
  • Si aún no has montado la base del servidor, empieza por la guía de cómo crear un servidor de MU Online antes de avanzar aquí.

> Trabaja siempre en copias. Un solo byte equivocado en un archivo cifrado de terreno puede colgar el cliente en la pantalla de carga sin ningún mensaje de error claro.

Cómo representa el cliente un mapa

En MU Online, cada mapa es una cuadrícula (grid) de celdas, tradicionalmente 256 por 256 en el engine clásico. Cada celda carga información de textura, altura, iluminación y atributos de colisión. El cliente arma ese escenario leyendo un conjunto de archivos que están dentro de una carpeta de mundo, normalmente nombrada WorldN, dentro de Data. La convención más común asocia la carpeta World1 al mapa de ID 0 (Lorencia), World2 al ID 1 (Dungeon), y así sucesivamente — es decir, N = ID + 1. Esa correspondencia varía por cliente, así que lo primero que hay que hacer es abrir la carpeta Data y mapear qué WorldN corresponde a qué mapa conocido de tu paquete.

Cada carpeta de mundo reúne, típicamente, los siguientes archivos, que trabajan en conjunto:

Archivo (ejemplo)FunciónObservación
EncTerrain1.attAtributos de colisión: celda bloqueada, transitable, zona segura, aguaCifrado; define por dónde puede caminar el jugador
EncTerrain1.mapCapas de textura: qué tile aparece en cada celdaCifrado; controla el visual del suelo
EncTerrain1.objPosición, rotación y escala de los objetos BMD del escenarioCifrado; arma árboles, casas, estatuas
TerrainHeight.OZBMapa de altura del terrenoDefine el relieve; un OZB es un BMP cifrado
TerrainLight.OZJLightmap: iluminación estática del escenarioUn OZJ es un JPG cifrado
Tile*.OZJ / .OZTTexturas de los tiles del sueloPasto, tierra, piedra, arena

El número en el nombre de los archivos EncTerrain acompaña al mapa. En muchos paquetes el EncTerrain1.* pertenece al World1; en otros la numeración es distinta. No lo presumas: verifícalo.

Paso a paso para crear la carpeta del mapa nuevo

El camino más seguro para empezar es partir de un mapa existente parecido al que quieres, y transformarlo, en vez de generar todo desde cero. Así heredas una estructura de archivos que ya funciona.

  1. Elige el slot de mapa. Decide si vas a reutilizar un slot poco usado o registrar un ID nuevo. Reutilizar es más simple y compatible; un ID inédito exige soporte en el ejecutable y en el emulador.
  2. Duplica una carpeta base. Copia, por ejemplo, World1 a una carpeta nueva, digamos World52, si tu cliente acepta ese ID. Renombra los archivos internos según la convención (ej.: EncTerrain52.att, EncTerrain52.map, EncTerrain52.obj).
  3. Ábrela en el editor de mapas. Carga la carpeta descifrada en tu World Editor. Es ahí donde vas a redibujar el terreno, pintar texturas, ajustar altura y posicionar objetos.
  4. Edita el terreno y las texturas. Pinta las capas de tile, esculpe el relieve mediante el height map y ajusta el lightmap para la atmósfera deseada.
  5. Posiciona los objetos BMD. Árboles, portones, estatuas y estructuras son modelos .bmd referenciados por el archivo de objetos. Deben existir en la carpeta de objetos correspondiente del mundo.
  6. Define los atributos de colisión. En el archivo de atributos, marca celdas bloqueadas (paredes, agua intransitable), zonas seguras (donde no hay PvP ni daño) y áreas transitables.
  7. Vuelve a cifrar los archivos. Al terminar, genera de vuelta los EncTerrain cifrados y los OZB/OZJ en el formato que el cliente lee.

> Las zonas seguras mal marcadas son una fuente clásica de quejas: jugadores muriendo en lo que debería ser un área protegida, o PvP imposible en una arena. Revisa el .att con calma.

Height map, lightmap y la atmósfera del escenario

El height map (TerrainHeight.OZB) es lo que da relieve al mapa. Es, esencialmente, una imagen en tonos de gris donde el valor de cada píxel representa la altura de esa celda: más claro, más alto; más oscuro, más bajo. Editarlo permite crear colinas, depresiones, rampas y mesetas. Un error común es generar variaciones de altura demasiado bruscas, creando "paredes" invisibles donde el personaje se traba. Trabaja con transiciones suaves y prueba caminando por el mapa.

El lightmap (TerrainLight.OZJ) controla la iluminación estática. Es donde defines si el mapa tiene un clima soleado, sombrío, rojizo (típico de mapas infernales) o azulado (mapas helados). Como es un OZJ —un JPG cifrado—, puedes editarlo en cualquier editor de imagen después de convertirlo, pintando áreas de luz y sombra. La combinación de un height map bien esculpido y un lightmap coherente es lo que hace que un mapa parezca profesional en vez de "plano".

Objetos BMD del escenario

Los objetos que pueblan el mapa —construcciones, vegetación, decoración— son modelos .bmd almacenados en la carpeta de objetos del mundo (algo como Object52, acompañando el número del mundo). El archivo de objetos (.obj) del terreno guarda, para cada instancia, qué modelo usar y dónde posicionarlo, con rotación y escala. Si referencias un índice de objeto que no existe en la carpeta, el cliente puede colgarse o simplemente no renderizar ese ítem. Al traer objetos de otro mapa, copia tanto el .bmd como sus texturas (OZJ/OZT) a la carpeta del nuevo mundo.

# Ilustracion conceptual de una entrada de objeto en el escenario
# (el formato binario real lo genera el editor; esto es solo didactico)
ObjectIndex : 12        # que BMD de la carpeta Object del mundo
PositionX   : 128.0     # coordenada en el grid
PositionY   : 96.0
PositionZ   : 40.0      # altura, alineada al height map
Rotation    : 0,0,90    # grados en los ejes
Scale       : 1.0

Sincronización obligatoria con el servidor

Aquí está el punto que separa a quien entiende de arquitectura de MU de quien solo toca archivos: el mapa no existe solo porque el cliente lo dibuja. El servidor es la autoridad sobre por dónde puede ir el jugador, cuáles son las zonas seguras reales, dónde están los gates (puntos de teleporte/entrada) y qué monstruos aparecen. El cliente y el servidor deben coincidir en el mismo ID de mapa.

Del lado del servidor, agregar el mapa implica, típicamente:

  • Registrar el ID del mapa en las definiciones de mapas del emulador.
  • Configurar los gates (archivo de movimiento/portales) para que exista una forma de entrar y salir del mapa nuevo — por comando, NPC de teleporte o conexión con otro mapa.
  • Definir zonas seguras y reglas de PvP del lado servidor, que deben coincidir con lo que marcaste en el .att del cliente.
  • Agregar spawns de monstruos si el mapa es de farm, referenciando el mismo ID.

Si el cliente tiene el World52 pero el servidor no reconoce el mapa 51 (recordando la convención N = ID + 1), el jugador será desconectado o verá el escenario sin colisión coherente. La regla de oro: mismo ID en ambos lados, siempre.

Distribución vía launcher

Después de probar exhaustivamente en entorno local, el mapa necesita llegar a los jugadores. Es el launcher/updater quien lo hace: empaquetas la carpeta WorldN completa (archivos EncTerrain, OZB, OZJ, tiles) y la carpeta de objetos correspondiente, y agregas esos archivos al patch. Cuando el jugador abre el juego, el launcher descarga los archivos nuevos antes de conectar. Sin los archivos locales, el cliente no logra armar el escenario —por lo tanto, la distribución no es opcional. Mantén el versionado del patch organizado para que quien ya tiene el mapa no descargue todo de nuevo, y para que los jugadores nuevos reciban el conjunto completo.

Errores comunes y soluciones

SíntomaCausa probableSolución
El cliente se cuelga en la pantalla de loadingArchivo EncTerrain corrupto o mal recifradoRestaura del backup y vuelve a cifrar con la herramienta correcta
El jugador es desconectado al entrar al mapaID del mapa no registrado en el servidorRegistra el mismo ID del lado servidor y sincroniza
Escenario sin objetos u objetos invisiblesÍndice de objeto sin BMD correspondiente en la carpetaCopia los .bmd y texturas a la carpeta de objetos del mundo
El personaje se traba al caminar en el relieveHeight map con variaciones demasiado bruscasSuaviza las transiciones de altura en el editor
Muerte en un área que debería ser seguraZona segura marcada en el cliente pero no en el servidorAlinea las zonas seguras en el .att y en la config del servidor
Las texturas del suelo aparecen mal o parpadeandoTiles OZJ/OZT ausentes o con nombre cambiadoVerifica que todos los tiles referenciados existan en la carpeta

Lista de verificación de lanzamiento

  • Backup completo de la carpeta Data del cliente y de las configs de mapa del servidor
  • Slot/ID de mapa definido y confirmado en ambos lados (cliente y servidor)
  • Carpeta WorldN creada con todos los EncTerrain, height, light y tiles
  • Objetos BMD y sus texturas presentes en la carpeta de objetos del mundo
  • Atributos de colisión y zonas seguras revisados en el .att
  • Height map probado caminando por todo el mapa
  • Lightmap coherente con la atmósfera pretendida
  • Archivos recifrados en el formato que el cliente lee
  • Servidor con ID registrado, gates, zonas seguras y spawns configurados
  • Entrada y salida del mapa probadas por comando y/o NPC
  • Paquete del mapa agregado al launcher/updater y versionado
  • Prueba final con un cliente "limpio" descargando vía patch

Agregar un mapa es, en el fondo, un trabajo de coordinación: decenas de archivos que deben ser coherentes entre sí y con el servidor. Ve con calma, prueba cada etapa por separado y nunca te saltes el backup. Un mapa nuevo bien hecho es una de las formas más marcantes de dar identidad a tu servidor y sorprender a jugadores que ya vieron todos los escenarios clásicos de MU.

Preguntas frecuentes

¿Necesito tocar el servidor para que aparezca un mapa nuevo?

Sí. El cliente dibuja el escenario, pero el mapa solo existe de verdad cuando el servidor conoce el ID, define zonas seguras, gates y spawns. Cliente y servidor deben usar exactamente el mismo número de mapa.

¿Cuál es la relación entre la carpeta WorldN y el ID del mapa?

En la mayoría de los clientes la carpeta World1 corresponde al mapa de ID 0, World2 al ID 1 y así sucesivamente, es decir, N = ID + 1. Esto varía por season y cliente, así que confírmalo en tu paquete antes de crear la carpeta.

¿Puedo crear un mapa totalmente inédito o solo reutilizar slots?

Depende de cuánto soporten el ejecutable y el emulador. Muchos proyectos reutilizan un slot de mapa existente y cambian el contenido; agregar un ID realmente nuevo puede requerir soporte en el main y en el emulador.

¿Los archivos EncTerrain están cifrados?

Sí. El prefijo Enc indica terreno cifrado por XOR. Editas la versión descifrada en un editor de mapas y la vuelves a cifrar antes de distribuir, usando las herramientas propias de tu paquete.

¿Cómo distribuyo el mapa nuevo a los jugadores?

Empaqueta la carpeta WorldN y los objetos en el launcher/updater. El jugador descarga los archivos junto al patch, y nadie puede entrar al mapa sin los archivos locales correspondientes.

BR
Editor de eventos, mapas e ítems

Bruno es especialista en eventos, mapas, bosses y economía de ítems de MU Online. Documenta cada detalle basándose en el juego real.

Sigue leyendo

Artículos relacionados