Inicio › Documentación › Exports · origen_inventory

Exports · origen_inventory

Todos los exports están registrados bajo el nombre del recurso origen_inventory.

Esta página documenta los nombres canónicos de los exports (camelCase). Cada export tiene además un alias heredado en PascalCase (p. ej. addItem ⇄ AddItem, getInventory ⇄ GetInventory) que se mantiene por compatibilidad con scripts pensados para versiones anteriores o para qb-inventory / ox_inventory.


Exports de servidor

Objetos

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

Añade un objeto al inventario del jugador. Devuelve true si todo va bien.

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

addItems(source, items) → boolean

Añade varios objetos a la vez.

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

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

Elimina un objeto.

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

removeItems(source, items) → boolean

Elimina varios objetos a la vez. Mismo formato de datos que addItems.

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

getItem(source, item, metadata?) → table?

Devuelve los datos del slot del objeto que coincide (o nil).

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

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

Establece la cantidad de un objeto en un slot, sustituyendo el valor anterior.

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

canCarryItem(source, item, amount) → boolean

Devuelve true si el jugador puede cargar la cantidad indicada.

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

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

Comprueba si el jugador puede intercambiar fromItem por toItem.

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

getItemCount(source, item) → number

Devuelve la cantidad total de un objeto en el inventario del jugador.

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

getSlot(source, slot) → table?

Devuelve los datos del slot indicado.

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

getSlotsIdWithItem(source, item) → number[]

Devuelve el id de todos los slots que contienen el objeto indicado.

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

getSlotWithItem(source, item) → table?

Devuelve los datos del primer slot que contiene el objeto indicado.

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

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

Fusiona metadatos en un slot existente.

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

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

Elimina una o varias claves de metadatos de un slot.

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

setMetadata(source, slot, metadata) → boolean

Sustituye por completo los metadatos del slot.

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

setUses(source, slot, uses) → boolean

Establece los usos restantes de un slot.

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

getItemLabel(item) → string

Devuelve la etiqueta con la que se muestra un objeto.

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

Inventarios

getInventory(identifier) → table?

Devuelve los datos del inventario para un identificador dado (id de jugador, id de stash, matrícula, etc.).

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

getItems(identifier) → table[]

Devuelve todos los slots de objetos del inventario indicado.

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

setInventory(identifier, items) → boolean

Sustituye el contenido del inventario indicado.

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

clearInventory(identifier) → boolean

Vacía un inventario.

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

setMaxWeight(identifier, weight) → boolean

Establece el peso máximo del inventario indicado.

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

setMaxSlots(identifier, slots) → boolean

Establece el número máximo de slots del inventario indicado.

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

saveInventory(identifier) → boolean

Fuerza el guardado del estado del inventario en la base de datos.

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

useSlot(source, slot) → void

Lanza la acción de uso del slot indicado, igual que si el jugador hiciera clic en él.

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

Utilidades de jugador

Estos exports son envoltorios prácticos alrededor del inventario del jugador.

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

Abre un inventario en el cliente. Si identifier es nil, abre el inventario del jugador; si no, abre el stash, maletero o guantera correspondiente.

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

OpenInventoryById(source, identifier, data?) → void

Abre un inventario cualquiera por su id. Útil para taquillas de pruebas, stashes de facciones, etc.

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

LoadInventory(source) → void

Recarga el inventario del jugador desde la base de datos.

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

GetPlayerInventory(source) → table

Devuelve una instantánea completa del inventario del jugador (todos los slots).

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

SetInventoryItems(source, items) → boolean

Sustituye de golpe todos los slots del inventario del jugador.

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

SetInventoryData(source, data) → boolean

Sustituye toda la estructura de datos (objetos + metadatos) del inventario del jugador.

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

GetTotalWeight(source) → number

Devuelve el peso total actual.

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

HasItem(source, item, amount?) → boolean

Devuelve si el jugador tiene al menos amount (por defecto 1) del objeto.

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

GetItemsByName(source, item) → table[]

Devuelve todos los slots ocupados por el objeto indicado.

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

GetSlotsByItem(source, item) → number[]

Devuelve los ids de los slots ocupados por el objeto indicado.

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

GetItemBySlot(source, slot) → table?

Devuelve el objeto que hay en un slot determinado.

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

GetFirstSlotByItem(source, item) → number?

Devuelve el id del primer slot que contiene el objeto.

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

GetItemTotalAmount(source, item) → number

Devuelve la cantidad total del objeto.

lua
local total = exports['origen_inventory']:GetItemTotalAmount(source, 'tosti')

