Saltar al contenido

10 % de descuento, aplicado al pagar20 % de descuento, aplicado al pagar

RPScripts

Cómo optimizar MLO en FiveM: lag, caídas de FPS y pérdida de texturas

Por Luke, RPScripts

En esta página

Un MLO puro no ejecuta código de script, así que su coste está en el streaming y el renderizado, en el PC de cada jugador. Lo que importa es cuánta memoria necesitan sus modelos y texture dictionaries, desde qué distancia se cargan por streaming y cuántos interiores y props carga a la vez un mismo lugar. Lee los avisos de tamaño que FXServer muestra al iniciar el mapa, compara la misma ruta con el mapa apagado y encendido, y después reduce o sustituye el asset demasiado grande. Usa la checklist del final antes de comprar el siguiente mapa.

Esta guía se comprobó con la documentación de Cfx.re y el código fuente de FXServer el 7 de noviembre de 2026. Describe procedimientos y límites documentados. No es un benchmark, y RPScripts no midió tasas de fotogramas para ella.

De dónde viene el lag de un MLO

  • Assets sobredimensionados. Un texture dictionary (YTD) o un modelo (YDR, YFT) que necesita mucha memoria compite con todo lo demás que el juego carga por streaming. FXServer avisa de cualquier asset de más de 16 MiB al iniciar el recurso; por encima de 48 MiB el aviso añade que los assets sobredimensionados pueden provocar y provocarán problemas de streaming, como modelos que no cargan o no se renderizan.
  • LODs ausentes o pobres. Cada entidad colocada tiene una distancia de LOD. Un modelo de nivel de detalle con una distancia mayor sustituye al modelo detallado a lo lejos. Sin él, el creador tiene que elegir entre que el modelo completo aparezca tarde o cargarlo por streaming desde más lejos.
  • Demasiado en un mismo sitio. Varios mapas en la misma manzana, props opcionales que se quedan activados o un rework de la ciudad encima de interiores sueltos se cargan todos a la vez por streaming.
  • Conflictos que parecen lag. Dos mapas que modifican las mismas coordenadas pueden parpadear, perder la colisión o mostrar paredes que faltan. Es un conflicto de colocación, no un problema de rendimiento; la guía de compatibilidad de MLO describe la prueba en staging.

Paso 1: registra una base con el mapa apagado y encendido

  1. Usa un servidor de staging con el mismo artifact, game build y recursos que producción.
  2. Elige una ruta: acércate desde fuera, cruza la entrada, recorre cada planta y vuelve a salir. Mantén fijos el clima, la hora del día y los ajustes del cliente.
  3. Recorre la ruta con el mapa detenido y luego con el mapa iniciado. Anota los FPS, los objetos que cargan tarde y las texturas que siguen borrosas.
  4. Repite con un segundo cliente que nunca se haya conectado, para que una descarga y una caché en frío formen parte de la prueba.

Si el problema solo aparece cuando también está activo un segundo mapa, trátalo primero como un conflicto de colocación y haz la prueba de compatibilidad antes de tocar ningún asset.

Paso 2: lee los avisos de tamaño de FXServer

Cuando arranca un recurso con archivos de streaming, FXServer revisa cada archivo de recurso de GTA V que contiene y muestra una línea como Asset mymap/mymap_txd.ytd uses 34.0 MiB of physical memory. El tamaño es la memoria que necesita el asset una vez cargado, leída de la cabecera del archivo, no el tamaño de la descarga. FXServer comprueba por separado la memoria física y la virtual:

Memoria por assetSalida de la consola
16 MiB o menosSin aviso
Más de 16 MiBAviso en azul
Más de 32 MiBAviso en amarillo
Más de 48 MiBAñade: los assets sobredimensionados pueden provocar y provocarán problemas de streaming
Más de 64 MiBAviso en rojo

Copia en tus notas cada aviso del mapa. Son los archivos que hay que corregir primero y las cifras que conviene preguntar al creador antes de comprar. Una consola limpia no demuestra que un mapa rinda bien; solo indica que ningún archivo por sí solo supera estos umbrales.

Paso 3: comprueba la memoria de streaming y los pools en el cliente

