Accueil › Documentation › Exports · origen_inventory
Tous les exports sont enregistrés sous le nom de ressource origen_inventory.
Cette page documente les noms canoniques des exports (camelCase). Chaque export possède aussi un ancien alias en PascalCase (p. ex. addItem ⇄ AddItem, getInventory ⇄ GetInventory), conservé pour la compatibilité avec les scripts conçus pour des versions antérieures ou pour qb-inventory / ox_inventory.
addItem(source, item, amount, slot?, info?) → booleanAjoute un objet à l’inventaire du joueur. Renvoie true en cas de succès.
exports['origen_inventory']:addItem(source, 'tosti', 1, nil, { quality = 100 })addItems(source, items) → booleanAjoute plusieurs objets en une seule fois.
exports['origen_inventory']:addItems(source, {
{ item = 'tosti', amount = 2 },
{ item = 'water_bottle', amount = 1 },
})removeItem(source, item, amount, slot?) → booleanRetire un objet.
exports['origen_inventory']:removeItem(source, 'tosti', 1)removeItems(source, items) → booleanRetire plusieurs objets en une seule fois. Même format de données que addItems.
exports['origen_inventory']:removeItems(source, {
{ item = 'tosti', amount = 1 },
{ item = 'water_bottle', amount = 1 },
})getItem(source, item, metadata?) → table?Renvoie les données du slot de l’objet correspondant (ou nil).
local slot = exports['origen_inventory']:getItem(source, 'phone')setItem(source, item, amount, slot?, info?) → booleanDéfinit la quantité d’un objet dans un slot, en remplaçant la valeur précédente.
exports['origen_inventory']:setItem(source, 'water_bottle', 5, 3)canCarryItem(source, item, amount) → booleanRenvoie true si le joueur peut porter la quantité indiquée.
local canCarry = exports['origen_inventory']:canCarryItem(source, 'tosti', 5)canSwapItem(source, fromItem, fromAmount, toItem, toAmount) → booleanVérifie si le joueur peut échanger fromItem contre toItem.
local canSwap = exports['origen_inventory']:canSwapItem(source, 'tosti', 1, 'water_bottle', 1)getItemCount(source, item) → numberRenvoie la quantité totale d’un objet dans l’inventaire du joueur.
local count = exports['origen_inventory']:getItemCount(source, 'tosti')getSlot(source, slot) → table?Renvoie les données du slot indiqué.
local slot = exports['origen_inventory']:getSlot(source, 1)getSlotsIdWithItem(source, item) → number[]Renvoie l’id de tous les slots qui contiennent l’objet indiqué.
local slots = exports['origen_inventory']:getSlotsIdWithItem(source, 'tosti')getSlotWithItem(source, item) → table?Renvoie les données du premier slot qui contient l’objet indiqué.
local slot = exports['origen_inventory']:getSlotWithItem(source, 'phone')addItemMetadata(source, item, slot, metadata) → booleanFusionne des métadonnées dans un slot existant.
exports['origen_inventory']:addItemMetadata(source, 'phone', 1, { battery = 80 })removeItemMetadata(source, item, slot, keys) → booleanSupprime une ou plusieurs clés de métadonnées d’un slot.
exports['origen_inventory']:removeItemMetadata(source, 'phone', 1, { 'battery' })setMetadata(source, slot, metadata) → booleanRemplace entièrement les métadonnées du slot.
exports['origen_inventory']:setMetadata(source, 1, { quality = 100, serial = 'XYZ-123' })setUses(source, slot, uses) → booleanDéfinit les utilisations restantes d’un slot.
exports['origen_inventory']:setUses(source, 1, 3)getItemLabel(item) → stringRenvoie le libellé d’affichage d’un objet.
local label = exports['origen_inventory']:getItemLabel('tosti')getInventory(identifier) → table?Renvoie les données de l’inventaire pour un identifiant donné (id de joueur, id de stash, plaque, etc.).
local inv = exports['origen_inventory']:getInventory('faction_locker_1')getItems(identifier) → table[]Renvoie tous les slots d’objets de l’inventaire indiqué.
local items = exports['origen_inventory']:getItems('faction_locker_1')setInventory(identifier, items) → booleanRemplace le contenu de l’inventaire indiqué.
exports['origen_inventory']:setInventory('faction_locker_1', {
{ slot = 1, name = 'tosti', amount = 5, info = {} },
})clearInventory(identifier) → booleanVide un inventaire.
exports['origen_inventory']:clearInventory('faction_locker_1')setMaxWeight(identifier, weight) → booleanDéfinit le poids maximal de l’inventaire indiqué.
exports['origen_inventory']:setMaxWeight('faction_locker_1', 200000)setMaxSlots(identifier, slots) → booleanDéfinit le nombre maximal de slots de l’inventaire indiqué.
exports['origen_inventory']:setMaxSlots('faction_locker_1', 50)saveInventory(identifier) → booleanForce la sauvegarde de l’état de l’inventaire dans la base de données.
exports['origen_inventory']:saveInventory('faction_locker_1')useSlot(source, slot) → voidDéclenche l’action d’utilisation du slot indiqué, comme si le joueur cliquait dessus.
exports['origen_inventory']:useSlot(source, 1)Ces exports sont des enveloppes pratiques autour de l’inventaire du joueur.
OpenInventory(source, identifier?, data?) → voidOuvre un inventaire côté client. Quand identifier vaut nil, ouvre l’inventaire du joueur ; sinon, ouvre le stash, le coffre ou la boîte à gants correspondant.
exports['origen_inventory']:OpenInventory(source) -- player inventory
exports['origen_inventory']:OpenInventory(source, 'evidence_locker', { slots = 50, maxweight = 200000 })OpenInventoryById(source, identifier, data?) → voidOuvre un inventaire quelconque à partir de son id. Pratique pour les casiers de preuves, les stashes de factions, etc.
exports['origen_inventory']:OpenInventoryById(source, 'evidence_locker_42')LoadInventory(source) → voidRecharge l’inventaire du joueur depuis la base de données.
exports['origen_inventory']:LoadInventory(source)GetPlayerInventory(source) → tableRenvoie un instantané complet de l’inventaire du joueur (tous les slots).
local inv = exports['origen_inventory']:GetPlayerInventory(source)SetInventoryItems(source, items) → booleanRemplace en une seule fois tous les slots de l’inventaire du joueur.
exports['origen_inventory']:SetInventoryItems(source, {
{ slot = 1, name = 'tosti', amount = 1, info = {} },
})SetInventoryData(source, data) → booleanRemplace toute la structure de données (objets + métadonnées) de l’inventaire du joueur.
exports['origen_inventory']:SetInventoryData(source, { items = {}, weight = 0 })GetTotalWeight(source) → numberRenvoie le poids total actuel.
local weight = exports['origen_inventory']:GetTotalWeight(source)HasItem(source, item, amount?) → booleanIndique si le joueur possède au moins amount (par défaut 1) de l’objet.
if exports['origen_inventory']:HasItem(source, 'phone') then
-- player has a phone
endGetItemsByName(source, item) → table[]Renvoie tous les slots occupés par l’objet indiqué.
local slots = exports['origen_inventory']:GetItemsByName(source, 'tosti')GetSlotsByItem(source, item) → number[]Renvoie les ids des slots occupés par l’objet indiqué.
local slotIds = exports['origen_inventory']:GetSlotsByItem(source, 'tosti')GetItemBySlot(source, slot) → table?Renvoie l’objet situé dans un slot donné.
local item = exports['origen_inventory']:GetItemBySlot(source, 1)GetFirstSlotByItem(source, item) → number?Renvoie l’id du premier slot qui contient l’objet.
local slotId = exports['origen_inventory']:GetFirstSlotByItem(source, 'phone')GetItemTotalAmount(source, item) → numberRenvoie la quantité totale de l’objet.
local total = exports['origen_inventory']:GetItemTotalAmount(source, 'tosti')GetItemByMetadata(source, item, key, value) → table?Renvoie le premier slot dont la métadonnée key est égale à value.
local slot = exports['origen_inventory']:GetItemByMetadata(source, 'phone', 'serial', 'XYZ-123')GetItemsByMetadata(source, item, key, value) → table[]Renvoie tous les slots dont la métadonnée key est égale à value.
local slots = exports['origen_inventory']:GetItemsByMetadata(source, 'phone', 'carrier', 'verizon')GetItemByMetaKey(source, item, key) → table?Renvoie le premier slot dont les métadonnées contiennent la clé key indiquée.
local slot = exports['origen_inventory']:GetItemByMetaKey(source, 'phone', 'serial')GetItemsByMetaKey(source, item, key) → table[]Renvoie tous les slots dont les métadonnées contiennent la clé key indiquée.
local slots = exports['origen_inventory']:GetItemsByMetaKey(source, 'phone', 'serial')GetItemInfoBySlot(source, slot) → table?Renvoie la définition de l’objet du slot indiqué (données de base de l’objet + métadonnées du slot).
local info = exports['origen_inventory']:GetItemInfoBySlot(source, 1)GiveWeaponToPlayer(source, weapon, ammo?, metadata?) → booleanDonne une arme au joueur et l’enregistre dans le système d’armes de l’inventaire.
exports['origen_inventory']:GiveWeaponToPlayer(source, 'weapon_pistol', 30, { serial = 'PD-001' })registerStash(id, data) → voidCrée ou enregistre un stash dynamique en cours d’exécution.
exports['origen_inventory']:registerStash('faction_locker_1', {
label = 'Faction Locker',
slots = 50,
maxweight = 200000,
})createShop(id, data) → voidCrée une boutique en cours d’exécution (alias : RegisterShop).
exports['origen_inventory']:createShop('barber_supplies', {
label = 'Barber Supplies',
slots = 6,
items = {
{ name = 'razor', price = 50, amount = 10, metadata = {} },
},
locations = { vector3(0.0, 0.0, 70.0) },
})customDrop(coords, items, model?) → stringCrée un drop personnalisé au sol et renvoie son id.
local dropId = exports['origen_inventory']:customDrop(
vector3(123.4, 567.8, 21.0),
{ { name = 'tosti', amount = 1, info = {} } }
)L’API des objets personnalisés est documentée sur la page Custom.
AddCustomItem(data) → voidEnregistre un nouvel objet personnalisé dans la base de données.
exports.origen_inventory:AddCustomItem({
name = 'origen_compass',
label = 'Compass',
weight = 50,
type = 'item',
unique = true,
})EditCustomItem(data) → voidModifie un objet personnalisé existant.
exports.origen_inventory:EditCustomItem({
name = 'origen_compass',
label = 'Magnetic Compass',
weight = 60,
})RemoveCustomItem(name) → voidSupprime un objet personnalisé de la base de données et de tous les inventaires actifs.
exports.origen_inventory:RemoveCustomItem('origen_compass')notify(source, message, type?, duration?) → voidEnvoie une notification au joueur via le fournisseur de notifications configuré.
exports['origen_inventory']:notify(source, 'Item received', 'success', 4000)registerHook(event, callback, options?) → stringEnregistrement de hooks côté serveur. Consulte la référence complète dans Hooks serveur.
local hookId = exports.origen_inventory:registerHook('createItem', function(payload)
return payload.metadata
end)openInventory(identifier?, data?) → voidOuvre l’inventaire du joueur ou un inventaire secondaire sur le client local.
exports['origen_inventory']:openInventory()
exports['origen_inventory']:openInventory('stash_personal', { slots = 30, maxweight = 100000 })getInventory() → tableRenvoie un instantané de l’inventaire du joueur local.
local inv = exports['origen_inventory']:getInventory()getPlayerItems() → table[]Renvoie tous les slots de l’inventaire local.
local items = exports['origen_inventory']:getPlayerItems()IsInventoryOpen() → booleanIndique si l’interface de l’inventaire est actuellement ouverte.
local isOpen = exports['origen_inventory']:IsInventoryOpen()lock() / unlock() → voidVerrouille ou déverrouille l’inventaire local. Tant qu’il est verrouillé, le joueur ne peut pas l’ouvrir.
exports['origen_inventory']:lock()
exports['origen_inventory']:unlock()isLocked() → booleanIndique si l’inventaire local est actuellement verrouillé.
local locked = exports['origen_inventory']:isLocked()toggleLock() → voidBascule l’état de verrouillage.
exports['origen_inventory']:toggleLock()useSlot(slot) → voidDéclenche l’action d’utilisation du slot indiqué sur le client local.
exports['origen_inventory']:useSlot(1)search(target?) → voidLance l’animation/l’interface de fouille sur le joueur ciblé (ou sur le joueur local si omis).
exports['origen_inventory']:search(GetPlayerServerId(targetPlayer))getCurrentWeapon() → string?Renvoie le hash de l’arme actuellement équipée, le cas échéant.
local weapon = exports['origen_inventory']:getCurrentWeapon()weaponWheel(toggle) → voidForce l’activation ou la désactivation de la roue des armes de GTA.
exports['origen_inventory']:weaponWheel(false)hasItem(item, amount?) → booleanIndique si le joueur local possède l’objet.
if exports['origen_inventory']:hasItem('phone') then
-- local player has a phone
enddisplayMetadata(slot) → voidOuvre l’afficheur de métadonnées du slot indiqué.
exports['origen_inventory']:displayMetadata(1)openManagement() → voidOuvre le panneau de gestion de l’inventaire en jeu (administrateurs).
exports['origen_inventory']:openManagement()OnPlayerLoad() → voidDéclenche manuellement le cycle de chargement du joueur. N’est nécessaire que si tu contournes le flux de connexion habituel du framework.
exports['origen_inventory']:OnPlayerLoad()UpdateInventory(items?) → voidForce un rafraîchissement de l’interface avec les objets indiqués (ou les redemande au serveur si omis).
exports['origen_inventory']:UpdateInventory()CloseInventory() → voidFerme l’interface de l’inventaire.
exports['origen_inventory']:CloseInventory()ToggleHotBar(toggle) → voidAffiche ou masque la barre rapide.
exports['origen_inventory']:ToggleHotBar(true)SetCurrentWeapon(weapon) → voidForce l’inventaire à marquer l’arme indiquée comme étant l’arme active (pour la synchronisation).
exports['origen_inventory']:SetCurrentWeapon('weapon_pistol')AddAmmo(weapon, ammo) → voidAjoute des munitions à une arme et déclenche l’animation de rechargement.
exports['origen_inventory']:AddAmmo('weapon_pistol', 30)unarmedPed() → voidRetire toutes les armes du ped local sans toucher à l’inventaire.
exports['origen_inventory']:unarmedPed()Eat(item) / Drink(item) / DrinkAlcohol(item) → voidDéclenche l’animation du consommable correspondant et la modification des statistiques.
exports['origen_inventory']:Eat('tosti')
exports['origen_inventory']:Drink('water_bottle')
exports['origen_inventory']:DrinkAlcohol('beer')controls() → tableRenvoie la configuration des contrôles par défaut utilisée par les consommables (canMove, canSprint, etc.).
local controls = exports['origen_inventory']:controls()progress_animation_fix(animation) → tableHelper qui met en forme un bloc d’animation pour le fournisseur de barre de progression actuellement actif.
local anim = exports['origen_inventory']:progress_animation_fix({
dict = 'mp_player_intdrink',
clip = 'loop_bottle',
})L’API complète des points du monde côté client est documentée dans Custom · Points du monde.
CreateWorldPoint(id, data) → voidEnregistre un seul point.
exports.origen_inventory:CreateWorldPoint('my_lab_table', {
coords = vector3(123.4, 567.8, 21.0),
type = 'crafting',
})RemoveWorldPoint(id) → voidSupprime un point à partir de son id.
exports.origen_inventory:RemoveWorldPoint('my_lab_table')SetWorldPointEnabled(id, enabled) → voidActive ou désactive un point.
exports.origen_inventory:SetWorldPointEnabled('my_lab_table', false)CreateBatchPoints(type, points) → voidEnregistre plusieurs points en une seule fois.
exports.origen_inventory:CreateBatchPoints('crafting', {
{ id = 'lab_a', coords = vector3(0, 0, 70) },
{ id = 'lab_b', coords = vector3(10, 0, 70) },
})ClearPoints(type) → voidSupprime tous les points d’un type.
exports.origen_inventory:ClearPoints('crafting')RefreshAllPoints(type) → voidRecharge tous les points d’un type.
exports.origen_inventory:RefreshAllPoints('crafting')GetPoints(type) → table[]Renvoie les points d’un type.
local points = exports.origen_inventory:GetPoints('crafting')GetPointCount(type) → numberRenvoie le nombre de points d’un type.
local count = exports.origen_inventory:GetPointCount('crafting')HasPoint(id) → booleanRenvoie true si le point existe.
local exists = exports.origen_inventory:HasPoint('my_lab_table')RegisterPointType(type, config) → voidEnregistre un type de point entièrement nouveau.
exports.origen_inventory:RegisterPointType('crafting', { distance = 2.0 })LoadPointType(type) → voidRecharge la configuration d’un type de point.
exports.origen_inventory:LoadPointType('crafting')GetWorldPointManager() → tableRenvoie le gestionnaire sous-jacent.
local manager = exports.origen_inventory:GetWorldPointManager()SetEnabled(id, enabled) → voidAlias de compatibilité pour activer ou désactiver une boutique.
exports.origen_inventory:SetEnabled('barber_supplies', true)SetShopLocalEnabled(id, enabled) → voidActive ou désactive une boutique uniquement sur le client local.
exports.origen_inventory:SetShopLocalEnabled('barber_supplies', false)Ces exports pilotent des modules d’interface secondaires (des panneaux personnalisés que tu peux ajouter aux onglets de l’inventaire).
getModule(id) → table?Renvoie les données d’un module enregistré.
local mod = exports['origen_inventory']:getModule('my_panel')getModules() → table[]Renvoie tous les modules enregistrés.
local modules = exports['origen_inventory']:getModules()createModule(id, data) → voidEnregistre un nouveau module.
exports['origen_inventory']:createModule('my_panel', {
label = 'My Panel',
icon = 'fa-solid fa-gear',
url = 'nui://my_resource/ui/index.html',
})removeModule(id) → voidSupprime un module.
exports['origen_inventory']:removeModule('my_panel')checkModules() → voidValide les modules enregistrés.
exports['origen_inventory']:checkModules()sendModuleMessage(id, message) → voidEnvoie un message à un module précis.
exports['origen_inventory']:sendModuleMessage('my_panel', { action = 'refresh' })registerHook(event, callback, options?) → stringEnregistrement de hooks côté client. Consulte Custom · Hooks.
local hookId = exports.origen_inventory:registerHook('useItem', function(payload)
return true
end)removeHooks(id) → voidSupprime un hook enregistré.
exports.origen_inventory:removeHooks(hookId)progressBar(data) → booleanEncapsule le fournisseur de barre de progression actif (Config.Progressbar) afin que n’importe quel script puisse afficher une barre de progression cohérente avec le style de l’inventaire.
local ok = exports['origen_inventory']:progressBar({
label = 'Working...',
duration = 3000,
})Carry() / Piggyback() → voidDéclenche l’action de porter / porter sur le dos sur le joueur visé.
exports['origen_inventory']:Carry()
exports['origen_inventory']:Piggyback()isCarryInProgress() → booleanRenvoie true tant que le joueur local porte quelqu’un ou est porté.
local carrying = exports['origen_inventory']:isCarryInProgress()ToggleDriftMode(toggle) → voidActive ou désactive le profil de conduite drift défini dans config/drift.lua.
exports['origen_inventory']:ToggleDriftMode(true)IsItemBlacklisted(item) → booleanIndique si l’objet figure sur la liste noire des règles de l’inventaire.
local blocked = exports['origen_inventory']:IsItemBlacklisted('weapon_rpg')Par souci de compatibilité, tous les exports serveur ci-dessus sont aussi exposés en PascalCase, et la plupart ont en plus un nom de style qb-inventory. Exemples :
| Canonique | Alias hérités |
|---|---|
addItem |
AddItem |
removeItem |
RemoveItem |
getItem |
GetItem, GetItemByName |
getInventory |
GetInventory |
getItems |
getInventoryItems, GetInventoryItems |
setMaxSlots |
SetSlotCount |
registerStash |
RegisterStash, InitializeInventory |
createShop |
CreateShop, RegisterShop |
getCurrentWeapon (client) |
GetCurrentWeapon |
lock (client) |
LockInventory |
unlock (client) |
UnlockInventory |
isLocked (client) |
IsInventoryLocked |
toggleLock (client) |
ToggleInventoryAccess |
getPlayerItems (client) |
GetPlayerItems |
Utilise toujours les noms canoniques dans le nouveau code. Les alias hérités pourraient être supprimés dans de futures versions majeures, et le code source de la ressource en marque déjà certains avec REMOVE ON UPDATE.