Como otimizar mods do FiveM sem perder qualidade
Sua cidade não precisa escolher entre mods bonitos e FPS estável. O peso que derruba servidor de FiveM quase sempre mora nas texturas, e texturas dá para reduzir sem mudança visível. Este guia explica de onde vem o peso, mostra a conta real de memória e ensina os dois caminhos para resolver: o manual e o automático.
Por que os mods deixam a cidade pesada
Quem cria mod exporta tudo na resolução máxima que tem em mãos. Uma roupa sai do Substance Painter em 4096 x 4096, um capacete de prop ganha textura 4K, uma livery de viatura idem. Só que dentro do jogo aquela roupa ocupa uma fração da tela: na prática o GTA V raramente mostra mais do que 1024 pixels de lado de uma peça de roupa ou de um prop.
O resultado aparece no console do seu servidor na hora em que a cidade liga:
[citizen-server-impl] Asset roupas/adultocoringa.ytd uses 224.0 MiB of physical memory! [citizen-server-impl] Asset mapas/shanson_room_01.ydr uses 77.2 MiB of physical memory!
Cada um desses avisos é um asset acima do limite de streaming. Quando eles se acumulam, o motor do jogo começa a descartar texturas para caber no orçamento de memória, e aí nascem os sintomas que todo dono de cidade conhece: prédio sem textura, roupa piscando, o famoso city bug e FPS derretendo nos lugares cheios. Explicamos essa mecânica em detalhe no guia sobre texture loss no FiveM.
Onde o peso mora: os quatro formatos de stream
Praticamente todo o peso de uma pasta stream está em quatro extensões, e em todas elas o vilão é o mesmo: textura embutida em resolução maior do que o jogo consegue aproveitar.
| Formato | O que é | Onde pesa |
|---|---|---|
| .ytd | Dicionário de texturas | Roupas, skins, liveries e texturas de mapa. É onde ficam as maiores reduções. |
| .ydr | Drawable (modelo) | Props, interiores e MLOs, os campeões de aviso no console. |
| .ydd | Dicionário de drawables | Pacotes de roupas e variações de ped num arquivo só. |
| .yft | Fragment | Veículos. Cada carro vem em par de arquivos (.yft e _hi.yft) e tem memória virtual própria. As texturas embutidas reduzem sem tocar na geometria nem na física: veja como otimizar o .yft e o .ytd do carro. |
Se o seu problema está concentrado em um único dicionário de texturas gigante, o guia específico de como reduzir um .ytd pesado desce mais fundo no formato.
A conta que ninguém faz: disco não é memória
O tamanho do arquivo no disco engana. No disco o conteúdo viaja comprimido; na memória do jogo a textura precisa estar pronta para a GPU, byte a byte. Uma única textura 4096 x 4096 no formato DXT5 ocupa 16 MiB só no nível principal, e 21,3 MiB somando a cadeia de mipmaps que vive dentro dela. Num caso real que atendemos, um arquivo de 7 MiB no disco virava 64 MiB dentro do jogo.
É por isso que o aviso do console fala em physical memory: o que estoura o streaming não é o tamanho do download, é o que o asset ocupa depois de carregado. Toda a otimização séria mira essa segunda conta.
Regra prática: asset de stream acima de 10 MiB de memória física merece atenção. Acima de 50 MiB, é quase certo que está roubando FPS da sua cidade inteira.
O jeito manual: OpenIV, textura por textura
Dá para otimizar na mão, e é útil entender o processo mesmo que você não vá segui-lo:
- Abrir o arquivo no OpenIV e exportar as texturas para DDS.
- Redimensionar cada uma num editor (de 4096 para 1024, por exemplo), regenerando os mipmaps.
- Reimportar uma a uma e testar dentro do jogo.
Os problemas do caminho manual são conhecidos: um mod de roupas pode ter centenas de texturas, cada reimportação é uma chance de erro, normal maps redimensionados do jeito errado criam artefatos visuais, e ninguém valida o arquivo final além do próprio jogo. Uma tarde inteira vai embora num mod, e a fila de mods de uma cidade nunca acaba.
O jeito automático: mip-drop com validação
O Texturize automatiza exatamente esse trabalho, com uma vantagem técnica importante: em vez de redimensionar a imagem (que recalcula pixels e pode criar artefato), a técnica principal é o mip-drop. Toda textura de jogo já carrega dentro de si as versões reduzidas que o motor usa quando você se afasta do objeto, os mipmaps. O mip-drop descarta os níveis grandes demais e promove um nível que já existia, gerado pelo próprio criador do mod na exportação.
Na prática isso significa:
- Sem mudança visível: o jogo passa a usar de perto o nível que já mostrava a poucos metros de distância. Uma textura de arma dos nossos testes caiu de 21,3 MB para 0,7 MB e a diferença some no comparador.
- Normal maps protegidos: os mapas de relevo, os mais sensíveis a artefato, são identificados e tratados de forma conservadora automaticamente.
- Validação de verdade: cada arquivo otimizado é reaberto e conferido antes de entrar no zip. Se algo falha, o original é mantido e o relatório explica o motivo.
- Validado contra crash: antes de sair, cada arquivo passa por uma varredura de padrões que derrubam o jogo, como textura que declara um formato e carrega menos bytes do que ele exige. Quando os bytes permitem, o reparo é determinístico; quando não permitem, o arquivo não sai. O caso mais comum está no guia de carro crashando no FiveM.
- Estrutura preservada: o zip devolve as mesmas pastas que você enviou. É extrair por cima do resource e reiniciar.
Nos nossos números, a redução real medida chega a 84%. Um pack de roupas de 240 MiB saiu com 38 MiB. E arquivo protegido por escrow do Cfx/Tebex é detectado e devolvido intacto: numa base real com 2.112 arquivos de stream que analisamos, só 1 era protegido.
Passo a passo para otimizar sua base hoje
- Rode o diagnóstico grátis. Envie a pasta dos seus resources com stream no console do Texturize. O diagnóstico é ilimitado, não gasta nada e devolve um laudo com os arquivos que mais pesam e a projeção de economia.
- Comece pelos piores. Otimize primeiro os mods que aparecem no topo do laudo e nos avisos do console. Se alguma linha não fizer sentido, leia o aviso de physical memory explicado. O padrão de 10 MiB de teto e 1024 px de resolução máxima resolve a maioria das cidades.
- Substitua e confira. Extraia o zip por cima do resource, reinicie o servidor e olhe o console: os avisos de memória física somem. No maior teste que rodamos, 1.360 arquivos somando 1,2 GB subiram em menos de 10 segundos e o processamento levou poucos minutos.
- Crie o hábito. Todo mod novo passa pelo otimizador antes de entrar na cidade. É mais fácil manter leve do que emagrecer depois.
Se o seu sintoma principal é queda de FPS e você quer um plano de ataque mais amplo, siga para o checklist de FPS para donos de cidade.
Quanto custa otimizar
O plano grátis otimiza 5 arquivos por dia, todo dia, entrando com o Discord, sem cartão. Acima disso funciona por créditos pré-pagos: 1 crédito por arquivo otimizado, a partir de R$ 19,90 por 300 créditos, válidos por 12 meses. Arquivo com erro, já leve ou mantido por segurança não é cobrado, e o diagnóstico da base inteira continua grátis sempre.
Se o que você quer é trocar a textura (logo, farda, skin), e não reduzir, o Editor faz isso no navegador: veja como editar textura .ytd online.
Perguntas frequentes
Otimizar muda a aparência do mod?
E se o mod tiver escrow do Tebex?
Otimizar carro mexe na física?
Veja o peso real da sua base agora
Envie a pasta e receba o laudo com os arquivos que mais pesam e quanto dá para economizar.