Início › Documentação › Exports · origen_inventory
Todos os exports estão registados sob o nome do recurso origen_inventory.
Esta página documenta os nomes canónicos dos exports (camelCase). Cada export tem ainda um alias antigo em PascalCase (p. ex. addItem ⇄ AddItem, getInventory ⇄ GetInventory) mantido por compatibilidade com scripts feitos para versões anteriores ou para qb-inventory / ox_inventory.
addItem(source, item, amount, slot?, info?) → booleanAdiciona um item ao inventário do jogador. Devolve true em caso de sucesso.
exports['origen_inventory']:addItem(source, 'tosti', 1, nil, { quality = 100 })addItems(source, items) → booleanAdiciona vários itens de uma só vez.
exports['origen_inventory']:addItems(source, {
{ item = 'tosti', amount = 2 },
{ item = 'water_bottle', amount = 1 },
})removeItem(source, item, amount, slot?) → booleanRemove um item.
exports['origen_inventory']:removeItem(source, 'tosti', 1)removeItems(source, items) → booleanRemove vários itens de uma só vez. Mesmo formato de dados que addItems.
exports['origen_inventory']:removeItems(source, {
{ item = 'tosti', amount = 1 },
{ item = 'water_bottle', amount = 1 },
})getItem(source, item, metadata?) → table?Devolve os dados do slot do item correspondente (ou nil).
local slot = exports['origen_inventory']:getItem(source, 'phone')setItem(source, item, amount, slot?, info?) → booleanDefine a quantidade de um item num slot, substituindo o valor anterior.
exports['origen_inventory']:setItem(source, 'water_bottle', 5, 3)canCarryItem(source, item, amount) → booleanDevolve true se o jogador conseguir transportar a quantidade indicada.
local canCarry = exports['origen_inventory']:canCarryItem(source, 'tosti', 5)canSwapItem(source, fromItem, fromAmount, toItem, toAmount) → booleanVerifica se o jogador pode trocar fromItem por toItem.
local canSwap = exports['origen_inventory']:canSwapItem(source, 'tosti', 1, 'water_bottle', 1)getItemCount(source, item) → numberDevolve a quantidade total de um item no inventário do jogador.
local count = exports['origen_inventory']:getItemCount(source, 'tosti')getSlot(source, slot) → table?Devolve os dados do slot indicado.
local slot = exports['origen_inventory']:getSlot(source, 1)getSlotsIdWithItem(source, item) → number[]Devolve o id de todos os slots que contêm o item indicado.
local slots = exports['origen_inventory']:getSlotsIdWithItem(source, 'tosti')getSlotWithItem(source, item) → table?Devolve os dados do primeiro slot que contém o item indicado.
local slot = exports['origen_inventory']:getSlotWithItem(source, 'phone')addItemMetadata(source, item, slot, metadata) → booleanJunta metadados a um slot existente.
exports['origen_inventory']:addItemMetadata(source, 'phone', 1, { battery = 80 })removeItemMetadata(source, item, slot, keys) → booleanRemove uma ou mais chaves de metadados de um slot.
exports['origen_inventory']:removeItemMetadata(source, 'phone', 1, { 'battery' })setMetadata(source, slot, metadata) → booleanSubstitui por completo os metadados do slot.
exports['origen_inventory']:setMetadata(source, 1, { quality = 100, serial = 'XYZ-123' })setUses(source, slot, uses) → booleanDefine as utilizações restantes de um slot.
exports['origen_inventory']:setUses(source, 1, 3)getItemLabel(item) → stringDevolve a etiqueta com que um item é apresentado.
local label = exports['origen_inventory']:getItemLabel('tosti')getInventory(identifier) → table?Devolve os dados do inventário para um identificador dado (id de jogador, id de stash, matrícula, etc.).
local inv = exports['origen_inventory']:getInventory('faction_locker_1')getItems(identifier) → table[]Devolve todos os slots de itens do inventário indicado.
local items = exports['origen_inventory']:getItems('faction_locker_1')setInventory(identifier, items) → booleanSubstitui o conteúdo do inventário indicado.
exports['origen_inventory']:setInventory('faction_locker_1', {
{ slot = 1, name = 'tosti', amount = 5, info = {} },
})clearInventory(identifier) → booleanEsvazia um inventário.
exports['origen_inventory']:clearInventory('faction_locker_1')setMaxWeight(identifier, weight) → booleanDefine o peso máximo do inventário indicado.
exports['origen_inventory']:setMaxWeight('faction_locker_1', 200000)setMaxSlots(identifier, slots) → booleanDefine o número máximo de slots do inventário indicado.
exports['origen_inventory']:setMaxSlots('faction_locker_1', 50)saveInventory(identifier) → booleanForça a gravação do estado do inventário na base de dados.
exports['origen_inventory']:saveInventory('faction_locker_1')useSlot(source, slot) → voidDispara a ação de utilização do slot indicado, tal como se o jogador clicasse nele.
exports['origen_inventory']:useSlot(source, 1)Estes exports são invólucros práticos à volta do inventário do jogador.
OpenInventory(source, identifier?, data?) → voidAbre um inventário no cliente. Quando identifier é nil, abre o inventário do jogador; caso contrário, abre o stash, porta-bagagens ou porta-luvas correspondente.
exports['origen_inventory']:OpenInventory(source) -- player inventory
exports['origen_inventory']:OpenInventory(source, 'evidence_locker', { slots = 50, maxweight = 200000 })OpenInventoryById(source, identifier, data?) → voidAbre um inventário qualquer pelo seu id. Útil para cacifos de provas, stashes de fações, etc.
exports['origen_inventory']:OpenInventoryById(source, 'evidence_locker_42')LoadInventory(source) → voidRecarrega o inventário do jogador a partir da base de dados.
exports['origen_inventory']:LoadInventory(source)GetPlayerInventory(source) → tableDevolve um instantâneo completo do inventário do jogador (todos os slots).
local inv = exports['origen_inventory']:GetPlayerInventory(source)SetInventoryItems(source, items) → booleanSubstitui de uma só vez todos os slots do inventário do jogador.
exports['origen_inventory']:SetInventoryItems(source, {
{ slot = 1, name = 'tosti', amount = 1, info = {} },
})SetInventoryData(source, data) → booleanSubstitui toda a estrutura de dados (itens + metadados) do inventário do jogador.
exports['origen_inventory']:SetInventoryData(source, { items = {}, weight = 0 })GetTotalWeight(source) → numberDevolve o peso total atual.
local weight = exports['origen_inventory']:GetTotalWeight(source)HasItem(source, item, amount?) → booleanDevolve se o jogador tem pelo menos amount (por omissão 1) do item.
if exports['origen_inventory']:HasItem(source, 'phone') then
-- player has a phone
endGetItemsByName(source, item) → table[]Devolve todos os slots ocupados pelo item indicado.
local slots = exports['origen_inventory']:GetItemsByName(source, 'tosti')GetSlotsByItem(source, item) → number[]Devolve os ids dos slots ocupados pelo item indicado.
local slotIds = exports['origen_inventory']:GetSlotsByItem(source, 'tosti')GetItemBySlot(source, slot) → table?Devolve o item que está num determinado slot.
local item = exports['origen_inventory']:GetItemBySlot(source, 1)GetFirstSlotByItem(source, item) → number?Devolve o id do primeiro slot que contém o item.
local slotId = exports['origen_inventory']:GetFirstSlotByItem(source, 'phone')GetItemTotalAmount(source, item) → numberDevolve a quantidade total do item.
local total = exports['origen_inventory']:GetItemTotalAmount(source, 'tosti')GetItemByMetadata(source, item, key, value) → table?Devolve o primeiro slot cujo metadado key é igual a value.
local slot = exports['origen_inventory']:GetItemByMetadata(source, 'phone', 'serial', 'XYZ-123')GetItemsByMetadata(source, item, key, value) → table[]Devolve todos os slots cujo metadado key é igual a value.
local slots = exports['origen_inventory']:GetItemsByMetadata(source, 'phone', 'carrier', 'verizon')GetItemByMetaKey(source, item, key) → table?Devolve o primeiro slot cujos metadados contêm a chave key indicada.
local slot = exports['origen_inventory']:GetItemByMetaKey(source, 'phone', 'serial')GetItemsByMetaKey(source, item, key) → table[]Devolve todos os slots cujos metadados contêm a chave key indicada.
local slots = exports['origen_inventory']:GetItemsByMetaKey(source, 'phone', 'serial')GetItemInfoBySlot(source, slot) → table?Devolve a definição do item do slot indicado (dados base do item + metadados do slot).
local info = exports['origen_inventory']:GetItemInfoBySlot(source, 1)GiveWeaponToPlayer(source, weapon, ammo?, metadata?) → booleanDá uma arma ao jogador e regista-a no sistema de armas do inventário.
exports['origen_inventory']:GiveWeaponToPlayer(source, 'weapon_pistol', 30, { serial = 'PD-001' })registerStash(id, data) → voidCria ou regista um stash dinâmico em tempo de execução.
exports['origen_inventory']:registerStash('faction_locker_1', {
label = 'Faction Locker',
slots = 50,
maxweight = 200000,
})createShop(id, data) → voidCria uma loja em tempo de execução (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?) → stringCria um drop personalizado no chão e devolve o seu id.
local dropId = exports['origen_inventory']:customDrop(
vector3(123.4, 567.8, 21.0),
{ { name = 'tosti', amount = 1, info = {} } }
)A API de itens personalizados está documentada na página Custom.
AddCustomItem(data) → voidRegista um novo item personalizado na base de dados.
exports.origen_inventory:AddCustomItem({
name = 'origen_compass',
label = 'Compass',
weight = 50,
type = 'item',
unique = true,
})EditCustomItem(data) → voidEdita um item personalizado existente.
exports.origen_inventory:EditCustomItem({
name = 'origen_compass',
label = 'Magnetic Compass',
weight = 60,
})RemoveCustomItem(name) → voidRemove um item personalizado da base de dados e de todos os inventários ativos.
exports.origen_inventory:RemoveCustomItem('origen_compass')notify(source, message, type?, duration?) → voidEnvia uma notificação ao jogador através do fornecedor de notificações configurado.
exports['origen_inventory']:notify(source, 'Item received', 'success', 4000)registerHook(event, callback, options?) → stringRegisto de hooks no servidor. Consulta a referência completa em Hooks de servidor.
local hookId = exports.origen_inventory:registerHook('createItem', function(payload)
return payload.metadata
end)openInventory(identifier?, data?) → voidAbre o inventário do jogador ou um inventário secundário no cliente local.
exports['origen_inventory']:openInventory()
exports['origen_inventory']:openInventory('stash_personal', { slots = 30, maxweight = 100000 })getInventory() → tableDevolve um instantâneo do inventário do jogador local.
local inv = exports['origen_inventory']:getInventory()getPlayerItems() → table[]Devolve todos os slots do inventário local.
local items = exports['origen_inventory']:getPlayerItems()IsInventoryOpen() → booleanDevolve se a interface do inventário está aberta neste momento.
local isOpen = exports['origen_inventory']:IsInventoryOpen()lock() / unlock() → voidBloqueia ou desbloqueia o inventário local. Enquanto estiver bloqueado, o jogador não o consegue abrir.
exports['origen_inventory']:lock()
exports['origen_inventory']:unlock()isLocked() → booleanDevolve se o inventário local está bloqueado neste momento.
local locked = exports['origen_inventory']:isLocked()toggleLock() → voidAlterna o estado de bloqueio.
exports['origen_inventory']:toggleLock()useSlot(slot) → voidDispara a ação de utilização do slot indicado no cliente local.
exports['origen_inventory']:useSlot(1)search(target?) → voidInicia a animação/interface de revista sobre o jogador alvo (ou sobre o local, se for omitido).
exports['origen_inventory']:search(GetPlayerServerId(targetPlayer))getCurrentWeapon() → string?Devolve o hash da arma que está equipada, se existir.
local weapon = exports['origen_inventory']:getCurrentWeapon()weaponWheel(toggle) → voidAtiva ou desativa à força a roda de armas do GTA.
exports['origen_inventory']:weaponWheel(false)hasItem(item, amount?) → booleanDevolve se o jogador local tem o item.
if exports['origen_inventory']:hasItem('phone') then
-- local player has a phone
enddisplayMetadata(slot) → voidAbre o visualizador de metadados do slot indicado.
exports['origen_inventory']:displayMetadata(1)openManagement() → voidAbre o painel de gestão do inventário dentro do jogo (administradores).
exports['origen_inventory']:openManagement()OnPlayerLoad() → voidDispara manualmente o ciclo de carregamento do jogador. Só é necessário se contornares o fluxo normal de início de sessão do framework.
exports['origen_inventory']:OnPlayerLoad()UpdateInventory(items?) → voidForça uma atualização da interface com os itens indicados (ou volta a pedi-los ao servidor se forem omitidos).
exports['origen_inventory']:UpdateInventory()CloseInventory() → voidFecha a interface do inventário.
exports['origen_inventory']:CloseInventory()ToggleHotBar(toggle) → voidMostra ou esconde a barra rápida.
exports['origen_inventory']:ToggleHotBar(true)SetCurrentWeapon(weapon) → voidForça o inventário a marcar a arma indicada como a ativa (para sincronização).
exports['origen_inventory']:SetCurrentWeapon('weapon_pistol')AddAmmo(weapon, ammo) → voidAdiciona munições a uma arma e dispara a animação de recarregamento.
exports['origen_inventory']:AddAmmo('weapon_pistol', 30)unarmedPed() → voidRetira todas as armas ao ped local sem afetar o inventário.
exports['origen_inventory']:unarmedPed()Eat(item) / Drink(item) / DrinkAlcohol(item) → voidDispara a animação do consumível correspondente e a alteração de estatísticas.
exports['origen_inventory']:Eat('tosti')
exports['origen_inventory']:Drink('water_bottle')
exports['origen_inventory']:DrinkAlcohol('beer')controls() → tableDevolve a configuração de controlos por omissão usada pelos consumíveis (canMove, canSprint, etc.).
local controls = exports['origen_inventory']:controls()progress_animation_fix(animation) → tableHelper que formata um bloco de animação para o fornecedor de barra de progresso que estiver ativo.
local anim = exports['origen_inventory']:progress_animation_fix({
dict = 'mp_player_intdrink',
clip = 'loop_bottle',
})A API completa de pontos do mundo no cliente está documentada em Custom · Pontos do mundo.
CreateWorldPoint(id, data) → voidRegista um único ponto.
exports.origen_inventory:CreateWorldPoint('my_lab_table', {
coords = vector3(123.4, 567.8, 21.0),
type = 'crafting',
})RemoveWorldPoint(id) → voidRemove um ponto a partir do seu id.
exports.origen_inventory:RemoveWorldPoint('my_lab_table')SetWorldPointEnabled(id, enabled) → voidAtiva ou desativa um ponto.
exports.origen_inventory:SetWorldPointEnabled('my_lab_table', false)CreateBatchPoints(type, points) → voidRegista vários pontos de uma só vez.
exports.origen_inventory:CreateBatchPoints('crafting', {
{ id = 'lab_a', coords = vector3(0, 0, 70) },
{ id = 'lab_b', coords = vector3(10, 0, 70) },
})ClearPoints(type) → voidRemove todos os pontos de um tipo.
exports.origen_inventory:ClearPoints('crafting')RefreshAllPoints(type) → voidRecarrega todos os pontos de um tipo.
exports.origen_inventory:RefreshAllPoints('crafting')GetPoints(type) → table[]Devolve os pontos de um tipo.
local points = exports.origen_inventory:GetPoints('crafting')GetPointCount(type) → numberDevolve o número de pontos de um tipo.
local count = exports.origen_inventory:GetPointCount('crafting')HasPoint(id) → booleanDevolve true se o ponto existir.
local exists = exports.origen_inventory:HasPoint('my_lab_table')RegisterPointType(type, config) → voidRegista um tipo de ponto totalmente novo.
exports.origen_inventory:RegisterPointType('crafting', { distance = 2.0 })LoadPointType(type) → voidRecarrega a configuração de um tipo de ponto.
exports.origen_inventory:LoadPointType('crafting')GetWorldPointManager() → tableDevolve o gestor subjacente.
local manager = exports.origen_inventory:GetWorldPointManager()SetEnabled(id, enabled) → voidAlias de compatibilidade para ativar ou desativar lojas.
exports.origen_inventory:SetEnabled('barber_supplies', true)SetShopLocalEnabled(id, enabled) → voidAtiva ou desativa uma loja apenas no cliente local.
exports.origen_inventory:SetShopLocalEnabled('barber_supplies', false)Estes exports controlam módulos secundários da interface (painéis personalizados que podes acrescentar aos separadores do inventário).
getModule(id) → table?Devolve os dados de um módulo registado.
local mod = exports['origen_inventory']:getModule('my_panel')getModules() → table[]Devolve todos os módulos registados.
local modules = exports['origen_inventory']:getModules()createModule(id, data) → voidRegista um novo 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) → voidRemove um módulo.
exports['origen_inventory']:removeModule('my_panel')checkModules() → voidValida os módulos registados.
exports['origen_inventory']:checkModules()sendModuleMessage(id, message) → voidEnvia uma mensagem a um módulo concreto.
exports['origen_inventory']:sendModuleMessage('my_panel', { action = 'refresh' })registerHook(event, callback, options?) → stringRegisto de hooks no cliente. Consulta Custom · Hooks.
local hookId = exports.origen_inventory:registerHook('useItem', function(payload)
return true
end)removeHooks(id) → voidRemove um hook registado.
exports.origen_inventory:removeHooks(hookId)progressBar(data) → booleanEncapsula o fornecedor de barra de progresso ativo (Config.Progressbar) para que qualquer script possa mostrar uma barra de progresso coerente com o estilo do inventário.
local ok = exports['origen_inventory']:progressBar({
label = 'Working...',
duration = 3000,
})Carry() / Piggyback() → voidDispara a ação de levar ao colo / às cavalitas sobre o jogador para quem se está a apontar.
exports['origen_inventory']:Carry()
exports['origen_inventory']:Piggyback()isCarryInProgress() → booleanDevolve true enquanto o jogador local estiver a levar alguém ou a ser levado.
local carrying = exports['origen_inventory']:isCarryInProgress()ToggleDriftMode(toggle) → voidAtiva ou desativa o perfil de condução drift definido em config/drift.lua.
exports['origen_inventory']:ToggleDriftMode(true)IsItemBlacklisted(item) → booleanDevolve se o item está na lista negra das regras do inventário.
local blocked = exports['origen_inventory']:IsItemBlacklisted('weapon_rpg')Por compatibilidade, todos os exports de servidor acima também são expostos em PascalCase, e a maioria tem ainda um nome ao estilo qb-inventory. Exemplos:
| Canónico | Aliases antigos |
|---|---|
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 sempre os nomes canónicos em código novo. Os aliases antigos podem ser removidos em futuras versões principais, e o código-fonte do recurso já marca alguns deles com REMOVE ON UPDATE.