fivem-basics — скилл для Claude Code: структура ресурсов FiveM
Скилл для FiveM Lua: раскладывает ресурс по client/server/shared, пишет манифест и связывает стороны событиями и экспортами.
npx skills add germanfndez/fiveai-skills --skill fivem-basics -a claude-codeЧто делает fivem-basics
Скилл включается, когда вы создаёте или правите ресурс FiveM, файл fxmanifest.lua, client*.lua или server*.lua, спрашиваете про события и экспорты либо приносите баг, для которого нужны логи сервера или F8.
Внутри восемь справочных файлов: структура ресурса, манифест, разделение клиента и сервера, события, экспорты, отладка, оптимизация и ссылки на официальную документацию. Скилл требует fx_version 'cerulean' и game 'gta5' в манифесте, сетевые события через RegisterNetEvent, а деньги и предметы — только на сервере. GetInvokingResource() для сетевого события возвращает nil, поэтому проверять отправителя им нельзя: валидируйте типы, диапазоны и состояние, которое живёт на сервере.
Сторону для каждой части логики придётся выбирать самому, скилл только задаёт правила и таблицу решений. Имена событий он советует писать в форме resource:side:action.
Какие задачи решает
- разложить ресурс по папкам client, server и shared
- написать
fxmanifest.luaс нужными записями - выбрать между
TriggerServerEvent,TriggerClientEventи обычнымTriggerEvent - вынести проверку денег и предметов на сервер
- понять, каких логов не хватает — серверных или F8
Примеры запросов агенту
- Создай ресурс FiveM для магазина: клиент рисует меню, сервер проверяет деньги
- Почему
GetInvokingResource()вернул nil в обработчике сетевого события? - Раздели этот скрипт на client и server и добавь валидацию аргументов
Как установить fivem-basics
1Через Skills CLI (Vercel)
npx skills add germanfndez/fiveai-skills --skill fivem-basics -a claude-code2Вручную: положить файлы
~/.claude/skills/fivem-basics/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/fivem-basics/
1Через Skills CLI (Vercel)
npx skills add germanfndez/fiveai-skills --skill fivem-basics -a codex2Вручную: положить файлы
.agents/skills/fivem-basics/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add germanfndez/fiveai-skills --skill fivem-basics -a cursor2Вручную: положить файлы
.cursor/skills/fivem-basics/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install germanfndez/fiveai-skills fivem-basics2Вручную: положить файлы
.github/skills/fivem-basics/SKILL.md1Через Skills CLI (Vercel)
npx skills add germanfndez/fiveai-skills --skill fivem-basics -a gemini-cli2Командой платформы
gemini skills install https://github.com/germanfndez/fiveai-skills --path skills/fivem-basicsВручную: положить файлы
.devin/skills/fivem-basics/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add germanfndez/fiveai-skills --skill fivem-basics -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о fivem-basics
Как установить fivem-basics в Claude?
Выполните npx skills add germanfndez/fiveai-skills --skill fivem-basics -a claude-code. Скилл окажется в ~/.claude/skills/fivem-basics/SKILL.md.
Что делает fivem-basics?
Подсказывает, как устроен ресурс FiveM: манифест, разделение клиента и сервера, сетевые события, экспорты и отладка по логам. Работает с Lua.
Чем сетевые события отличаются от локальных?
Сетевые регистрируются через RegisterNetEvent, а локальные — только через AddEventHandler. Для данных, которые должны вернуться через сеть, скилл советует callback, а не пару событий.
Исходный текст
SKILL.md · MIT
--- name: fivem-basics description: "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." license: MIT metadata: author: germanfndez version: "1.0.0" --- # 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/
© germanfndez · MIT · germanfndez/fiveai-skills