Wie man Items in QBCore hinzufügt: items.lua, Bilder, CreateUseableItem
Füge ein benutzerdefiniertes Item zu QBCore hinzu: der qb-core/shared/items.lua Eintrag und seine Felder, das Bild in qb-inventory, es geben, und es usable machen mit CreateUseableItem.
Du hast ein Item zu deinem QBCore Server hinzugefügt, und es existiert entweder nicht im Spiel, hat kein Icon, oder macht nichts, wenn es verwendet wird. Hier ist der vollständige Pfad: Der Item-Eintrag, das Bild, es geben, und es usable machen.
1. Der Item-Eintrag
Öffne qb-core/shared/items.lua. Items sind Einträge in der QBShared.Items Tabelle, mit Namen als Schlüssel. Füge deins hinzu, mit einem Komma nach dem vorherigen Eintrag:
['burger'] = {
['name'] = 'burger',
['label'] = 'Burger',
['weight'] = 220,
['type'] = 'item',
['image'] = 'burger.png',
['unique'] = false,
['useable'] = true,
['shouldClose'] = true,
['description'] = 'A warm burger.',
},Was jedes Feld macht:
| Feld | Bedeutung |
|---|---|
name |
Item-Name; muss dem Schlüssel entsprechen, Kleinbuchstaben, keine Leerzeichen |
label |
Name, der Spielern angezeigt wird |
weight |
Gewicht eines Items |
type |
item für normale Items, weapon für Waffen |
image |
Dateiname des Icons, Erweiterung enthalten |
unique |
true wenn jede Kopie sein eigenes Slot ist (kann Daten tragen) |
useable |
true wenn Spieler es verwenden können |
shouldClose |
true schließt das Inventory bei Verwendung |
description |
Text unter dem Label |
Kopiere ein benachbartes Item in der gleichen Datei, wenn du dir unsicher bist: Die Datei zeigt genau die Felder, die deine Version erwartet.
Achtung: Ein fehlendes Komma oder Klammer in
items.luahindert qb-core daran zu laden, und damit jeden Script, der davon abhängt. Wenn alles nach der Änderung kaputt geht, schaue zuerst auf deinen letzten Eintrag.
2. Das Bild
Lege eine .png mit dem Namen aus dem image Feld in den Images-Ordner des Inventory:
qb-inventory/html/images/burger.pngDer Ordner ist gleich, ob das Item Essen, ein Werkzeug oder ein Dokument ist. Mit einer anderen Inventory-Ressource, verwende stattdessen ihren eigenen Images-Ordner. Eine fehlende Datei zeigt ein leeres Icon, und der Name muss genau dem image Feld entsprechen, Erweiterung enthalten.
3. Starte neu und teste
items.lua wird von qb-core gelesen, wenn es startet. In der Server-Konsole:
restart qb-coreDas Neustarten von qb-core, während Spieler online sind, kann Scripts trennen oder unterbrechen, die davon abhängen. Auf einem Live-Server tue es also zu einer ruhigen Zeit, oder starte den ganzen Server neu. Dann gib dir selbst das Item mit dem Admin-Befehl:
/giveitem <player id> burger 1Von einem Script, auf der Server-Seite:
local QBCore = exports['qb-core']:GetCoreObject()
local Player = QBCore.Functions.GetPlayer(source)
if Player then
Player.Functions.AddItem('burger', 1)
endWenn QBCore hier nil ist, lese attempt to index a nil value (global 'QBCore').
4. Mache es usable
Das Setzen von useable = true erlaubt nur die Verwendung. Du musst auch sagen, was passiert, auf dem Server:
local QBCore = exports['qb-core']:GetCoreObject()
QBCore.Functions.CreateUseableItem('burger', function(source, item)
local Player = QBCore.Functions.GetPlayer(source)
if not Player then return end
if Player.Functions.RemoveItem('burger', 1) then
TriggerClientEvent('QBCore:Notify', source, 'You ate the burger', 'success')
-- your effect here: heal, hunger, an animation event
end
end)Der Callback erhält die Spieler-ID und die Item-Daten. Entferne das Item selbst, wenn die Verwendung es verbrauchen sollte, wie oben.
Wenn ein Neustart deines Scripts macht, dass das Item zu arbeiten aufhört, denke daran, dass die Registrierung passiert, wenn das Script startet. Starte das Script neu, das CreateUseableItem enthält, nicht nur qb-inventory.
Items, die Daten tragen
Für Items, die Informationen tragen, wie eine Notiz mit Text oder ein Ticket mit einem Code, setze unique auf true. Jede Kopie kann dann ihre eigenen Daten in der info Tabelle halten, die du beim Hinzufügen des Items gibst:
Player.Functions.AddItem('ticket', 1, false, { code = 'A12' })Die häufigen Probleme
- Item-Name stimmt nicht überein. Der Schlüssel, das
nameFeld, der Image-Name und der Name, den du anAddItemübergibst, müssen das gleiche Wort sein. - Item zu einer anderen Datei hinzugefügt. Einige Scripts bitten dich, ihre Items zu einer Kopie der Liste im Script hinzuzufügen. Überprüfe ihre Installationsnotizen, und füge Items in
qb-core/shared/items.luahinzu, es sei denn, du wirst anders aufgefordert. - Altes Inventory. Ältere qb-inventory Versionen behalten eine separate Kopie einiger Item-Daten in ihrem eigenen Ordner. Wenn ein Item ein falsches Label zeigt, überprüfe, dass nichts anderes es definiert.
In QBox
QBox verwendet ox_inventory anstelle von qb-inventory, und seine Items leben in ox_inventory/data/items.lua. Das Format ist anders, und so sind die Usable-Item-Aufrufe. Folge Hinzufügen von Items zu ox_inventory.
Items hinzufügen, ohne Dateien zu bearbeiten
Das Ändern von items.lua und das Neustarten des Cores für jedes neue Item ist der langsame Teil. Item Creator lässt dich stattdessen Items im Spiel erstellen.
Item Creator V2Erstelle nutzbare Items mit Animationen, Props, Effekten und mehr — ganz ohne Code.ab 18,15 €Script ansehen →
Checkliste
| Symptom | Behebung |
|---|---|
| Item nicht gefunden | Füge es zu qb-core/shared/items.lua hinzu und restart qb-core |
| Alles bricht nach der Bearbeitung | Syntax-Fehler in items.lua; überprüfe Kommas und Klammern |
| Leeres Icon | Füge burger.png zu qb-inventory/html/images hinzu, matching das image Feld |
| Item macht nichts | Setze useable = true und registriere QBCore.Functions.CreateUseableItem |
| Name stimmt nicht überein | Verwende einen identischen Namen in Schlüssel, name, Image und Code |
| QBox Server | Verwende stattdessen ox_inventory's data/items.lua |
Kurze Antworten
Wo werden Items in QBCore definiert?
In qb-core/shared/items.lua. Jedes Item ist eine Tabelle in QBShared.Items, mit seinem Namen als Schlüssel, und das Icon ist eine .png mit dem gleichen Namen im Images-Ordner des Inventory.
Verwendet QBox qb-core/shared/items.lua?
Nein. QBox verwendet ox_inventory, wo Items in ox_inventory/data/items.lua leben. Siehe den ox_inventory Leitfaden, der in diesem Artikel verlinkt ist.
Warum ist mein Item nicht usable?
Entweder ist useable false im Item-Eintrag, oder kein Code hat es registriert. Setze useable = true und registriere es mit QBCore.Functions.CreateUseableItem auf dem Server.
