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.

By germanfndez · 352 installs

npx skills add germanfndez/fiveai-skills --skill fivem-basics

Source repository · Upstream listing

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 Need Use Client to server TriggerServerEvent(event, ...) Server to one / all clients TriggerClientEvent(event, playerId \ 1, ...) Same side only TriggerEvent + AddEventHandler Data back across the network a callback (ox lib / framework), not paired events Single resource, non networked call a plain function, not an event Cross resource function exports / server export in manifest, exports.res:fn() Bug with clean server console ask 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/