Referência de data_file do fxmanifest para veículos

Por Nilo3D · Atualizado:

Uma linha data_file no fxmanifest.lua manda o FiveM carregar um arquivo do resource no jogo como um tipo específico de dado do jogo. Veículos usam HANDLING_FILE para o handling.meta, VEHICLE_METADATA_FILE para o vehicles.meta, CARCOLS_FILE para o carcols.meta, VEHICLE_VARIATION_FILE para o carvariations.meta e VEHICLE_LAYOUTS_FILE para o vehiclelayouts.meta. Todo arquivo também precisa estar listado em files.

O que o data_file faz?

A documentação do FiveM descreve o data_file como algo que adiciona "a data file of a specified type to the game extra content system", ou seja, um arquivo de dados de um tipo específico ao sistema de conteúdo extra do jogo. Na prática é o mesmo mecanismo que o jogo usa para seus próprios pacotes de DLC: cada tipo tem um carregador que sabe ler aquele tipo de arquivo.

A linha tem duas strings: o tipo e o caminho dentro do resource.

fx_version 'cerulean'
game 'gta5'

files {
  'data/handling.meta',
  'data/vehicles.meta',
  'data/carcols.meta',
  'data/carvariations.meta',
}

data_file 'HANDLING_FILE'          'data/handling.meta'
data_file 'VEHICLE_METADATA_FILE'  'data/vehicles.meta'
data_file 'CARCOLS_FILE'           'data/carcols.meta'
data_file 'VEHICLE_VARIATION_FILE' 'data/carvariations.meta'

O arquivo também precisa aparecer em files. files faz o servidor enviar o arquivo aos jogadores, e data_file faz o jogo ler esse arquivo. Um sem o outro não faz nada.

Qual tipo de data_file vai com qual arquivo de veículo?

Estes são os tipos que importam para veículos, tirados da referência de data files do FiveM.

Tipo de data_fileArquivoElemento raizFinalidade
HANDLING_FILEhandling.metaCHandlingDataMgrPerfis de física. Guia
VEHICLE_METADATA_FILEvehicles.metaCVehicleModelInfo__InitDataListRegistra modelos de veículo. Guia
CARCOLS_FILEcarcols.metaCVehicleModelInfoVarGlobalMod kits, sirenes, luzes. Guia
VEHICLE_VARIATION_FILEcarvariations.metaCVehicleModelInfoVariationCores, kits e configurações de luz por modelo.
VEHICLE_LAYOUTS_FILEvehiclelayouts.metaCVehicleMetadataMgrAssentos, pontos de entrada, animações. Guia
CLIP_SETS_FILEclip_sets.xmlfwClipSetManagerClip sets para animações personalizadas.
EXPLOSION_INFO_FILEexplosion.metaCExplosionInfoManagerConfigurações de explosão personalizadas.
VFXVEHICLEINFO_FILEvfxvehicleinfo.metaConjuntos de efeitos visuais de veículo.
PTFXASSETINFO_FILEptfxassetinfo.metaInformações de assets de efeitos de partículas.
AUDIO_GAMEDATA, AUDIO_SOUNDDATA, AUDIO_WAVEPACK.dat151.rel, .dat54.rel, pasta de arquivos .awcSons de motor personalizados.
VEHICLE_SHOP_DLC_FILEshop_vehicle.metaDados de loja de veículos dos pacotes de DLC.
CONTENT_UNLOCKING_META_FILEListado na referência sem descrição. Não é necessário para um veículo add-on.

O tipo tem que ser escrito exatamente assim e em maiúsculas.

A ordem das linhas data_file importa?

Em parte. O FiveM sempre carrega as entradas HANDLING_FILE e VEHICLE_LAYOUTS_FILE antes de todos os outros tipos, não importa a ordem em que você as escreveu. Todos os outros tipos mantêm a ordem do manifest. Isso vem do código do client do FiveM, que ordena a lista desse jeito antes de carregar.

O motivo está do lado do jogo: quando o vehicles.meta é lido, o jogo busca a entrada de handling do veículo e o layout dele pelo nome naquele momento. Se eles ainda não estiverem carregados, o veículo é registrado sem eles.

Para os tipos restantes, escreva em ordem de dependência, com o que é referenciado primeiro:

fx_version 'cerulean'
game 'gta5'

files {
  'data/handling.meta',
  'data/vehiclelayouts.meta',
  'data/clip_sets.xml',
  'data/vehicles.meta',
  'data/carcols.meta',
  'data/carvariations.meta',
}