Tres herramientas del cliente muestran lo que cuesta el mapa en el juego. strmem y resmon son comandos de desarrollador: en FiveM Legacy, inicia el cliente con +set moo 31337; en FiveM for GTAV Enhanced, el servidor necesita sv_devMode true. Úsalos solo en tu propio servidor de desarrollo.

  • strmem true lista la memoria de streaming que usa cada asset y da una vista general. Colócate dentro del MLO y busca sus archivos al principio de la lista.
  • F8 > Tools > Streaming > Pool Monitor muestra lo llenos que están los pools del juego. Los interiores, los edificios, los texture dictionaries y los datos de oclusión usan cada uno su propio pool (por ejemplo InteriorProxy, Building, TxdStore y los pools de Occlusion).
  • resmon true abre el monitor de recursos. Un mapa puro apenas muestra tiempo de CPU ahí, pero su columna Streaming indica cuánta memoria de streaming usa el recurso. Compara esa columna con el mapa apagado y encendido.

Si la consola responde "Access denied", la guía de comandos de la consola F8 explica el motivo.

Las columnas de CPU de resmon importan para los scripts que vienen con el mapa, como puertas, ascensores o interruptores de props. Un valor de CPU bajo no significa que el mapa sea ligero de renderizar, así que ten al lado las notas de FPS del paso 1. La guía de resmon muestra cómo comparar una acción de script cada vez.

Paso 4: corrige texturas y modelos sobredimensionados en el origen

  1. Conserva el paquete original y los archivos fuente del creador. Trabaja sobre una copia.
  2. Para un texture dictionary, ábrelo en un editor de YTD como CodeWalker u OpenIV, exporta sus texturas, reduce las que sean más grandes de lo que necesita la superficie y vuelve a importarlas con los mismos nombres. Los modelos hacen referencia a los nombres de las texturas, así que nunca renombres una textura por sí sola.
  3. Reinicia el recurso y vuelve a leer la consola. El aviso debería haber desaparecido o bajado.
  4. Para un modelo demasiado pesado, la corrección va en la fuente 3D: geometría más sencilla, un modelo LOD de verdad o una división en piezas más pequeñas. El manual de assets de Cfx.re muestra la configuración HD y LOD en CodeWalker, incluidos LodDist y el enlace con la YMAP padre.
  5. Vuelve a recorrer la ruta de referencia y compárala con tus notas.

Para mapas con muchos archivos de colisión o de mapa, Cfx.re documenta el comando de desarrollador save_gta_cache. Guarda datos de caché en %AppData%\CitizenFX; copia ese archivo a la carpeta raíz del recurso y añádelo en files dentro de fxmanifest.lua, para que los jugadores lo carguen y su primera carga sea más rápida.

No borres archivos de colisión, oclusión o LOD para que desaparezca un aviso. Cambiarías un aviso de tamaño por paredes que faltan, suelos invisibles o interiores que se renderizan unos a través de otros.

Paso 5: desactiva lo que no uses

Muchos interiores incluyen grupos opcionales de props llamados entity sets, por ejemplo una versión amueblada y otra vacía de una habitación. Un script los activa con ActivateInteriorEntitySet y aplica el cambio con RefreshInterior. Si la documentación del mapa enumera entity sets, activa solo los que usa tu servidor y comprueba qué recurso los controla.

Revisa también el lugar en sí. Un rework de la ciudad y un MLO suelto en la misma manzana se cargan los dos ahí por streaming. Deja un solo recurso responsable por lugar y detén el mapa sustituido, incluido cualquier cargador de IPL que todavía active el interior original.

Paso 6: game build, edición y tamaño de los pools

  • Game build. sv_enforceGameBuild elige el build que usan los clientes, solo se puede fijar al arrancar, y cada build incluye el contenido de los anteriores. Si el creador indica un build mínimo, usa ese build o uno más reciente. FiveM for GTAV Enhanced solo admite por ahora el build más reciente.
  • Edición. En Enhanced, un recurso puede incluir una carpeta stream_enhanced que sustituye a stream. Sin esa carpeta, Enhanced carga stream, que las notas de Enhanced de Cfx.re marcan como obsoleta. Pregunta al creador si el mapa se probó en Enhanced o incluye archivos stream_enhanced, y pruébalo en staging antes de confiar en él.
  • Tamaño de los pools. increase_pool_size amplía un pool por su nombre, solo al arrancar el servidor. Cfx.re publica los pools permitidos y el aumento máximo de cada uno; las peticiones fuera de esos límites no tienen efecto. Los clientes reinician el juego al entrar en un servidor con otros ajustes de pools; con los mismos ajustes, solo en su primera conexión. Amplía un pool solo cuando el Pool Monitor lo muestre cerca de su límite, no copiando la lista de otro servidor.

