[Free] Ox Inventory

Showcase

Framework

The inventory was designed with the intention to move towards a more generic / standalone structure so it can be integrated into any framework without hassle, but that’s for a future update.

Officially supported by ESX Legacy without any modifications as of this commit.

Features

Shops

  • Creates different shops for 24/7, Ammunation, Liquor Stores, Vending Machines, etc.
  • Job restricted shops, such as a Police Armoury.
  • Items can be restricted to specific job grades and licenses.
  • Define the price for each item, and even allow different currency (black money, poker chips, etc).

Items

  • Generic item data shared between objects.
  • Specific data stored per-slot, with metadata to hold custom information.
  • Weapons, attachments, and durability.
  • Flexible item use allows for progress bars, server callbacks, and cancellation with simple functions and exports.
  • Support for items registered with ESX.

Stashes

  • Server-side security prevents arbitrary access to any stash.
  • Support personal stashes, able to be opened with different identifiers.
  • Job-restricted stashes as well as a police evidence locker.
  • Server exports allow for registration of stashes from any resource (see here).
  • Access small stashes via containers, such as paperbags, from using an item.
  • Vehicle gloveboxes and trunks, for both owned and unowned.

Temporary stashes

  • Dumpsters, drops, and non-player vehicles.
  • Loot tables allow users to find random items in dumpsters and unowned vehicles.


More information, dependencies, and installation instructions provided in the documentation.
Let us know if information is missing or lacking.

GitHub Repository



Developed by

Special thanks

  • @ohitsjudd video showcase
  • @Leah_UK improved shop data format, qtarget integration
  • @Noms initial garbage generation and qtarget
  • @Dolu exceptional feedback and bug testing
73 Likes

:ox: :ox: :ox: :ox: :ox:

8 Likes

Best inventory out there

5 Likes

Sick looking inventory im 100% going to use this one. Could you add names for glovebox and trunk for cars. For example if you open a glovebox it shows ‘Glovebox’ and the same for vehicle trunks
?

4 Likes

The best inventory, nice :grin:

5 Likes

OX just on top.

5 Likes

Happy to see this project finally here.
Thanks for the insane work over the last months, you guys are awesome! :heart:
:ox:

6 Likes

Phenomenal Inventory System, Extremely Responsive and easily configurable.

4 Likes

rebuilt my server around it… it got everything i needed… thank you for this masterpiece

4 Likes

Best inventory, its in React TS to! loving it.

1 Like

I installed well, but there is no index.html for your inventory.

Fantastic inventory! Been trying out the experimental builds for a while now, and it’s easily the best inventory I’ve experienced :purple_heart:

1 Like

The interface is written in TypeScript, you need to build it or download a pre-built copy.

or refer to documentation with instructions on using node and yarn.

2 Likes

Just pure curiosity here @Linden , but why separate out all the typing into diff files vs using a single index.d.ts?? On a diff note, nice release!

You’d have to ask @Dunak on that since he’s the TS nerd; I barely touched the interface outside of some minor style changes and durability calculations.

1 Like

Since stumbling on this I’ve built my first server around it and the guys have been very helpful along the way! I’ve learnt so much!

2 Likes

Really wished this was for older versions of esx😭

3 Likes

Is it backward compatible? I mean in database we have stored items for normal esx. So ex. If player has 10 piece of bread etc… in storages will he able to use his items after installing this inventory? Our server runs more than a year everyone has lot of items in their storages and we dont want them to lose them.

It’s difficult to know what people are running in order to run queries for converting all of their inventories; it wouldn’t be too difficult to convert some standard formats but it can easily get complicated depending on how they store items.

Right now, the only thing I can guarantee is player inventories; there’s also an export that I haven’t thoroughly tested that you could try to use. Considering the nature of this resource I would hope everybody is backing up before attempting anything.

--- Takes traditional item data and updates it to support ox_inventory, i.e.
---
--- Old: [{"cola":1, "bread":3}]
--- New: [{"slot":1,"name":"cola","count":1}, {"slot":2,"name":"bread","count":3}]
---
local function ConvertItems(playerId, items)
	if type(items) == 'table' then
		local returnData, totalWeight = table.create(#items, 0), 0
		local slot = 0
		for name, count in pairs(items) do
			local item = Items(name)
			local metadata = Items.Metadata(playerId, item, false, count)
			local weight = Inventory.SlotWeight(item, {count=count, metadata=metadata})
			totalWeight = totalWeight + weight
			slot += 1
			returnData[slot] = {name = item.name, label = item.label, weight = weight, slot = slot, count = count, description = item.description, metadata = metadata, stack = item.stack, close = item.close}
		end
		return returnData, weight
	end
end
exports('ConvertItems', ConvertItems)

For stuff like esx_addoninventory you could probably load all the items into a table and pass it through (it normally stores each item as a single entry in the database). After some time to let things settle and some relaxation I can look at implementing my own stuff for support.

The plan is to remove the dependency on ESX entirely; once I’ve done that I’ll be adding a guide so anybody could theoretically use it. However, considering the amount this resource affects your server I can’t recommend it for anything before ESX 1.2.

Considering ESX Legacy is almost entirely backwards compatible with 1.2, you would be better off updating everything.

1 Like