Accueil › Documentation › Exports · origen_inventory

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.


Exports serveur

Objets

addItem(source, item, amount, slot?, info?) → boolean

Ajoute un objet à l’inventaire du joueur. Renvoie true en cas de succès.

lua
exports['origen_inventory']:addItem(source, 'tosti', 1, nil, { quality = 100 })

addItems(source, items) → boolean

Ajoute plusieurs objets en une seule fois.

lua
exports['origen_inventory']:addItems(source, {
    { item = 'tosti', amount = 2 },
    { item = 'water_bottle', amount = 1 },
})

removeItem(source, item, amount, slot?) → boolean

Retire un objet.

lua
exports['origen_inventory']:removeItem(source, 'tosti', 1)

removeItems(source, items) → boolean

Retire plusieurs objets en une seule fois. Même format de données que addItems.

lua
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).

lua
local slot = exports['origen_inventory']:getItem(source, 'phone')

setItem(source, item, amount, slot?, info?) → boolean

Définit la quantité d’un objet dans un slot, en remplaçant la valeur précédente.

lua
exports['origen_inventory']:setItem(source, 'water_bottle', 5, 3)

canCarryItem(source, item, amount) → boolean

Renvoie true si le joueur peut porter la quantité indiquée.

lua
local canCarry = exports['origen_inventory']:canCarryItem(source, 'tosti', 5)

canSwapItem(source, fromItem, fromAmount, toItem, toAmount) → boolean

Vérifie si le joueur peut échanger fromItem contre toItem.

lua
local canSwap = exports['origen_inventory']:canSwapItem(source, 'tosti', 1, 'water_bottle', 1)

getItemCount(source, item) → number

Renvoie la quantité totale d’un objet dans l’inventaire du joueur.

lua
local count = exports['origen_inventory']:getItemCount(source, 'tosti')

getSlot(source, slot) → table?

Renvoie les données du slot indiqué.

lua
local slot = exports['origen_inventory']:getSlot(source, 1)

getSlotsIdWithItem(source, item) → number[]

Renvoie l’id de tous les slots qui contiennent l’objet indiqué.

lua
local slots = exports['origen_inventory']:getSlotsIdWithItem(source, 'tosti')

getSlotWithItem(source, item) → table?

Renvoie les données du premier slot qui contient l’objet indiqué.

lua
local slot = exports['origen_inventory']:getSlotWithItem(source, 'phone')

addItemMetadata(source, item, slot, metadata) → boolean

Fusionne des métadonnées dans un slot existant.

lua
exports['origen_inventory']:addItemMetadata(source, 'phone', 1, { battery = 80 })

removeItemMetadata(source, item, slot, keys) → boolean

Supprime une ou plusieurs clés de métadonnées d’un slot.

lua
exports['origen_inventory']:removeItemMetadata(source, 'phone', 1, { 'battery' })

setMetadata(source, slot, metadata) → boolean

Remplace entièrement les métadonnées du slot.

lua
exports['origen_inventory']:setMetadata(source, 1, { quality = 100, serial = 'XYZ-123' })

setUses(source, slot, uses) → boolean

Définit les utilisations restantes d’un slot.

lua
exports['origen_inventory']:setUses(source, 1, 3)

getItemLabel(item) → string

Renvoie le libellé d’affichage d’un objet.

lua
local label = exports['origen_inventory']:getItemLabel('tosti')

Inventaires

getInventory(identifier) → table?

Renvoie les données de l’inventaire pour un identifiant donné (id de joueur, id de stash, plaque, etc.).

lua
local inv = exports['origen_inventory']:getInventory('faction_locker_1')

getItems(identifier) → table[]

Renvoie tous les slots d’objets de l’inventaire indiqué.

lua
local items = exports['origen_inventory']:getItems('faction_locker_1')

setInventory(identifier, items) → boolean

Remplace le contenu de l’inventaire indiqué.

lua
exports['origen_inventory']:setInventory('faction_locker_1', {
    { slot = 1, name = 'tosti', amount = 5, info = {} },
})

clearInventory(identifier) → boolean

Vide un inventaire.

lua
exports['origen_inventory']:clearInventory('faction_locker_1')

setMaxWeight(identifier, weight) → boolean

Définit le poids maximal de l’inventaire indiqué.

lua
exports['origen_inventory']:setMaxWeight('faction_locker_1', 200000)

setMaxSlots(identifier, slots) → boolean

Définit le nombre maximal de slots de l’inventaire indiqué.

lua
exports['origen_inventory']:setMaxSlots('faction_locker_1', 50)

saveInventory(identifier) → boolean

Force la sauvegarde de l’état de l’inventaire dans la base de données.

lua
exports['origen_inventory']:saveInventory('faction_locker_1')

useSlot(source, slot) → void