Cuando el problema es pérdida de texturas en un solo PC

Si solo un jugador ve texturas borrosas o ausentes, y también en otros servidores, empieza por ese cliente: ajustes gráficos, mods y caché. La guía sobre pérdida de texturas separa las comprobaciones del cliente de las del servidor. Si todos los jugadores pierden texturas en el mismo sitio, vuelve al paso 2 con los mapas de esa zona.

Checklist de MLO antes de comprar

Las mismas preguntas sirven para los MLO de pago y para los MLO gratuitos; un mapa gratuito puede traer los mismos archivos sobredimensionados.

  1. Tamaño de los assets. Pide la salida de la consola de FXServer al iniciar el mapa, o una lista de archivos con sus tamaños. Cualquier línea por encima de 48 MiB necesita una explicación; las líneas por encima de 16 MiB merecen una pregunta.
  2. Detalle y LODs. Pregunta si los modelos exteriores tienen modelos LOD y desde qué distancia se cargan por streaming. "Optimizado" sin detalles no dice nada.
  3. Game build y edición. Comprueba el build mínimo y si incluye archivos para Enhanced.
  4. Ubicación. Pide las coordenadas, el interior original o IPL que sustituye y los mapas con los que tiene conflictos conocidos. Compáralo con lo que ya está en ese punto.
  5. Dependencias. Comprueba los cargadores necesarios, los scripts de puertas o ascensores, los entity sets y qué framework necesitan.
  6. Posibilidad de edición. El Asset Escrow de Cfx.re puede cifrar archivos de modelo YFT, YDD y YDR. En un mapa con escrow no puedes rehacer tú mismo esos modelos ni su nivel de detalle, así que cada corrección depende del creador. El escrow todavía no está implementado en FiveM for GTAV Enhanced.
  7. Prueba antes de producción. Usa el servidor de demostración del creador si lo hay, y después tu propio servidor de staging con la ruta de referencia del paso 1.
  8. Soporte y actualizaciones. Busca un contacto de soporte, un registro de cambios y una política de reembolso por escrito.

Cuando un mapa supere estas preguntas, sigue los pasos para instalar y verificar un MLO en staging y recorre la ruta de referencia antes de publicarlo.

Transparencia: RPScripts vende MLO e interiores. Sus descargas se entregan sin cifrado de escrow.

Fuentes

  • Configura FiveM server.cfg y verifica tus cambios

    Configura FiveM server.cfg y verifica tus cambios

    Edita el server.cfg que tu perfil activo de FXServer o txAdmin realmente carga. Mantén una copia de trabajo, cambia solo la configuración que necesites y verifica el inicio más una conexión de jugador real. La herramienta de configuración a continuación puede ayudarte a redactar la configuración; revisa su salida con tus recursos instalados y la referencia oficial.

  • Códigos de error y soluciones de FiveM: Guía de diagnóstico

    Códigos de error y soluciones de FiveM: Guía de diagnóstico

    No empieces por eliminar todas las carpetas de FiveM. Registra el error exacto, decide si afecta a un cliente, a un servidor o a todos los servidores, y cambia una variable a la vez. La misma redacción puede tener diferentes causas, por lo que esta página asigna los síntomas a la evidencia en lugar de prometer una solución universal.

  • Migra recursos mysql-async a oxmysql de forma segura

    Migra recursos mysql-async a oxmysql de forma segura

    Mueve un recurso de mysql-async a oxmysql cambiando la configuración de su controlador y revisando los parámetros de cada consulta, el valor de retorno y el manejo de errores. Una migración de controlador no requiere reescribir tu esquema de base de datos, y no garantiza un juego más rápido.