Inicio › Documentación › 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.
addItem(source, item, amount, slot?, info?) → booleanAñade un objeto al inventario del jugador. Devuelve true si todo va bien.
exports['origen_inventory']:addItem(source, 'tosti', 1, nil, { quality = 100 })addItems(source, items) → booleanAñade varios objetos a la vez.
exports['origen_inventory']:addItems(source, {
{ item = 'tosti', amount = 2 },
{ item = 'water_bottle', amount = 1 },
})removeItem(source, item, amount, slot?) → booleanElimina un objeto.
exports['origen_inventory']:removeItem(source, 'tosti', 1)removeItems(source, items) → booleanElimina varios objetos a la vez. Mismo formato de datos que addItems.
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).
local slot = exports['origen_inventory']:getItem(source, 'phone')setItem(source, item, amount, slot?, info?) → booleanEstablece la cantidad de un objeto en un slot, sustituyendo el valor anterior.
exports['origen_inventory']:setItem(source, 'water_bottle', 5, 3)canCarryItem(source, item, amount) → booleanDevuelve true si el jugador puede cargar la cantidad indicada.
local canCarry = exports['origen_inventory']:canCarryItem(source, 'tosti', 5)canSwapItem(source, fromItem, fromAmount, toItem, toAmount) → booleanComprueba si el jugador puede intercambiar fromItem por toItem.
local canSwap = exports['origen_inventory']:canSwapItem(source, 'tosti', 1, 'water_bottle', 1)getItemCount(source, item) → numberDevuelve la cantidad total de un objeto en el inventario del jugador.
local count = exports['origen_inventory']:getItemCount(source, 'tosti')getSlot(source, slot) → table?Devuelve los datos del slot indicado.
local slot = exports['origen_inventory']:getSlot(source, 1)getSlotsIdWithItem(source, item) → number[]Devuelve el id de todos los slots que contienen el objeto indicado.
local slots = exports['origen_inventory']:getSlotsIdWithItem(source, 'tosti')getSlotWithItem(source, item) → table?Devuelve los datos del primer slot que contiene el objeto indicado.
local slot = exports['origen_inventory']:getSlotWithItem(source, 'phone')addItemMetadata(source, item, slot, metadata) → booleanFusiona metadatos en un slot existente.
exports['origen_inventory']:addItemMetadata(source, 'phone', 1, { battery = 80 })removeItemMetadata(source, item, slot, keys) → booleanElimina una o varias claves de metadatos de un slot.
exports['origen_inventory']:removeItemMetadata(source, 'phone', 1, { 'battery' })setMetadata(source, slot, metadata) → booleanSustituye por completo los metadatos del slot.
exports['origen_inventory']:setMetadata(source, 1, { quality = 100, serial = 'XYZ-123' })setUses(source, slot, uses) → booleanEstablece los usos restantes de un slot.
exports['origen_inventory']:setUses(source, 1, 3)getItemLabel(item) → stringDevuelve la etiqueta con la que se muestra un objeto.
local label = exports['origen_inventory']:getItemLabel('tosti')getInventory(identifier) → table?Devuelve los datos del inventario para un identificador dado (id de jugador, id de stash, matrícula, etc.).
local inv = exports['origen_inventory']:getInventory('faction_locker_1')getItems(identifier) → table[]Devuelve todos los slots de objetos del inventario indicado.
local items = exports['origen_inventory']:getItems('faction_locker_1')setInventory(identifier, items) → booleanSustituye el contenido del inventario indicado.
exports['origen_inventory']:setInventory('faction_locker_1', {
{ slot = 1, name = 'tosti', amount = 5, info = {} },
})clearInventory(identifier) → booleanVacía un inventario.
exports['origen_inventory']:clearInventory('faction_locker_1')setMaxWeight(identifier, weight) → booleanEstablece el peso máximo del inventario indicado.
exports['origen_inventory']:setMaxWeight('faction_locker_1', 200000)setMaxSlots(identifier, slots) → booleanEstablece el número máximo de slots del inventario indicado.
exports['origen_inventory']:setMaxSlots('faction_locker_1', 50)saveInventory(identifier) → booleanFuerza el guardado del estado del inventario en la base de datos.
exports['origen_inventory']:saveInventory('faction_locker_1')useSlot(source, slot) → voidLanza la acción de uso del slot indicado, igual que si el jugador hiciera clic en él.
exports['origen_inventory']:useSlot(source, 1)Estos exports son envoltorios prácticos alrededor del inventario del jugador.
OpenInventory(source, identifier?, data?) → voidAbre un inventario en el cliente. Si identifier es nil, abre el inventario del jugador; si no, abre el stash, maletero o guantera correspondiente.
exports['origen_inventory']:OpenInventory(source) -- player inventory
exports['origen_inventory']:OpenInventory(source, 'evidence_locker', { slots = 50, maxweight = 200000 })OpenInventoryById(source, identifier, data?) → voidAbre un inventario cualquiera por su id. Útil para taquillas de pruebas, stashes de facciones, etc.
exports['origen_inventory']:OpenInventoryById(source, 'evidence_locker_42')LoadInventory(source) → voidRecarga el inventario del jugador desde la base de datos.
exports['origen_inventory']:LoadInventory(source)GetPlayerInventory(source) → tableDevuelve una instantánea completa del inventario del jugador (todos los slots).
local inv = exports['origen_inventory']:GetPlayerInventory(source)SetInventoryItems(source, items) → booleanSustituye de golpe todos los slots del inventario del jugador.
exports['origen_inventory']:SetInventoryItems(source, {
{ slot = 1, name = 'tosti', amount = 1, info = {} },
})SetInventoryData(source, data) → booleanSustituye toda la estructura de datos (objetos + metadatos) del inventario del jugador.
exports['origen_inventory']:SetInventoryData(source, { items = {}, weight = 0 })GetTotalWeight(source) → numberDevuelve el peso total actual.
local weight = exports['origen_inventory']:GetTotalWeight(source)HasItem(source, item, amount?) → booleanDevuelve si el jugador tiene al menos amount (por defecto 1) del objeto.
if exports['origen_inventory']:HasItem(source, 'phone') then
-- player has a phone
endGetItemsByName(source, item) → table[]Devuelve todos los slots ocupados por el objeto indicado.
local slots = exports['origen_inventory']:GetItemsByName(source, 'tosti')GetSlotsByItem(source, item) → number[]Devuelve los ids de los slots ocupados por el objeto indicado.
local slotIds = exports['origen_inventory']:GetSlotsByItem(source, 'tosti')GetItemBySlot(source, slot) → table?Devuelve el objeto que hay en un slot determinado.
local item = exports['origen_inventory']:GetItemBySlot(source, 1)GetFirstSlotByItem(source, item) → number?Devuelve el id del primer slot que contiene el objeto.
local slotId = exports['origen_inventory']:GetFirstSlotByItem(source, 'phone')GetItemTotalAmount(source, item) → numberDevuelve la cantidad total del objeto.
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.
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.
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.
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.
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).
local info = exports['origen_inventory']:GetItemInfoBySlot(source, 1)GiveWeaponToPlayer(source, weapon, ammo?, metadata?) → booleanDa un arma al jugador y la registra en el sistema de armas del inventario.
exports['origen_inventory']:GiveWeaponToPlayer(source, 'weapon_pistol', 30, { serial = 'PD-001' })registerStash(id, data) → voidCrea o registra un stash dinámico en tiempo de ejecución.
exports['origen_inventory']:registerStash('faction_locker_1', {
label = 'Faction Locker',
slots = 50,
maxweight = 200000,
})createShop(id, data) → voidCrea una tienda en tiempo de ejecución (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?) → stringCrea un drop personalizado en el suelo y devuelve su id.
local dropId = exports['origen_inventory']:customDrop(
vector3(123.4, 567.8, 21.0),
{ { name = 'tosti', amount = 1, info = {} } }
)La API de objetos personalizados está documentada en la página Custom.
AddCustomItem(data) → voidRegistra un nuevo objeto personalizado en la base de datos.
exports.origen_inventory:AddCustomItem({
name = 'origen_compass',
label = 'Compass',
weight = 50,
type = 'item',
unique = true,
})EditCustomItem(data) → voidEdita un objeto personalizado existente.
exports.origen_inventory:EditCustomItem({
name = 'origen_compass',
label = 'Magnetic Compass',
weight = 60,
})RemoveCustomItem(name) → voidElimina un objeto personalizado de la base de datos y de todos los inventarios activos.
exports.origen_inventory:RemoveCustomItem('origen_compass')notify(source, message, type?, duration?) → voidEnvía una notificación al jugador usando el proveedor de notificaciones configurado.
exports['origen_inventory']:notify(source, 'Item received', 'success', 4000)registerHook(event, callback, options?) → stringRegistro de hooks en el servidor. Consulta la referencia completa en Hooks de servidor.
local hookId = exports.origen_inventory:registerHook('createItem', function(payload)
return payload.metadata
end)openInventory(identifier?, data?) → voidAbre el inventario del jugador o un inventario secundario en el cliente local.
exports['origen_inventory']:openInventory()
exports['origen_inventory']:openInventory('stash_personal', { slots = 30, maxweight = 100000 })getInventory() → tableDevuelve una instantánea del inventario del jugador local.
local inv = exports['origen_inventory']:getInventory()getPlayerItems() → table[]Devuelve todos los slots del inventario local.
local items = exports['origen_inventory']:getPlayerItems()IsInventoryOpen() → booleanDevuelve si la interfaz del inventario está abierta en este momento.
local isOpen = exports['origen_inventory']:IsInventoryOpen()lock() / unlock() → voidBloquea o desbloquea el inventario local. Mientras está bloqueado, el jugador no puede abrirlo.
exports['origen_inventory']:lock()
exports['origen_inventory']:unlock()isLocked() → booleanDevuelve si el inventario local está bloqueado en este momento.
local locked = exports['origen_inventory']:isLocked()toggleLock() → voidAlterna el estado de bloqueo.
exports['origen_inventory']:toggleLock()useSlot(slot) → voidLanza la acción de uso del slot indicado en el cliente local.
exports['origen_inventory']:useSlot(1)search(target?) → voidInicia la animación/interfaz de registro sobre el jugador objetivo (o sobre el local si se omite).
exports['origen_inventory']:search(GetPlayerServerId(targetPlayer))getCurrentWeapon() → string?Devuelve el hash del arma que se lleva equipada, si la hay.
local weapon = exports['origen_inventory']:getCurrentWeapon()weaponWheel(toggle) → voidActiva o desactiva a la fuerza la rueda de armas de GTA.
exports['origen_inventory']:weaponWheel(false)hasItem(item, amount?) → booleanDevuelve si el jugador local tiene el objeto.
if exports['origen_inventory']:hasItem('phone') then
-- local player has a phone
enddisplayMetadata(slot) → voidAbre el visor de metadatos del slot indicado.
exports['origen_inventory']:displayMetadata(1)openManagement() → voidAbre el panel de gestión del inventario dentro del juego (administradores).
exports['origen_inventory']:openManagement()OnPlayerLoad() → voidLanza manualmente el ciclo de carga del jugador. Solo es necesario si te saltas el flujo normal de inicio de sesión del framework.
exports['origen_inventory']:OnPlayerLoad()UpdateInventory(items?) → voidFuerza una actualización de la interfaz con los objetos indicados (o los vuelve a pedir al servidor si se omiten).
exports['origen_inventory']:UpdateInventory()CloseInventory() → voidCierra la interfaz del inventario.
exports['origen_inventory']:CloseInventory()ToggleHotBar(toggle) → voidMuestra u oculta la barra rápida.
exports['origen_inventory']:ToggleHotBar(true)SetCurrentWeapon(weapon) → voidFuerza al inventario a marcar el arma indicada como la activa (para sincronización).
exports['origen_inventory']:SetCurrentWeapon('weapon_pistol')AddAmmo(weapon, ammo) → voidAñade munición a un arma y lanza la animación de recarga.
exports['origen_inventory']:AddAmmo('weapon_pistol', 30)unarmedPed() → voidQuita todas las armas del ped local sin afectar al inventario.
exports['origen_inventory']:unarmedPed()Eat(item) / Drink(item) / DrinkAlcohol(item) → voidLanza la animación del consumible correspondiente y el cambio de estadísticas.
exports['origen_inventory']:Eat('tosti')
exports['origen_inventory']:Drink('water_bottle')
exports['origen_inventory']:DrinkAlcohol('beer')controls() → tableDevuelve la configuración de controles por defecto que usan los consumibles (canMove, canSprint, etc.).
local controls = exports['origen_inventory']:controls()progress_animation_fix(animation) → tableHelper que da formato a un bloque de animación para el proveedor de barra de progreso que esté activo.
local anim = exports['origen_inventory']:progress_animation_fix({
dict = 'mp_player_intdrink',
clip = 'loop_bottle',
})La API completa de puntos del mundo en el cliente está documentada en Custom · Puntos del mundo.
CreateWorldPoint(id, data) → voidRegistra un único punto.
exports.origen_inventory:CreateWorldPoint('my_lab_table', {
coords = vector3(123.4, 567.8, 21.0),
type = 'crafting',
})RemoveWorldPoint(id) → voidElimina un punto a partir de su id.
exports.origen_inventory:RemoveWorldPoint('my_lab_table')SetWorldPointEnabled(id, enabled) → voidActiva o desactiva un punto.
exports.origen_inventory:SetWorldPointEnabled('my_lab_table', false)CreateBatchPoints(type, points) → voidRegistra varios puntos a la vez.
exports.origen_inventory:CreateBatchPoints('crafting', {
{ id = 'lab_a', coords = vector3(0, 0, 70) },
{ id = 'lab_b', coords = vector3(10, 0, 70) },
})ClearPoints(type) → voidElimina todos los puntos de un tipo.
exports.origen_inventory:ClearPoints('crafting')RefreshAllPoints(type) → voidRecarga todos los puntos de un tipo.
exports.origen_inventory:RefreshAllPoints('crafting')GetPoints(type) → table[]Devuelve los puntos de un tipo.
local points = exports.origen_inventory:GetPoints('crafting')GetPointCount(type) → numberDevuelve el número de puntos de un tipo.
local count = exports.origen_inventory:GetPointCount('crafting')HasPoint(id) → booleanDevuelve true si el punto existe.
local exists = exports.origen_inventory:HasPoint('my_lab_table')RegisterPointType(type, config) → voidRegistra un tipo de punto totalmente nuevo.
exports.origen_inventory:RegisterPointType('crafting', { distance = 2.0 })LoadPointType(type) → voidRecarga la configuración de un tipo de punto.
exports.origen_inventory:LoadPointType('crafting')GetWorldPointManager() → tableDevuelve el gestor subyacente.
local manager = exports.origen_inventory:GetWorldPointManager()SetEnabled(id, enabled) → voidAlias de compatibilidad para activar o desactivar tiendas.
exports.origen_inventory:SetEnabled('barber_supplies', true)SetShopLocalEnabled(id, enabled) → voidActiva o desactiva una tienda solo en el cliente local.
exports.origen_inventory:SetShopLocalEnabled('barber_supplies', false)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.
local mod = exports['origen_inventory']:getModule('my_panel')getModules() → table[]Devuelve todos los módulos registrados.
local modules = exports['origen_inventory']:getModules()createModule(id, data) → voidRegistra un nuevo módulo.
exports['origen_inventory']:createModule('my_panel', {
label = 'My Panel',
icon = 'fa-solid fa-gear',
url = 'nui://my_resource/ui/index.html',
})removeModule(id) → voidElimina un módulo.
exports['origen_inventory']:removeModule('my_panel')checkModules() → voidValida los módulos registrados.
exports['origen_inventory']:checkModules()sendModuleMessage(id, message) → voidEnvía un mensaje a un módulo concreto.
exports['origen_inventory']:sendModuleMessage('my_panel', { action = 'refresh' })registerHook(event, callback, options?) → stringRegistro de hooks en el cliente. Consulta Custom · Hooks.
local hookId = exports.origen_inventory:registerHook('useItem', function(payload)
return true
end)removeHooks(id) → voidElimina un hook registrado.
exports.origen_inventory:removeHooks(hookId)progressBar(data) → booleanEnvuelve 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.
local ok = exports['origen_inventory']:progressBar({
label = 'Working...',
duration = 3000,
})Carry() / Piggyback() → voidLanza la acción de llevar en brazos / a caballito sobre el jugador al que se apunta.
exports['origen_inventory']:Carry()
exports['origen_inventory']:Piggyback()isCarryInProgress() → booleanDevuelve true mientras el jugador local lleva a alguien o lo están llevando.
local carrying = exports['origen_inventory']:isCarryInProgress()ToggleDriftMode(toggle) → voidActiva o desactiva el perfil de conducción drift definido en config/drift.lua.
exports['origen_inventory']:ToggleDriftMode(true)IsItemBlacklisted(item) → booleanDevuelve si el objeto está en la lista negra de las reglas del inventario.
local blocked = exports['origen_inventory']:IsItemBlacklisted('weapon_rpg')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.