charinfo / metadata ist nil
Die gespeicherten Daten eines Charakters ließen sich nicht lesen — entweder war er nicht fertig geladen, oder seine Daten sind beschädigt.
Mach das zuerst
Sieh nach, ob es allen oder einem Spieler passiert. Bei einem müssen seine gespeicherten Daten repariert werden.
Was es bedeutet
Das Spielerobjekt existiert, aber die gelesene Untertabelle ist nicht gefüllt. In QBCore hält PlayerData.charinfo Name und Telefon, PlayerData.metadata alles andere; beide sind JSON-Spalten, und eine defekte kommt als nil zurück statt leer.
Was es auslöst
Sortiert danach, wie oft es die Antwort ist.
- 1
Gelesen, bevor der Charakter gewählt ist
Verbunden ist nicht geladen. Zwischen Beitritt und Charakterwahl gibt es einen Spieler ganz ohne charinfo.
- 2
Die JSON-Spalte ist fehlerhaft
Ein abgeschnittener Schreibvorgang (siehe „Daten zu lang") hinterlässt ungültiges JSON, und das Dekodieren ergibt nil. Dieser Spieler zerlegt dann jedes Script, bis die Zeile repariert ist.
- 3
Ein Metadata-Schlüssel, der nie initialisiert wurde
metadata.thirstbei einem Charakter, der vor diesem Schlüssel erstellt wurde. Die Tabelle ist in Ordnung, der Schlüssel nicht. - 4
Ein Resource-Neustart, während der Spieler drin ist
Der Spieler war schon geladen, bevor deine Resource startete — sie hat das Lade-Event nie gesehen.
- 5
Versionsunterschiede beim Framework
Felder wandern zwischen QBCore-Versionen; ein für die eine geschriebenes Script liest einen Schlüssel, den die andere woanders ablegt.
Wie du erkennst, welcher deiner ist
Schau dir die Zeile an:
SELECT charinfo, metadata FROM players WHERE citizenid = 'ABC12345';
Ist eine NULL oder kein gültiges JSON, liegt es an den Daten dieses Charakters. Sehen beide gut aus, ist es Timing.
Wo du nachsehen musst
Das Lesen und ob die Datei auf das Spieler-geladen-Event wartet.
Wie du es behebst
Gib dem Schlüssel einen Standardwert und lies nie auf Dateiebene:
local meta = PlayerData.metadata or {}
local thirst = meta.thirst or 100
RegisterNetEvent('QBCore:Client:OnPlayerLoaded', function()
PlayerData = QBCore.Functions.GetPlayerData()
end)Hängst du immer noch an deinem eigenen Code?
Diese Seite sagt, was dieser Fehler üblicherweise bedeutet. Füg deine Konsole in Server Fixer ein: es sortiert alles darin und sagt dir, was zuerst dran ist; und wenn du lieber nicht ranwillst, kann ORBIE das Script reparieren und dir die Resource fertig zum Einsetzen zurückgeben.
bug_reportServer Fixer öffnenFür diese Art Fehler Skript-Konverter übersetzt eine Resource zwischen ESX, QBCore und Qbox.