Saltar al contenido
Blog

Conflictos de mapas en FiveM: MLO parpadea y faltan props

¿Paredes que parpadean, props que desaparecen, un MLO invisible? Por qué chocan los mapas de FiveM, qué rompe cada tipo de archivo y cómo fusionar los .ymap.

Por Termi

8 min de lectura
  • Maps
  • MLO
  • Desktop app
En esta página

Añades un MLO nuevo, reinicias el servidor y vas a verlo. El edificio está ahí, pero la comisaría del otro lado de la ciudad ahora parpadea, a un aparcamiento le faltan las farolas y una pared del interior desaparece cuando te acercas. Nada en la consola dice por qué. Es un conflicto de mapas, y es uno de los problemas más comunes en cualquier servidor de FiveM que corra más de un par de mapas. Esta guía explica de dónde vienen los conflictos, cómo saber de qué tipo es el tuyo y cómo arreglarlos sin pasar una tarde en CodeWalker.

Por qué chocan los mapas

La mayoría de los mapas no construyen la ciudad desde cero. Editan piezas de GTA V que ya existen: mueven una valla, borran una farola que estorba o abren un hueco en la oclusión de una manzana para que se vea su interior. Para hacerlo, incluyen su propia copia de un archivo del juego base, con el mismo nombre que el original.

El problema empieza cuando dos resources incluyen una copia del mismo archivo. El juego carga solo una: la del resource que arranca el último. Todo lo que el otro mapa cambió en ese archivo desaparece sin más.

server.cfg
ensure pd_mlo
ensure burgershot_mlo
ensure street_lights

Si ambos MLO hacen streaming de dt1_05_strm_1.ymap, solo se carga la copia de burgershot_mlo. Los cambios de la comisaría nunca llegan al juego, así que su interior se dibuja con la manzana original alrededor. Intercambiar las dos líneas no ayuda, solo traslada el fallo al otro mapa.

Los tipos de conflicto y qué rompen

El tipo de archivo dice mucho de lo que verás en el juego. Estos son los que más te vas a encontrar.

Mapa que parpadea (conflicto de oclusión)

Para ahorrar trabajo, GTA V no dibuja lo que cree que está oculto tras las paredes. Esos bloqueadores invisibles se llaman occluders y viven dentro de los archivos .ymap. Un MLO tiene que quitar los occluders que ocultarían su interior. Cuando gana la copia de otro mapa, los occluders viejos vuelven: el interior parpadea, desaparece al acercarte o ves a través de las paredes directo al vacío.

Conflicto de colocación de props (.ymap)

Un .ymap también indica qué objetos hay y dónde: edificios, props, LODs, luces, hierba, incluso los puntos donde aparecen los coches aparcados. Cuando dos mapas editan el mismo y solo se carga una copia, ves props que faltan, edificios que aparecen y desaparecen, farolas que no se encienden o un árbol que crece en mitad de un garaje nuevo.

Conflicto de archetypes (.ytyp)

Un .ytyp define los objetos en sí: qué modelo usa un prop, a qué distancia sigue visible y, en los MLO, las habitaciones y los portales del interior. Si dos copias no coinciden, los props aparecen con el modelo equivocado o no aparecen, y un interior puede perder una habitación.

Conflictos de colisión y de modelos 3D (.ybn, .ydr)

Un .ybn es colisión: por dónde puedes caminar y qué te frena. Un .ydr es un modelo 3D. Un choque aquí se nota al atravesar paredes, topar con barreras invisibles, caer a través de un suelo o ver un prop con la forma o las texturas equivocadas. Estos archivos son objetos completos y no listas de cambios, así que no hay nada que combinar: decides qué copia debe ganar y te aseguras de que ese resource arranque el último.

Arreglarlo a mano

Hasta ahora, el arreglo habitual era algo así:

  1. Buscar en todos los resources archivos con el mismo nombre.
  2. Abrir cada copia en CodeWalker y compararlas entidad por entidad.
  3. Copiar los props, occluders y luces de un archivo al otro y borrar lo que un mapa quitó.
  4. Guardar el resultado en un resource nuevo, renombrar o borrar los originales y dejar bien el orden de arranque.
  5. Reiniciar, ir a cada sitio que cambió y esperar que no se haya roto nada más.

Para un solo archivo son una hora de trabajo cuidadoso. Un servidor grande tiene decenas, y en cuanto un mapa recibe una actualización, toca repetirlo todo. También es fácil equivocarse: si se te escapa un occluder, el parpadeo se queda.

Fusiónalos en pocos clics

El Map Merger de la app de escritorio de FiveDock hace ese trabajo por ti. Lee tu server.cfg, encuentra cada .ymap y .ytyp que más de un resource iniciado hace streaming y pliega cada grupo de copias en un solo archivo que conserva los cambios de todos los mapas.

  1. Abre Fusionador de mapas en la app de escritorio y elige la carpeta de tu servidor.
  2. Haz clic en Escanear. Verás cada archivo en conflicto, los resources que lo incluyen, en el orden en que arrancan, y si se puede fusionar.
  3. Haz clic en Fusionar. Los archivos fusionados van a un nuevo resource fivedock-merged, y se añade una línea ensure fivedock-merged al final de server.cfg, para que siempre cargue el último.
  4. Reinicia el servidor.

