Aviso de physical memory no FiveM: o que o console está dizendo e como limpar
Todo dono de cidade já viu o console encher de linhas amarelas citando memória física e oversized assets. Esse aviso não é decoração: ele aponta, com nome e sobrenome, os arquivos que estouram o orçamento de streaming de cada player. Este guia explica o que o número significa, como achar o arquivo e como limpar o console sem apagar mod nenhum.
O que significa Asset uses X MiB of physical memory
Quando o servidor sobe, o FiveM percorre os arquivos da pasta stream de cada resource e calcula quanta memória de vídeo cada um vai ocupar depois de carregado. Se o valor passa do que ele considera saudável para um único asset, sai uma linha assim:
[citizen-server-impl] Asset roupas/adultocoringa.ytd uses 224.0 MiB of physical memory!Leia a linha de trás para frente: o número é o custo, o caminho é o culpado. Nesse exemplo, um único dicionário de texturas de roupa pedia 224 MiB da placa de vídeo de cada pessoa que chegasse perto do personagem usando aquela peça.
O aviso costuma vir acompanhado de uma segunda linha, mais direta, falando que assets grandes vão causar problemas de streaming. Muita gente ignora as duas porque o servidor continua ligado e a cidade continua jogável. É aí que mora o engano.
Memória física e memória virtual: qual das duas o aviso mede
Os arquivos do RAGE, o motor do GTA V, guardam duas contas de tamanho no próprio cabeçalho. A memória física é a que vai para a placa de vídeo: texturas, basicamente. A memória virtual é a que vai para a RAM: geometria, ossos, colisão, dados do modelo.
O aviso de physical memory fala da primeira. Por isso ele aparece tanto em .ytd puro, que é só dicionário de textura, quanto em .ydr, .ydd e .yft, que carregam texturas embutidas junto do modelo.
Existe um detalhe que engana quase todo mundo: o tamanho no disco não tem relação direta com o custo em jogo. No disco o conteúdo viaja comprimido; na placa de vídeo ele precisa estar no formato que a GPU lê direto. Um arquivo de 7 MiB no disco pode custar 64 MiB dentro do jogo. A conta completa, por resolução e formato, está no guia do formato .ytd.
Por que oversized assets can and WILL lead to streaming issues não é exagero
O FiveM dá a cada player um orçamento de streaming: um teto de memória para manter carregado o que está por perto. Quando a soma do que está em volta passa desse teto, o motor precisa escolher o que descarta, e ele descarta textura.
O resultado tem nomes que a comunidade já conhece: prédio branco, roupa piscando, ped sem cara, carro sem pintura. É o texture loss, e a mecânica dele é exatamente essa disputa por orçamento.
O aviso é preventivo, não um erro fatal. O servidor não cai por causa dele. Quem paga a conta é a placa de vídeo de cada pessoa conectada, e quem tem placa mais fraca sente primeiro: textura sumindo em área cheia e FPS caindo em evento.
Como achar o arquivo pelo nome que aparece no aviso
O caminho impresso no aviso é relativo à pasta de stream do resource, não ao disco. Então roupas/adultocoringa.ytd quer dizer: dentro de algum resource, existe uma pasta de stream com um arquivo chamado adultocoringa.ytd.
Para localizar, faça uma busca por nome de arquivo dentro da pasta resources do servidor. Duas observações que economizam tempo:
- O nome pode repetir. Packs diferentes usam nomes parecidos para roupas. Confira qual resource está realmente com o arquivo pesado antes de mexer.
- Um resource pode ter vários avisos. É comum um pack de roupas gerar dezenas de linhas. Nesse caso o problema não é um arquivo, é o pack.
Se você quer a lista completa sem caçar linha por linha no console, o diagnóstico grátis faz o inverso: você envia a pasta e ele devolve a memória de jogo de cada arquivo, já ordenada pelo maior. O passo a passo completo está no guia de otimização de mods.
Os culpados de sempre: roupas, MLOs e veículos com livery pesada
Em base real, o aviso se concentra em três lugares:
- Packs de roupas e skins. Cada peça sai do editor em resolução de export, muito acima do que o jogo mostra na tela. Num teste nosso, um pack de 240 MiB foi entregue com 38 MiB sem mudança visível.
- MLOs e interiores. Um prédio tem dezenas de texturas de parede, piso e detalhe, e todas ficam carregadas enquanto o player está dentro.
- Veículos com livery. Carro tem par de arquivos e livery costuma vir em resolução de pôster. O comportamento do veículo é diferente dos outros formatos e está detalhado no guia do carro pesado.
Como limpar o aviso sem apagar o mod
A saída óbvia, apagar o mod, é a pior: você perde o conteúdo que atrai o player. A saída certa é reduzir o custo do arquivo mantendo o visual.
A técnica que resolve a maioria dos casos é o mip-drop. Toda textura bem exportada carrega dentro de si uma escada de versões reduzidas, os mipmaps, que o próprio jogo usa conforme a distância. O mip-drop descarta os níveis grandes demais e promove um nível que o criador já gerou, em vez de redimensionar a imagem e inventar pixel novo. Por isso a redução não cria artefato.
Depois de reduzir, o arquivo precisa ser reaberto e validado. Um dicionário remontado errado não avisa: ele quebra no jogo. No Texturize isso é obrigatório, e há uma segunda camada: a varredura de padrões que derrubam o jogo, no ar desde 26/08. Se algo não passa, o arquivo volta intacto com o motivo no relatório em vez de ir para o zip.
- Leia a linha inteira do consoleO caminho antes do
usesé o arquivo e o número é o custo em memória de jogo. Anote os três ou quatro maiores, não todos. - Localize o arquivo no servidorBusque o nome do arquivo dentro da pasta resources. Ele vive na pasta de stream de algum resource.
- Rode o diagnóstico grátis da pastaEnvie a pasta do resource para ver a memória física de cada arquivo e a projeção de economia antes de gastar qualquer crédito.
- Otimize os arquivos com maior ganhoComece pelos maiores. O teto padrão de 10 MiB e 1024 px resolve a maioria das cidades e preserva normal maps automaticamente.
- Substitua e reinicie o resourceO zip mantém a estrutura de pastas original: extraia por cima e reinicie o resource, ou o servidor se preferir.
- Confira o console de novoAs linhas dos arquivos otimizados devem desaparecer. As que sobrarem apontam os próximos da fila ou um caso de geometria.
Quando o aviso é de geometria e não de textura
Existe o caso em que você reduz tudo que dá e o arquivo continua pesado. Normalmente é um .ydr ou .yft com malha densa: o custo está na geometria, não na textura.
Reduzir polígono muda o visual e é decisão de quem criou o mod, então o Texturize não faz isso. O que ele faz é apontar: o relatório mostra quando o peso restante é geometria, para você negociar com o criador, trocar o mod ou aceitar o custo com consciência.
Se o arquivo pesado é protegido por escrow do Cfx ou Tebex, o caminho é outro e está no guia do escrow: o arquivo é identificado, devolvido intacto e não consome crédito.
Como manter o console limpo depois
Console limpo não é estado permanente, é rotina. Três hábitos resolvem:
- Todo mod novo passa antes de entrar. É mais fácil otimizar um pack do que caçar o culpado depois, com a cidade cheia.
- Guarde o teto que funciona na sua cidade. O padrão de 10 MiB de memória física e 1024 px de resolução máxima resolve a maioria dos casos.
- Releia o console depois de cada atualização grande. Um update de pack pode reintroduzir a textura 4K que você já tinha resolvido.
Perguntas frequentes
O aviso de physical memory derruba o servidor?
Posso ignorar se a cidade roda bem no meu PC?
Como sei se o aviso é de textura ou de malha?
Veja o peso real da sua base agora
O diagnóstico lista a memória de jogo de cada arquivo e a projeção de economia, sem modificar nada.