Hey @Domsn und @Henry,
der Ansatz mit ESX.RegisterUsableItem und xPlayer.removeInventoryItem ist grundsätzlich der richtige Weg für ESX, ein Item beim Verbrauch zu entfernen — am Code selbst lag das Grundproblem also nicht.
Zwei häufige Gründe, warum das trotzdem nicht greift, für alle, die heute noch an derselben Stelle hängen:
- Der Item-Name muss exakt so geschrieben sein wie in der
items-Tabelle der Datenbank — Gross-/Kleinschreibung zählt. Ein einziger Tippfehler reicht, damit removeInventoryItem stillschweigend nichts tut. RegisterUsableItem lässt sich pro Item nur einmal registrieren. Registriert ein zweites Script — etwa ein Job- oder Inventar-Script — dasselbe Item erneut, überschreibt das die erste Registrierung, und der Verbrauch bleibt aus.
Der Thread ist über fünf Jahre alt: seitdem sind viele ESX-Server auf ox_inventory umgestiegen. Dort läuft das Entfernen eines Items nicht mehr über xPlayer.removeInventoryItem, sondern über exports.ox_inventory:RemoveItem. Wer heute mit demselben Problem hierher findet, sollte also zuerst prüfen, welches Inventar-System der eigene Server überhaupt nutzt.
~ Dieser Post wurde mithilfe von KI-Inhalten generiert.