7359 Natives (GTA5 + Cfx) und 342 Doc-Seiten von docs.fivem.net in einer SQLite-DB mit FTS5-Volltextsuche, dazu ein dependency-freies Python-CLI und eine SKILL.md fuer Claude Code. - build.py zieht runtime.fivem.net/doc/natives*.json und citizenfx/fivem-docs und loest die Hugo-Shortcodes der Docs auf (code, native_link, alert, events) - lua_name folgt exakt der Regel aus FiveM ext/natives/codegen_out_lua.lua - fivem.py: show / search / ns / docs / doc / stats, optional --json - data/natives.jsonl als grep-barer Fallback Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
fivem-natives-db
Offline-Nachschlagewerk für FiveM Natives und docs.fivem.net — als SQLite-Datenbank mit Volltextsuche (FTS5), CLI und fertigem Claude-Code-Skill.
| Natives | 7.359 (6.416 GTA5 + 943 Cfx) |
| Doc-Seiten | 342 aus citizenfx/fivem-docs |
| Größe | ~11 MB SQLite + ~4 MB JSONL |
| Dependencies | keine — nur Python 3.8+ Stdlib |
Installation als Claude-Code-Skill
Ins Skill-Verzeichnis klonen, dann findet Claude Code die SKILL.md automatisch:
git clone https://git.d4rkst3r.de/D4rkst3r/fivem-natives-db.git ~/.claude/skills/fivem-natives
Unter Windows (PowerShell):
git clone https://git.d4rkst3r.de/D4rkst3r/fivem-natives-db.git "$env:USERPROFILE\.claude\skills\fivem-natives"
Danach greift Claude bei Fragen zu Natives, Hashes, Signaturen oder FiveM-Docs automatisch auf die lokale DB zu, statt die Doku zu raten oder online zu fetchen.
Alternativ irgendwohin klonen und fivem.py direkt benutzen.
CLI
python fivem.py ragdoll # kombinierte Suche (Natives + Docs)
python fivem.py show SetPedToRagdoll # volles Detail
python fivem.py show 0xAE99FB955581844A # ... auch per Hash oder jhash
python fivem.py search vehicle engine --apiset client --limit 20
python fivem.py ns # alle 45 Namespaces
python fivem.py ns VEHICLE # Natives eines Namespace
python fivem.py docs fxmanifest # Docs-Volltextsuche
python fivem.py doc scripting-reference/resource-manifest
python fivem.py stats
show liefert Signatur, Parameter mit Typ und Beschreibung, Rückgabewert,
Beschreibungstext und die offiziellen Codebeispiele:
## SetPedToRagdoll
`0xAE99FB955581844A` **PED** | **client** | **gta5**
Native-Name: `SET_PED_TO_RAGDOLL`
void SetPedToRagdoll(Ped ped, int minTime, int maxTime, int ragdollType,
BOOL bAbortIfInjured, BOOL bAbortIfDead, BOOL bForceScriptControl)
Mit --json gibt es maschinenlesbare Ausgabe.
Schema
data/natives.db:
| Tabelle | Inhalt |
|---|---|
natives |
ein Eintrag pro Native — s.u. |
natives_fts |
FTS5 über name, lua_name, ns, description, param_names, aliases, hash |
docs |
path, slug, section, title, weight, url, body (Shortcodes aufgelöst), raw |
docs_fts |
FTS5 über title, section, slug, body |
meta |
built_at, native_count, doc_count, sources, schema_version |
Spalten in natives:
hash, jhash, name (Original, z.B. SET_ENTITY_COORDS), lua_name
(Aufrufname, z.B. SetEntityCoords), ns, source (gta5|cfx), game,
apiset (client|server|shared), results, results_description,
description, signature, params_json, param_names, examples_json,
aliases, url.
Direkt per SQL nutzbar:
SELECT n.lua_name, n.ns, n.signature
FROM natives_fts f JOIN natives n ON n.id = f.rowid
WHERE natives_fts MATCH 'vehicle AND engine'
AND n.apiset = 'client'
ORDER BY rank LIMIT 20;
data/natives.jsonl enthält dieselben Natives als eine JSON-Zeile pro Native —
praktisch für grep, wenn kein Python zur Hand ist.
Rebuild
python build.py --refresh
Quellen:
https://runtime.fivem.net/doc/natives.json— GTA5-Nativeshttps://runtime.fivem.net/doc/natives_cfx.json— Cfx/FiveM-Nativeshttps://github.com/citizenfx/fivem-docs— Markdown von docs.fivem.nethttps://runtime.fivem.net/doc/events/{client,server}.html.json— Event-Referenz
Ohne --refresh wird aus .cache/ gebaut (nicht eingecheckt).
Beim Build werden die Hugo-Shortcodes der Docs aufgelöst, damit der Inhalt
durchsuchbar ist: code (bindet Beispieldateien ein), native_link (wird zum
Link auf docs.fivem.net), alert (wird zum Blockquote), rmv/rmv2, events
(zieht die Client-/Server-Event-Referenz), youtube/video/forum_topic.
Namenskonvertierung
lua_name folgt exakt der Regel aus FiveM ext/natives/codegen_out_lua.lua:
name:lower():gsub('_(%a)', upper):gsub('^%l', upper)
Ein Unterstrich vor einer Ziffer bleibt deshalb erhalten:
| Native | Lua |
|---|---|
SET_ENTITY_COORDS |
SetEntityCoords |
_FORCE_VEHICLE_ENGINE_SYNTH |
ForceVehicleEngineSynth |
DRAW_SCALEFORM_MOVIE_3D_SOLID |
DrawScaleformMovie_3dSolid |
UI3DSCENE_IS_AVAILABLE |
Ui3dsceneIsAvailable |
| (unbenannt) | N_0x<hash> |
Hinweis zur Repo-Größe
data/ ist eingecheckt, damit ein Clone sofort einsatzbereit ist. Jeder Rebuild
legt ~15 MB in die Git-History. Bei häufigen Updates den Data-Commit amenden oder
die History gelegentlich squashen.
Lizenz
Der Code hier ist frei verwendbar. Die Daten stammen von Cfx.re:
Natives-Metadaten und citizenfx/fivem-docs stehen unter den jeweiligen
Lizenzen der Upstream-Projekte.