Inventory (client)

Local player reads. Add/remove, stashes, shops, and hooks live on server. Shared types: Inventory.

Items(itemName?)

Signature: Items(itemName?: string): ItemDefinition | table<string, ItemDefinition> | nil

ParamTypeDescription
itemNamestring?Omit for all item definitions keyed by name

| Returns | one ItemDefinition, or the full list keyed by name |

local water = bridge.inventory.Items('water')
local allItems = bridge.inventory.Items()

hasItem(item, count?, metadata?)

Signature: hasItem(item: string, count?: number, metadata?: table): boolean

ParamTypeDefault
itemstring
countnumber?1
metadatatable?

| Returns | boolean |

if bridge.inventory.hasItem('lockpick', 1) then end

getImagePath(itemName)

Signature: getImagePath(itemName: string): string

ParamType
itemNamestring

| Returns | string — NUI icon path |

local icon = bridge.inventory.getImagePath('water')

getItemInfo(itemName)

Signature: getItemInfo(itemName: string): BridgeItemInfo

ParamType
itemNamestring

| Returns | BridgeItemInfo — ox-shaped definition plus a resolved image path |

local info = bridge.inventory.getItemInfo('water')
print(info.label, info.image, info.weight)

getItemCount(item, metadata?)

Signature: getItemCount(item: string, metadata?: table): number

ParamType
itemstring
metadatatable?

| Returns | number |

local count = bridge.inventory.getItemCount('water')

getInventoryItems()

Signature: getInventoryItems(): table

| Returns | occupied slots — slot-keyed map on ox / m-Inventory / one_inventory; sorted array on other adapters. Iterate with pairs. |

local items = bridge.inventory.getInventoryItems()

Examples

-- Show craft option only when player has materials
if bridge.inventory.hasItem('steel', 2) and bridge.inventory.hasItem('plastic', 1) then
    options[#options + 1] = {
        title = 'Craft plate carrier',
        onSelect = function()
            TriggerServerEvent('myresource:craftPlateCarrier')
        end,
    }
end
 
-- Menu icon from bridge image path
local icon = bridge.inventory.getImagePath('bandage')
 
-- Iterate local inventory (ox-shaped slots). Use pairs: ox keys by slot number.
local items = bridge.inventory.getInventoryItems()
for _, slot in pairs(items) do
    print(slot.slot, slot.name, slot.count, json.encode(slot.metadata))
end