VI RELEASE
0D
0H
0M
0S
GTABRIntelligence & Leak Database
C
Code Master

10 de janeiro de 2026

MODS7668 views

Scripting em Lua: Primeiros Passos

Scripting em Lua: Primeiros Passos

Lua: A Linguagem que Move o FiveM

Toda a lógica de gameplay personalizada nos servidores FiveM é escrita em Lua — uma linguagem de script leve, rápida e especialmente popular em jogos. Também é usada no Roblox, World of Warcraft addons e diversos game engines.

Se você quer criar scripts únicos, corrigir bugs, ou personalizar sistemas, Lua é a habilidade mais valiosa que você pode desenvolver como dono ou dev de servidor.

Programador codificando em tela escura

Configurando o Ambiente de Desenvolvimento

Ferramentas Necessárias

  • Visual Studio Code — Editor de código gratuito e poderoso
  • Extensão Lua (sumneko) — Autocomplete, linting e IntelliSense para Lua
  • Extensão FiveM Natives — Autocomplete específico para funções nativas do FiveM
  • Servidor FiveM local — Para testar seus scripts sem afetar o servidor de produção

Documentação Essencial

Mantenha estas páginas sempre abertas durante o desenvolvimento:

  • docs.fivem.net — Documentação oficial com todas as native functions
  • Lua 5.3 Reference — Manual oficial da linguagem Lua

Anatomia de um Resource FiveM

Todo resource (script) FiveM tem esta estrutura mínima de pastas:

meu-resource/
├── fxmanifest.lua     (manifesto obrigatório)
├── client/
│   └── main.lua       (código do lado do cliente)
└── server/
    └── main.lua       (código do lado do servidor)

O Manifesto (fxmanifest.lua)

O arquivo fxmanifest.lua é obrigatório e informa ao FiveM quais arquivos carregar. Ele define a versão do framework (atualmente adamant), o jogo alvo (gta5) e lista os scripts client e server.


Conceitos Fundamentais

Variáveis e Tipos

Lua é uma linguagem dinamicamente tipada — você não precisa declarar o tipo da variável:

  • local nome = "Carlos" — string
  • local idade = 25 — number
  • local ativo = true — boolean
  • local inventario = {} — table (array/objeto)

Funções

Funções em Lua são declaradas com a palavra-chave function. No FiveM, a maioria das suas funções serão callbacks de eventos ou threads:

Client vs. Server: Quando Usar Cada Um

Client-sideServer-side
Interface do usuário (HUDs, menus)Banco de dados (MySQL/oxmysql)
Animações e efeitos visuaisLógica de negócio (economia, itens)
Spawnar props/objetos locaisValidações de segurança
Eventos do jogador localEvents que afetam múltiplos jogadores
🔒 Regra de Ouro: Nunca confie no cliente. Toda lógica crítica — dinheiro, itens, status, permissões — deve sempre ser validada no servidor. O client pode ser manipulado por cheaters.

Seu Primeiro Script: Comando /hello

No arquivo client/main.lua, use a função RegisterCommand para criar um comando. Ela recebe três parâmetros:

  1. Nome do comando (string) — ex: "hello"
  2. Callback function — a lógica que executa quando o comando é digitado
  3. Restricted (boolean) — se true, só admins podem usar

Dentro da callback, use GetPlayerName(PlayerId()) para obter o nome do jogador e TriggerEvent("chat:addMessage", ...) para exibir mensagens no chat do jogo.


Próximos Passos na Jornada Dev

  1. Domine os exports do framework (ESX/QB-Core) — eles expõem funções prontas
  2. Aprenda a usar oxmysql para interagir com o banco de dados
  3. Estude NUI (Next User Interface) para criar HUDs com HTML/CSS/JS
  4. Explore os state bags para sincronização de dados entre client/server
  5. Participe de comunidades dev no Discord — a colaboração acelera o aprendizado

Qual script você gostaria de aprender a criar? Pede nos comentários! 💻

Respostas (0)

Nenhuma resposta ainda. Seja o primeiro!

Faça login para participar da discussão