-- 1. things vehicles.meta points at
data_file 'HANDLING_FILE'          'data/handling.meta'
data_file 'CLIP_SETS_FILE'         'data/clip_sets.xml'
data_file 'VEHICLE_LAYOUTS_FILE'   'data/vehiclelayouts.meta'
-- 2. the vehicle itself
data_file 'VEHICLE_METADATA_FILE'  'data/vehicles.meta'
-- 3. kits, then the variations that reference them
data_file 'CARCOLS_FILE'           'data/carcols.meta'
data_file 'VEHICLE_VARIATION_FILE' 'data/carvariations.meta'
  • CLIP_SETS_FILE perto do topo, já que os layouts se referem aos clip sets pelo nome.
  • VEHICLE_METADATA_FILE em seguida.
  • CARCOLS_FILE antes de VEHICLE_VARIATION_FILE, porque o carvariations.meta se refere a kits que o carcols.meta define.

Posso carregar vários veículos com uma linha só?

Sim. Tanto files quanto data_file aceitam padrões glob no caminho. * casa dentro de uma pasta e ** casa em qualquer profundidade. Um pacote de veículos com uma subpasta por veículo pode ser declarado uma vez só:

files {
  'data/**/handling.meta',
  'data/**/vehicles.meta',
  'data/**/carcols.meta',
  'data/**/carvariations.meta',
}

data_file 'HANDLING_FILE'          'data/**/handling.meta'
data_file 'VEHICLE_METADATA_FILE'  'data/**/vehicles.meta'
data_file 'CARCOLS_FILE'           'data/**/carcols.meta'
data_file 'VEHICLE_VARIATION_FILE' 'data/**/carvariations.meta'

Veículos novos colocados em data/ passam a ser reconhecidos sem editar o manifest.

Por que os arquivos .yft e .ytd não estão no manifest?

Os arquivos em uma pasta chamada stream são registrados automaticamente pelo nome e pela extensão, então modelos, texturas e dicionários de animação não precisam de entrada no manifest. Subpastas dentro de stream não são problema. Duas coisas o FiveM recusa ali: arquivos sem extensão, e arquivos .rpf, que precisam ser extraídos antes.

Como extrair um dlc.rpf de single-player e organizar os arquivos num resource está em como converter um carro de single-player em add-on FiveM.

Dá para editar os metas em um resource com escrow?

Resources pagos entregues pelo Cfx.re Asset Escrow têm os scripts e os arquivos de modelo protegidos, e a entrada escrow_ignore do manifest lista os arquivos que o sistema de escrow deixa intactos. Quais arquivos ficam abertos é escolha do autor, então confira a página do produto. Os metas que o dono de um servidor mais quer editar são:

  • handling.meta, para mudar velocidade, aderência e frenagem.
  • carvariations.meta, para mudar as combinações de cores.
  • vehicles.meta, para mudar flags, classe ou a chave do nome de exibição.

Nos veículos da Nilo3D, como o Coil S-Cooter, os metas de handling e de veículo ficam abertos. Como instalar resources com escrow está em como instalar um resource de FiveM do Cfx.re Escrow.

Se um resource com escrow não inicia e mostra "You lack the required entitlement", veja como corrigir o erro de entitlement.

Quais são os erros comuns no manifest?

ErroResultadoCorreção
Meta em data_file mas não em filesO arquivo nunca chega ao jogador.Adicione o mesmo caminho em files.
Caminho ou nome de pasta erradoNada é carregado.Os caminhos são relativos à pasta do resource e usam barras normais.
Tipo errado para o arquivoO arquivo vai para o carregador errado e os dados dele não são aplicados.Use o tipo da tabela acima.
Metas colocados em stream/Eles não são carregados como data files.Mantenha os metas fora de stream e declare-os.
Falta fx_version ou gameO resource não carrega corretamente.Comece o manifest com fx_version 'cerulean' e game 'gta5'.

O processo inteiro, das pastas ao spawn, está em como adicionar um veículo add-on ao FiveM.

Perguntas frequentes

Qual é o data_file do handling.meta?
data_file 'HANDLING_FILE' seguido do caminho do handling.meta, com o mesmo caminho listado em files.
Qual é o data_file do carcols.meta e do carvariations.meta?
O carcols.meta usa CARCOLS_FILE e o carvariations.meta usa VEHICLE_VARIATION_FILE.
Preciso listar os arquivos meta em files além de data_file?
Sim. files faz o servidor enviar o arquivo aos jogadores e data_file faz o jogo carregá-lo. Um meta que falta em files nunca é baixado.
O data_file aceita curingas?
Sim. A referência do manifest do FiveM diz que o data_file aceita globbing no nome do arquivo, por exemplo data/**/handling.meta.
Em que ordem o FiveM carrega os data files de veículo?
As entradas HANDLING_FILE e VEHICLE_LAYOUTS_FILE são carregadas primeiro. Todos os outros tipos são carregados na ordem em que aparecem no manifest.

Fontes

Produtos deste guia

Todos os guias