Pular para o conteúdo

10% de desconto, aplicado no checkout20% de desconto, aplicado no checkout

RPScripts

Como otimizar MLOs no FiveM: lag, queda de FPS e perda de textura

Por Luke, RPScripts

Nesta página

Um MLO puro não executa código de script, então o custo dele fica no streaming e na renderização, no PC de cada jogador. O que importa é de quanta memória os modelos e texture dictionaries precisam, a que distância são carregados via streaming e quantos interiores e props um mesmo local carrega ao mesmo tempo. Leia os avisos de tamanho que o FXServer mostra quando o mapa inicia, compare o mesmo trajeto com o mapa desligado e ligado e depois reduza ou substitua o asset grande demais. Use o checklist no final antes de comprar o próximo mapa.

Este guia foi conferido com a documentação da Cfx.re e o código-fonte do FXServer em 7 de novembro de 2026. Ele descreve procedimentos e limites documentados. Não é um benchmark, e a RPScripts não mediu taxas de quadros para ele.

De onde vem o lag de um MLO

  • Assets superdimensionados. Um texture dictionary (YTD) ou modelo (YDR, YFT) que precisa de muita memória disputa espaço com tudo o que o jogo carrega via streaming. O FXServer avisa sobre qualquer asset acima de 16 MiB quando a resource inicia; acima de 48 MiB o aviso acrescenta que assets superdimensionados podem causar e vão causar problemas de streaming, como modelos que não carregam ou não são renderizados.
  • LODs ausentes ou fracos. Cada entidade posicionada tem uma distância de LOD. Um modelo de nível de detalhe com distância maior substitui o modelo detalhado de longe. Sem ele, o criador precisa escolher entre o modelo completo aparecer tarde ou ser carregado via streaming de mais longe.
  • Coisas demais no mesmo lugar. Vários mapas no mesmo quarteirão, props opcionais deixados ligados ou um rework da cidade por cima de interiores avulsos são todos carregados via streaming ao mesmo tempo.
  • Conflitos que parecem lag. Dois mapas que alteram as mesmas coordenadas podem piscar, perder colisão ou mostrar paredes faltando. Isso é um conflito de posicionamento, não um problema de desempenho; o guia de compatibilidade de MLO descreve o teste em staging.

Passo 1: registre uma base com o mapa desligado e ligado

  1. Use um servidor de teste com o mesmo artifact, game build e resources da produção.
  2. Escolha um trajeto: chegue por fora, passe pela entrada, atravesse cada andar e saia de novo. Mantenha clima, horário e configurações do cliente fixos.
  3. Faça o trajeto com o mapa parado e depois com o mapa iniciado. Anote os FPS, objetos que carregam tarde e texturas que continuam borradas.
  4. Repita com um segundo cliente que nunca entrou no servidor, para que um download e cache do zero façam parte do teste.

Se o problema só aparece quando um segundo mapa também está rodando, trate-o primeiro como conflito de posicionamento e faça o teste de compatibilidade antes de mexer em qualquer asset.

Passo 2: leia os avisos de tamanho do FXServer

Quando uma resource com arquivos de streaming inicia, o FXServer verifica cada arquivo de resource do GTA V nela e mostra uma linha como Asset mymap/mymap_txd.ytd uses 34.0 MiB of physical memory. O tamanho é a memória que o asset precisa depois de carregado, lida do cabeçalho do arquivo, e não o tamanho do download. O FXServer verifica memória física e virtual separadamente:

Memória por assetSaída do console
16 MiB ou menosNenhum aviso
Acima de 16 MiBAviso em azul
Acima de 32 MiBAviso em amarelo
Acima de 48 MiBAcrescenta: assets superdimensionados podem causar e vão causar problemas de streaming
Acima de 64 MiBAviso em vermelho

Copie cada aviso do mapa para as suas anotações. Esses são os arquivos a corrigir primeiro e os números a perguntar ao criador antes de comprar. Um console limpo não prova que o mapa tem bom desempenho; só mostra que nenhum arquivo isolado passa desses limites.

Passo 3: verifique a memória de streaming e os pools no cliente

