FiveM-Inventar eines Spielers nach Dupe oder Bug wiederherstellen
Gib einem Spieler Items, Geld und Autos auf ESX, QBCore oder ox_inventory aus dem Backup zurück, ohne den ganzen Server zurückzusetzen. Mit SQL.
Von Termi
- Backups
- Rollback
- ox_inventory
- Dupes
Auf dieser Seite
- Wo ein Charakter in der Datenbank liegt
- Einen Charakter von Hand wiederherstellen
- Erst die duplizierten Items finden
- Einen Spieler mit FiveDock wiederherstellen
- Häufige Fragen
- Kann man in FiveM einen Spieler ohne kompletten Rollback wiederherstellen?
- Wie finde ich gedupte Items auf meinem FiveM-Server?
- Entfernt die Wiederherstellung eines Spielers Items, die er nach dem Backup verdient hat?
- Was ist, wenn der Spieler während der Wiederherstellung online ist?
Ein Bug frisst das Inventar eines Spielers, oder ein Dupe lässt einen Spieler mit vierzig Pistolen zurück, die dieselbe Seriennummer tragen. Wenn du den ganzen Server auf gestern Nacht zurücksetzt, bestrafst du alle, die seitdem gespielt haben. Besser stellst du nur die Zeilen wieder her, die zu einem Charakter gehören. Diese Anleitung zeigt, wo ESX, QBCore und ox_inventory diese Zeilen ablegen, wie du sie von Hand aus einem Backup kopierst und wie du duplizierte Items überhaupt findest.
Wo ein Charakter in der Datenbank liegt
Einen Charakter von Hand wiederherstellen
Du brauchst ein Backup von vor dem Schaden, geladen in eine separate Datenbank. Spiel es nie über die Live-Datenbank. Stell zuerst sicher, dass der Spieler offline ist und es bis zum Ende bleibt: Das Framework speichert das Inventar, das es im Speicher hält, beim nächsten Save oder beim Disconnect, und dieser Save überschreibt deine Wiederherstellung.
Lade das Backup in eine Wegwerf-Datenbank neben der Live-Datenbank:
mysql -u root -p -e "CREATE DATABASE restore_scratch"
mysql -u root -p restore_scratch < fivem-2026-10-22.sqlDann kopierst du die Spalten des Charakters aus der Wegwerf-Datenbank zurück. fivem ist hier die Live-Datenbank, nimm deinen eigenen Namen:
UPDATE fivem.players AS live
JOIN restore_scratch.players AS old ON old.citizenid = live.citizenid
SET live.inventory = old.inventory, live.money = old.money
WHERE live.citizenid = 'ABC12345';UPDATE fivem.users AS live
JOIN restore_scratch.users AS old ON old.identifier = live.identifier
SET live.inventory = old.inventory, live.accounts = old.accounts
WHERE live.identifier = 'char1:9a4f00ab12cd34ef';Autos und Stashes laufen nach demselben Muster, über citizenid oder owner. Prüfe vor dem Zurückkopieren, ob der Spieler ein Auto verkauft hat oder ein Kennzeichen jetzt jemand anderem gehört, und lösche die Wegwerf-Datenbank, wenn du fertig bist.
Eine Wiederherstellung auf Zeilenebene spielt das ganze Inventar so zurück, wie es zum Zeitpunkt des Backups war. Alles, was der Spieler seitdem verdient hat, verschwindet. Sag ihm, auf welche Uhrzeit du zurückgegangen bist.
Erst die duplizierten Items finden
Wenn ein Dupe den Schaden verursacht hat, reicht es nicht, den Duper wiederherzustellen, denn die Kopien können schon verkauft oder verschenkt sein. Waffen und andere einzigartige Items tragen eine Seriennummer: metadata.serial in ox_inventory und info.serie in qb-inventory. Dieselbe Seriennummer an zwei Orten ist eine Kopie. Auf MySQL 8 oder MariaDB 10.6 und neuer listet diese Abfrage jede Seriennummer auf, die bei QBCore-Spielern mit ox_inventory mehr als einmal vorkommt:
SELECT j.serial, COUNT(*) AS copies, GROUP_CONCAT(p.citizenid) AS holders
FROM players AS p,
JSON_TABLE(p.inventory, '$[*]' COLUMNS (serial VARCHAR(64) PATH '$.metadata.serial')) AS j
WHERE j.serial IS NOT NULL
GROUP BY j.serial
HAVING copies > 1;Für ESX tauschst du players und citizenid gegen users und identifier, für qb-inventory nimmst du $.info.serie als Pfad. Auch Stashes, Kofferräume und Handschuhfächer enthalten Items, also lass dieselbe Abfrage über ox_inventory.data und die Fahrzeugtabelle laufen, bevor du entscheidest, wer gedupt hat.
Einen Spieler mit FiveDock wiederherstellen
FiveDock übernimmt die Arbeit mit der Wegwerf-Datenbank. Auf Metro wählst du im Panel ein Backup und einen Spieler, und FiveDock stellt nur die Zeilen wieder her, die an die Identifier dieses Spielers gebunden sind, quer durch die Tabellen des Frameworks: den Charakter mit Geld und Inventar, Autos, Lizenzen, Skins, Outfits, Apartments und ox_inventory-Stashes. Bevor sich etwas ändert, zeigt es, wie viele Zeilen die Wiederherstellung anfasst.
Die Warnungen vor duplizierten Items auf Metro achten auf dieselbe Seriennummer in zwei Inventaren oder einen Stack, der ohne erkennbaren Grund wächst. Jeder Fund merkt sich, wer das Item hatte, und ein Backup von genau diesem Zeitpunkt, der Wiederherstellungspunkt ist also schon da, wenn du hinschaust. Geld-Warnungen posten in jedem Plan nach Discord, wenn eine Überweisung eine Schwelle überschreitet oder ein Spieler zu schnell Geld bekommt.
Die Backups selbst gehören zu jedem Plan: täglich auf Free und City, stündlich auf Metro, auf deiner Maschine verschlüsselt mit einem Schlüssel, den FiveDock nie sieht. Auf Free und City stellt eine Wiederherstellung den ganzen Server zurück, eine einzelne Tabelle oder ein einzelner Spieler gibt es nur auf Metro.
Häufige Fragen
Kann man in FiveM einen Spieler ohne kompletten Rollback wiederherstellen?
Ja. Lade ein Backup von vor dem Problem in eine separate Datenbank und kopiere die Zeilen dieses Charakters zurück: players auf QBCore oder users auf ESX, dazu seine Autos und Stashes. FiveDock Metro macht das aus dem Panel, einen Spieler nach dem anderen, und zeigt vorher, wie viele Zeilen sich ändern.
Wie finde ich gedupte Items auf meinem FiveM-Server?
Such nach einzigartigen Seriennummern, die mehrfach vorkommen. ox_inventory speichert die Seriennummer einer Waffe in metadata.serial, daher listet eine JSON_TABLE-Abfrage über die Inventar-Spalte jede Seriennummer mit mehr als einer Kopie auf. Die Warnungen vor duplizierten Items in FiveDock führen diese Prüfung für dich aus und posten nach Discord.
Entfernt die Wiederherstellung eines Spielers Items, die er nach dem Backup verdient hat?
Ja. Eine Wiederherstellung auf Zeilenebene spielt die ganze Spalte so zurück, wie sie zum Zeitpunkt des Backups war. Nimm das neueste Backup von vor dem Problem und sag dem Spieler, auf welche Uhrzeit du zurückgegangen bist.
Was ist, wenn der Spieler während der Wiederherstellung online ist?
Sein Framework speichert beim nächsten Save oder beim Disconnect, was es im Speicher hält, und das überschreibt die Wiederherstellung. Kicke ihn oder warte, bis er offline ist.