Pular para o conteúdo

Assets Enhanced (gen9) crasham o FiveM — o motivo e a solução

Você instala um mapa ou carro baixado para o GTA V Enhanced e o FiveM crasha ao carregar. Não é a config do seu servidor nem o mod quebrado — é uma diferença de formato binário entre Enhanced e Legacy.

O que realmente dá errado

O GTA V Enhanced (a build 1.0.x "gen9") distribui os arquivos de resource com uma versão de resource RSC7 diferente da Legacy. O FiveM é baseado na Legacy, então o loader dele lê o cabeçalho, interpreta errado os paging fixups e morre. O log do crash é bem característico:

Invalid fixup, address is neither virtual nor physical (in some_file.ydr)

Muitas vezes com gta-streaming-five.dll no stack. Um único arquivo Enhanced dentro de um resource já basta para derrubar o servidor inteiro — um .ydr de vidro dentro de um MLO que de resto está certo já faz isso.

Como identificar um download Enhanced

  • Uma pasta chamada _g9, gen9 ou enhanced no arquivo compactado.
  • A página do mod diz "for Enhanced" ou "1.0.3xxx+".
  • Vêm uma pasta legacy e uma enhanced juntas — e a pessoa pega a errada.

A versão de resource muda por tipo: drawables são 165 na Legacy contra 159 na Enhanced, texture dictionaries 13 contra 5, fragments 162 contra 171. Bounds são 43 nas duas, e os formatos meta são compartilhados — por isso um pack quebrado às vezes carrega em parte antes de crashar.

Convertendo de volta para Legacy

A conversão é um ciclo de ida e volta via XML: ler o binário com o parser que corresponde à versão real do cabeçalho e depois gravá-lo de novo na versão Legacy. Isso precisa ser feito por tipo de arquivo e por arquivo — drawables, fragments, texture dictionaries, drawable dictionaries e bounds, todos precisam.

Não teste às cegas. Ler um texture dictionary gen9 com o parser Legacy pode parecer que deu certo e te entregar um dicionário lixo com a quantidade certa de texturas e nenhuma imagem utilizável. É preciso ler a versão do cabeçalho primeiro e escolher o parser a partir dela.

O FIVEFORGE lê a versão no cabeçalho e escolhe o parser certo, então um MLO ou pack de assets Enhanced volta como arquivos Legacy que o FiveM consegue carregar. Tudo além da codificação do resource fica como está.

Antes de culpar o conversor

Se um resource convertido ainda crasha, procure no log do crash o nome do arquivo que falhou. Um único arquivo esquecido, um asset travado por escrow ou uma pasta _g9 que sobrou e ainda está listada no manifest reproduzem o mesmo crash. Confirme também que nada está referenciando um arquivo que você removeu.

Perguntas frequentes

Por que os mods do GTA 5 Enhanced crasham o FiveM?

O Enhanced (gen9) distribui os arquivos de resource em uma versão RSC7 diferente da Legacy. O loader Legacy do FiveM interpreta errado os paging fixups e crasha com 'invalid fixup, address is neither virtual nor physical'.

Dá para converter assets Enhanced para funcionarem no FiveM?

Sim. Cada arquivo passa por um ciclo de ida e volta via XML e é regravado na versão de resource Legacy. Isso precisa ser feito arquivo por arquivo — um único arquivo esquecido ainda derruba o servidor.

Quais tipos de arquivo são afetados?

Drawables (.ydr), fragments (.yft), texture dictionaries (.ytd), drawable dictionaries (.ydd) e bounds (.ybn). Os bounds têm a mesma versão e os formatos meta são compartilhados, por isso um pack com problema pode carregar em parte antes.

Isso é a mesma coisa que escrow?

Não. Arquivos de escrow (.fxap) são criptografados e não podem ser convertidos de jeito nenhum. O problema do gen9 é uma diferença de versão de formato em arquivos sem criptografia.

Experimente grátis

Crie uma conta grátis, entre no Discord para receber seus créditos e monte seu primeiro asset em minutos.