La fusión sigue una regla sencilla, la misma que seguirías a mano:

  • Todo lo que añade un mapa se conserva. Cada prop, luz, punto de aparición de coches y occluder que traiga cualquiera de los mapas acaba en el archivo fusionado.
  • Todo lo que un mapa quita sigue quitado. Si un MLO borró un occluder del juego base o una farola que le estorbaba, el archivo fusionado lo deja fuera, aunque la copia del otro mapa aún lo tuviera. Eso es lo que acaba con el parpadeo.
  • Las ediciones del mismo modelo de oclusión se combinan. Cuando dos MLO abren cada uno su propio hueco en el mismo occluder, el archivo fusionado tiene los dos huecos.

Las copias idénticas byte a byte se marcan como tales y se omiten, porque no pueden chocar. Las luces LOD lejanas se fusionan junto con su archivo de luces LOD correspondiente, que el juego necesita sincronizado. Puedes hacer lo mismo desde la línea de comandos:

fivedock merge
> fivedock merge C:\server
41 started resources, 3 map files streamed by more than one
  dt1_05_strm_1.ymap  pd_mlo -> burgershot_mlo
  vw_distlodlights_medium010.ymap  pd_mlo -> street_lights
  shared_props.ytyp (identical)  pd_mlo -> burgershot_mlo

> fivedock merge C:\server --apply
  merged dt1_05_strm_1.ymap  +38 -4, base-game file
  merged vw_distlodlights_medium010.ymap  +112 -0, base-game file

Wrote C:\server\resources\[fivedock]\fivedock-merged. Undo with: fivedock merge undo

+38 -4 significa que la fusión aportó 38 elementos que la primera copia no tenía y dejó fuera 4 elementos del juego base que uno de los mapas había borrado.

No se pierde nada

Cada cambio tiene copia de seguridad. Las copias originales se mueven fuera de sus resources en lugar de borrarse, y Deshacer la última fusión (o fivedock merge undo) lo devuelve todo a su sitio, incluido tu server.cfg.

Cuando un mapa recibe una actualización, vuelve a escanear. El merger también lee su propia salida anterior, así que las copias nuevas se integran en lo que ya tienes.

Cuándo no hace falta fusionar

Un archivo con streaming doble no siempre es un problema. Déjalo en paz cuando:

  • ambos mapas se ven bien en el juego. No todos los archivos compartidos contienen algo de lo que dependa alguno de los mapas.
  • las copias son idénticas. El merger las marca y las omite por ti.
  • el conflicto está en un .ybn o .ydr. Elige la copia que quieres y ajusta el orden de arranque.

Prueba después de fusionar. Pasa por cada mapa implicado y entra en cada interior. Si algo se ve raro, un clic en deshacer devuelve el estado anterior.

Preguntas frecuentes

¿Por qué mi MLO parpadea o desaparece al acercarme?

Normalmente porque otro resource hace streaming de su propia copia del mismo .ymap, y esa copia aún tiene los occluders que el MLO quitó. GTA V no dibuja lo que oculta un occluder, así que el interior parpadea o desaparece al acercarte. El juego carga la copia del resource que arranca el último.

¿Cambiar el orden de ensure arregla los conflictos de mapas en FiveM?

Solo en los archivos de colisión (.ybn) y de modelo (.ydr), donde eliges la copia que quieres y haces que su resource arranque el último. En un .ymap o .ytyp que editaron dos mapas, el juego sigue cargando una sola copia, y un orden nuevo traslada el fallo al otro mapa. Esos archivos hay que fusionarlos en una copia que conserve los cambios de ambos mapas.

¿Cómo encuentro qué resources hacen streaming del mismo .ymap?

Busca archivos con el mismo nombre en las carpetas stream de cada resource iniciado: dos resources que incluyen dt1_05_strm_1.ymap chocan por él. El Map Merger de la app de escritorio de FiveDock lee server.cfg y lista cada .ymap y .ytyp de los que hace streaming más de un resource iniciado, en el orden en que arrancan.

¿Puedo fusionar archivos .ybn o .ydr?

No. Un .ybn es una malla de colisión completa y un .ydr un modelo 3D completo, así que no tienen una lista de cambios sueltos que combinar como un .ymap. Decide qué copia debe ganar y asegúrate de que su resource arranque después del otro.

Qué plan lo incluye

El Map Merger forma parte del plan Metro. El escaneo y los archivos se quedan en tu máquina; la fusión en sí corre en los servidores de FiveDock, así que la app se mantiene pequeña y cada fusión usa los mismos datos actualizados del juego base. Compara los planes o descarga la app de escritorio para escanear tu servidor.

Todos los artículos