One Studios
Installation

QBox

Installing One Inventory on QBox.
QBox requires a handful of small patches to qbx_core (and optionally ox_fuel / qbx_ambulancejob). 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

Keep the old inventory folder in place and run /inventory:manage in-game. Use the migration wizard to copy items, players, vehicles, and stashes over.

Apply the qbx_core patches

See the patch list below (plus the optional ox_fuel / qbx_ambulancejob ones if you use them).

Remove the old inventory

Stop the server, delete the 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.

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

Patch 5: [ox]/ox_fuel/fxmanifest.lua (optional)

Only if you use ox_fuel. Delete 'ox_inventory' from dependencies in [ox]/ox_fuel/fxmanifest.lua:

dependencies {
    'ox_lib',
    -- 'ox_inventory',
}

Patch 6: [qbx]/qbx_ambulancejob/fxmanifest.lua (optional)

Only if you use qbx_ambulancejob. Delete 'ox_inventory' from dependencies in [qbx]/qbx_ambulancejob/fxmanifest.lua:

dependencies {
    'qbx_core',
    'qbx_medical',
    'ox_lib',
    -- 'ox_inventory'
}