Skip to content

OX Inventory Installation

This guide covers adding all weapons, attachments, and items to ox_inventory for ARS VVS Guns V2.

Important: This guide only covers the inventory setup. You must also complete the framework installation first:


  • ox_inventory installed and running
  • The weapon asset pack (VVSGUNV2) installed

Open ox_inventory/data/weapons.lua and add the following entries to the Weapons table:

['WEAPON_APCVVR'] = {
label = 'APC Custom',
weight = 1400,
durability = 0.02,
ammoname = 'ammo-9'
},
['WEAPON_AR15CVVR'] = {
label = 'AR15C Custom',
weight = 1400,
durability = 0.02,
ammoname = 'ammo-rifle'
},
['WEAPON_AR15TVVR'] = {
label = 'AR15T Custom',
weight = 1400,
durability = 0.02,
ammoname = 'ammo-rifle'
},
['WEAPON_ARP9VVR'] = {
label = 'ARP9 Custom',
weight = 1400,
durability = 0.02,
ammoname = 'ammo-rifle'
},
['WEAPON_ARPVVR'] = {
label = 'ARP Custom',
weight = 1400,
durability = 0.02,
ammoname = 'ammo-rifle'
},
['WEAPON_BRUENVVR'] = {
label = 'Bruen Custom',
weight = 1400,
durability = 0.02,
ammoname = 'ammo-rifle'
},
['WEAPON_DEAGLEVVR'] = {
label = 'Deagle Custom',
weight = 1100,
durability = 0.2,
ammoname = 'ammo-9'
},
['WEAPON_DRACOVVR'] = {
label = 'Draco Custom',
weight = 1400,
durability = 0.02,
ammoname = 'ammo-rifle'
},
['WEAPON_G17SVVR'] = {
label = 'G17S Custom',
weight = 1100,
durability = 0.2,
ammoname = 'ammo-9'
},
['WEAPON_G17VVR'] = {
label = 'G17 Custom',
weight = 1100,
durability = 0.2,
ammoname = 'ammo-9'
},
['WEAPON_G40VVR'] = {
label = 'G40 Custom',
weight = 1100,
durability = 0.2,
ammoname = 'ammo-9'
},
['WEAPON_G45VVR'] = {
label = 'G45 Custom',
weight = 1100,
durability = 0.2,
ammoname = 'ammo-9'
},
['WEAPON_MP7VVR'] = {
label = 'MP7 Custom',
weight = 1400,
durability = 0.02,
ammoname = 'ammo-9'
},
['WEAPON_SPAS12VVR'] = {
label = 'SPAS12 Custom',
weight = 1400,
durability = 0.02,
ammoname = 'ammo-shotgun'
},
['WEAPON_THOMPSONVVR'] = {
label = 'Thompson Custom',
weight = 1400,
durability = 0.02,
ammoname = 'ammo-rifle'
},
['WEAPON_SM17VVR'] = {
label = 'SM17 Custom',
weight = 1400,
durability = 0.02,
ammoname = 'ammo-pistol'
},
['WEAPON_M45VVR'] = {
label = 'M45 Custom',
weight = 1400,
durability = 0.02,
ammoname = 'ammo-pistol'
},
['WEAPON_FN5VVR'] = {
label = 'FN5 Custom',
weight = 1400,
durability = 0.02,
ammoname = 'ammo-pistol'
},
['WEAPON_P90VVR'] = {
label = 'P90 Custom',
weight = 1400,
durability = 0.02,
ammoname = 'ammo-pistol'
},
['WEAPON_AK102VVR'] = {
label = 'AK102 Custom',
weight = 1400,
durability = 0.02,
ammoname = 'ammo-rifle2'
},
['WEAPON_BOWIEVVR'] = {
label = 'Bowie Knife Custom',
weight = 1000,
durability = 0.03
},
['WEAPON_BUTTERFLYVVR'] = {
label = 'Butterfly Knife Custom',
weight = 1000,
durability = 0.03
},
['WEAPON_DRAGONKATANAVVR'] = {
label = 'Katana Dragon Custom',
weight = 1200,
durability = 0.03
},
['WEAPON_KARAMBITVVR'] = {
label = 'Karambit Custom',
weight = 900,
durability = 0.03
},
['WEAPON_TACTICALAXEVVR'] = {
label = 'Tactical Axe Custom',
weight = 1600,
durability = 0.03
},

In the same ox_inventory/data/weapons.lua file, add the following entries to the Components table:

['extendedmag1'] = {
label = 'Extended Magazine I',
type = 'magazine',
weight = 1,
client = {
component = {
`COMPONENT_APCVVR_MAG2`,
`COMPONENT_G17VVR_MAG2`,
`COMPONENT_G17SVVR_MAG2`,
`COMPONENT_ARPVVR_MAG2`,
`COMPONENT_AR15TVVR_MAG2`,
`COMPONENT_AR15CVVR_MAG2`,
`COMPONENT_G45VVR_MAG2`,
`COMPONENT_G40VVR_MAG2`,
`COMPONENT_DRACOVVR_MAG2`,
`COMPONENT_DEAGLEVVR_MAG2`,
`COMPONENT_ARP9VVR_MAG2`,
`COMPONENT_MP7VVR_MAG2`,
`COMPONENT_THOMPSONVVR_MAG2`,
`COMPONENT_SM17VVR_MAG2`,
`COMPONENT_M45VVR_MAG2`,
`COMPONENT_FN5VVR_MAG2`,
`COMPONENT_AK102VVR_MAG2`,
},
usetime = 2500
}
},
['extendedmag2'] = {
label = 'Extended Magazine II',
type = 'magazine',
weight = 1,
client = {
component = {
`COMPONENT_APCVVR_MAG3`,
`COMPONENT_G17VVR_MAG3`,
`COMPONENT_G17SVVR_MAG3`,
`COMPONENT_ARPVVR_MAG3`,
`COMPONENT_AR15TVVR_MAG3`,
`COMPONENT_AR15CVVR_MAG3`,
`COMPONENT_G45VVR_MAG3`,
`COMPONENT_G40VVR_MAG3`,
`COMPONENT_DRACOVVR_MAG3`,
`COMPONENT_DEAGLEVVR_MAG3`,
`COMPONENT_ARP9VVR_MAG3`,
`COMPONENT_MP7VVR_MAG3`,
`COMPONENT_THOMPSONVVR_MAG3`,
`COMPONENT_SM17VVR_MAG3`,
`COMPONENT_M45VVR_MAG3`,
`COMPONENT_FN5VVR_MAG3`,
`COMPONENT_AK102VVR_MAG3`,
},
usetime = 2500
}
},
['extendedmag3'] = {
label = 'Extended Magazine III',
type = 'magazine',
weight = 1,
client = {
component = {
`COMPONENT_APCVVR_MAG4`,
`COMPONENT_G17VVR_MAG4`,
`COMPONENT_G17SVVR_MAG4`,
`COMPONENT_ARPVVR_MAG4`,
`COMPONENT_AR15TVVR_MAG4`,
`COMPONENT_AR15CVVR_MAG4`,
`COMPONENT_G45VVR_MAG4`,
`COMPONENT_G40VVR_MAG4`,
`COMPONENT_DRACOVVR_MAG4`,
`COMPONENT_DEAGLEVVR_MAG4`,
`COMPONENT_ARP9VVR_MAG4`,
`COMPONENT_SM17VVR_MAG4`,
`COMPONENT_M45VVR_MAG4`,
`COMPONENT_FN5VVR_MAG4`,
},
usetime = 2500
}
},
['grip'] = {
label = 'Angled Foregrip',
type = 'grip',
weight = 1,
client = {
component = {
`COMPONENT_AR15CVVR_GRIP`,
`COMPONENT_AR15TVVR_GRIP`,
`COMPONENT_APCVVR_GRIP`,
},
usetime = 2500
}
},
['laser'] = {
label = 'Laser',
type = 'flashlight',
weight = 1,
client = {
component = {
`COMPONENT_APCVVR_LASER`,
`COMPONENT_G17VVR_LASER`,
`COMPONENT_G17SVVR_LASER`,
`COMPONENT_AR15TVVR_LASER`,
`COMPONENT_AR15CVVR_LASER`,
`COMPONENT_ARPVVR_LASER`,
`COMPONENT_G45VVR_LASER`,
`COMPONENT_G40VVR_LASER`,
`COMPONENT_DRACOVVR_LASER`,
`COMPONENT_DEAGLEVVR_LASER`,
`COMPONENT_ARP9VVR_LASER`,
`COMPONENT_MP7VVR_LASER`,
`COMPONENT_BRUENVVR_LASER`,
`COMPONENT_SPAS12VVR_LASER`,
`COMPONENT_SM17VVR_LASER`,
`COMPONENT_M45VVR_LASER`,
`COMPONENT_FN5VVR_LASER`,
`COMPONENT_P90VVR_LASER`,
`COMPONENT_AK102VVR_LASER`,
},
usetime = 2500
}
},
['scope'] = {
label = 'Small Scope',
type = 'sight',
weight = 1,
client = {
component = {
`COMPONENT_APCVVR_SCOPE`,
`COMPONENT_G17VVR_SCOPE`,
`COMPONENT_G17SVVR_SCOPE`,
`COMPONENT_AR15TVVR_SCOPE`,
`COMPONENT_AR15CVVR_SCOPE`,
`COMPONENT_ARPVVR_SCOPE`,
`COMPONENT_G45VVR_SCOPE`,
`COMPONENT_G40VVR_SCOPE`,
`COMPONENT_DRACOVVR_SCOPE`,
`COMPONENT_DEAGLEVVR_SCOPE`,
`COMPONENT_ARP9VVR_SCOPE`,
`COMPONENT_MP7VVR_SCOPE`,
`COMPONENT_BRUENVVR_SCOPE`,
`COMPONENT_SM17VVR_SCOPE`,
`COMPONENT_M45VVR_SCOPE`,
`COMPONENT_FN5VVR_SCOPE`,
`COMPONENT_P90VVR_SCOPE`,
`COMPONENT_AK102VVR_SCOPE`,
},
usetime = 2500
}
},
['suppressor'] = {
label = 'Suppressor',
type = 'muzzle',
weight = 1,
client = {
component = {
`COMPONENT_APCVVR_SUPP`,
`COMPONENT_G17VVR_SUPP`,
`COMPONENT_G17SVVR_SUPP`,
`COMPONENT_AR15TVVR_SUPP`,
`COMPONENT_AR15CVVR_SUPP`,
`COMPONENT_ARPVVR_SUPP`,
`COMPONENT_G45VVR_SUPP`,
`COMPONENT_G40VVR_SUPP`,
`COMPONENT_DRACOVVR_SUPP`,
`COMPONENT_DEAGLEVVR_SUPP`,
`COMPONENT_ARP9VVR_SUPP`,
`COMPONENT_MP7VVR_SUPP`,
`COMPONENT_THOMPSONVVR_SUPP`,
`COMPONENT_BRUENVVR_SUPP`,
`COMPONENT_SPAS12VVR_SUPP`,
`COMPONENT_SM17VVR_SUPP`,
`COMPONENT_M45VVR_SUPP`,
`COMPONENT_FN5VVR_SUPP`,
`COMPONENT_P90VVR_SUPP`,
`COMPONENT_AK102VVR_SUPP`,
},
usetime = 2500
}
},
['goldcamo'] = {
label = 'Gold Camo',
type = 'skin',
weight = 1,
client = {
component = {
`COMPONENT_APCVVR_GOLD`,
`COMPONENT_G17VVR_GOLD`,
`COMPONENT_G17SVVR_GOLD`,
`COMPONENT_ARPVVR_GOLD`,
`COMPONENT_AR15TVVR_GOLD`,
`COMPONENT_AR15CVVR_GOLD`,
`COMPONENT_G45VVR_GOLD`,
`COMPONENT_G40VVR_GOLD`,
`COMPONENT_DRACOVVR_GOLD`,
`COMPONENT_DEAGLEVVR_GOLD`,
`COMPONENT_ARP9VVR_GOLD`,
`COMPONENT_MP7VVR_GOLD`,
`COMPONENT_THOMPSONVVR_GOLD`,
`COMPONENT_BRUENVVR_GOLD`,
`COMPONENT_SPAS12VVR_GOLD`,
`COMPONENT_SM17VVR_GOLD`,
`COMPONENT_M45VVR_GOLD`,
`COMPONENT_FN5VVR_GOLD`,
`COMPONENT_P90VVR_GOLD`,
`COMPONENT_AK102VVR_GOLD`,
`COMPONENT_BOWIEVVR_GOLD`,
`COMPONENT_BUTTERFLYVVR_GOLD`,
`COMPONENT_DRAGONKATANAVVR_GOLD`,
`COMPONENT_KARAMBITVVR_GOLD`,
`COMPONENT_TACTICALAXEVVR_GOLD`,
},
usetime = 2500
}
},
['diamondcamo'] = {
label = 'Diamond Camo',
type = 'skin',
weight = 1,
client = {
component = {
`COMPONENT_APCVVR_DIAMOND`,
`COMPONENT_G17VVR_DIAMOND`,
`COMPONENT_G17SVVR_DIAMOND`,
`COMPONENT_ARPVVR_DIAMOND`,
`COMPONENT_AR15TVVR_DIAMOND`,
`COMPONENT_AR15CVVR_DIAMOND`,
`COMPONENT_G45VVR_DIAMOND`,
`COMPONENT_G40VVR_DIAMOND`,
`COMPONENT_DRACOVVR_DIAMOND`,
`COMPONENT_DEAGLEVVR_DIAMOND`,
`COMPONENT_ARP9VVR_DIAMOND`,
`COMPONENT_MP7VVR_DIAMOND`,
`COMPONENT_THOMPSONVVR_DIAMOND`,
`COMPONENT_BRUENVVR_DIAMOND`,
`COMPONENT_SPAS12VVR_DIAMOND`,
`COMPONENT_SM17VVR_DIAMOND`,
`COMPONENT_M45VVR_DIAMOND`,
`COMPONENT_FN5VVR_DIAMOND`,
`COMPONENT_P90VVR_DIAMOND`,
`COMPONENT_AK102VVR_DIAMOND`,
},
usetime = 2500
}
},