Três ferramentas do cliente mostram quanto o mapa custa no jogo. strmem e resmon são comandos de desenvolvedor: no FiveM Legacy, inicie o cliente com +set moo 31337; no FiveM for GTAV Enhanced, o servidor precisa de sv_devMode true. Use-os apenas no seu próprio servidor de desenvolvimento.

  • strmem true lista a memória de streaming usada por cada asset e mostra uma visão geral. Fique dentro do MLO e procure os arquivos dele no topo da lista.
  • F8 > Tools > Streaming > Pool Monitor mostra o quanto os pools do jogo estão cheios. Interiores, construções, texture dictionaries e dados de oclusão usam cada um o seu pool (por exemplo InteriorProxy, Building, TxdStore e os pools de Occlusion).
  • resmon true abre o monitor de recursos. Um mapa puro mostra quase nenhum tempo de CPU ali, mas a coluna Streaming mostra quanta memória de streaming a resource usa. Compare essa coluna com o mapa desligado e ligado.

Se o console responder "Access denied", o guia de comandos do console F8 explica o motivo.

As colunas de CPU do resmon importam para scripts que vêm com o mapa, como portas, elevadores ou alternância de props. Um valor de CPU baixo não significa que o mapa é leve para renderizar, então mantenha ao lado as anotações de FPS do passo 1. O guia do resmon mostra como comparar uma ação de script por vez.

Passo 4: corrija texturas e modelos superdimensionados na origem

  1. Guarde o pacote original e os arquivos-fonte do criador. Trabalhe em uma cópia.
  2. Para um texture dictionary, abra-o em um editor de YTD como CodeWalker ou OpenIV, exporte as texturas, reduza as que são maiores do que a superfície precisa e importe-as de volta com os mesmos nomes. Os modelos referenciam os nomes das texturas, então nunca renomeie uma textura sozinha.
  3. Reinicie a resource e leia o console de novo. O aviso deve ter sumido ou diminuído.
  4. Para um modelo pesado demais, a correção fica na fonte 3D: geometria mais simples, um modelo LOD de verdade ou a divisão em partes menores. O manual de assets da Cfx.re mostra a configuração HD e LOD no CodeWalker, incluindo LodDist e o vínculo com a YMAP pai.
  5. Faça o trajeto de referência de novo e compare com as suas anotações.

Para mapas com muitos arquivos de colisão ou de mapa, a Cfx.re documenta o comando de desenvolvedor save_gta_cache. Ele salva dados de cache em %AppData%\CitizenFX; copie esse arquivo para a pasta raiz da resource e liste-o em files no fxmanifest.lua, para que os jogadores o carreguem e o primeiro carregamento fique mais rápido.

Não apague arquivos de colisão, oclusão ou LOD para fazer um aviso sumir. Isso troca um aviso de tamanho por paredes faltando, pisos invisíveis ou interiores que aparecem uns através dos outros.

Passo 5: desligue o que você não usa

Muitos interiores trazem grupos opcionais de props chamados entity sets, por exemplo uma versão mobiliada e uma vazia de um cômodo. Um script os liga com ActivateInteriorEntitySet e aplica a mudança com RefreshInterior. Se a documentação do mapa lista entity sets, ative só os que o seu servidor usa e confira qual resource os controla.

Verifique também o próprio local. Um rework da cidade e um MLO avulso no mesmo quarteirão são ambos carregados via streaming ali. Deixe uma única resource responsável por local e pare o mapa substituído, incluindo qualquer loader de IPL que ainda ative o interior original.

Passo 6: game build, edição e tamanho dos pools

  • Game build. sv_enforceGameBuild escolhe o build que os clientes usam, só pode ser definido na inicialização, e cada build inclui o conteúdo dos builds anteriores. Se o criador indica um build mínimo, use esse build ou um mais novo. O FiveM for GTAV Enhanced suporta atualmente apenas o build mais recente.
  • Edição. No Enhanced, uma resource pode trazer uma pasta stream_enhanced que substitui stream. Sem essa pasta, o Enhanced carrega stream, que as notas do Enhanced da Cfx.re marcam como obsoleta. Pergunte ao criador se o mapa foi testado no Enhanced ou traz arquivos stream_enhanced, e teste no ambiente de teste antes de depender dele.
  • Tamanho dos pools. increase_pool_size aumenta um pool pelo nome, só na inicialização do servidor. A Cfx.re publica os pools permitidos e o aumento máximo de cada um; pedidos fora disso não têm efeito. Os clientes reiniciam o jogo ao entrar em um servidor com outras configurações de pools; com as mesmas configurações, só na primeira conexão. Aumente um pool apenas quando o Pool Monitor mostrar que ele está perto do limite, não copiando a lista de outro servidor.

