Scripting no FiveM: recursos, fxmanifest, eventos e a skill de IA
Atualizado em
Não quer gerenciar as skills por conta própria? Obtenha o app completo.
Um recurso do FiveM é uma pasta com um fxmanifest.lua e scripts de cliente, servidor e compartilhados que se comunicam por eventos. Este guia explica essa estrutura, os erros que impedem um recurso de iniciar e a skill de IA que os evita.
O scripting no FiveM começa pelos recursos: pastas que contêm um fxmanifest.lua e os scripts de cliente, servidor e compartilhados que formam uma funcionalidade. Cada framework, script de emprego ou interface de um servidor é um recurso, então essas bases valem para qualquer pessoa que programe para FiveM. Esta página explica o que a skill de fundamentos do FiveM da FiveAI documenta, os erros que impedem um recurso de iniciar e como instalar a skill no seu assistente de IA.
O que a skill de fundamentos do FiveM te dá
A skill é um arquivo SKILL.md com um arquivo de regras por tema:
structure: como organizar um recurso, separação entre cliente e servidor, agrupamento lógico e nomes.fxmanifest: as chaves do manifesto que importam:fx_version,game,client_scripts,server_scripts,shared_scripts,filesedependencies.client-server: o que roda em cada lado, código compartilhado e os padrões de comunicação entre os dois.events:RegisterNetEvent,TriggerServerEvent,TriggerClientEvent, convenções de nomes e segurança.exports: como definir um export e chamar a partir de outro recurso.debugging: o console do servidor versus o console F8 do cliente, e quando pedir os logs do F8 se o servidor não mostra nada.optimization: locais, tempo dos loops, cache dePlayerPedId(), distância com vetores, state bags e estrutura de pastas.reference-links: a documentação oficial em https://docs.fivem.net/docs/ e a referência de natives em https://docs.fivem.net/natives/.
Use a skill sempre que criar ou editar um recurso, não importa qual framework roda em cima.
Erros comuns com recursos do FiveM
fx_versionougameausentes ou errados no fxmanifest.lua. Sintoma: o recurso não inicia e o console do servidor imprime um erro de manifesto. Correção: declarefx_version 'cerulean'egame 'gta5'no início do manifesto e depois liste seus scripts.- Lógica de servidor em um arquivo de cliente. Sintoma: uma consulta ao banco de dados ou um native exclusivo de servidor roda no cliente, falha ou expõe dados para todos os jogadores. Correção: mantenha tudo que toca banco de dados, dinheiro ou permissões em
server_scriptse envie resultados ao cliente por eventos. RegisterNetEventsem handler, ou nomes de handler que não batem com o trigger. Sintoma: o evento dispara e nada acontece, sem erro em nenhum console. Correção: registre o evento e adicione o handler com a mesma string, e use um prefixo de recurso comomeurecurso:server:fazerAlgopara os nomes nunca colidirem.- Ordem de
ensureerrada no server.cfg. Sintoma: um recurso inicia antes do framework ou da biblioteca de que precisa, então os exports dela são nil na carga. Correção: adicionedependency 'ox_lib'(oudependencies { ... }) no fxmanifest.lua e faça oensureda dependência antes no server.cfg. - Loops pesados
while true do Wait(0) ende globais por toda parte. Sintoma: tempo alto de recurso no resmon e colisões de nomes entre scripts. Correção: use umWaitmais longo quando não há nada por perto, cacheiePlayerPedId()fora do loop, compare distâncias com vetores e declare variáveis comlocal.
Por que os assistentes de IA erram com FiveM
Um assistente genérico não sabe a qual lado da rede um native pertence, então chama natives de cliente no servidor, inventa exports que um recurso nunca teve e escreve manifestos de memória com um fx_version desatualizado ou sem a linha game. Também recorre à sintaxe de eventos mais antiga dos dados de treinamento e raramente adiciona um prefixo de recurso aos nomes de eventos.
A skill dá a ele uma referência curta para cada uma dessas áreas: as chaves do manifesto, a separação entre cliente e servidor, as funções de eventos com suas regras de nomes e segurança, o padrão de exports e a orientação de otimização. Também manda o assistente consultar a referência de natives em docs.fivem.net em vez de adivinhar a assinatura de um native, e pedir os logs do F8 quando um bug de cliente deixa o console do servidor limpo. É isso que transforma um script plausível em um que inicia e funciona.
Instale a skill de fundamentos do FiveM em 30 segundos
- Clique em "Download SKILL.md" no topo desta página.
- Descompacte na pasta de skills ou regras da sua ferramenta de IA. A seção de instalação abaixo mostra o caminho exato para Claude Code, Cursor e VS Code.
- Peça ao assistente algo concreto, como um recurso com um evento de servidor e um comando de cliente, e confira se o manifesto tem
fx_versionegamee se os nomes dos eventos batem nos dois lados.
Como instalar esta skill
Baixe o zip, descompacte e coloque a pasta onde a sua ferramenta carrega skills ou regras. O caminho exato depende da ferramenta:
Claude Code
Descompacte em .claude/skills/fivem-basics/ dentro do projeto (a pasta precisa conter SKILL.md). Para todos os projetos, use ~/.claude/skills/fivem-basics/.
Cursor
O Cursor carrega as regras do projeto de .cursor/rules/. Adicione ali um arquivo de regra apontando para a skill descompactada, ou cole o conteúdo do SKILL.md e dos arquivos de regras em uma regra. O formato é .mdc com frontmatter e muda entre versões, então confira a documentação da sua versão.
VS Code / Copilot
O Copilot lê arquivos de instruções em .github/instructions/*.instructions.md. Copie o SKILL.md para lá com um glob applyTo para os seus arquivos Lua e mantenha os arquivos de regras ao lado.
O arquivo SKILL.md
Este é o arquivo que o seu assistente de IA lê. Ele aponta para os arquivos de regras incluídos no download.
O conteúdo da skill está em inglês: é documentação técnica feita para agentes de IA.
FiveM basics
Best practices for FiveM — resources, manifest, client/server, events. Use this skill whenever you are dealing with FiveM code to obtain domain-specific knowledge.
When to use
- User asks how FiveM resources or scripts work.
- Editing or creating
fxmanifest.lua,client_*.lua, orserver.lua. - Questions about client/server, events, or exports.
- Need to look up natives or detailed docs → point to https://docs.fivem.net/natives/ and https://docs.fivem.net/docs/.
How to use
Read individual rule files for detailed explanations and examples:
- rules/structure.md — Resource structure and organization: scope, client/server separation, logical grouping, naming conventions.
- rules/fxmanifest.md — Resource manifest (fxmanifest.lua): fx_version, game, client_scripts, server_script, files, dependencies.
- rules/client-server.md — Client vs server scripts, shared code, communication patterns.
- rules/events.md — Events in Lua: RegisterNetEvent, TriggerServerEvent, TriggerClientEvent, naming conventions, security.
- rules/exports.md — Defining and consuming exports between resources.
- rules/debugging.md — Server vs client (F8) logs; when to ask the user for F8 logs if there's no server-side error.
- rules/optimization.md — Lua/FiveM optimization: locals, loops, natives (PlayerPedId, vector distance), state bags, security, readability, folder structure.
- rules/reference-links.md — Official docs and natives reference.
Perguntas frequentes
- O runtime do FiveM suporta os dois. Lua é a escolha mais comum e é o que ESX, QBCore e a maioria dos scripts publicados usam, então com Lua você tem mais exemplos e uma integração mais fácil. JavaScript funciona bem se sua equipe já vive no Node.
- A referência oficial é https://docs.fivem.net/natives/. Ela lista cada native com seus parâmetros, valores de retorno e o lado (cliente ou servidor) onde roda. A documentação geral fica em https://docs.fivem.net/docs/.
- Sim. O SKILL.md é markdown puro. Cole em uma instrução personalizada ou anexe a um projeto do ChatGPT. Claude Code, Cursor e VS Code carregam o arquivo da pasta de skills ou regras.
Escrevo recursos do FiveM em Lua ou em JavaScript?
Onde encontro a lista de natives do FiveM?
Posso usar esta skill com o ChatGPT?
Guias relacionados
Leituras mais longas do blog da FiveAI sobre o mesmo tema.