QBCore support is experimental and cannot work as a "drag and drop" solution due to many incompatibilities.
Compatibility
Ox Inventory provides a complete suite of tools to replace the built-in items and inventory system from QBCore, and is not intended to be used with resources designed around it.
- Stashes used by qb-inventory and its forks do not work, but can possibly be converted.
- Remove
qb-inventory
(or similar), or qb-core will not function properly. - Remove
qb-shops
andqb-weapons
, as they depend onqb-inventory
and conflict. - Weapon holstering and draw animations (like in
qb-smallresources
) may break our own methods.
Qbox Project
Qbox is a fork of QBCore being developed by a team of former contributors and developers on QBCore. The team is focused on improving performance and security, as well as converting resources to support our resources (mainly ox_lib and ox_inventory).
We strongly advise using Qbox as an alternative to QBCore.
Installation
- Setup qb-core (opens in a new tab) or qbox (opens in a new tab).
- Edit your
server.cfg
.- Add
setr inventory:framework "qb"
before starting your resources. - Start ox_inventory immediately after qb-core.
- Add
Convert QBCore
If you have existing player data, you will need to convert it to a compatible format.
- Start the server and type
convertinventory qb
into the server console. - Restart the server once conversion is complete.
Optional optimisation
All item related functions from Player, such as Player.Functions.GetItemByName
, have been modified for compatibility purposes; however they are considered deprecated.
The reasoning is fairly simple - there's now additional function references and overhead to consider. Fortunately, the new Inventory functions can be used directly and offer a great deal of improvements over the old ones.
You should read through the functions section for further information, but the following should give you a decent idea.
local acetone = Player.Functions.GetItemByName('acetone')
local antifreeze = Player.Functions.GetItemByName('antifreeze')
local sudo = Player.Functions.GetItemByName('sudo')
if acetone?.amount > 2 and antifreeze?.amount > 4 and sudo?.amount > 9 then
Player.Functions.RemoveItem("acetone", 3)
Player.Functions.RemoveItem("antifreeze", 5)
Player.Functions.RemoveItem("sudo", 10)
end