Referência de data_file do fxmanifest para veículos
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_file | Arquivo | Elemento raiz | Finalidade |
|---|---|---|---|
HANDLING_FILE | handling.meta | CHandlingDataMgr | Perfis de física. Guia |
VEHICLE_METADATA_FILE | vehicles.meta | CVehicleModelInfo__InitDataList | Registra modelos de veículo. Guia |
CARCOLS_FILE | carcols.meta | CVehicleModelInfoVarGlobal | Mod kits, sirenes, luzes. Guia |
VEHICLE_VARIATION_FILE | carvariations.meta | CVehicleModelInfoVariation | Cores, kits e configurações de luz por modelo. |
VEHICLE_LAYOUTS_FILE | vehiclelayouts.meta | CVehicleMetadataMgr | Assentos, pontos de entrada, animações. Guia |
CLIP_SETS_FILE | clip_sets.xml | fwClipSetManager | Clip sets para animações personalizadas. |
EXPLOSION_INFO_FILE | explosion.meta | CExplosionInfoManager | Configurações de explosão personalizadas. |
VFXVEHICLEINFO_FILE | vfxvehicleinfo.meta | Conjuntos de efeitos visuais de veículo. | |
PTFXASSETINFO_FILE | ptfxassetinfo.meta | Informações de assets de efeitos de partículas. | |
AUDIO_GAMEDATA, AUDIO_SOUNDDATA, AUDIO_WAVEPACK | .dat151.rel, .dat54.rel, pasta de arquivos .awc | Sons de motor personalizados. | |
VEHICLE_SHOP_DLC_FILE | shop_vehicle.meta | Dados de loja de veículos dos pacotes de DLC. | |
CONTENT_UNLOCKING_META_FILE | Listado 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_FILEperto do topo, já que os layouts se referem aos clip sets pelo nome.VEHICLE_METADATA_FILEem seguida.CARCOLS_FILEantes deVEHICLE_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?
| Erro | Resultado | Correção |
|---|---|---|
Meta em data_file mas não em files | O arquivo nunca chega ao jogador. | Adicione o mesmo caminho em files. |
| Caminho ou nome de pasta errado | Nada é carregado. | Os caminhos são relativos à pasta do resource e usam barras normais. |
| Tipo errado para o arquivo | O 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 game | O 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
- FiveM docs: Resource manifest
- FiveM docs: Data files
- FiveM client source: data file load order (LoadStreamingFile.cpp)
Produtos deste guia
Todos os guias
- Como instalar um resource FiveM do Cfx.re Escrow (Granted Assets)
- Como adicionar um veículo custom num servidor ESX, QBCore ou QBox
- O que são LODs em veículos FiveM?
- Como adicionar um veículo add-on a um servidor FiveM
- vehicles.meta explicado, campo por campo
- handling.meta explicado: campos, unidades e flags
- carvariations.meta e carcols.meta explicados
- vehiclelayouts.meta explicado: assentos, pontos de entrada e animações
- Arquivos de modelo do veículo (yft, _hi.yft, ytd) e o aviso de asset grande demais
- Solução de problemas de veículo add-on no FiveM: causas e correções
- Como resolver "You lack the required entitlement" em um servidor FiveM
- Como converter um mod de carro single-player do GTA 5 em add-on de FiveM
- Como um hoverboard de FiveM funciona sem script
- Como fazer um veículo de FiveM no Blender com o Sollumz 2.9
- Como otimizar um veículo de FiveM: polígonos, LODs e orçamento de texturas
- Como configurar a colisão de veículo no Sollumz
- Comprar veículos FiveM: o que conferir antes de pagar
- Pack de carros FiveM vs veículos avulsos
- Carro de marca real no FiveM: pode ou não?
- CodeWalker vs Sollumz: qual ferramenta usar em veículos de FiveM?
