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_bigplate_steaklobster'] = { --checked
label = 'Plate of Lobster',
degrade = 2880,
weight = 200,
stack = true,
close = true,
description = "A heaping plate of lobster",
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_bigplate_steaklobster',
bone = 18905, -- R ForeArm
pos = vec3(0.18, 0.02, 0.01),
rot = vec3(-23, 0.0, 0.0)
},
propTwo = {
model = 'djs_fork',
bone = 57005,
pos = vec3(0.11, 0.04, -0.03),
rot = vec3(-98.0, -222.0, 22.0),
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_bowl_clamchowder'] = { --checked
label = 'Bowl of Clam Chowder',
degrade = 2880,
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_bowl_clamchowder',
bone = 18905, -- R ForeArm
pos = vec3(0.15, 0.02, 0.02),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_spoon',
bone = 57005,
pos = vec3(0.14, 0.02, 0.01),
rot = vec3(-118.0, 192.0, 24.0)
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_bowl_crawfish'] = { --checked
label = 'Bowl of lobster bisque',
degrade = 2880,
weight = 200,
stack = true,
close = true,
description = "A heaping plate of lobster",
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_bowl_lobsterbisque',
bone = 18905, -- R ForeArm
pos = vec3(0.13, 0.02, 0.02),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_spoon',
bone = 57005,
pos = vec3(0.14, 0.02, 0.01),
rot = vec3(-118.0, 192.0, 24.0)
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_bowl_lobsterbisque'] = { --checked
label = 'Bowl of lobster bisque',
degrade = 2880,
weight = 200,
stack = true,
close = true,
description = "A heaping plate of lobster",
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_bowl_lobsterbisque',
bone = 18905, -- R ForeArm
pos = vec3(0.13, 0.02, 0.02),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_spoon',
bone = 57005,
pos = vec3(0.14, 0.02, 0.01),
rot = vec3(-118.0, 192.0, 24.0)
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_bowl_shrimpokragumbo'] = { --checked
label = 'Shrimp Okra Gumbo', -- Lol never heard of this so i might be putting in the wrong name
degrade = 2880,
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_bowl_shrimpokragumbo',
bone = 18905, -- R ForeArm
pos = vec3(0.13, 0.02, 0.02),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_spoon',
bone = 57005,
pos = vec3(0.11, 0.04, -0.03),
rot = vec3(-98.0, -222.0, 22.0),
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_shrimpcocktail'] = { --checked
label = 'Shrimp Coctail',
degrade = 2880,
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_shrimpcocktail',
bone = 18905, -- R ForeArm
pos = vec3(0.15, 0.02, 0.02),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_prop_shrimpcocktail',
bone = 57005,
pos = vec3(0.13, 0.02, -0.05),
rot = vec3(0,0,0),
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_newspaper_boil'] = { --checked
label = 'Newspaper Boil',
description = "Yummy seafood boil on a newspaper",
degrade = 2880,
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_newspaper_boil',
bone = 18905, -- R ForeArm
pos = vec3(0.13, 0.02, 0.025),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_prop_crabclaw',
bone = 57005,
pos = vec3(0.15, 0.03, -0.03),
rot = vec3(0,0,0),
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_newspaper_crablegsandshrimp'] = { --checked
label = 'Crablegs and shrimp',
degrade = 2880,
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_newspaper_crablegsandshrimp',
bone = 18905, -- R ForeArm
pos = vec3(0.13, 0.02, 0.02),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_prop_crabclaw',
bone = 57005,
pos = vec3(0.15, 0.03, -0.03),
rot = vec3(0,0,0),
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_newspaper_crawfish'] = { --done
label = 'Craw Fish',
degrade = 2880,
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_newspaper_crawfish',
bone = 18905, -- R ForeArm
pos = vec3(0.13, 0.02, 0.02),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_prop_coconutshrimp',
bone = 57005,
pos = vec3(0.13, 0.02, -0.05),
rot = vec3(0,0,0),
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_newspaper_lobsterandshrimp'] = { --checked
label = 'Lobster and shrimp',
degrade = 2880,
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_newspaper_lobsterandshrimp',
bone = 18905, -- R ForeArm
pos = vec3(0.13, 0.02, 0.02),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_prop_shrimpcocktail',
bone = 57005,
pos = vec3(0.13, 0.02, -0.05),
rot = vec3(0,0,0),
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_newspaper_lobstertails'] = { --checked
label = 'Lobster Tails',
degrade = 2880,
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_newspaper_lobstertails',
bone = 18905, -- R ForeArm
pos = vec3(0.13, 0.02, 0.02),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_fork',
bone = 57005,
pos = vec3(0.11, 0.04, -0.03),
rot = vec3(-98.0, -222.0, 22.0),
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_newspaper_shrimppotatoes'] = { --checked
label = 'Shrimp Potatoes',
degrade = 2880,
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_newspaper_shrimppotatoes',
bone = 18905, -- R ForeArm
pos = vec3(0.13, 0.02, 0.02),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_fork',
bone = 57005,
pos = vec3(0.11, 0.04, -0.03),
rot = vec3(-98.0, -222.0, 22.0),
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_plate_calimari'] = { --done
label = 'Calimari Plate',
degrade = 2880,
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_plate_calimari',
bone = 18905, -- R ForeArm
pos = vec3(0.13, 0.02, 0.02),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_prop_calimari',
bone = 57005,
pos = vec3(0.11, 0.04, -0.03),
rot = vec3(-98.0, -222.0, 22.0),
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_plate_coconutshrimp'] = { --done
label = 'Coconut Shrimp',
degrade = 2880,
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_plate_coconutshrimp',
bone = 18905, -- R ForeArm
pos = vec3(0.13, 0.02, 0.02),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_prop_coconutshrimp',
bone = 57005,
pos = vec3(0.13, 0.02, -0.05),
rot = vec3(0,0,0),
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_plate_crablegs'] = { --checked
label = 'Crab Legs',
degrade = 2880,
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_plate_crablegs',
bone = 18905, -- R ForeArm
pos = vec3(0.13, 0.02, 0.02),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_prop_crabmeat',
bone = 57005,
pos = vec3(0.11, 0.04, -0.03),
rot = vec3(-98.0, -222.0, 22.0),
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_plate_fishandchips'] = { --checked
label = 'Fish & Chips',
degrade = 2880,
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_plate_fishandchips',
bone = 18905, -- R ForeArm
pos = vec3(0.13, 0.02, 0.02),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_prop_fishandchips',
bone = 57005,
pos = vec3(0.11, 0.04, -0.03),
rot = vec3(-98.0, -222.0, 22.0),
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_plate_garlicshrimpskewers'] = { --checked
label = 'Garlic Shrimp Skewers',
degrade = 2880,
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_plate_garlicshrimpskewers',
bone = 18905, -- R ForeArm
pos = vec3(0.13, 0.02, 0.02),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_prop_garlicshrimpskewers',
bone = 57005,
pos = vec3(0.11, 0.04, -0.03),
rot = vec3(-98.0, -222.0, 22.0),
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_plate_lobster'] = { --checked
label = 'Plate Of Lobster',
degrade = 2880,
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_plate_lobster',
bone = 18905, -- R ForeArm
pos = vec3(0.13, 0.02, 0.02),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_fork',
bone = 57005,
pos = vec3(0.11, 0.04, -0.03),
rot = vec3(-98.0, -222.0, 22.0),
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_plate_lobster'] = { --checked
label = 'Lobster',
degrade = 2880,
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_plate_lobster',
bone = 18905, -- R ForeArm
pos = vec3(0.13, 0.02, 0.02),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_fork',
bone = 57005,
pos = vec3(0.11, 0.04, -0.03),
rot = vec3(-98.0, -222.0, 22.0),
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_plate_lobsterultimatefeast'] = { --checked
label = 'Lobster Ultimat Feast',
degrade = 2880,
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_plate_lobsterultimatefeast',
bone = 18905, -- R ForeArm
pos = vec3(0.13, 0.02, 0.02),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_prop_crabcluster',
bone = 57005,
pos = vec3(0.11, 0.04, -0.03),
rot = vec3(-98.0, -222.0, 22.0),
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_plate_mussels'] = { --checked
label = 'Plate Of Mussels',
degrade = 2880,
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_plate_mussels',
bone = 18905, -- R ForeArm
pos = vec3(0.13, 0.02, 0.02),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_prop_mussels',
bone = 57005,
pos = vec3(0.13, 0.02, -0.05),
rot = vec3(0,0,0),
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_plate_poboy'] = { --checked
label = 'Plate Of Po Boy',
degrade = 2880,
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_plate_poyboy',
bone = 18905, -- R ForeArm
pos = vec3(0.13, 0.02, 0.02),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_prop_poboy',
bone = 57005,
pos = vec3(0.13, 0.02, -0.05),
rot = vec3(0,0,0),
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_plate_salmonbagels'] = { --checked
label = 'Salmon Bagels',
degrade = 2880,
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_plate_salmonbagels',
bone = 18905, -- R ForeArm
pos = vec3(0.13, 0.02, 0.02),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_prop_salmonbagels',
bone = 57005,
pos = vec3(0.11, 0.04, -0.03),
rot = vec3(-98.0, -222.0, 22.0),
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_plate_snowcrab'] = { --checked
label = 'Snowcrab',
degrade = 2880,
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_plate_snowcrab',
bone = 18905, -- R ForeArm
pos = vec3(0.13, 0.02, 0.02),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_prop_crabcluster',
bone = 57005,
pos = vec3(0.11, 0.04, -0.03),
rot = vec3(-98.0, -222.0, 22.0),
},
usetime = 17500,
notification = 'You have satistfied your hunger'
},
},
['djs_plate_surfturfandfries'] = { --checked
label = 'Surf and Turf',
degrade = 2880,
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 150000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_plate_surfturfandfries',
bone = 18905, -- R ForeArm
pos = vec3(0.13, 0.02, 0.02),
rot = vec3(0.0, 0.0, 0.0)
},
propTwo = {
model = 'djs_fork',
bone = 57005,
pos = vec3(0.11, 0.04, -0.03),
rot = vec3(-98.0, -222.0, 22.0),
},
usetime = 17500,
notification = 'You have satistfied 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