🎒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_box_wings"] = { -- requirement https://docs.djscollections.com/paid-props-products/food-and-drink-animations
label = "Box Wings",
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 150000 },
anim = { dict = "anim@djs@food@plated", clip = "djs_food_plate_bite_loop" },
prop = { model = "djs_box_wings", pos = vector3(0.13, 0.02, 0.02), rot = vector3(0.0, 0.0, 0.0), bone = 18905 },
propTwo = { model = "djs_fork", pos = vector3(0.046000, -0.003000, 0.000000), rot = vector3(2.850003, 0.000000, 112.500748), bone = 58868 },
usetime = 17500,
cancel = true,
}
},
["djs_chips_nacho"] = { -- requirement https://docs.djscollections.com/paid-props-products/food-and-drink-animations
label = "Chips Nacho",
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 400000 },
anim = { dict = "anim@djs@food@chips", clip = "djs_food_chips_bite_loop" },
prop = { model = "djs_chips_nacho", pos = vector3(0.062000, 0.062000, 0.000000), rot = vector3(13.649989, 0.000000, 0.000000), bone = 58868 },
usetime = 2500,
cancel = true,
}
},
["djs_chips_original"] = { -- requirement https://docs.djscollections.com/paid-props-products/food-and-drink-animations
label = "Chips Original",
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 400000 },
anim = { dict = "anim@djs@food@chips", clip = "djs_food_chips_bite_loop" },
prop = { model = "djs_chips_original", pos = vector3(0.062000, 0.062000, 0.000000), rot = vector3(13.649989, 0.000000, 0.000000), bone = 58868 },
usetime = 2500,
cancel = true,
}
},
["djs_coffeecup_blackwhite"] = { -- requirement https://docs.djscollections.com/paid-props-products/food-and-drink-animations
label = "Coffee Cup Black White",
weight = 500,
stack = true,
close = true,
client = {
status = { thirst = 400000 },
anim = { dict = "anim@djs@drink@coffee", clip = "djs_drink_coffee_sip_long" },
prop = { model = "djs_coffeecup_blackwhite", pos = vector3(0.112000, 0.078000, 0.000000), rot = vector3(-47.250099, 0.000000, -21.749966), bone = 57005 },
usetime = 2500,
}
},
["djs_coffeecup_brownwhite"] = { -- requirement https://docs.djscollections.com/paid-props-products/food-and-drink-animations
label = "Coffee Cup Brown White",
weight = 500,
stack = true,
close = true,
client = {
status = { thirst = 400000 },
anim = { dict = "anim@djs@drink@coffee", clip = "djs_drink_coffee_sip_long" },
prop = { model = "djs_coffeecup_brownwhite", pos = vector3(0.112000, 0.078000, 0.000000), rot = vector3(-47.250099, 0.000000, -21.749966), bone = 57005 },
usetime = 2500,
}
},
["djs_cup_noodles"] = { -- requirement https://docs.djscollections.com/paid-props-products/food-and-drink-animations
label = "Cup Noodles",
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 400000 },
anim = { dict = "anim@djs@food@plated", clip = "djs_food_plate_bite_loop" },
prop = { model = "djs_cup_noodles", pos = vector3(0.044000, -0.112000, 0.000000), rot = vector3(85.650490, 0.000000, 14.849986), bone = 26612 },
propTwo = { model = "djs_fork", pos = vector3(0.046000, -0.003000, 0.000000), rot = vector3(2.850003, 0.000000, 112.500748), bone = 58868 },
usetime = 17500,
cancel = true,
}
},
["djs_cup_rednoodles"] = { -- requirement https://docs.djscollections.com/paid-props-products/food-and-drink-animations
label = "Cup Red Noodles",
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 400000 },
anim = { dict = "anim@djs@food@plated", clip = "djs_food_plate_bite_loop" },
prop = { model = "djs_cup_rednoodles", pos = vector3(0.044000, -0.112000, 0.000000), rot = vector3(85.650490, 0.000000, 14.849986), bone = 26612 },
propTwo = { model = "djs_fork", pos = vector3(0.046000, -0.003000, 0.000000), rot = vector3(2.850003, 0.000000, 112.500748), bone = 58868 },
usetime = 17500,
cancel = true,
}
},
["djs_glass_lemonade"] = {
label = "Glass Lemonade",
weight = 500,
stack = true,
close = true,
client = {
status = { thirst = 400000 },
anim = { dict = "mp_player_intdrink", clip = "loop_bottle" },
prop = { model = "djs_glass_lemonade", pos = vector3(0.02, 0.01, 0.02), rot = vector3(5.0, 5.0, -180.5) },
usetime = 2500,
}
},
["djs_glass_ogalmondmilk"] = {
label = "Glass Galmond Milk",
weight = 500,
stack = true,
close = true,
client = {
status = { thirst = 400000 },
anim = { dict = "mp_player_intdrink", clip = "loop_bottle" },
prop = { model = "djs_glass_ogalmondmilk", pos = vector3(0.02, 0.01, 0.02), rot = vector3(5.0, 5.0, -180.5) },
usetime = 2500,
}
},
["djs_glass_orangejuice"] = {
label = "Glass Orange Juice",
weight = 500,
stack = true,
close = true,
client = {
status = { thirst = 400000 },
anim = { dict = "mp_player_intdrink", clip = "loop_bottle" },
prop = { model = "djs_glass_orangejuice", pos = vector3(0.02, 0.01, 0.02), rot = vector3(5.0, 5.0, -180.5) },
usetime = 2500,
}
},
["djs_glass_strawberryjuice"] = {
label = "Glass Strawberry Juice",
weight = 500,
stack = true,
close = true,
client = {
status = { thirst = 400000 },
anim = { dict = "mp_player_intdrink", clip = "loop_bottle" },
prop = { model = "djs_glass_strawberryjuice", pos = vector3(0.02, 0.01, 0.02), rot = vector3(5.0, 5.0, -180.5) },
usetime = 2500,
}
},
["djs_glass_usvanillaalmondmilk"] = {
label = "Glass Vanilla Almond Milk",
weight = 500,
stack = true,
close = true,
client = {
status = { thirst = 400000 },
anim = { dict = "mp_player_intdrink", clip = "loop_bottle" },
prop = { model = "djs_glass_usvanillaalmondmilk", pos = vector3(0.02, 0.01, 0.02), rot = vector3(5.0, 5.0, -180.5) },
usetime = 2500,
}
},
["djs_ham_sandwich"] = {
label = "Ham Sandwich",
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 400000 },
anim = { dict = "mp_player_inteat@burger", clip = "mp_player_int_eat_burger" },
prop = { model = "djs_ham_sandwich", pos = vector3(0.115000, 0.079000, 0.000000), rot = vector3(-193.442108, 0.000000, 4.080024), bone = 18905 },
usetime = 2500,
}
},
["djs_hotdog_mustard"] = {
label = "Hotdog Mustard",
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 400000 },
anim = { dict = "mp_player_inteat@burger", clip = "mp_player_int_eat_burger" },
prop = { model = "djs_hotdog_mustard", pos = vector3(0.142000, 0.107000, 0.000000), rot = vector3(154.739975, 0.000000, 83.340034), bone = 18905 },
usetime = 2500,
}
},
["djs_icecreambar_chocolate"] = { -- requirement https://docs.djscollections.com/paid-props-products/food-and-drink-animations
label = "Ice Cream Chocolate Bar",
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 400000 },
anim = { dict = "anim@djs@food@cone", clip = "djs_food_cone_lick_loop" },
prop = { model = "djs_icecreambar_chocolate", pos = vector3(0.118000, 0.085000, 0.000000), rot = vector3(-60.720169, 0.000000, -32.879974), bone = 57005 },
usetime = 2500,
}
},
["djs_icecreamcone_strawberry"] = { -- requirement https://docs.djscollections.com/paid-props-products/food-and-drink-animations
label = "Icecream Cone Strawberry",
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 400000 },
anim = { dict = "anim@djs@food@cone", clip = "djs_food_cone_lick_loop" },
prop = { model = "djs_icecreamcone_strawberry", pos = vector3(0.118000, 0.085000, 0.000000), rot = vector3(-60.720169, 0.000000, -32.879974), bone = 57005 },
usetime = 2500,
}
},
["djs_icecreamcone_vanilla"] = { -- requirement https://docs.djscollections.com/paid-props-products/food-and-drink-animations
label = "Icecream Cone Vanilla",
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 400000 },
anim = { dict = "anim@djs@food@cone", clip = "djs_food_cone_lick_loop" },
prop = { model = "djs_icecreamcone_vanilla", pos = vector3(0.118000, 0.085000, 0.000000), rot = vector3(-60.720169, 0.000000, -32.879974), bone = 57005 },
usetime = 2500,
}
},
["djs_juice_juicy"] = {
label = "Juice Juicy",
weight = 500,
stack = true,
close = true,
client = {
status = { thirst = 400000 },
anim = { dict = "mp_player_intdrink", clip = "loop_bottle" },
prop = { model = "djs_juice_juicy", pos = vector3(0.02, 0.01, 0.02), rot = vector3(5.0, 5.0, -180.5) },
usetime = 2500,
}
},
["djs_largesoda"] = {
label = "Large Soda",
weight = 500,
stack = true,
close = true,
client = {
status = { thirst = 400000 },
anim = { dict = "mp_player_intdrink", clip = "loop_bottle" },
prop = { model = "djs_largesoda", pos = vector3(0.02, 0.01, 0.02), rot = vector3(5.0, 5.0, -180.5) },
usetime = 2500,
}
},
["djs_poptart_carmelcookie"] = {
label = "Poptart Carmel Cookie",
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 400000 },
anim = { dict = "mp_player_inteat@burger", clip = "mp_player_int_eat_burger" },
prop = { model = "djs_poptart_carmelcookie", pos = vector3(0.137000, 0.068000, 0.000000), rot = vector3(-23.999981, 0.000000, 0.480000), bone = 18905 },
usetime = 2500,
}
},
["djs_poptart_cottoncandy"] = {
label = "Poptart Cotton Candy",
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 400000 },
anim = { dict = "mp_player_inteat@burger", clip = "mp_player_int_eat_burger" },
prop = { model = "djs_poptart_cottoncandy", pos = vector3(0.137000, 0.068000, 0.000000), rot = vector3(-23.999981, 0.000000, 0.480000), bone = 18905 },
usetime = 2500,
}
},
["djs_poptart_redvelvet"] = {
label = "Poptart Redvelvet",
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 400000 },
anim = { dict = "mp_player_inteat@burger", clip = "mp_player_int_eat_burger" },
prop = { model = "djs_poptart_redvelvet", pos = vector3(0.137000, 0.068000, 0.000000), rot = vector3(-23.999981, 0.000000, 0.480000), bone = 18905 },
usetime = 2500,
}
},
["djs_poptart_sprinkles"] = {
label = "Poptart Sprinkles",
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 400000 },
anim = { dict = "mp_player_inteat@burger", clip = "mp_player_int_eat_burger" },
prop = { model = "djs_poptart_sprinkles", pos = vector3(0.137000, 0.068000, 0.000000), rot = vector3(-23.999981, 0.000000, 0.480000), bone = 18905 },
usetime = 2500,
}
},
["djs_poptart_strawberry"] = {
label = "Poptart Strawberry",
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 400000 },
anim = { dict = "mp_player_inteat@burger", clip = "mp_player_int_eat_burger" },
prop = { model = "djs_poptart_strawberry", pos = vector3(0.137000, 0.068000, 0.000000), rot = vector3(-23.999981, 0.000000, 0.480000), bone = 18905 },
usetime = 2500,
}
},
["djs_poptart_strawberrymilkshake"] = {
label = "Poptart Strawberry Milkshake",
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 400000 },
anim = { dict = "mp_player_inteat@burger", clip = "mp_player_int_eat_burger" },
prop = { model = "djs_poptart_strawberrymilkshake", pos = vector3(0.137000, 0.068000, 0.000000), rot = vector3(-23.999981, 0.000000, 0.480000), bone = 18905 },
usetime = 2500,
}
},
["djs_smallsoda"] = {
label = "Small Soda",
weight = 500,
stack = true,
close = true,
client = {
status = { thirst = 400000 },
anim = { dict = "mp_player_intdrink", clip = "loop_bottle" },
prop = { model = "djs_smallsoda", pos = vector3(0.02, 0.01, 0.02), rot = vector3(5.0, 5.0, -180.5) },
usetime = 2500,
}
},
["djs_snackwrap_chicken"] = {
label = "Snackwrap Chicken",
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 400000 },
anim = { dict = "mp_player_inteat@burger", clip = "mp_player_int_eat_burger" },
prop = { model = "djs_snackwrap_chicken", pos = vector3(0.153000, 0.098000, 0.000000), rot = vector3(-36.480003, 0.000000, 71.040131), bone = 18905 },
usetime = 2500,
}
},
["djs_sodaice"] = {
label = "Soda Ice",
weight = 500,
stack = true,
close = true,
client = {
status = { thirst = 400000 },
anim = { dict = "mp_player_intdrink", clip = "loop_bottle" },
prop = { model = "djs_sodaice", pos = vector3(0.02, 0.01, 0.02), rot = vector3(5.0, 5.0, -180.5) },
usetime = 2500,
}
},
["djs_sodajuicy"] = {
label = "Soda Juicy",
weight = 500,
stack = true,
close = true,
client = {
status = { thirst = 400000 },
anim = { dict = "mp_player_intdrink", clip = "loop_bottle" },
prop = { model = "djs_sodajuicy", pos = vector3(0.02, 0.01, 0.02), rot = vector3(5.0, 5.0, -180.5) },
usetime = 2500,
}
},
["djs_turkey_halfsandwich"] = {
label = "Turkey Half Sandwich",
weight = 50,
stack = true,
close = true,
client = {
status = { hunger = 400000 },
anim = { dict = "mp_player_inteat@burger", clip = "mp_player_int_eat_burger" },
prop = { model = "djs_turkey_halfsandwich", pos = vector3(0.171000, 0.064000, 0.000000), rot = vector3(0.000000, 0.000000, -219.601715), bone = 18905 },
usetime = 2500,
}
},
Adjust label, weight, stack, animations, and props as needed.
Step 4 (optional): Add Your Vapes with a smoke effect
Add a new entry for your item inside the
ox_inventory/modules/items/client.lua
.Use the following format:
Smoke Effect
Install this above "Client side item use fuctions"
-- djs vape effect
local function useVapeEffect(data)
local playerPed = PlayerPedId()
-- Load particle asset
RequestNamedPtfxAsset("core")
while not HasNamedPtfxAssetLoaded("core") do
Wait(0)
end
-- Attach smoke to mouth
UseParticleFxAssetNextCall("core")
local particle = StartParticleFxLoopedOnEntity(
"exp_grd_bzgas_smoke", -- Try different effects like "exp_grd_bzgas_smoke"
playerPed,
-0.010000, 0.060000, 0.660000, -- offset
0.000000, 0.000000, 0.000000, -- rotation
2.0, -- scale
false, false, false
)
-- Optional: Stop effect after a delay
SetTimeout(3000, function()
StopParticleFxLooped(particle, 0)
end)
-- Notify player
lib.notify({ description = 'You feel relaxed...' })
end
Vape Items
Install below "Client side item use fuctions"
Item('djs_vape_bluepink', function(data, slot) --
ox_inventory:useItem(data, function(data)
if data then
lib.notify({ description = 'You feel relaxed...' }) -- Updated message
end
end)
end)
Item('djs_vape_orangeblue', function(data, slot) --
ox_inventory:useItem(data, function(data)
if data then
lib.notify({ description = 'You feel relaxed...' }) -- Updated message
end
end)
end)
Item('djs_vape_orangepurple', function(data, slot)
ox_inventory:useItem(data, function(data)
if data then
lib.notify({ description = 'You feel relaxed...' })
end
end)
end)
Item('djs_vape_pink', function(data, slot) --
ox_inventory:useItem(data, function(data)
if data then
lib.notify({ description = 'You feel relaxed...' })
end
end)
end)
Item('djs_vape_pinkpurple', function(data, slot) --
ox_inventory:useItem(data, function(data)
if data then
lib.notify({ description = 'You feel relaxed...' })
end
end)
end)
Item('djs_vape_redblue', function(data, slot) --
ox_inventory:useItem(data, function(data)
if data then
lib.notify({ description = 'You feel relaxed...' })
end
end)
end)
Item('djs_vape_redpink', function(data, slot) --
ox_inventory:useItem(data, function(data)
if data then
lib.notify({ description = 'You feel relaxed...' })
end
end)
end)
Item('djs_vape_yellowred', function(data, slot) --
ox_inventory:useItem(data, function(data)
if data then
lib.notify({ description = 'You feel relaxed...' })
end
end)
end)
Item('djs_vape_yellowred', function(data, slot) --
ox_inventory:useItem(data, function(data)
if data then
lib.notify({ description = 'You feel relaxed...' })
end
end)
end)
Step 5: 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 6: 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 7: 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 8: 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