Open ox_inventory/data/items.lua and add the following entries:

['extendedmag1'] = {
label = 'Extended Magazine I',
weight = 100,
stack = true,
close = true,
description = 'An extended magazine attachment.',
},
['extendedmag2'] = {
label = 'Extended Magazine II',
weight = 100,
stack = true,
close = true,
description = 'An upgraded magazine attachment.',
},
['extendedmag3'] = {
label = 'Extended Magazine III',
weight = 100,
stack = true,
close = true,
description = 'A high-capacity magazine attachment.',
},
['scope'] = {
label = 'Scope',
weight = 100,
stack = true,
close = true,
description = 'A scope attachment.',
},
['suppressor'] = {
label = 'Suppressor',
weight = 100,
stack = true,
close = true,
description = 'A suppressor attachment.',
},
['laser'] = {
label = 'Laser',
weight = 100,
stack = true,
close = true,
description = 'A laser attachment.',
},
['grip'] = {
label = 'Angled Foregrip',
weight = 100,
stack = true,
close = true,
description = 'A foregrip attachment.',
},
['goldcamo'] = {
label = 'Gold Camo',
weight = 100,
stack = true,
close = true,
description = 'A gold weapon camo skin.',
},
['diamondcamo'] = {
label = 'Diamond Camo',
weight = 100,
stack = true,
close = true,
description = 'A diamond weapon camo skin.',
},
['partspistol'] = {
label = 'Pistol Parts',
weight = 100,
stack = true,
close = true,
description = 'Parts used for crafting pistols.',
},
['partsrifle'] = {
label = 'Rifle Parts',
weight = 100,
stack = true,
close = true,
description = 'Parts used for crafting rifles.',
},
['partsrifle2'] = {
label = 'Advanced Rifle Parts',
weight = 100,
stack = true,
close = true,
description = 'Advanced rifle crafting parts.',
},
['partsshotgun'] = {
label = 'Shotgun Parts',
weight = 100,
stack = true,
close = true,
description = 'Parts used for crafting shotguns.',
},
['partssmg'] = {
label = 'SMG Parts',
weight = 100,
stack = true,
close = true,
description = 'Parts used for crafting SMGs.',
},
['switch'] = {
label = 'Weapon Switch',
weight = 100,
stack = true,
close = true,
description = 'A weapon conversion switch.',
},
['weaponblack'] = {
label = 'Weapon Black Finish',
weight = 100,
stack = true,
close = true,
description = 'A black weapon finish.',
},
['diamond'] = {
label = 'Diamond',
weight = 100,
stack = true,
close = true,
description = 'A valuable diamond.',
},
['gold_bar'] = {
label = 'Gold Bar',
weight = 100,
stack = true,
close = true,
description = 'A solid bar of gold.',
},

Copy all PNG files from the INSTALL_ME/images/ folder to:

ox_inventory/web/images/

Also make sure Config.Images in the ars_vvsguns_v2 config points to the correct path:

Config.Images = 'nui://ox_inventory/web/images/'

Check the ox_inventory documentation for the latest framework compatibility options.


  • Weapons show as unknown items: The weapon name in Weapons table must match exactly (case-sensitive). Make sure WEAPON_APCVVR is not misspelled.
  • Attachments won’t attach: Each component entry maps attachment items to weapon component hashes. Make sure both the Weapons and Components tables have been updated.
  • Ammo type not working: Verify ammoname in the weapon entry matches a valid ammo item in items.lua (e.g. 'ammo-9', 'ammo-rifle').
  • Durability draining too fast: Adjust the durability value in the Weapons table (lower = slower drain).
  • Images not showing: Confirm PNG filenames match exactly (case-sensitive on Linux servers).

Note: This guide is written by a third party. If you find any incorrect or outdated information, please contact us on Discord so we can update it for you.