Quando o problema é perda de textura em um único PC

Se só um jogador vê texturas borradas ou faltando, e também em outros servidores, comece por esse cliente: configurações gráficas, mods e cache. O guia de perda de textura separa as verificações do cliente das do servidor. Se todos os jogadores perdem texturas no mesmo lugar, volte ao passo 2 para os mapas daquela área.

Checklist de MLO antes de comprar

As mesmas perguntas valem para MLOs pagos e para MLOs gratuitos; um mapa gratuito pode trazer os mesmos arquivos superdimensionados.

  1. Tamanho dos assets. Peça a saída do console do FXServer quando o mapa inicia, ou uma lista de arquivos com tamanhos. Qualquer linha acima de 48 MiB precisa de explicação; linhas acima de 16 MiB merecem uma pergunta.
  2. Detalhe e LODs. Pergunte se os modelos externos têm modelos LOD e a que distância são carregados via streaming. "Otimizado" sem detalhes não diz nada.
  3. Game build e edição. Confira o build mínimo e se há arquivos para o Enhanced.
  4. Local. Peça as coordenadas, o interior original ou IPL que ele substitui e os mapas com conflito conhecido. Compare com o que já roda naquele ponto.
  5. Dependências. Confira loaders obrigatórios, scripts de portas ou elevadores, entity sets e qual framework eles exigem.
  6. Possibilidade de edição. O Asset Escrow da Cfx.re pode criptografar arquivos de modelo YFT, YDD e YDR. Em um mapa com escrow você não consegue retrabalhar esses modelos nem o nível de detalhe deles, então toda correção depende do criador. O escrow ainda não foi implementado no FiveM for GTAV Enhanced.
  7. Teste antes da produção. Use o servidor de demonstração do criador, se houver, e depois o seu próprio servidor de teste com o trajeto de referência do passo 1.
  8. Suporte e atualizações. Procure um contato de suporte, um changelog e uma política de reembolso por escrito.

Quando um mapa passar por essas perguntas, siga os passos para instalar e verificar um MLO no ambiente de teste e faça o trajeto de referência antes de colocá-lo no ar.

Transparência: a RPScripts vende MLOs e interiores. Os downloads são entregues sem criptografia de escrow.

Fontes

  • Configurar o server.cfg do FiveM e verificar suas alterações

    Configurar o server.cfg do FiveM e verificar suas alterações

    Edite o server.cfg que seu FXServer ativo ou perfil txAdmin realmente carrega. Mantenha uma cópia funcional, altere apenas a configuração necessária e verifique a inicialização e uma conexão real do jogador. A ferramenta de configuração abaixo pode ajudar a elaborar as configurações; revise sua saída em relação aos seus recursos instalados e à referência oficial.

  • Códigos de erro e correções do FiveM: guia de diagnóstico

    Códigos de erro e correções do FiveM: guia de diagnóstico

    Não comece excluindo todas as pastas do FiveM. Registre o erro exato, decida se ele afeta um cliente, um servidor ou todos os servidores e altere uma variável por vez. A mesma frase pode ter causas diferentes, então esta página mapeia os sintomas para as evidências, em vez de prometer uma correção universal.

  • Migrar recursos mysql-async para oxmysql com segurança

    Migrar recursos mysql-async para oxmysql com segurança

    Migre um recurso de mysql-async para oxmysql alterando a configuração do driver e revisando os parâmetros, o valor de retorno e o tratamento de erros de cada consulta. Uma migração de driver não exige reescrever o esquema do banco de dados e não garante uma jogabilidade mais rápida.