germanfndez/fiveai-skillsMIT9 files

Fivem Basics

Trigger: FiveM resource, fxmanifest, client/server script, RegisterNetEvent, TriggerServerEvent, TriggerClientEvent, exports, F8 logs, how FiveM works. Structure resources, manifests, events and exports for FiveM Lua.

Specification
Skill ID
germanfndez/fiveai-skills/fivem-basics
Publisher
germanfndez
Repository
fiveai-skills
Installs
0
Files
9
License
MIT
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

germanfndez/fiveai-skills/fivem-basicsInstalls these files
  • SKILL.md
  • rules/client-server.md
  • rules/debugging.md
  • rules/events.md
  • rules/exports.md
  • rules/fxmanifest.md
  • rules/optimization.md
  • rules/reference-links.md
  • rules/structure.md

What this skill tells the agent

FiveM basics

Resource structure, fxmanifest, client/server split, events, exports and debugging for FiveM Lua.

Activation Contract

Load this skill when the user creates or edits any FiveM resource, fxmanifest.lua, client*.lua or server*.lua, asks how client/server, events or exports work, or reports a bug that needs server vs F8 logs.

Hard Rules

  • Manifest: fx_version 'cerulean' and game 'gta5' (or 'rdr3' / 'common'); every client-served file goes in files.
  • Register networked events with RegisterNetEvent; local-only events use AddEventHandler alone, never RegisterNetEvent.
  • Server handlers read the sender from source; broadcast with TriggerClientEvent(event, -1, ...).
  • GetInvokingResource() is nil for every net event that crosses the network; it is not an authentication check. Validate types, ranges and server-owned state instead.
  • Never handle money or item transactions on the client; validate and apply on the server.
  • No game natives in shared_scripts unless guarded by environment.
  • Use PlayerPedId() not GetPlayerPed(-1); use #(a - b) not GetDistanceBetweenCoords.
  • Prefer local; prefer variable Wait() over fixed Wait(0).
  • Resource names use underscores, no spaces or special characters.

Decision Gates

NeedUse
Client to serverTriggerServerEvent(event, ...)
Server to one / all clients`TriggerClientEvent(event, playerId \-1, ...)`
Same side onlyTriggerEvent + AddEventHandler
Data back across the networka callback (ox_lib / framework), not paired events
Single-resource, non-networked calla plain function, not an event
Cross-resource functionexports / server_export in manifest, exports.res:fn()
Bug with clean server consoleask for F8 client logs

Execution Steps

  1. Lay out client/, server/, shared/ and the manifest; read rules/structure.md and rules/fxmanifest.md.
  2. Decide the side for each piece of logic (natives on client, data and validation on server).
  3. Wire communication from Decision Gates; name events resource:side:action.
  4. Validate every server handler argument; add distance and state checks.
  5. Point to https://docs.fivem.net/natives/ for native lookups.

Output Contract

Return the manifest plus runnable Lua split by side, with event names, validation and source handling explicit.

References

  • rules/structure.md — scope, client/server separation, naming.
  • rules/fxmanifest.md — manifest entries, globbing, minimal example.
  • rules/client-server.md — what runs where and how sides communicate.
  • rules/events.md — register, trigger, naming, events vs functions, security.
  • rules/exports.md — defining and consuming exports.
  • rules/debugging.md — server console vs F8 logs.
  • rules/optimization.md — locals, tables, natives, loops, security.
  • rules/reference-links.md — official docs and natives reference.

Upstream docs: https://docs.fivem.net/docs/

Use this skill in a project

Open any RiverX project, search the Skills panel for germanfndez/fiveai-skills/fivem-basics, and install it in one click.

Use this skill