🎒Ox Inventory Install

Step 1: Locate the OX Inventory Folder

  1. Navigate to your FiveM server directory.

  2. Open the resources folder.

  3. Find and open the ox_inventory resource folder.


Step 2: Open the data/items.lua File

  1. Inside the ox_inventory folder, go to:

    ox_inventory/data/items.lua
  2. 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

  1. Navigate to:

    ox_inventory/web/images/
  2. Place your item image inside the images/ folder.


Step 6: Save the File & Restart Server

  1. Save the items.lua file.

  2. 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

  1. Spawn the item using an admin command:

    /giveitem yourID prop_name 1

    (Replace yourID with your actual player ID and burger with your item name.)

  2. Open OX Inventory (F2 default key).

  3. 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