One Studios
Installation

QBox

Installing One Inventory on QBox.
QBox requires a handful of small patches to qbx_core (and optionally ox_fuel). You'll need to re-apply these after any qbx_core update.

Dependencies

server.cfg
ensure fmLib
ensure qbx_core
ensure one_inventory

Grab the latest fmLib release from GitHub.

Checklist

Drop the resources in

Drop one_inventory/ and the fmLib release folder into your resources/ folder.

Start it from server.cfg

ensure fmLib
ensure qbx_core
ensure one_inventory

Grant yourself admin access

The admin panel and every admin action/command are gated behind a single ACE: one_inventory.admin. Grant it in server.cfg before booting, to a single identifier (recommended) or to a whole group:

server.cfg
# Full access: opens the admin panel AND can run every admin action/command.
# Grant to owners/devs by identifier (recommended) or to a trusted group.
add_ace identifier.license:abc123... one_inventory.admin allow
# or:  add_ace group.admin one_inventory.admin allow

Without one_inventory.admin the panel cannot be opened (/inventory:manage is permission-checked), so keep it to owners/devs. Per-group command permissions (who can run /giveitem etc.) are managed in-game in the panel's Permissions tab; out of the box the admin and god groups are seeded with all commands. See the Setting Permissions guide for the full breakdown.

Start the server

Database tables are created automatically on first boot.

(Optional) Migrate from another inventory

Coming from ox_inventory? Remove ensure ox_inventory from server.cfg: one_inventory now answers as ox_inventory, and your ox data is detected from the database. To also import its item, weapon, shop and stash definitions, keep the old folder under another name (for example ox_inventory_old) so its data files stay readable. Then run /inventory:manage in-game and use the migration wizard. See Migrate Inventory.

Apply the qbx_core patches

See the patch list below (plus the optional ox_fuel one if you use it).

Remove the old inventory

Stop the server, delete the (renamed) old inventory folder, then start the server again.

qbx_core patches

Patch 1: qbx_core/server/main.lua

Delete the two elseif blocks (4 lines total) that check for ox_inventory and the inventory:framework convar:

elseif not lib.checkDependency('ox_inventory', '2.42.1', true) then
    startupErrors, errorMessage = true, 'ox_inventory version 2.42.1 or higher is required'
elseif GetConvar('inventory:framework', '') ~= 'qbx' then
    startupErrors, errorMessage = true, 'inventory:framework must be set to "qbx" in order to use qbx_core'

The surrounding if not lib.checkDependency('ox_lib', ...) and if startupErrors then blocks stay as-is.

This patch is still required even though one_inventory answers as ox_inventory: the version check reads one_inventory's own version number, which is lower than the ox_inventory version qbx_core expects.

Patch 2: qbx_core/bridge/qb/server/main.lua

Delete these two lines near the top of the file:

local convertItems = require 'bridge.qb.shared.compat'.convertItems
convertItems(require '@ox_inventory.data.items', require 'shared.items')

Patch 3: qbx_core/bridge/qb/shared/main.lua

Delete the four for ... in pairs(ox...) loops (everything from the first local oxItems = require '@ox_inventory.data.items' line down through the end of the for ammo, data in pairs(oxWeapons.Ammo) do ... end block).

The file should go from:

local qbShared = require 'shared.main'

qbShared.Items = {}
local oxItems = require '@ox_inventory.data.items'
for item, data in pairs(oxItems) do
    qbShared.Items[item] = { ... }
end
local oxWeapons = require '@ox_inventory.data.weapons'
for weapon, data in pairs(oxWeapons.Weapons) do
    ...
end
for component, data in pairs(oxWeapons.Components) do
    ...
end
for ammo, data in pairs(oxWeapons.Ammo) do
    ...
end

local starterItems = require 'config.shared'.starterItems

to:

local qbShared = require 'shared.main'

qbShared.Items = {}
-- ox_inventory data/items + data/weapons loops removed.
-- one_inventory populates QBCore.Shared.Items at runtime via
-- server/compat/qb.lua syncSharedItemsAndWeapons().

local starterItems = require 'config.shared'.starterItems

Patch 4: [ox]/ox_fuel/config.lua (optional)

Only if you use ox_fuel. Delete this line at the top of [ox]/ox_fuel/config.lua:

if not lib.checkDependency('ox_inventory', '2.30.0', true) then return end