Statebag¶
Wrapper um FiveM-Statebags für spielerseitigen State-Austausch zwischen Server und Client.
Übersicht¶
- Server: setzt und liest per Spieler-ID
- Client: liest per Server-ID oder lokalen Player; kann auch Entity-Bags lesen
Statebags werden automatisch an alle Clients repliziert (replicated = true).
Server-API¶
-- Setzen
cv.setPlayerState(playerId, key, value)
-- Lesen
cv.getPlayerState(playerId, key) -- → value | nil
-- Löschen
cv.removePlayerState(playerId, key)
-- Alle Keys
cv.getAllPlayerStates(playerId) -- → table
Beispiel¶
-- Faction-Status setzen (wird intern z.B. von factions.lua genutzt)
cv.setPlayerState(source, 'faction', 'lspd')
cv.setPlayerState(source, 'factionRank', 3)
cv.setPlayerState(source, 'factionDuty', true)
-- Lesen auf dem Server
local faction = cv.getPlayerState(source, 'faction')
local duty = cv.getPlayerState(source, 'factionDuty')
-- Löschen beim Charakter-Wechsel
cv.removePlayerState(source, 'instanceName')
Cleanup
Beim playerDropped-Event werden alle States des Spielers automatisch geleert.
Client-API¶
-- Lokalen Spieler lesen
cv.getLocalPlayerState(key) -- → value
-- Lokalen Spieler setzen (repliziert an Server)
cv.setLocalPlayerState(key, value)
-- Anderen Spieler lesen (via Server-ID)
cv.getPlayerState(serverId, key) -- serverId = -1 → lokaler Spieler
-- Alle States eines Spielers
cv.getAllPlayerStates(serverId) -- → Player(n).state object
-- Entity-Statebag lesen
cv.statebag.fromEntity(entity) -- → Entity(n).state
cv.statebag.fromLocalPlayer(key) -- → LocalPlayer.state[key]
Beispiel¶
-- Faction-Status des lokalen Spielers lesen
local faction = cv.getLocalPlayerState('faction')
local duty = cv.getLocalPlayerState('factionDuty')
-- Anderen Spieler (Server-ID 42) lesen
local rank = cv.getPlayerState(42, 'factionRank')
-- Fahrzeug-Entity State lesen
local bag = cv.statebag.fromEntity(vehicle)
local vehId = bag.persistentVehicleId
Interne Standard-Keys¶
Diese Keys werden vom Framework intern gesetzt und können gelesen werden:
| Key | Typ | Gesetzt von |
|---|---|---|
faction |
string | factions |
factionRank |
number | factions |
factionDuty |
boolean | factions |
jobDuty |
boolean | jobs |
bucketId |
number | buckets |
instanceName |
string | instance |
instanceType |
string | instance |
instanceKey |
string | instance |
metadata |
string (JSON) | player |