Texturas, arquivos e packs · 4 min de leitura
Aviso de "oversized asset" do FiveM: o que é e como corrigir
Ler em: English · Español · Français · Deutsch · Italiano · Polski · Türkçe · Русский
Você inicia o servidor e o console se enche de linhas como esta:
Asset <resource>/<file>.ytd uses <size> MiB of physical memory.Este é o aviso de asset grande demais do FiveM. Não é um erro e o arquivo continua carregando, mas ele mostra quais arquivos são pesados o bastante para dar problema. Veja o que ele mede, por que o tamanho do arquivo em disco diz pouco e como reduzi-los.
O que o FiveM mede
Na inicialização, o FiveM lê o cabeçalho de cada arquivo da pasta stream de um recurso. Esse cabeçalho diz quanta memória o arquivo ocupa depois de carregado, em duas partes: memória física (memória gráfica: texturas e buffers de vértices) e memória virtual (memória do sistema: o resto do asset). Os limites, lidos no próprio código do FiveM, são os mesmos para as duas:
| Memória de um arquivo | O que o FiveM faz |
|---|---|
| mais de 16 MiB | mostra o aviso |
| mais de 32 MiB | mostra em amarelo |
| 48 MiB ou mais | acrescenta: "Oversized assets can and WILL lead to streaming issues (such as models not loading/rendering)." |
| mais de 64 MiB | mostra em vermelho |
O aviso vale por arquivo. Um .ytd de 20 MiB é sinalizado mesmo que o resto do seu servidor seja leve.
Por que o tamanho em disco engana
Arquivos em streaming são comprimidos no disco, e o aviso conta o que eles ocupam carregados. Para uma textura, isso é o tamanho dela no formato da GPU, com todos os níveis de mipmap, arredondado para páginas de memória inteiras. Uma referência aproximada, antes desse arredondamento:
| Textura (com mipmaps) | DXT1 (sem transparência) | DXT5 (com transparência) |
|---|---|---|
| 1024 × 1024 | 0,67 MiB | 1,33 MiB |
| 2048 × 2048 | 2,67 MiB | 5,33 MiB |
| 4096 × 4096 | 10,67 MiB | 21,33 MiB |
Assim, uma única textura DXT5 de 4096 × 4096 já passa do limite sozinha, e um .ytd com algumas texturas de 2048 pode passar do limite parecendo pequeno no explorador de arquivos. O arredondamento para páginas pode deixar o total bem acima da soma das texturas.
Se um arquivo é sinalizado pela memória virtual (do sistema), não são as texturas: são os outros dados do asset, como a colisão. Reduzir as texturas não muda isso.
Encontre de uma vez todos os arquivos grandes demais
Em vez de ler o console, arraste sua pasta resources inteira para o Server Budget. Ele lê os mesmos cabeçalhos no seu navegador (nada é enviado) e lista:
- Oversized (grandes demais): os arquivos com mais de 16 MiB de memória gráfica, do pior para o menos pior.
- By resource (por recurso): o que cada recurso transmite, ordenado por memória.
- Streamed twice (transmitido duas vezes): nomes de arquivo que mais de um recurso transmite. O jogo recebe só um deles, então mantenha uma cópia só.
A lista Oversized do Server Budget conta a memória gráfica. Um arquivo que o console sinaliza só pela memória virtual não aparece nela.
Reduza as texturas
Pegue os arquivos que o Server Budget marca (.ytd, .ydr, .yft, .ydd) e arraste-os para o Asset Optimizer:
- Defina Largest texture size (tamanho máximo da textura). 1024 é o padrão; 2048 é uma escolha comum para carros e liveries vistos de perto.
- Deixe Add missing mipmaps (adicionar os mipmaps que faltam) marcado: texturas salvas sem eles os recebem de volta.
- Confira a estimativa ("At 1024 px: about … less texture memory") e a tabela de arquivos.
- Clique em Download the lighter files (.zip) (baixar os arquivos mais leves). Você recebe cada arquivo com o próprio nome: coloque-os no lugar dos antigos.

Uma textura com mipmaps é reduzida tirando os níveis maiores, sem recomprimir, então ela fica exatamente como era vista de um pouco mais longe. Uma textura sem mipmaps é refeita com todos os níveis, no tamanho que você escolheu, ou no próprio tamanho se for menor.
Pacotes que repetem a mesma textura em vários dicionários também podem compartilhá-la: o Texture Dedupe move as texturas repetidas para um .ytd compartilhado. Depois arraste a pasta de novo para o Server Budget para ver o resultado.
Perguntas
- 16 MiB é um limite rígido?
- Não. O FiveM continua transmitindo o arquivo e só avisa. A partir de 48 MiB, o próprio aviso diz que esses assets vão causar problemas de streaming, então trate tudo acima de 16 MiB como arquivo a reduzir.
- O aviso conta o tamanho do arquivo em disco?
- Não. Ele conta a memória que o arquivo ocupa depois de carregado, lida do cabeçalho. Um arquivo pode ter bem menos de 16 MB em disco e ainda passar de 16 MiB carregado.
- Texturas menores ficam piores?
- De perto, uma textura de 1024 fica mais suave que uma de 2048. De longe, o jogo já desenha os níveis menores de mipmap, justamente os que o Asset Optimizer mantém.

A ferramenta para isso
Server Budget
Arraste sua pasta de recursos: memória gráfica e do sistema por recurso, cada arquivo acima de 16 MiB e cada arquivo transmitido duas vezes. No seu navegador, sem enviar nada.
Abrir Server BudgetTambém útil aqui: Asset Optimizer · Texture Dedupe

