--- name: fivem-natives description: Nachschlagewerk für FiveM/GTA5 Natives und docs.fivem.net. Nutzen, sobald ein FiveM-Native, ein Hash (0x...), eine Native-Signatur, ein Parameter oder ein Rückgabewert geprüft werden soll, wenn unklar ist ob ein Native client-, server- oder shared-seitig ist, wenn ein Native über die Beschreibung gesucht wird ("wie setze ich einen Ped in Ragdoll"), oder wenn etwas aus den FiveM-Docs gebraucht wird (fxmanifest, Resource-Manifest-Einträge, Server-Convars, Events, Scripting-Runtimes, Server-Setup, Streaming/Assets, Game-Referenzen). --- # FiveM Natives & Docs Lokale SQLite-Datenbank mit **7.359 Natives** (GTA5 + Cfx) und **342 Doc-Seiten** von docs.fivem.net. Offline, keine Dependencies außer Python 3. **Immer diese Datenbank statt WebFetch/WebSearch verwenden** — sie ist schneller, vollständig und enthält die Beschreibungen, Parametertypen und Beispiele aus den offiziellen Quellen. ## Aufruf Alle Kommandos relativ zum Skill-Verzeichnis (`$SKILL_DIR = Ordner dieser SKILL.md`): ```bash python "$SKILL_DIR/fivem.py" [args] ``` ## Kommandos | Kommando | Zweck | |---|---| | `fivem.py ` | Kombinierte Suche über Natives **und** Docs (Default) | | `fivem.py show ` | Volles Detail: Signatur, Parameter, Rückgabe, Beschreibung, Beispiele | | `fivem.py search ` | Nur Natives, mit `--apiset client\|server\|shared`, `--ns VEHICLE`, `--limit N`, `--json` | | `fivem.py ns` / `fivem.py ns PED` | Namespaces auflisten / alle Natives eines Namespace | | `fivem.py docs ` | Volltextsuche in docs.fivem.net (`--section scripting-reference`) | | `fivem.py doc ` | Komplette Doc-Seite ausgeben | | `fivem.py stats` | Umfang / Build-Datum | ## Typische Abläufe **Signatur eines bekannten Natives prüfen** — vor dem Schreiben von Native-Aufrufen: ```bash python "$SKILL_DIR/fivem.py" show SetEntityCoords python "$SKILL_DIR/fivem.py" show 0xAE99FB955581844A ``` Akzeptiert Lua-Name (`SetPedToRagdoll`), Original-Name (`SET_PED_TO_RAGDOLL`), Hash und jhash — Groß-/Kleinschreibung egal. **Native über die Funktion suchen**, wenn der Name unbekannt ist: ```bash python "$SKILL_DIR/fivem.py" search vehicle engine health python "$SKILL_DIR/fivem.py" search identifier --apiset server ``` **Server- vs. Client-Kontext klären** — das Feld `apiset` ist maßgeblich: ```bash python "$SKILL_DIR/fivem.py" search player ping --apiset server ``` **Docs nachschlagen**: ```bash python "$SKILL_DIR/fivem.py" docs fxmanifest python "$SKILL_DIR/fivem.py" doc scripting-reference/resource-manifest python "$SKILL_DIR/fivem.py" docs convar --section server-manual ``` ## Wichtig beim Interpretieren - **`apiset`** sagt, wo das Native läuft: `client`, `server` oder `shared`. Alle GTA5-Natives sind `client`; Cfx-Natives können server- oder shared-seitig sein. - **Gleicher Name, zwei Einträge**: viele Natives existieren zusätzlich als server-seitiges RPC-Pendant (z.B. `SetPedToRagdoll` als `0xAE99FB955581844A` client und `0x83CB5052` server). `show` gibt beide aus — den passenden auswählen. - **`lua_name`** ist der Bezeichner, der in Lua/JS tatsächlich aufgerufen wird. Achtung auf Sonderfälle wie `DrawScaleformMovie_3d` (Unterstrich vor Ziffern bleibt) und `World3dToScreen2d`. - **Unbenannte Natives** heißen `N_0x`; per `Citizen.InvokeNative(0x..., ...)` aufrufbar. - Parameter mit Namen wie `p4`, `p19` sind in den offiziellen Docs undokumentiert — das im Code kenntlich machen statt zu raten. ## Fallback ohne Python `data/natives.jsonl` enthält ein Native pro Zeile und ist direkt grep-bar: ```bash grep -i '"lua_name": "SetPedToRagdoll"' "$SKILL_DIR/data/natives.jsonl" ``` ## Daten aktualisieren ```bash python "$SKILL_DIR/build.py" --refresh ``` Zieht `runtime.fivem.net/doc/natives*.json` und `github.com/citizenfx/fivem-docs` neu.