Ox Inventory Install
Step 1: Locate the OX Inventory Folder
Navigate to your FiveM server directory.
Open the
resources
folder.Find and open the ox_inventory resource folder.
Step 2: Open the data/items.lua
File
data/items.lua
FileInside the ox_inventory folder, go to:
ox_inventory/data/items.lua
Open
items.lua
using Notepad++, VS Code, or another code editor.
Step 3: Add Your New Item
Add a new entry for your item inside the
items.lua
file.Use the following format:
Items Config
["djs_prop_almondcroissant"] = { --checked
label = 'Almond Croissant',
weight = 2,
stack = true,
close = true,
client = {
status = { hunger = 2000000 },
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_prop_almondcroissant',
bone = 18905,
pos = vec3(0.145000, 0.111000, 0.000000),
rot = vec3(-190.498383, 0.000000, 57.750206),
},
usetime = 17500,
cancel = true,
notification = 'You have satisfied your hunger'
},
},
["djs_prop_birthdaycakepop"] = { --checked
label = "Birthday Cakepop",
stack = true,
weight = 2,
close = true,
client = {
status = { hunger = 2000000 },
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_prop_birthdaycakepop',
bone = 18905,
pos = vec3(0.15, 0.0, 0.0),
rot = vec3(-98.0, 20.0, -16.0),
},
usetime = 17500,
cancel = true,
notification = 'You have satisfied your hunger'
},
},
["djs_prop_blueberrymuffin"] = { --checked
label = "Blueberry Muffin",
stack = true,
weight = 2,
close = true,
client = {
status = { hunger = 2000000 },
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_prop_blueberrymuffin',
bone = 18905,
pos = vec3(0.153000, 0.075000, 0.000000),
rot = vec3(-118.950829, 0.000000, -0.000000),
},
usetime = 17500,
cancel = true,
notification = 'You have satisfied your hunger'
},
},
["djs_prop_blueberryoatmeal"] = {
label = "Blueberry Oatmeal",
stack = true,
weight = 2,
close = true,
client = {
status = { hunger = 2000000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {model = 'djs_prop_blueberryoatmeal',
bone = 18905,
pos = vec3(0.112000, 0.012000, 0.000000),
rot = vec3(0.000000, 0.000000, -31.649944),
},
propTwo = { model = 'djs_spoon',
bone = 57005,
pos = vec3(0.08, 0.0, 0.02),
rot = vec3 (-98.0, -222.0, 349.0),
},
usetime = 17500,
cancel = true,
notification = 'You have satistfied your hunger'
},
},
["djs_prop_blueberryscone"] = { --checked
label = "Blueberry Scone",
stack = true,
weight = 2,
close = true,
client = {
status = { hunger = 2000000 },
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger'},
prop = {model = 'djs_prop_blueberryscone',
bone = 18905,
pos = vec3(0.11, 0.03, 0.03),
rot = vec3(-14.0, -234.0, -110.0),
},
usetime = 17500,
cancel = true,
notification = 'You have satisfied your hunger'
},
},
["djs_prop_buttercroissant"] = { --checked
label = "Butter Croissant",
stack = true,
close = true,
weight = 2,
client = {
status = { hunger = 2000000 },
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_prop_buttercroissant',
bone = 18905,
pos = vec3(0.11, 0.03, 0.03),
rot = vec3(-14.0, -234.0, -110.0),
},
usetime = 17500,
cancel = true,
notification = 'You have satisfied your hunger'
},
},
["djs_prop_cheesedanish"] = { --checked
label = "Cheese Danish",
stack = true,
close = true,
weight = 2,
client = {
status = { hunger = 2000000 },
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_prop_cheesedanish',
bone = 18905,
pos = vec3(0.11, 0.04, 0.05),
rot = vec3(36.0, -214.0, 0.0),
},
usetime = 17500,
cancel = true,
notification = 'You have satisfied your hunger'
},
},
["djs_prop_chocolatecakepop"] = { --checked
label = "Chocolate Cakepop",
stack = true,
close = true,
weight = 2,
client = {
status = { hunger = 2000000},
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_prop_chocolatecakepop',
bone = 18905,
pos = vec3(0.15, 0.0, 0.0),
rot = vec3(-98.0, 20.0, -16.0),
},
usetime = 17500,
cancel = true,
notification = 'You have satisfied your hunger'
},
},
["djs_prop_chocolatecroissant"] = { --checked
label = "Chocolate Croissant",
stack = true,
close = true,
weight = 2,
client = {
status = { hunger = 2000000},
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_prop_chocolatecroissant',
bone = 18905,
pos = vec3(0.11, 0.04, 0.05),
rot = vec3(36.0, -214.0, 0.0),
},
usetime = 17500,
cancel = true,
notification = 'You have satisfied your hunger'
},
},
["djs_prop_classicoatmeal"] = { --checked
label = "Classic Oatmeal",
stack = true,
close = true,
weight = 2,
client = {
status = { hunger = 2000000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {model = 'djs_prop_classicoatmeal',
bone = 18905,
pos = vec3(0.112000, 0.012000, 0.000000),
rot = vec3(0.000000, 0.000000, -31.649944),
},
propTwo = { model = 'djs_spoon',
bone = 57005,
pos = vec3(0.08, 0.0, 0.02),
rot = vec3 (-98.0, -222.0, 349.0),
},
usetime = 17500,
cancel = true,
notification = 'You have satistfied your hunger'
},
},
["djs_prop_bmcoffeecuplarge"] = { --checked
label = "Large Coffee",
stack = true,
close = true,
weight = 2,
client = {
status = { hunger = 2000000 },
anim = { dict = 'anim@djs@drink@coffee', clip = 'djs_drink_coffee_sip_long' },
prop = {model = 'djs_prop_bmcoffeecuplarge',
bone = 57005,
pos = vec3(0.124000, 0.091000, 0.000000),
rot = vec3(-66.000290, 0.000000, -7.800001),
},
usetime = 17500,
cancel = true,
notification = 'You have satisfied your hunger'
},
},
["djs_prop_bmcoffeecupmedium"] = { --checked
label = "Medium Coffee",
stack = true,
close = true,
weight = 2,
client = {
status = { hunger = 2000000 },
anim = { dict = 'anim@djs@drink@coffee', clip = 'djs_drink_coffee_sip_long' },
prop = {model = 'djs_prop_bmcoffeecupmedium',
bone = 57005,
pos = vec3(0.124000, 0.091000, 0.000000),
rot = vec3(-66.000290, 0.000000, -7.800001),
},
usetime = 17500,
cancel = true,
notification = 'You have satisfied your hunger'
},
},
["djs_prop_bmcoffeecupsmall"] = { --checked
label = "Small Coffee",
stack = true,
close = true,
weight = 2,
client = {
status = { hunger = 2000000 },
anim = { dict = 'anim@djs@drink@coffee', clip = 'djs_drink_coffee_sip_long' },
prop = {model = 'djs_prop_bmcoffeecupsmall',
bone = 57005,
pos = vec3(0.124000, 0.091000, 0.000000),
rot = vec3(-66.000290, 0.000000, -7.800001),
},
usetime = 17500,
cancel = true,
notification = 'You have satisfied your hunger'
},
},
["djs_prop_impossiblesbreakfastsandwich"] = { --checked
label = "Impossible Sandwich",
stack = true,
close = true,
weight = 2,
client = {
status = { hunger = 2000000 },
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_prop_impossiblesbreakfastsandwich',
bone = 18905,
pos = vec3(0.151000, 0.061000, 0.000000),
rot = vec3(159.299652, 0.000000, -16.349983),
},
usetime = 17500,
cancel = true,
notification = 'You have satisfied your hunger'
},
},
["djs_prop_pumpkincreamcheesemuffin"] = { --checked
label = "Pumpkin Cream Cheese Muffin",
stack = true,
close = true,
weight = 2,
client = {
status = { hunger = 2000000 },
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_prop_pumpkincreamcheesemuffin',
bone = 18905,
pos = vec3(0.153000, 0.075000, 0.000000),
rot = vec3(-118.950829, 0.000000, -0.000000),
},
usetime = 17500,
cancel = true,
notification = 'You have satisfied your hunger'
},
},
["djs_prop_sandwichsmokedbacon"] = { --checked
label = "Smoked Bacon Sandwich",
stack = true,
close = true,
weight = 2,
client = {
status = { hunger = 2000000 },
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_prop_sandwichsmokedbacon',
bone = 18905,
pos = vec3(0.151000, 0.061000, 0.000000),
rot = vec3(159.299652, 0.000000, -16.349983),
},
usetime = 17500,
cancel = true,
notification = 'You have satisfied your hunger'
},
},
["djs_prop_turkeybaconcheddareggwhite"] = { --checked
label = "Turkey Bacon Egg Sandwich",
stack = true,
close = true,
weight = 2,
client = {
status = { hunger = 2000000 },
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_prop_turkeybaconcheddareggwhite',
bone = 18905,
pos = vec3(0.151000, 0.061000, 0.000000),
rot = vec3(159.299652, 0.000000, -16.349983),
},
usetime = 17500,
cancel = true,
notification = 'You have satisfied your hunger'
},
},
["djs_prop_unicorncakepop"] = { --checked
label = "Unicorn Cakepop",
stack = true,
close = true,
weight = 2,
client = {
status = { hunger = 2000000 },
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_prop_unicorncakepop',
bone = 18905,
pos = vec3(0.15, 0.0, 0.0),
rot = vec3(-98.0, 20.0, -16.0),
},
usetime = 17500,
cancel = true,
notification = 'You have satisfied your hunger'
},
},
Adjust label, weight, stack, animations, and props as needed.
Step 4: Add Item Image
OX Inventory allows you to display custom images for items in the inventory.
Where to Place Item Images
Navigate to:
ox_inventory/web/images/
Place your item image inside the
images/
folder.
Step 5: Save the File & Restart Server
Save the
items.lua
file.Restart your FiveM server using one of the following methods:
Console Command:
restart ox_inventory
Full Server Restart: Stop and start the server manually.
Step 6: Test the Item
Spawn the item using an admin command:
/giveitem yourID prop_name 1
(Replace
yourID
with your actual player ID andburger
with your item name.)Open OX Inventory (
F2
default key).Verify the item appears and functions correctly.
Step 6: Debugging & Adjustments
If the item does not show, check the server console for errors.
Verify spelling and commas in
items.lua
.Ensure
ox_inventory
is running properly.Look at the FiveM forums or Discord for troubleshooting help.
Last updated