Skip to main content
Registriert zur Laufzeit eine neue Item-Definition (nur im Speicher, nicht in einer Datei gespeichert). Es werden nur sichere, deklarative Felder akzeptiert, alles andere wird auf jeder Ebene verworfen.
Auf diese Weise registrierte Items gehen beim Neustart der Resource verloren. Nutze das, um externen Scripts zu erlauben, eigene Items zu definieren, ohne _data/items.lua zu bearbeiten.

Parameter

Rückgabewert

Hinweise

itemData akzeptiert nur die folgenden sicheren Felder; jedes andere Feld wird stillschweigend entfernt: Erforderliche Felder: label (string), weight (number, >= 0), stackable (boolean) Optionale Felder: description, image, close, maxStack, rarity, type, customSymbol, ammo, durability, degrade, decay, consume, isGrenadeType, separateWeight, universal, oxClientEvent, oxClientExport, oxServerExport Optionale Table-Felder (rekursiv validiert, keine Funktionen darin erlaubt): metadata, status, useOptions, inventoryOptions, throwableOptions, dynamicMetadata Außerdem:
  • Mit registerItem registrierte Items existieren nur im Speicher. Sie gehen beim Neustart der Resource verloren. Für persistente Items nutze das Ingame-Adminmenü oder trage sie in _data/items.lua ein
  • Unbekannte Items werden erst beim ersten Laden jedes Inventars bereinigt, nicht beim Start, dein Script kann registerItem also jederzeit sicher aufrufen, bevor auf das Spielerinventar zugegriffen wird, typischerweise beim Resource-Start
  • Du kannst registerItem mit registerUsableItem kombinieren, um sowohl das Item als auch sein Nutzungsverhalten aus einem externen Script zu definieren
  • Existiert der Item-Name bereits, wird die Registrierung abgelehnt, um dateidefinierte Items nicht zu überschreiben
  • Table-Felder (wie metadata, useOptions usw.) werden tief kopiert, Änderungen an der Originaltabelle nach der Registrierung haben also keine Auswirkung