Déclenche l’action d’utilisation du slot indiqué, comme si le joueur cliquait dessus.

lua
exports['origen_inventory']:useSlot(source, 1)

Utilitaires joueur

Ces exports sont des enveloppes pratiques autour de l’inventaire du joueur.

OpenInventory(source, identifier?, data?) → void

Ouvre 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.

lua
exports['origen_inventory']:OpenInventory(source) -- player inventory
exports['origen_inventory']:OpenInventory(source, 'evidence_locker', { slots = 50, maxweight = 200000 })

OpenInventoryById(source, identifier, data?) → void

Ouvre un inventaire quelconque à partir de son id. Pratique pour les casiers de preuves, les stashes de factions, etc.

lua
exports['origen_inventory']:OpenInventoryById(source, 'evidence_locker_42')

LoadInventory(source) → void

Recharge l’inventaire du joueur depuis la base de données.

lua
exports['origen_inventory']:LoadInventory(source)

GetPlayerInventory(source) → table

Renvoie un instantané complet de l’inventaire du joueur (tous les slots).

lua
local inv = exports['origen_inventory']:GetPlayerInventory(source)

SetInventoryItems(source, items) → boolean

Remplace en une seule fois tous les slots de l’inventaire du joueur.

lua
exports['origen_inventory']:SetInventoryItems(source, {
    { slot = 1, name = 'tosti', amount = 1, info = {} },
})

SetInventoryData(source, data) → boolean

Remplace toute la structure de données (objets + métadonnées) de l’inventaire du joueur.

lua
exports['origen_inventory']:SetInventoryData(source, { items = {}, weight = 0 })

GetTotalWeight(source) → number

Renvoie le poids total actuel.

lua
local weight = exports['origen_inventory']:GetTotalWeight(source)

HasItem(source, item, amount?) → boolean

Indique si le joueur possède au moins amount (par défaut 1) de l’objet.

lua
if exports['origen_inventory']:HasItem(source, 'phone') then
    -- player has a phone
end

GetItemsByName(source, item) → table[]

Renvoie tous les slots occupés par l’objet indiqué.

lua
local slots = exports['origen_inventory']:GetItemsByName(source, 'tosti')

GetSlotsByItem(source, item) → number[]

Renvoie les ids des slots occupés par l’objet indiqué.

lua
local slotIds = exports['origen_inventory']:GetSlotsByItem(source, 'tosti')

GetItemBySlot(source, slot) → table?

Renvoie l’objet situé dans un slot donné.

lua
local item = exports['origen_inventory']:GetItemBySlot(source, 1)

GetFirstSlotByItem(source, item) → number?

Renvoie l’id du premier slot qui contient l’objet.

lua
local slotId = exports['origen_inventory']:GetFirstSlotByItem(source, 'phone')

GetItemTotalAmount(source, item) → number

Renvoie la quantité totale de l’objet.

lua
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.

lua
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.

lua
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.

lua
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.

lua
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).

lua
local info = exports['origen_inventory']:GetItemInfoBySlot(source, 1)

GiveWeaponToPlayer(source, weapon, ammo?, metadata?) → boolean

Donne une arme au joueur et l’enregistre dans le système d’armes de l’inventaire.

lua
exports['origen_inventory']:GiveWeaponToPlayer(source, 'weapon_pistol', 30, { serial = 'PD-001' })

Stashes et boutiques

registerStash(id, data) → void

Crée ou enregistre un stash dynamique en cours d’exécution.

lua
exports['origen_inventory']:registerStash('faction_locker_1', {
    label = 'Faction Locker',
    slots = 50,
    maxweight = 200000,
})

createShop(id, data) → void

Crée une boutique en cours d’exécution (alias : RegisterShop).

lua
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?) → string

Crée un drop personnalisé au sol et renvoie son id.

lua
local dropId = exports['origen_inventory']:customDrop(
    vector3(123.4, 567.8, 21.0),
    { { name = 'tosti', amount = 1, info = {} } }
)

Objets personnalisés

L’API des objets personnalisés est documentée sur la page Custom.

AddCustomItem(data) → void

Enregistre un nouvel objet personnalisé dans la base de données.

lua
exports.origen_inventory:AddCustomItem({
    name = 'origen_compass',
    label = 'Compass',
    weight = 50,
    type = 'item',
    unique = true,
})

EditCustomItem(data) → void

Modifie un objet personnalisé existant.

lua
exports.origen_inventory:EditCustomItem({
    name = 'origen_compass',
    label = 'Magnetic Compass',
    weight = 60,
})

RemoveCustomItem(name) → void

Supprime un objet personnalisé de la base de données et de tous les inventaires actifs.

lua
exports.origen_inventory:RemoveCustomItem('origen_compass')

Autres

notify(source, message, type?, duration?) → void

Envoie une notification au joueur via le fournisseur de notifications configuré.

