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_bite_ccutsalad'] = { -- checked
label = 'Cold Cut Salad',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 2000000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {model = 'djs_bite_ccutsalad',
bone = 18905,
pos = vec3(0.175000, 0.008000, 0.000000),
rot = vec3(-14.549987, 0.000000, 6.600003),
},
propTwo = { model = 'djs_fork',
bone = 57005,
pos = vec3(0.11, 0.04, -0.03),
rot = vec3 (-98.0, -222.0, 22.0),
},
usetime = 17500,
cancel = true,
notification = 'You have satistfied your hunger'
},
},
['djs_bite_chiksalad'] = { -- checked
label = 'Chicken Salad',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 2000000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {model = 'djs_bite_chiksalad',
bone = 18905,
pos = vec3(0.175000, 0.008000, 0.000000),
rot = vec3(-14.549987, 0.000000, 6.600003),
},
propTwo = { model = 'djs_fork',
bone = 57005,
pos = vec3(0.11, 0.04, -0.03),
rot = vec3 (-98.0, -222.0, 22.0),
},
usetime = 17500,
cancel = true,
notification = 'You have satistfied your hunger'
},
},
['djs_bite_fruitsalad'] = { -- checked
label = 'Fruit Salad',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 2000000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {model = 'djs_bite_fruitsalad',
bone = 18905,
pos = vec3(0.175000, 0.008000, 0.000000),
rot = vec3(-14.549987, 0.000000, 6.600003),
},
propTwo = { model = 'djs_fork',
bone = 57005,
pos = vec3(0.11, 0.04, -0.03),
rot = vec3 (-98.0, -222.0, 22.0),
},
usetime = 17500,
cancel = true,
notification = 'You have satistfied your hunger'
},
},
['djs_bite_turksalad'] = { -- checked
label = 'Turkey Salad',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 2000000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {model = 'djs_bite_turksalad',
bone = 18905,
pos = vec3(0.175000, 0.008000, 0.000000),
rot = vec3(-14.549987, 0.000000, 6.600003),
},
propTwo = { model = 'djs_fork',
bone = 57005,
pos = vec3(0.11, 0.04, -0.03),
rot = vec3 (-98.0, -222.0, 22.0),
},
usetime = 17500,
cancel = true,
notification = 'You have satistfied your hunger'
},
},
['djs_bite_veggiesalad'] = { -- checked
label = 'Veggie Salad',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 2000000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {model = 'djs_bite_veggiesalad',
bone = 18905,
pos = vec3(0.175000, 0.008000, 0.000000),
rot = vec3(-14.549987, 0.000000, 6.600003),
},
propTwo = { model = 'djs_fork',
bone = 57005,
pos = vec3(0.11, 0.04, -0.03),
rot = vec3 (-98.0, -222.0, 22.0),
},
usetime = 17500,
cancel = true,
notification = 'You have satistfied your hunger'
},
},
['djs_bowl_stinkysalad'] = { -- need emote
label = 'Stinky Salad',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 2000000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {model = 'djs_bowl_stinkysalad',
bone = 18905,
pos = vec3(0.175000, 0.008000, 0.000000),
rot = vec3(-14.549987, 0.000000, 6.600003),
},
propTwo = { model = 'djs_fork',
bone = 57005,
pos = vec3(0.11, 0.04, -0.03),
rot = vec3 (-98.0, -222.0, 22.0),
},
usetime = 17500,
cancel = true,
notification = 'You have satistfied your hunger'
},
},
['djs_bite_cornbfsub'] = { --checked
label = 'Corn Beef Sub',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 125000},
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_bite_cornbfsub',
bone = 18905,
pos = vec3(0.125000, 0.056000, 0.000000),
rot = vec3(0.000000, 0.000000, 186.298553),
},
usetime = 17500,
cancel = true,
}
},
['djs_bite_grlchksub'] = { --checked
label = 'Grilled Chicken Sub',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 125000},
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_bite_grlchksub',
bone = 18905,
pos = vec3(0.125000, 0.056000, 0.000000),
rot = vec3(0.000000, 0.000000, 186.298553),
},
usetime = 17500,
cancel = true,
}
},
['djs_bite_hamsub'] = { --checked
label = 'Ham Sub',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 125000},
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_bite_hamsub',
bone = 18905,
pos = vec3(0.125000, 0.056000, 0.000000),
rot = vec3(0.000000, 0.000000, 186.298553),
},
usetime = 17500,
cancel = true,
}
},
['djs_bite_italisub'] = { --checked
label = 'Italian Sub',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 125000},
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_bite_italisub',
bone = 18905,
pos = vec3(0.125000, 0.056000, 0.000000),
rot = vec3(0.000000, 0.000000, 186.298553),
},
usetime = 17500,
cancel = true,
}
},
['djs_bite_mtballsub'] = { --checked
label = 'Meetball Sub',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 125000},
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_bite_mtballsub',
bone = 18905,
pos = vec3(0.125000, 0.056000, 0.000000),
rot = vec3(0.000000, 0.000000, 186.298553),
},
usetime = 17500,
cancel = true,
}
},
['djs_bite_pastrsub'] = { --checked
label = 'Pastrami Sub',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 125000},
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_bite_pastrsub',
bone = 18905,
pos = vec3(0.125000, 0.056000, 0.000000),
rot = vec3(0.000000, 0.000000, 186.298553),
},
usetime = 17500,
cancel = true,
}
},
['djs_bite_phillysub'] = { --checked
label = 'Philly Cheese Steak Sub',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 125000},
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_bite_phillysub',
bone = 18905,
pos = vec3(0.125000, 0.056000, 0.000000),
rot = vec3(0.000000, 0.000000, 186.298553),
},
usetime = 17500,
cancel = true,
}
},
['djs_bite_ribsub'] = { --checked
label = 'Smoked Rib Sub',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 125000},
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_bite_ribsub',
bone = 18905,
pos = vec3(0.125000, 0.056000, 0.000000),
rot = vec3(0.000000, 0.000000, 186.298553),
},
usetime = 17500,
cancel = true,
}
},
['djs_bite_rstbfsub'] = { --checked
label = 'Roast Beef Sub',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 125000},
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_bite_rstbfsub',
bone = 18905,
pos = vec3(0.125000, 0.056000, 0.000000),
rot = vec3(0.000000, 0.000000, 186.298553),
},
usetime = 17500,
cancel = true,
}
},
['djs_bite_smktrksub'] = { --checked
label = 'Roast Beef Sub',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 125000},
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_bite_smktrksub',
bone = 18905,
pos = vec3(0.125000, 0.056000, 0.000000),
rot = vec3(0.000000, 0.000000, 186.298553),
},
usetime = 17500,
cancel = true,
}
},
['djs_bite_stinkysub'] = { --checked
label = 'Stinky Sub',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 125000},
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_bite_stinkysub',
bone = 18905,
pos = vec3(0.125000, 0.056000, 0.000000),
rot = vec3(0.000000, 0.000000, 186.298553),
},
usetime = 17500,
cancel = true,
}
},
['djs_bite_tunasub'] = { --checked
label = 'Tuna Sub',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 125000},
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_bite_tunasub',
bone = 18905,
pos = vec3(0.125000, 0.056000, 0.000000),
rot = vec3(0.000000, 0.000000, 186.298553),
},
usetime = 17500,
cancel = true,
}
},
['djs_bite_veggiesub'] = { --checked
label = 'Veggie Sub',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 125000},
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_bite_veggiesub',
bone = 18905,
pos = vec3(0.125000, 0.056000, 0.000000),
rot = vec3(0.000000, 0.000000, 186.298553),
},
usetime = 17500,
cancel = true,
}
},
['djs_bite_ccutwrap'] = { --checked
label = 'Cold Cut Wrap',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 125000},
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_bite_ccutwrap',
bone = 18905,
pos = vec3(0.125000, 0.056000, 0.000000),
rot = vec3(0.000000, 0.000000, 186.298553),
},
usetime = 27500,
cancel = true,
}
},
['djs_bite_steakwrap'] = { --checked
label = 'Steak Wrap',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 125000},
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_bite_steakwrap',
bone = 18905,
pos = vec3(0.125000, 0.056000, 0.000000),
rot = vec3(0.000000, 0.000000, 186.298553),
},
usetime = 17500,
cancel = true,
}
},
['djs_bite_stinkywrap'] = { --checked
label = 'Stinky Wrap',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 125000},
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_bite_stinkywrap',
bone = 18905,
pos = vec3(0.125000, 0.056000, 0.000000),
rot = vec3(0.000000, 0.000000, 186.298553),
},
usetime = 17500,
cancel = true,
}
},
['djs_bite_turkwrap'] = { --checked
label = 'Turkey Wrap',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 125000},
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_bite_turkwrap',
bone = 18905,
pos = vec3(0.125000, 0.056000, 0.000000),
rot = vec3(0.000000, 0.000000, 186.298553),
},
usetime = 17500,
cancel = true,
}
},
['djs_bite_veggiewrap'] = { --checked
label = 'Veggie Wrap',
weight = 1,
stack = true,
close = true,
client = {
status = { hunger = 125000},
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger' },
prop = {model = 'djs_bite_veggiewrap',
bone = 18905,
pos = vec3(0.125000, 0.056000, 0.000000),
rot = vec3(0.000000, 0.000000, 186.298553),
},
usetime = 17500,
cancel = true,
}
},
['djs_bite_chips'] = { --checked
label = 'Bites Chips',
weight = 50,
client = {
status = { hunger = 400000 },
anim = { dict = 'anim@djs@food@chips', clip = 'djs_food_chips_bite_loop' },
prop = { model = `djs_bite_chips`, bone = 57005, pos = vec3(0.117000, 0.077000, 0.000000), rot = vec3(-11.549997, 0.000000, 175.498993) },
usetime = 2500,
cancel = true,
},
},
['djs_bite_cherryicee'] = { --checked
label = 'Cherry Icee',
weight = 500,
client = {
status = { thirst = 400000 },
anim = { dict = 'anim@djs@drink@soda', clip = 'djs_drink_soda_sip_long' },
prop = { model = `djs_bite_cherryicee`, bone = 57005, pos = vec3(0.129000, 0.083000, 0.000000), rot = vec3(-61.950249, 0.000000, -16.499983) },
usetime = 2500,
cancel = true,
},
},
['djs_bite_appleicee'] = { --checked
label = 'Apple Icee',
weight = 500,
client = {
status = { thirst = 400000 },
anim = { dict = 'mp_player_intdrink', clip = 'loop_bottle' },
prop = { model = `djs_bite_cherryicee`, bone = 57005, pos = vec3(0.129000, 0.083000, 0.000000), rot = vec3(-61.950249, 0.000000, -16.499983) },
usetime = 2500,
cancel = true,
},
},
["djs_bite_cookie"] = { --checked
label = "Chocolate Chip Cookie",
weight = 5,
stack = true,
close = true,
client = {
status = {hunger = 125030},
anim = 'eating',
prop = { model = 'djs_bite_cookie',
bone = 18905,
pos = vec3(0.15, 0.05, 0.02),
rot = vec3(-32.0, -39.0, 0.0)
},
usetime = 177500,
cancel = true,
}
},
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