O que é fxmanifest.lua?
Cada recurso FiveM requer um arquivo manifesto que informa ao servidor o que o recurso contém e como carregá-lo. O arquivo fxmanifest.lua substitui o formato __resource.lua antigo e fornece uma maneira limpa e declarativa de definir os metadados do seu recurso. Este arquivo especifica quais scripts são executados no cliente, quais são executados no servidor, quais arquivos NUI incluir, dependências de recursos e metadados adicionais. Acertar o manifesto é essencial porque erros aqui podem impedir o carregamento de todo o recurso.
Campos obrigatórios
Todo manifesto deve começar com dois campos obrigatórios: fx_version e games. O fx_version especifica a versão do formato do manifesto, sendo 'cerulean' o padrão atual que suporta todos os recursos modernos. O campo games define qual jogo o recurso suporta, normalmente {'gta5'} para FiveM. A omissão de qualquer um desses campos fará com que o recurso falhe totalmente no carregamento, portanto, inclua-os sempre nas duas primeiras linhas do seu manifesto.
Declarações de script
Use client_scripts, server_scripts e shared_scripts para declarar seus arquivos Lua. Os scripts do cliente são executados no cliente do jogo do jogador e controlam a renderização, a entrada e a interação local do jogo. Os scripts do servidor são executados no servidor e lidam com lógica autoritativa, operações de banco de dados e gerenciamento de jogadores. Scripts compartilhados são executados em ambos os lados e são úteis para arquivos de configuração, funções utilitárias e constantes compartilhadas. Você pode usar padrões glob como 'client/*.lua' para incluir todos os arquivos em um diretório, mas listas de arquivos explícitas fornecem controle sobre a ordem de carregamento.
NUI e declarações de arquivo
Se o seu recurso incluir uma interface de usuário, declare o arquivo HTML de entrada com ui_page 'html/index.html'. Em seguida, liste todos os ativos da web que sua UI precisa na tabela files, incluindo HTML, CSS, JavaScript, imagens e fontes. Somente os arquivos listados aqui estarão acessíveis ao navegador NUI. Use padrões glob como 'html/**/*' para incluir diretórios inteiros. Lembre-se de que os arquivos NUI são enviados ao cliente durante o carregamento dos recursos, portanto, mantenha seus ativos da web otimizados para reduzir o tempo de download e o uso de largura de banda.
Dependências e ordem de carregamento
Declare dependências de recursos com o campo dependencies para garantir que os recursos necessários comecem antes dos seus. Dependências comuns incluem recursos de estrutura como qb-core ou es_extended, recursos de banco de dados como oxmysql e bibliotecas compartilhadas. Se uma dependência não for iniciada, seu recurso não carregará e registrará um aviso. Use provide para indicar que seu recurso serve como substituto de outro, o que é útil ao criar pontes de estrutura ou implementações alternativas de scripts comuns.
Recursos avançados de manifesto
O manifesto oferece suporte a diversas diretivas adicionais para casos de uso especializados. Use data_file para carregar arquivos de dados GTA, como metas de armas, arquivos de manuseio ou dados de modelo de veículo. Os campos export e server_export declaram funções que outros recursos podem chamar. Adicione metadados com os campos description, author e version para fins de documentação. A diretiva lua54 habilita recursos do Lua 5.4 quando definida como 'yes', dando acesso à divisão inteira, operadores bit a bit e outras melhorias de linguagem que podem simplificar scripts complexos.
