F5 StudioF5 Studio
Skip to main content

Items

F5 Shadow Market ships with one usable item: market_tablet (the "Shadow Tablet"). Using it opens the market UI. The item is registered by the bridge via the framework's usable-item API (CreateUseableItem on QB/QBox, RegisterUsableItem on ESX).

Item nameInventory labelWeight (g)Icon file
market_tabletShadow Tablet1000market_tablet.png

The item name is configurable via F5Cfg.Item in config.lua — if you rename it, register the new name in your inventory instead.

Command-only mode

If you set F5Cfg.Command.mode = 'command_always' the item is not required — players open the market with /market. See Commands. In the default 'item_or_command' mode the player must carry the tablet for either the item or the command to work.

Step 1 — Copy the Item Icon

Copy f5_shadowmarket/item/market_tablet.png into your inventory's image folder. The filename must match exactly (lowercase).

InventoryIcons folder
ox_inventoryox_inventory/web/images/
qb-inventoryqb-inventory/html/images/
qs-inventoryqs-inventory/html/images/
ps-inventoryps-inventory/html/images/
codem-inventorycodem-inventory/html/itemimages/
tgiann-inventorysee note below
ESX native(no icon folder required)
tgiann-inventory images

tgiann-inventory serves item images from a separate inventory_images resource in .webp format (nui://inventory_images/images/<name>.webp). Convert market_tablet.png to market_tablet.webp and place it there.

ESX native has no item images

The ESX native inventory adapter does not resolve item images — the market shows a generic placeholder for inventory items. This is a known limitation of that adapter; use a third-party inventory (e.g. ox_inventory) on ESX if you want item icons.

Step 2 — Register the Item

Open f5_shadowmarket/item/QBCORE.TXT. Pick one method.

Paste the entry inside the QBShared.Items = { … } table:

qb-core/shared/items.lua
['market_tablet'] = {
name = 'market_tablet',
label = 'Shadow Tablet',
weight = 1000,
type = 'item',
image = 'market_tablet.png',
unique = true,
useable = true,
shouldClose = true,
combinable = nil,
description = 'A crypto-encrypted tablet granting access to the Shadow Market.'
},

Then restart qb-core:

restart qb-core

Method B — runtime registration (no qb-core edits)

Drop this into any server-side .lua in a resource that runs after qb-core:

CreateThread(function()
while GetResourceState('qb-core') ~= 'started' do Wait(100) end

exports['qb-core']:AddItems({
['market_tablet'] = { name='market_tablet', label='Shadow Tablet', weight=1000, type='item', image='market_tablet.png', unique=true, useable=true, shouldClose=true, combinable=nil, description='A crypto-encrypted tablet granting access to the Shadow Market.' },
})
end)

Step 3 — Restart and Test

Give yourself the item to verify it works:

giveitem <serverId> market_tablet 1

Use the item from your inventory — the market UI should open.

Renaming the Item

To use a different item name:

  1. Change F5Cfg.Item in config.lua:
config.lua
F5Cfg.Item = 'shadow_phone'
  1. Register the new item name in your inventory (Step 2 above) with the same icon and a label of your choice.

The bridge registers whatever F5Cfg.Item points to as the usable item, so no other change is needed.

See Also