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_bentobox_heart'] = { --checked
label = 'Heart Bento Box',
weight = 300,
stack = true,
close = true,
client = {
status = { hunger = 200000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_bentobox_heart',
bone = 18905,
pos = vec3(0.1, 0.0, 0.0),
rot = vec3(0.0, 0.0, 0.0),
},
propTwo = {
model = 'djs_fork',
bone = 57005,
pos = vec3(0.14, 0.02, 0.01),
rot = vec3(-118.0, 192.0, 24.0),
},
usetime = 2500,
cancel = true,
}
},
['djs_bentobox_heart2'] = { --checked
label = 'Heart Bento Box 2',
weight = 300,
stack = true,
close = true,
client = {
status = { hunger = 200000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_bentobox_heart2',
bone = 18905,
pos = vec3(0.1, 0.0, 0.0),
rot = vec3(0.0, 0.0, 0.0),
},
propTwo = {
model = 'djs_fork',
bone = 57005,
pos = vec3(0.14, 0.02, 0.01),
rot = vec3(-118.0, 192.0, 24.0),
},
usetime = 2500,
cancel = true,
}
},
['djs_bentobox_kidsmeal'] = { --checked
label = 'Kids Meal Bento Box',
weight = 300,
stack = true,
close = true,
client = {
status = { hunger = 200000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_bentobox_kidsmeal',
bone = 18905,
pos = vec3(0.1, 0.04, 0.01),
rot = vec3(9.0, -4.0, 195.0 ),
},
propTwo = {
model = 'djs_fork',
bone = 57005,
pos = vec3(0.14, 0.02, 0.01),
rot = vec3(-118.0, 192.0, 24.0),
},
usetime = 2500,
cancel = true,
}
},
['djs_bobatea_chai'] = { --checked
label = 'Chai Boba Tea',
weight = 200,
stack = true,
close = true,
client = {
status = { thirst = 100000 },
anim = { dict = 'anim@djs@drink@soda', clip = 'djs_drink_soda_sip_long' },
prop = {
model = 'djs_bobatea_chai',
bone = 58868,
pos = vec3(0.058000, 0.044000, 0.000000),
rot = vec3(0.000000, 0.000000, 0.000000)
},
usetime = 2500,
cancel = true,
}
},
['djs_bobatea_chocolate'] = { --checked
label = 'Chocolate Boba Tea',
weight = 200,
stack = true,
close = true,
client = {
status = { thirst = 100000 },
anim = { dict = 'anim@djs@drink@soda', clip = 'djs_drink_soda_sip_long' },
prop = {
model = 'djs_bobatea_chocolate',
bone = 58868,
pos = vec3(0.058000, 0.044000, 0.000000),
rot = vec3(0.000000, 0.000000, 0.000000)
},
usetime = 2500,
cancel = true,
}
},
['djs_bobatea_cookiesandcream'] = { --checked
label = 'Cookies and Cream Boba Tea',
weight = 200,
stack = true,
close = true,
client = {
status = { thirst = 100000 },
anim = { dict = 'anim@djs@drink@soda', clip = 'djs_drink_soda_sip_long' },
prop = {
model = 'djs_bobatea_cookiesandcream',
bone = 58868,
pos = vec3(0.058000, 0.044000, 0.000000),
rot = vec3(0.000000, 0.000000, 0.000000)
},
usetime = 2500,
cancel = true,
}
},
['djs_bobatea_cottoncandy'] = { --checked
label = 'Cotton Candy Boba Tea',
weight = 200,
stack = true,
close = true,
client = {
status = { thirst = 100000 },
anim = { dict = 'anim@djs@drink@soda', clip = 'djs_drink_soda_sip_long' },
prop = {
model = 'djs_bobatea_cottoncandy',
bone = 58868,
pos = vec3(0.058000, 0.044000, 0.000000),
rot = vec3(0.000000, 0.000000, 0.000000)
},
usetime = 2500,
cancel = true,
}
},
['djs_bobatea_grapefruit'] = { --checked
label = 'Grapefruit Boba Tea',
weight = 200,
stack = true,
close = true,
client = {
status = { thirst = 100000 },
anim = { dict = 'anim@djs@drink@soda', clip = 'djs_drink_soda_sip_long' },
prop = {
model = 'djs_bobatea_grapefruit',
bone = 58868,
pos = vec3(0.058000, 0.044000, 0.000000),
rot = vec3(0.000000, 0.000000, 0.000000)
},
usetime = 2500,
cancel = true,
}
},
['djs_bobatea_honeydew'] = { --checked
label = 'Honeydew Boba Tea',
weight = 200,
stack = true,
close = true,
client = {
status = { thirst = 100000 },
anim = { dict = 'anim@djs@drink@soda', clip = 'djs_drink_soda_sip_long' },
prop = {
model = 'djs_bobatea_honeydew',
bone = 58868,
pos = vec3(0.058000, 0.044000, 0.000000),
rot = vec3(0.000000, 0.000000, 0.000000)
},
usetime = 2500,
cancel = true,
}
},
['djs_bobatea_mango'] = { --checked
label = 'Mango Boba Tea',
weight = 200,
stack = true,
close = true,
client = {
status = { thirst = 100000 },
anim = { dict = 'anim@djs@drink@soda', clip = 'djs_drink_soda_sip_long' },
prop = {
model = 'djs_bobatea_mango',
bone = 58868,
pos = vec3(0.058000, 0.044000, 0.000000),
rot = vec3(0.000000, 0.000000, 0.000000)
},
usetime = 2500,
cancel = true,
}
},
['djs_bobatea_peach'] = { --checked
label = 'Peach Boba Tea',
weight = 200,
stack = true,
close = true,
client = {
status = { thirst = 100000 },
anim = { dict = 'anim@djs@drink@soda', clip = 'djs_drink_soda_sip_long' },
prop = {
model = 'djs_bobatea_peach',
bone = 58868,
pos = vec3(0.058000, 0.044000, 0.000000),
rot = vec3(0.000000, 0.000000, 0.000000)
},
usetime = 2500,
cancel = true,
}
},
['djs_bobatea_pinacolada'] = { --checked
label = 'Pina Colada Boba Tea',
weight = 200,
stack = true,
close = true,
client = {
status = { thirst = 100000 },
anim = { dict = 'anim@djs@drink@soda', clip = 'djs_drink_soda_sip_long' },
prop = {
model = 'djs_bobatea_pinacolada',
bone = 58868,
pos = vec3(0.058000, 0.044000, 0.000000),
rot = vec3(0.000000, 0.000000, 0.000000)
},
usetime = 2500,
cancel = true,
}
},
['djs_bobatea_strawberry'] = { --checked
label = 'Strawberry Boba Tea',
weight = 200,
stack = true,
close = true,
client = {
status = { thirst = 100000 },
anim = { dict = 'anim@djs@drink@soda', clip = 'djs_drink_soda_sip_long' },
prop = {
model = 'djs_bobatea_strawberry',
bone = 58868,
pos = vec3(0.058000, 0.044000, 0.000000),
rot = vec3(0.000000, 0.000000, 0.000000)
},
usetime = 2500,
cancel = true,
}
},
['djs_bobatea_taro'] = { --checked
label = 'Taro Boba Tea',
weight = 200,
stack = true,
close = true,
client = {
status = { thirst = 100000 },
anim = { dict = 'anim@djs@drink@soda', clip = 'djs_drink_soda_sip_long' },
prop = {
model = 'djs_bobatea_taro',
bone = 58868,
pos = vec3(0.058000, 0.044000, 0.000000),
rot = vec3(0.000000, 0.000000, 0.000000)
},
usetime = 2500,
cancel = true,
}
},
['djs_bowl_beefbibimbap'] = { --checked
label = 'Beef Bibimbap Bowl',
weight = 350,
stack = true,
close = true,
client = {
status = { hunger = 250000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_bowl_beefbibimbap',
bone = 18905,
pos = vec3(0.1, 0.04, 0.01),
rot = vec3(0.01, 9.0, -4.0),
},
propTwo = {
model = 'djs_fork',
bone = 57005,
pos = vec3(0.14, 0.02, 0.01),
rot = vec3(-118.0, 192.0, 24.0),
},
usetime = 2500,
cancel = true,
}
},
['djs_bowl_veggiebibimbap'] = { --checked
label = 'Veggie Bibimbap Bowl',
weight = 350,
stack = true,
close = true,
client = {
status = { hunger = 250000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_bowl_veggiebibimbap',
pos = vec3(0.1, 0.04, 0.01),
rot = vec3(0.01, 9.0, -4.0 ),
},
propTwo = {
model = 'djs_fork',
bone = 57005,
pos = vec3(0.14, 0.02, 0.01),
rot = vec3(-118.0, 192.0, 24.0),
},
usetime = 2500,
cancel = true,
}
},
['djs_glass_greentea'] = { --checked
label = 'Green Tea',
weight = 200,
stack = true,
close = true,
client = {
status = { thirst = 100000 },
anim = { dict = 'anim@djs@drink@soda', clip = 'djs_drink_soda_sip_long' },
prop = {
model = 'djs_glass_greentea',
bone = 58868,
pos = vec3(0.040000, 0.052000, 0.000000),
rot = vec3(0.000000, 0.000000, -72.450356)
},
usetime = 2500,
cancel = true,
}
},
['djs_glass_icetea'] = { --checked
label = 'Ice Tea',
weight = 200,
stack = true,
close = true,
client = {
status = { thirst = 100000 },
anim = { dict = 'anim@djs@drink@soda', clip = 'djs_drink_soda_sip_long' },
prop = {
model = 'djs_glass_icetea',
bone = 58868,
pos = vec3(0.040000, 0.052000, 0.000000),
rot = vec3(0.000000, 0.000000, -72.450356)
},
usetime = 2500,
cancel = true,
}
},
['djs_japanese_omelette'] = { --checked
label = 'Japanese Omelette',
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_japanese_omelette',
pos = vec3(0.1, 0.0, 0.01),
rot = vec3(-20.0, 0.0, 0.0 ),
},
propTwo = {
model = 'djs_fork',
bone = 57005,
pos = vec3(0.14, 0.02, 0.01),
rot = vec3(-118.0, 192.0, 24.0),
},
usetime = 2500,
cancel = true,
}
},
['djs_kiwicrepe_chocolate'] = { --checked
label = 'Chocolate Kiwi Crepe',
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 100000 },
anim = { dict = 'anim@djs@food@cone', clip = 'djs_food_cone_bite_single' },
prop = {
model = 'djs_kiwicrepe_chocolate',
bone= 58867,
pos = vec3(0.045268429219959, 0.037754906716209, -0.11055654328101),
rot = vec3(0.045268429219959, 0.037754906716209, -0.11055654328101)
},
usetime = 2500,
cancel = true,
}
},
['djs_kiwicrepe_strawberry'] = { --checked
label = 'Strawberry Kiwi Crepe',
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 100000 },
anim = { dict = 'anim@djs@food@cone', clip = 'djs_food_cone_bite_single' },
prop = {
model = 'djs_kiwicrepe_strawberry',
bone= 58867,
pos = vec3(0.045268429219959, 0.037754906716209, -0.11055654328101),
rot = vec3(0.045268429219959, 0.037754906716209, -0.11055654328101)
},
usetime = 2500,
cancel = true,
}
},
['djs_kiwicrepe_vanilla'] = { --checked
label = 'Vanilla Kiwi Crepe',
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 100000 },
anim = { dict = 'anim@djs@food@cone', clip = 'djs_food_cone_bite_single' },
prop = {
model = 'djs_kiwicrepe_vanilla',
bone= 58867,
pos = vec3(0.045268429219959, 0.037754906716209, -0.11055654328101),
rot = vec3(0.045268429219959, 0.037754906716209, -0.11055654328101)
},
usetime = 2500,
cancel = true,
}
},
['djs_macaron_brown'] = { --checked
label = 'Brown Macaron',
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 50000 },
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger_fp' },
prop = {
model = 'djs_macaron_brown',
bone = 18905,
pos = vec3(0.14, 0.06, 0.02),
rot = vec3(-168.0, 320.0, 28.0)
},
usetime = 2500,
cancel = true,
}
},
['djs_macaron_green'] = { --checked
label = 'Green Macaron',
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 50000 },
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger_fp' },
prop = {
model = 'djs_macaron_green',
bone = 18905,
pos = vec3(0.14, 0.06, 0.02),
rot = vec3(-168.0, 320.0, 28.0)
},
usetime = 2500,
cancel = true,
}
},
['djs_macaron_lightbrown'] = { --checked
label = 'Light Brown Macaron',
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 50000 },
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger_fp' },
prop = {
model = 'djs_macaron_lightbrown',
bone = 18905,
pos = vec3(0.14, 0.06, 0.02),
rot = vec3(-168.0, 320.0, 28.0)
},
usetime = 2500,
cancel = true,
}
},
['djs_macaron_lightpink'] = { --checked
label = 'Light Pink Macaron',
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 50000 },
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger_fp' },
prop = {
model = 'djs_macaron_lightpink',
bone = 18905,
pos = vec3(0.14, 0.06, 0.02),
rot = vec3(-168.0, 320.0, 28.0)
},
usetime = 2500,
cancel = true,
}
},
['djs_macaron_pink'] = { --checked
label = 'Pink Macaron',
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 50000 },
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger_fp' },
prop = {
model = 'djs_macaron_pink',
bone = 18905,
pos = vec3(0.14, 0.06, 0.02),
rot = vec3(-168.0, 320.0, 28.0)
},
usetime = 2500,
cancel = true,
}
},
['djs_macaron_yellow'] = { --checked
label = 'Yellow Macaron',
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 50000 },
anim = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger_fp' },
prop = {
model = 'djs_macaron_yellow',
bone = 18905,
pos = vec3(0.14, 0.06, 0.02),
rot = vec3(-168.0, 320.0, 28.0)
},
usetime = 2500,
cancel = true,
}
},
['djs_milkshake_chocolatepretzel'] = { --checked
label = 'Chocolate Pretzel Milkshake',
weight = 200,
stack = true,
close = true,
client = {
status = { thirst = 100000 },
anim = { dict = 'anim@djs@drink@soda', clip = 'djs_drink_soda_sip_long' },
prop = {
model = 'djs_milkshake_chocolatepretzel',
bone = 58868,
pos = vec3(0.040000, 0.052000, 0.000000),
rot = vec3(0.000000, 0.000000, -72.450356)
},
usetime = 2500,
cancel = true,
}
},
['djs_milkshake_cookiemonster'] = { --checked
label = 'Cookie Monster Milkshake',
weight = 200,
stack = true,
close = true,
client = {
status = { thirst = 100000 },
anim = { dict = 'anim@djs@drink@soda', clip = 'djs_drink_soda_sip_long' },
prop = {
model = 'djs_milkshake_cookiemonster',
bone = 58868,
pos = vec3(0.040000, 0.052000, 0.000000),
rot = vec3(0.000000, 0.000000, -72.450356)
},
usetime = 2500,
cancel = true,
}
},
['djs_milkshake_gummybear'] = { --checked
label = 'Gummy Bear Milkshake',
weight = 200,
stack = true,
close = true,
client = {
status = { thirst = 100000 },
anim = { dict = 'anim@djs@drink@soda', clip = 'djs_drink_soda_sip_long' },
prop = {
model = 'djs_milkshake_gummybear',
bone = 58868,
pos = vec3(0.040000, 0.052000, 0.000000),
rot = vec3(0.000000, 0.000000, -72.450356)
},
usetime = 2500,
cancel = true,
}
},
['djs_milkshake_strawberryshortcake'] = { --checked
label = 'Strawberry Shortcake Milkshake',
weight = 200,
stack = true,
close = true,
client = {
status = { thirst = 100000 },
anim = { dict = 'anim@djs@drink@soda', clip = 'djs_drink_soda_sip_long' },
prop = {
model = 'djs_milkshake_strawberryshortcake',
bone = 58868,
pos = vec3(0.040000, 0.052000, 0.000000),
rot = vec3(0.000000, 0.000000, -72.450356)
},
usetime = 2500,
cancel = true,
}
},
['djs_plate_bearwaffles'] = { --checked
label = 'Plate of Bear Waffles',
weight = 250,
stack = true,
close = true,
client = {
status = { hunger = 200000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_plate_bearwaffles',
bone = 26612,
pos = vec3(0.031000, -0.067000, 0.000000),
rot = vec3(65.400284, 0.000000, 22.799967),
},
propTwo = {
model = 'djs_fork',
bone = 57005,
pos = vec3(0.14, 0.02, 0.01),
rot = vec3(-118.0, 192.0, 24.0),
},
usetime = 2500,
cancel = true,
}
},
['djs_plate_pandawaffle'] = { --checked
label = 'Plate of Panda Waffles',
weight = 250,
stack = true,
close = true,
client = {
status = { hunger = 200000 },
anim = { dict = 'anim@djs@food@plated', clip = 'djs_food_plate_bite_loop' },
prop = {
model = 'djs_plate_pandawaffle',
bone = 26612,
pos = vec3(0.013000, -0.047000, 0.000000),
rot = vec3(82.500458, 0.000000, 22.799967),
},
propTwo = {
model = 'djs_fork',
bone = 57005,
pos = vec3(0.14, 0.02, 0.01),
rot = vec3(-118.0, 192.0, 24.0),
},
usetime = 2500,
cancel = true,
}
},
['djs_soda_green'] = { --checked
label = 'Uwu Apple Soda',
weight = 200,
stack = true,
close = true,
client = {
status = { thirst = 100000 },
anim = { dict = 'anim@djs@drink@soda', clip = 'djs_drink_soda_sip_long' },
prop = {
model = 'djs_soda_green',
bone = 58868,
pos = vec3(0.040000, 0.052000, 0.000000),
rot = vec3(0.000000, 0.000000, -72.450356)
},
usetime = 2500,
cancel = true,
}
},
['djs_soda_pink'] = { --checked
label = 'Uwu Melon Soda',
weight = 200,
stack = true,
close = true,
client = {
status = { thirst = 100000 },
anim = { dict = 'anim@djs@drink@soda', clip = 'djs_drink_soda_sip_long' },
prop = {
model = 'djs_soda_pink',
bone = 58868,
pos = vec3(0.040000, 0.052000, 0.000000),
rot = vec3(0.000000, 0.000000, -72.450356)
},
usetime = 2500,
cancel = true,
}
},
['djs_soda_yellow'] = { --checked
label = 'Uwu Melon Soda',
weight = 200,
stack = true,
close = true,
client = {
status = { thirst = 100000 },
anim = { dict = 'anim@djs@drink@soda', clip = 'djs_drink_soda_sip_long' },
prop = {
model = 'djs_soda_yellow',
bone = 58868,
pos = vec3(0.040000, 0.052000, 0.000000),
rot = vec3(0.000000, 0.000000, -72.450356)
},
usetime = 2500,
cancel = true,
}
},
['djs_strawberrycrepe_chocolate'] = { --checked
label = 'Chocolate Strawberry Crepe',
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 100000 },
anim = { dict = 'anim@djs@food@cone', clip = 'djs_food_cone_bite_single' },
prop = {
model = 'djs_strawberrycrepe_chocolate',
bone= 58867,
pos = vec3(0.045268429219959, 0.037754906716209, -0.11055654328101),
rot = vec3(0.045268429219959, 0.037754906716209, -0.11055654328101)
},
usetime = 2500,
cancel = true,
}
},
['djs_strawberrycrepe_strawberry'] = { --checked
label = 'Strawberry Strawberry Crepe',
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 100000 },
anim = { dict = 'anim@djs@food@cone', clip = 'djs_food_cone_bite_single' },
prop = {
model = 'djs_strawberrycrepe_strawberry',
bone= 58867,
pos = vec3(0.045268429219959, 0.037754906716209, -0.11055654328101),
rot = vec3(0.045268429219959, 0.037754906716209, -0.11055654328101)
},
usetime = 2500,
cancel = true,
}
},
['djs_strawberrycrepe_vanilla'] = { --checked
label = 'Vanilla Strawberry Crepe',
weight = 200,
stack = true,
close = true,
client = {
status = { hunger = 100000 },
anim = { dict = 'anim@djs@food@cone', clip = 'djs_food_cone_bite_single' },
prop = {
model = 'djs_strawberrycrepe_vanilla',
bone= 58867,
pos = vec3(0.045268429219959, 0.037754906716209, -0.11055654328101),
rot = vec3(0.045268429219959, 0.037754906716209, -0.11055654328101)
},
usetime = 2500,
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