GetItemByMetadata(source, item, key, value) → table?

Devuelve el primer slot cuyo metadato key es igual a value.

lua
local slot = exports['origen_inventory']:GetItemByMetadata(source, 'phone', 'serial', 'XYZ-123')

GetItemsByMetadata(source, item, key, value) → table[]

Devuelve todos los slots cuyo metadato key es igual a value.

lua
local slots = exports['origen_inventory']:GetItemsByMetadata(source, 'phone', 'carrier', 'verizon')

GetItemByMetaKey(source, item, key) → table?

Devuelve el primer slot cuyos metadatos contienen la clave key indicada.

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

GetItemsByMetaKey(source, item, key) → table[]

Devuelve todos los slots cuyos metadatos contienen la clave key indicada.

lua
local slots = exports['origen_inventory']:GetItemsByMetaKey(source, 'phone', 'serial')

GetItemInfoBySlot(source, slot) → table?

Devuelve la definición del objeto del slot indicado (datos base del objeto + metadatos del slot).

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

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

Da un arma al jugador y la registra en el sistema de armas del inventario.

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

Stashes y tiendas

registerStash(id, data) → void

Crea o registra un stash dinámico en tiempo de ejecución.

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

createShop(id, data) → void

Crea una tienda en tiempo de ejecución (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

Crea un drop personalizado en el suelo y devuelve su id.

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

Objetos personalizados

La API de objetos personalizados está documentada en la página Custom.

AddCustomItem(data) → void

Registra un nuevo objeto personalizado en la base de datos.

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

EditCustomItem(data) → void

Edita un objeto personalizado existente.

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

RemoveCustomItem(name) → void

Elimina un objeto personalizado de la base de datos y de todos los inventarios activos.

lua
exports.origen_inventory:RemoveCustomItem('origen_compass')

Otros

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

Envía una notificación al jugador usando el proveedor de notificaciones configurado.

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

registerHook(event, callback, options?) → string

Registro de hooks en el servidor. Consulta la referencia completa en Hooks de servidor.

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

Exports de cliente

Inventario

openInventory(identifier?, data?) → void

Abre el inventario del jugador o un inventario secundario en el cliente local.

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

getInventory() → table

Devuelve una instantánea del inventario del jugador local.

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

getPlayerItems() → table[]

Devuelve todos los slots del inventario local.

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

IsInventoryOpen() → boolean

Devuelve si la interfaz del inventario está abierta en este momento.

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

lock() / unlock() → void

Bloquea o desbloquea el inventario local. Mientras está bloqueado, el jugador no puede abrirlo.

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

isLocked() → boolean

Devuelve si el inventario local está bloqueado en este momento.

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

toggleLock() → void

Alterna el estado de bloqueo.

lua
exports['origen_inventory']:toggleLock()

useSlot(slot) → void

Lanza la acción de uso del slot indicado en el cliente local.

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

search(target?) → void

Inicia la animación/interfaz de registro sobre el jugador objetivo (o sobre el local si se omite).

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

getCurrentWeapon() → string?

Devuelve el hash del arma que se lleva equipada, si la hay.

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

weaponWheel(toggle) → void

Activa o desactiva a la fuerza la rueda de armas de GTA.

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

hasItem(item, amount?) → boolean

Devuelve si el jugador local tiene el objeto.

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

displayMetadata(slot) → void

Abre el visor de metadatos del slot indicado.

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

openManagement() → void

Abre el panel de gestión del inventario dentro del juego (administradores).

lua
exports['origen_inventory']:openManagement()

OnPlayerLoad() → void

Lanza manualmente el ciclo de carga del jugador. Solo es necesario si te saltas el flujo normal de inicio de sesión del framework.

lua
exports['origen_inventory']:OnPlayerLoad()

UpdateInventory(items?) → void

Fuerza una actualización de la interfaz con los objetos indicados (o los vuelve a pedir al servidor si se omiten).

lua
exports['origen_inventory']:UpdateInventory()

CloseInventory() → void

Cierra la interfaz del inventario.

lua
exports['origen_inventory']:CloseInventory()

Barra rápida

ToggleHotBar(toggle) → void

Muestra u oculta la barra rápida.

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

Armas

SetCurrentWeapon(weapon) → void

Fuerza al inventario a marcar el arma indicada como la activa (para sincronización).

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

AddAmmo(weapon, ammo) → void

Añade munición a un arma y lanza la animación de recarga.

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

unarmedPed() → void

Quita todas las armas del ped local sin afectar al inventario.

lua
exports['origen_inventory']:unarmedPed()

Consumibles

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

Lanza la animación del consumible correspondiente y el cambio de estadísticas.

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

controls() → table

Devuelve la configuración de controles por defecto que usan los consumibles (canMove, canSprint, etc.).

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

progress_animation_fix(animation) → table

Helper que da formato a un bloque de animación para el proveedor de barra de progreso que esté activo.

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

Puntos del mundo

La API completa de puntos del mundo en el cliente está documentada en Custom · Puntos del mundo.

CreateWorldPoint(id, data) → void

Registra un único punto.

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

RemoveWorldPoint(id) → void

Elimina un punto a partir de su id.

lua
exports.origen_inventory:RemoveWorldPoint('my_lab_table')

SetWorldPointEnabled(id, enabled) → void

Activa o desactiva un punto.

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

CreateBatchPoints(type, points) → void

Registra varios puntos a la vez.

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

Elimina todos los puntos de un tipo.

lua
exports.origen_inventory:ClearPoints('crafting')

RefreshAllPoints(type) → void

Recarga todos los puntos de un tipo.

lua
exports.origen_inventory:RefreshAllPoints('crafting')

GetPoints(type) → table[]

Devuelve los puntos de un tipo.

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

GetPointCount(type) → number

Devuelve el número de puntos de un tipo.

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

HasPoint(id) → boolean

Devuelve true si el punto existe.

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

RegisterPointType(type, config) → void

Registra un tipo de punto totalmente nuevo.

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

LoadPointType(type) → void

Recarga la configuración de un tipo de punto.

lua
exports.origen_inventory:LoadPointType('crafting')

GetWorldPointManager() → table

Devuelve el gestor subyacente.

lua
local manager = exports.origen_inventory:GetWorldPointManager()

SetEnabled(id, enabled) → void

Alias de compatibilidad para activar o desactivar tiendas.

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

SetShopLocalEnabled(id, enabled) → void

Activa o desactiva una tienda solo en el cliente local.

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

Módulos (paneles de interfaz)

Estos exports controlan módulos secundarios de la interfaz (paneles personalizados que puedes añadir a las pestañas del inventario).

getModule(id) → table?

Devuelve los datos de un módulo registrado.

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

getModules() → table[]

Devuelve todos los módulos registrados.

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

createModule(id, data) → void

Registra un nuevo módulo.

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

Elimina un módulo.

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

checkModules() → void

Valida los módulos registrados.

lua
exports['origen_inventory']:checkModules()

sendModuleMessage(id, message) → void

Envía un mensaje a un módulo concreto.

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

Hooks

registerHook(event, callback, options?) → string

Registro de hooks en el cliente. Consulta Custom · Hooks.

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

removeHooks(id) → void

Elimina un hook registrado.

lua
exports.origen_inventory:removeHooks(hookId)

Varios

progressBar(data) → boolean

Envuelve el proveedor de barra de progreso activo (Config.Progressbar) para que cualquier script pueda mostrar una barra de progreso coherente con el estilo del inventario.

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

Carry() / Piggyback() → void

Lanza la acción de llevar en brazos / a caballito sobre el jugador al que se apunta.

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

isCarryInProgress() → boolean

Devuelve true mientras el jugador local lleva a alguien o lo están llevando.

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

ToggleDriftMode(toggle) → void

Activa o desactiva el perfil de conducción drift definido en config/drift.lua.

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

IsItemBlacklisted(item) → boolean

Devuelve si el objeto está en la lista negra de las reglas del inventario.

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

Alias heredados

Por compatibilidad, todos los exports de servidor anteriores también se exponen en PascalCase, y la mayoría tiene además un nombre al estilo qb-inventory. Ejemplos:

Canónico Alias heredados
addItem AddItem
removeItem RemoveItem
getItem GetItem, GetItemByName
getInventory GetInventory
getItems getInventoryItems, GetInventoryItems
setMaxSlots SetSlotCount
registerStash RegisterStash, InitializeInventory
createShop CreateShop, RegisterShop
getCurrentWeapon (cliente) GetCurrentWeapon
lock (cliente) LockInventory
unlock (cliente) UnlockInventory
isLocked (cliente) IsInventoryLocked
toggleLock (cliente) ToggleInventoryAccess
getPlayerItems (cliente) GetPlayerItems

Usa siempre los nombres canónicos en código nuevo. Los alias heredados podrían eliminarse en futuras versiones mayores, y el código fuente del recurso ya marca algunos de ellos con REMOVE ON UPDATE.