lua
exports['origen_inventory']:notify(source, 'Item received', 'success', 4000)

registerHook(event, callback, options?) → string

Enregistrement de hooks côté serveur. Consulte la référence complète dans Hooks serveur.

lua
local hookId = exports.origen_inventory:registerHook('createItem', function(payload)
    return payload.metadata
end)

Exports client

Inventaire

openInventory(identifier?, data?) → void

Ouvre l’inventaire du joueur ou un inventaire secondaire sur le client local.

lua
exports['origen_inventory']:openInventory()
exports['origen_inventory']:openInventory('stash_personal', { slots = 30, maxweight = 100000 })

getInventory() → table

Renvoie un instantané de l’inventaire du joueur local.

lua
local inv = exports['origen_inventory']:getInventory()

getPlayerItems() → table[]

Renvoie tous les slots de l’inventaire local.

lua
local items = exports['origen_inventory']:getPlayerItems()

IsInventoryOpen() → boolean

Indique si l’interface de l’inventaire est actuellement ouverte.

lua
local isOpen = exports['origen_inventory']:IsInventoryOpen()

lock() / unlock() → void

Verrouille ou déverrouille l’inventaire local. Tant qu’il est verrouillé, le joueur ne peut pas l’ouvrir.

lua
exports['origen_inventory']:lock()
exports['origen_inventory']:unlock()

isLocked() → boolean

Indique si l’inventaire local est actuellement verrouillé.

lua
local locked = exports['origen_inventory']:isLocked()

toggleLock() → void

Bascule l’état de verrouillage.

lua
exports['origen_inventory']:toggleLock()

useSlot(slot) → void

Déclenche l’action d’utilisation du slot indiqué sur le client local.

lua
exports['origen_inventory']:useSlot(1)

search(target?) → void

Lance l’animation/l’interface de fouille sur le joueur ciblé (ou sur le joueur local si omis).

lua
exports['origen_inventory']:search(GetPlayerServerId(targetPlayer))

getCurrentWeapon() → string?

Renvoie le hash de l’arme actuellement équipée, le cas échéant.

lua
local weapon = exports['origen_inventory']:getCurrentWeapon()

weaponWheel(toggle) → void

Force l’activation ou la désactivation de la roue des armes de GTA.

lua
exports['origen_inventory']:weaponWheel(false)

hasItem(item, amount?) → boolean

Indique si le joueur local possède l’objet.

lua
if exports['origen_inventory']:hasItem('phone') then
    -- local player has a phone
end

displayMetadata(slot) → void

Ouvre l’afficheur de métadonnées du slot indiqué.

lua
exports['origen_inventory']:displayMetadata(1)

openManagement() → void

Ouvre le panneau de gestion de l’inventaire en jeu (administrateurs).

lua
exports['origen_inventory']:openManagement()

OnPlayerLoad() → void

Déclenche manuellement le cycle de chargement du joueur. N’est nécessaire que si tu contournes le flux de connexion habituel du framework.

lua
exports['origen_inventory']:OnPlayerLoad()

UpdateInventory(items?) → void

Force un rafraîchissement de l’interface avec les objets indiqués (ou les redemande au serveur si omis).

lua
exports['origen_inventory']:UpdateInventory()

CloseInventory() → void

Ferme l’interface de l’inventaire.

lua
exports['origen_inventory']:CloseInventory()

Barre rapide

ToggleHotBar(toggle) → void

Affiche ou masque la barre rapide.

lua
exports['origen_inventory']:ToggleHotBar(true)

Armes

SetCurrentWeapon(weapon) → void

Force l’inventaire à marquer l’arme indiquée comme étant l’arme active (pour la synchronisation).

lua
exports['origen_inventory']:SetCurrentWeapon('weapon_pistol')

AddAmmo(weapon, ammo) → void

Ajoute des munitions à une arme et déclenche l’animation de rechargement.

lua
exports['origen_inventory']:AddAmmo('weapon_pistol', 30)

unarmedPed() → void

Retire toutes les armes du ped local sans toucher à l’inventaire.

lua
exports['origen_inventory']:unarmedPed()

Consommables

Eat(item) / Drink(item) / DrinkAlcohol(item) → void

Déclenche l’animation du consommable correspondant et la modification des statistiques.

lua
exports['origen_inventory']:Eat('tosti')
exports['origen_inventory']:Drink('water_bottle')
exports['origen_inventory']:DrinkAlcohol('beer')

controls() → table

Renvoie la configuration des contrôles par défaut utilisée par les consommables (canMove, canSprint, etc.).

lua
local controls = exports['origen_inventory']:controls()

progress_animation_fix(animation) → table

Helper qui met en forme un bloc d’animation pour le fournisseur de barre de progression actuellement actif.

