Tutorial · FiveM Dev · Lua

Como Fazer Script FiveM

Tutorial completo para criar scripts em Lua para FiveM: estrutura de recursos, client.lua, server.lua, integração com ESX e QBCore, banco de dados e NUI.

Tutorial em Vídeo

Aprenda Lua para FiveM na prática

Tutorial de scripting FiveM · Se o vídeo não carregar, busque "tutorial script FiveM Lua" no YouTube

Estrutura

Estrutura mínima de um recurso FiveM

// Estrutura de pasta do recurso:

meu-script/

├── fxmanifest.lua // obrigatório

├── client.lua // roda no jogador

└── server.lua // roda no servidor

-- fxmanifest.lua básico:

fx_version 'cerulean'

game 'gta5'

client_scripts {'client.lua'}

server_scripts {'server.lua'}

Do Zero ao Script

Criando seu primeiro script FiveM

01

Instale o ambiente de desenvolvimento

VS Code (gratuito) com extensões: Lua Language Server, FiveM Types para autocomplete. Opcionalmente o servidor FiveM local para testes rápidos.

02

Entenda a estrutura de um recurso FiveM

Todo script FiveM é um 'recurso': uma pasta com fxmanifest.lua (declaração de arquivos), client.lua (roda no jogador), server.lua (roda no servidor) e HTML/CSS/JS para NUI (interface).

03

Crie o fxmanifest.lua

O manifesto declara o nome do recurso, versão, dependências e lista todos os arquivos Lua, HTML e JS que o recurso usa. Sem o manifesto correto, o recurso não carrega.

04

Escreva a lógica client-side

client.lua roda em cada jogador. Use RegisterCommand, AddEventHandler, RegisterNetEvent, TriggerServerEvent. Aqui ficam HUD, animações, keybinds e detecção de proximidade.

05

Escreva a lógica server-side

server.lua roda no servidor. Use AddEventHandler, RegisterServerEvent, TriggerClientEvent. Aqui ficam banco de dados (MySQL), validações de segurança e lógica de autoridade.

06

Integre com o framework (ESX ou QBCore)

Use as funções do framework para acessar dados do jogador, inventário, dinheiro e trabalhos. ESX.GetPlayerData() / QBCore.Functions.GetPlayerData() são o ponto de partida.

Dúvidas

Perguntas frequentes sobre scripting FiveM

?

Qual linguagem usar para scripts FiveM?

Lua é a linguagem principal. Simples de aprender, com sintaxe próxima do inglês. JavaScript também é suportado, mas Lua domina a cena por ter mais frameworks, scripts de referência e suporte da comunidade.

?

O que é client.lua e server.lua?

client.lua roda no computador do jogador: interface, animações, input, eventos visuais. server.lua roda no servidor centralizado: banco de dados, autoridade de jogo, validação de segurança. Sempre valide no server o que o client envia.

?

O que é o fxmanifest.lua?

É o arquivo de configuração de cada recurso FiveM. Declara nome, versão, dependências e lista todos os arquivos que o recurso usa (scripts, HTML, imagens). Sem ele, o FiveM não sabe o que carregar.

?

Como salvar dados no banco de dados FiveM?

Use o oxmysql (recomendado) ou ghmattimysql. São recursos que dão acesso ao MySQL do servidor via Lua. Exemplo: MySQL.Async.execute('INSERT INTO tabela VALUES (?)', {valor}). Sempre no server.lua, nunca no client.

?

O que é NUI no FiveM?

NUI (Native UI) é a interface web embutida no FiveM. Você cria HTML/CSS/JS normal e o FiveM exibe dentro do jogo. Perfeito para inventários, menus, mapas e qualquer interface rica que Lua sozinha não consegue fazer.

?

ESX ou QBCore para começar?

Para iniciantes no Brasil: ESX tem mais tutoriais em português e mais scripts prontos disponíveis. QBCore tem melhor arquitetura e é preferido por devs mais experientes. Ambos são gratuitos e bem documentados.

Acelere seu servidor

Scripts prontos para seu servidor FiveM

A Ryze Store tem scripts testados e compatíveis com ESX e QBCore para você adicionar ao seu servidor sem precisar criar do zero.