lua
local anim = exports['origen_inventory']:progress_animation_fix({
    dict = 'mp_player_intdrink',
    clip = 'loop_bottle',
})

Points du monde

L’API complète des points du monde côté client est documentée dans Custom · Points du monde.

CreateWorldPoint(id, data) → void

Enregistre un seul point.

lua
exports.origen_inventory:CreateWorldPoint('my_lab_table', {
    coords = vector3(123.4, 567.8, 21.0),
    type = 'crafting',
})

RemoveWorldPoint(id) → void

Supprime un point à partir de son id.

lua
exports.origen_inventory:RemoveWorldPoint('my_lab_table')

SetWorldPointEnabled(id, enabled) → void

Active ou désactive un point.

lua
exports.origen_inventory:SetWorldPointEnabled('my_lab_table', false)

CreateBatchPoints(type, points) → void

Enregistre plusieurs points en une seule fois.

lua
exports.origen_inventory:CreateBatchPoints('crafting', {
    { id = 'lab_a', coords = vector3(0, 0, 70) },
    { id = 'lab_b', coords = vector3(10, 0, 70) },
})

ClearPoints(type) → void

Supprime tous les points d’un type.

lua
exports.origen_inventory:ClearPoints('crafting')

RefreshAllPoints(type) → void

Recharge tous les points d’un type.

lua
exports.origen_inventory:RefreshAllPoints('crafting')

GetPoints(type) → table[]

Renvoie les points d’un type.

lua
local points = exports.origen_inventory:GetPoints('crafting')

GetPointCount(type) → number

Renvoie le nombre de points d’un type.

lua
local count = exports.origen_inventory:GetPointCount('crafting')

HasPoint(id) → boolean

Renvoie true si le point existe.

lua
local exists = exports.origen_inventory:HasPoint('my_lab_table')

RegisterPointType(type, config) → void

Enregistre un type de point entièrement nouveau.

lua
exports.origen_inventory:RegisterPointType('crafting', { distance = 2.0 })

LoadPointType(type) → void

Recharge la configuration d’un type de point.

lua
exports.origen_inventory:LoadPointType('crafting')

GetWorldPointManager() → table

Renvoie le gestionnaire sous-jacent.

lua
local manager = exports.origen_inventory:GetWorldPointManager()

SetEnabled(id, enabled) → void

Alias de compatibilité pour activer ou désactiver une boutique.

lua
exports.origen_inventory:SetEnabled('barber_supplies', true)

SetShopLocalEnabled(id, enabled) → void

Active ou désactive une boutique uniquement sur le client local.

lua
exports.origen_inventory:SetShopLocalEnabled('barber_supplies', false)

Modules (panneaux d’interface)

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é.

lua
local mod = exports['origen_inventory']:getModule('my_panel')

getModules() → table[]

Renvoie tous les modules enregistrés.

lua
local modules = exports['origen_inventory']:getModules()

createModule(id, data) → void

Enregistre un nouveau module.

lua
exports['origen_inventory']:createModule('my_panel', {
    label = 'My Panel',
    icon = 'fa-solid fa-gear',
    url = 'nui://my_resource/ui/index.html',
})

removeModule(id) → void

Supprime un module.

lua
exports['origen_inventory']:removeModule('my_panel')

checkModules() → void

Valide les modules enregistrés.

lua
exports['origen_inventory']:checkModules()

sendModuleMessage(id, message) → void

Envoie un message à un module précis.

lua
exports['origen_inventory']:sendModuleMessage('my_panel', { action = 'refresh' })

Hooks

registerHook(event, callback, options?) → string

Enregistrement de hooks côté client. Consulte Custom · Hooks.

lua
local hookId = exports.origen_inventory:registerHook('useItem', function(payload)
    return true
end)

removeHooks(id) → void

Supprime un hook enregistré.

lua
exports.origen_inventory:removeHooks(hookId)

Divers

progressBar(data) → boolean

Encapsule 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.

lua
local ok = exports['origen_inventory']:progressBar({
    label = 'Working...',
    duration = 3000,
})

Carry() / Piggyback() → void

Déclenche l’action de porter / porter sur le dos sur le joueur visé.

lua
exports['origen_inventory']:Carry()
exports['origen_inventory']:Piggyback()

isCarryInProgress() → boolean

Renvoie true tant que le joueur local porte quelqu’un ou est porté.

lua
local carrying = exports['origen_inventory']:isCarryInProgress()

ToggleDriftMode(toggle) → void

Active ou désactive le profil de conduite drift défini dans config/drift.lua.

lua
exports['origen_inventory']:ToggleDriftMode(true)

IsItemBlacklisted(item) → boolean

Indique si l’objet figure sur la liste noire des règles de l’inventaire.

lua
local blocked = exports['origen_inventory']:IsItemBlacklisted('weapon_rpg')

Alias hérités

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.