Skip to content

ESX Installation

This page covers the full ESX Legacy installation for ARS VVS Guns V2. Follow every step below in order. After completing this guide, follow your inventory installation guide to finish setup.

Important: This is a collaboration script. The weapon assets are made by VVS Customs. This script requires two separate purchases:

You must purchase VVSGUNV2 from VVS Customs for weapons to work.


  • Latest FiveM build
  • oxmysql - Database connection
  • ox_lib - UI and library functions
  • vvsgunspacks - VVSGUNV2 weapon asset pack by VVS Customs (purchase required: https://vvscustoms.tebex.io/package/7430699)
  • ESX framework (es_extended)

Run the following SQL queries in your database.

CREATE TABLE IF NOT EXISTS `ars_vvsguns_v2` (
`job` varchar(50) COLLATE armscii8_bin DEFAULT NULL,
`stock` longtext COLLATE armscii8_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=armscii8 COLLATE=armscii8_bin;
DELETE FROM `ars_vvsguns_v2`;
DELETE FROM `addon_account` WHERE `name` = 'society_vvsguns';
INSERT INTO `addon_account` (name, label, shared) VALUES
('society_vvsguns', 'vvsgundealer', 1)
;
DELETE FROM `jobs` WHERE `name` = 'vvsgundealer';
INSERT INTO `jobs` (name, label) VALUES
('vvsgundealer', 'vvsgundealer')
;
DELETE FROM `job_grades` WHERE `job_name` = 'vvsgundealer';
INSERT INTO `job_grades` (job_name, grade, name, label, salary, skin_male, skin_female) VALUES
('vvsgundealer',0,'goldsmith','Goldsmith',20,'{}','{}'),
('vvsgundealer',1,'shopkeeper','Shopkeeper',40,'{}','{}'),
('vvsgundealer',2,'manager','Manager',60,'{}','{}'),
('vvsgundealer',3,'boss','Owner',100,'{}','{}')
;

1c. Items Table (only if your ESX setup uses an items table)

Section titled “1c. Items Table (only if your ESX setup uses an items table)”

Some ESX versions require weapon and item entries in the database items table. If yours does, run:

DELETE FROM items WHERE name = 'extendedmag1';
DELETE FROM items WHERE name = 'extendedmag2';
DELETE FROM items WHERE name = 'extendedmag3';
DELETE FROM items WHERE name = 'scope';
DELETE FROM items WHERE name = 'suppressor';
DELETE FROM items WHERE name = 'laser';
DELETE FROM items WHERE name = 'grip';
DELETE FROM items WHERE name = 'goldcamo';
DELETE FROM items WHERE name = 'diamondcamo';
DELETE FROM items WHERE name = 'partspistol';
DELETE FROM items WHERE name = 'partsrifle';
DELETE FROM items WHERE name = 'partsrifle2';
DELETE FROM items WHERE name = 'partsshotgun';
DELETE FROM items WHERE name = 'partssmg';
DELETE FROM items WHERE name = 'switch';
DELETE FROM items WHERE name = 'weaponblack';
DELETE FROM items WHERE name = 'diamond';
DELETE FROM items WHERE name = 'gold_bar';
INSERT INTO `items` (`name`, `label`, `weight`) VALUES
('extendedmag1', 'Extended Magazine I', 1),
('extendedmag2', 'Extended Magazine II', 1),
('extendedmag3', 'Extended Magazine III', 1),
('scope', 'Scope', 1),
('suppressor', 'Suppressor', 1),
('laser', 'Laser', 1),
('grip', 'Angled Foregrip', 1),
('goldcamo', 'Gold Camo', 1),
('diamondcamo', 'Diamond Camo', 1),
('partspistol', 'Pistol Parts', 1),
('partsrifle', 'Rifle Parts', 1),
('partsrifle2', 'Advanced Rifle Parts', 1),
('partsshotgun', 'Shotgun Parts', 1),
('partssmg', 'SMG Parts', 1),
('switch', 'Weapon Switch', 1),
('weaponblack', 'Weapon Black Finish', 1),
('diamond', 'Diamond', 1),
('gold_bar', 'Gold Bar', 1)
;

Note: Not all ESX versions need the items SQL. If es_extended handles items via Lua files only, skip Step 1c.


Open your server’s es_extended/config.weapons.lua and add all of the following entries into the Config.Weapons table:

{
name = 'WEAPON_APCVVR',
label = 'APC Custom',
ammo = { label = _U('ammo_smg'), hash = `AMMO_SMG` },
components = {
{ name = 'clip_default', label = 'Mag1', hash = `w_sb_apcvvr_mag1` },
{ name = 'extendedmag1', label = 'Mag2', hash = `w_sb_apcvvr_mag2` },
{ name = 'scope', label = 'Scope', hash = `w_sb_apcvvr_scope` },
{ name = 'suppressor', label = 'Supp', hash = `w_sb_apcvvr_supp` },
{ name = 'laser', label = 'laser', hash = `w_sb_apcvvr_laser` },
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_sb_apcvvr_gold` },
{ name = 'diamondcamo', label = 'Diamond Camo', hash = `w_sb_apcvvr_diamond` },
}
},
{
name = 'WEAPON_AR15CVVR',
label = 'AR15C Custom',
ammo = { label = _U('ammo_rifle'), hash = `AMMO_RIFLE` },
components = {
{ name = 'clip_default', label = 'Mag1', hash = `w_ar_ar15cvvr_mag1` },
{ name = 'extendedmag1', label = 'Extended Mag2', hash = `w_ar_ar15cvvr_mag2` },
{ name = 'extendedmag2', label = 'Mag3', hash = `w_ar_ar15cvvr_mag3` },
{ name = 'scope', label = 'Scope', hash = `w_ar_ar15cvvr_scope` },
{ name = 'suppressor', label = 'Supp', hash = `w_ar_ar15cvvr_supp` },
{ name = 'grip', label = 'Grip', hash = `w_ar_ar15cvvr_grip` },
{ name = 'laser', label = 'laser', hash = `w_ar_ar15cvvr_laser` },
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_ar_ar15cvvr_gold` },
{ name = 'diamondcamo', label = 'Diamond Camo', hash = `w_ar_ar15cvvr_diamond` },
}
},
{
name = 'WEAPON_AR15TVVR',
label = 'AR15T Custom',
ammo = { label = _U('ammo_rifle'), hash = `AMMO_RIFLE` },
components = {
{ name = 'clip_default', label = 'Mag1', hash = `w_ar_ar15tvvr_mag1` },
{ name = 'extendedmag1', label = 'Extended Mag2', hash = `w_ar_ar15tvvr_mag2` },
{ name = 'extendedmag2', label = 'Extended Mag3', hash = `w_ar_ar15tvvr_mag3` },
{ name = 'scope', label = 'Scope', hash = `w_ar_ar15tvvr_scope` },
{ name = 'suppressor', label = 'Suppressor', hash = `w_ar_ar15tvvr_supp` },
{ name = 'grip', label = 'Grip', hash = `w_ar_ar15tvvr_grip` },
{ name = 'laser', label = 'laser', hash = `w_ar_ar15tvvr_laser` },
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_ar_ar15tvvr_gold` },
{ name = 'diamondcamo', label = 'Diamond Camo', hash = `w_ar_ar15tvvr_diamond` },
}
},
{
name = 'WEAPON_AK102VVR',
label = 'AK102 Custom',
ammo = { label = _U('ammo_rifle'), hash = `AMMO_RIFLE` },
components = {
{ name = 'clip_default', label = 'Mag1', hash = `w_ar_ak102vvr_mag1` },
{ name = 'extendedmag1', label = 'Extended Mag', hash = `w_ar_ak102vvr_mag2` },
{ name = 'extendedmag2', label = 'Extended Mag2', hash = `w_ar_ak102vvr_mag3` },
{ name = 'extendedmag3', label = 'Extended Mag3', hash = `w_ar_ak102vvr_mag4` },
{ name = 'scope', label = 'Scope', hash = `w_ar_ak102vvr_scope` },
{ name = 'suppressor', label = 'Suppressor', hash = `w_ar_ak102vvr_supp` },
{ name = 'grip', label = 'Grip', hash = `w_ar_ak102vvr_grip` },
{ name = 'laser', label = 'laser', hash = `w_ar_ak102vvr_laser` },
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_ar_ak102vvr_gold` },
{ name = 'diamondcamo', label = 'Diamond Camo', hash = `w_ar_ak102vvr_diamond` },
}
},
{
name = 'WEAPON_ARP9VVR',
label = 'ARP9 Custom',
ammo = { label = _U('ammo_smg'), hash = `AMMO_SMG` },
components = {
{ name = 'clip_default', label = 'Mag1', hash = `w_ar_arp9vvr_mag1` },
{ name = 'extendedmag1', label = 'Extended Mag1', hash = `w_ar_arp9vvr_mag2` },
{ name = 'extendedmag2', label = 'Extended Mag2', hash = `w_ar_arp9vvr_mag3` },
{ name = 'extendedmag3', label = 'Scope', hash = `w_ar_arp9vvr_scope` },
{ name = 'suppressor', label = 'Suppressor', hash = `w_ar_arp9vvr_supp` },
{ name = 'laser', label = 'laser', hash = `w_ar_arp9vvr_laser` },
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_ar_arp8vvr_gold` },
{ name = 'diamondcamo', label = 'Diamond Camo', hash = `w_ar_arp9vvr_diamond` },
}
},
{
name = 'WEAPON_ARPVVR',
label = 'ARP Custom',
ammo = { label = _U('ammo_rifle'), hash = `AMMO_RIFLE` },
components = {
{ name = 'clip_default', label = 'Mag1', hash = `w_ar_arpvvr_mag1` },
{ name = 'extendedmag1', label = 'Extended Mag', hash = `w_ar_arpvvr_mag2` },
{ name = 'extendedmag2', label = 'Extended Mag2', hash = `w_ar_arpvvr_mag3` },
{ name = 'extendedmag3', label = 'Extended Mag3', hash = `w_ar_arpvvr_mag4` },
{ name = 'scope_holo', label = 'Scope', hash = `w_ar_arpvvr_scope` },
{ name = 'scope', label = 'Scope1', hash = `w_ar_arpvvr_scope1` },
{ name = 'suppressor', label = 'Supp', hash = `w_ar_arpvvr_supp` },
{ name = 'laser', label = 'laser', hash = `w_ar_arpvvr_laser` },
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_ar_arpvvr_gold` },
{ name = 'diamondcamo', label = 'Diamond Camo', hash = `w_ar_arpvvr_diamond` },
}
},
{
name = 'WEAPON_BRUENVVR',
label = 'Bruen Custom',
ammo = { label = _U('ammo_rifle'), hash = `AMMO_RIFLE` },
components = {
{ name = 'clip_default', label = 'Mag1', hash = `w_mg_bruenvvr_mag1` },
{ name = 'scope', label = 'Scope', hash = `w_mg_bruenvvr_scope` },
{ name = 'suppressor', label = 'Supp', hash = `w_mg_bruenvvr_supp` },
{ name = 'laser', label = 'laser', hash = `w_mg_bruenvvr_laser` },
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_mg_bruenvvr_gold` },
{ name = 'diamondcamo', label = 'Diamond Camo', hash = `w_mg_bruenvvr_diamond` },
}
},
{
name = 'WEAPON_P90VVR',
label = 'P90 Custom',
ammo = { label = _U('ammo_smg'), hash = `AMMO_SMG` },
components = {
{ name = 'clip_default', label = 'Mag1', hash = `w_sb_p90vvr_mag1` },
{ name = 'scope', label = 'Scope', hash = `w_sb_p90vvr_scope` },
{ name = 'suppressor', label = 'Supp', hash = `w_sb_p90vvr_supp` },
{ name = 'laser', label = 'laser', hash = `w_sb_p90vvr_laser` },
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_sb_p90vvr_gold` },
{ name = 'diamondcamo', label = 'Diamond Camo', hash = `w_sb_p90vvr_diamond` },
}
},
{
name = 'WEAPON_DEAGLEVVR',
label = 'Deagle Custom',
ammo = { label = _U('ammo_pistol'), hash = `AMMO_PISTOL` },
components = {
{ name = 'clip_default', label = 'Mag1', hash = `w_pi_deaglevvr_mag1` },
{ name = 'extendedmag1', label = 'Extended Mag', hash = `w_pi_deaglevvr_mag2` },
{ name = 'extendedmag2', label = 'Extended Mag2', hash = `w_pi_deaglevvr_mag3` },
{ name = 'extendedmag3', label = 'Extended Mag3', hash = `w_pi_deaglevvr_mag4` },
{ name = 'scope_holo', label = 'Scope', hash = `w_pi_deaglevvr_scope` },
{ name = 'suppressor', label = 'Supp', hash = `w_pi_deaglevvr_supp` },
{ name = 'laser', label = 'laser', hash = `w_pi_deaglevvr_laser` },
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_pi_deaglevvr_gold` },
{ name = 'diamondcamo', label = 'Diamond Camo', hash = `w_pi_deaglevvr_diamond` },
}
},
{
name = 'WEAPON_DRACOVVR',
label = 'Draco Custom',
ammo = { label = _U('ammo_rifle'), hash = `AMMO_RIFLE` },
components = {
{ name = 'clip_default', label = 'Mag1', hash = `w_ar_dracovvr_mag1` },
{ name = 'extendedmag1', label = 'Extended Mag', hash = `w_ar_dracovvr_mag2` },
{ name = 'extendedmag2', label = 'Extended Mag2', hash = `w_ar_dracovvr_mag3` },
{ name = 'scope', label = 'Scope', hash = `w_ar_dracovvr_scope` },
{ name = 'suppressor', label = 'Supp', hash = `w_ar_dracovvr_supp` },
{ name = 'grip', label = 'Grip', hash = `w_ar_dracovvr_grip` },
{ name = 'laser', label = 'laser', hash = `w_ar_dracovvr_laser` },
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_ar_dracovvr_gold` },
{ name = 'diamondcamo', label = 'Diamond Camo', hash = `w_ar_dracovvr_diamond` },
}
},
{
name = 'WEAPON_G17SVVR',
label = 'G17S Custom',
ammo = { label = _U('ammo_pistol'), hash = `AMMO_PISTOL` },
components = {
{ name = 'clip_default', label = 'Mag1', hash = `w_pi_g17svvr_mag1` },
{ name = 'extendedmag1', label = 'Extended Mag', hash = `w_pi_g17svvr_mag2` },
{ name = 'extendedmag2', label = 'Extended Mag2', hash = `w_pi_g17svvr_mag3` },
{ name = 'extendedmag3', label = 'Extended Mag3', hash = `w_pi_g17svvr_mag4` },
{ name = 'scope_holo', label = 'Scope', hash = `w_at_g17svvr_scope` },
{ name = 'suppressor', label = 'Supp', hash = `w_at_g17svvr_supp` },
{ name = 'laser', label = 'laser', hash = `w_at_g17svvr_laser` },
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_pi_g17svvr_gold` },
{ name = 'diamondcamo', label = 'Diamond Camo', hash = `w_pi_g17svvr_diamond` },
}
},
{
name = 'WEAPON_G17VVR',
label = 'G17 Custom',
ammo = { label = _U('ammo_pistol'), hash = `AMMO_PISTOL` },
components = {
{ name = 'clip_default', label = 'Mag1', hash = `w_pi_g17vvr_mag1` },
{ name = 'extendedmag1', label = 'Extended Mag', hash = `w_pi_g17vvr_mag2` },
{ name = 'extendedmag2', label = 'Extended Mag2', hash = `w_pi_g17vvr_mag3` },
{ name = 'extendedmag3', label = 'Extended Mag3', hash = `w_pi_g17vvr_mag4` },
{ name = 'scope', label = 'Scope', hash = `w_at_g17vvr_scope` },
{ name = 'suppressor', label = 'Supp', hash = `w_at_g17vvr_supp` },
{ name = 'laser', label = 'laser', hash = `w_at_g17vvr_laser` },
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_pi_g17vvr_gold` },
{ name = 'diamondcamo', label = 'Diamond Camo', hash = `w_pi_g17vvr_diamond` },
}
},
{
name = 'WEAPON_G40VVR',
label = 'G40 Custom',
ammo = { label = _U('ammo_pistol'), hash = `AMMO_PISTOL` },
components = {
{ name = 'clip_default', label = 'Mag1', hash = `w_pi_g40vvr_mag1` },
{ name = 'extendedmag1', label = 'Extended Mag', hash = `w_pi_g40vvr_mag2` },
{ name = 'extendedmag2', label = 'Extended Mag2', hash = `w_pi_g40vvr_mag3` },
{ name = 'extendedmag3', label = 'Extended Mag3', hash = `w_pi_g40vvr_mag4` },
{ name = 'scope_holo', label = 'Scope', hash = `w_pi_g40vvr_scope` },
{ name = 'suppressor', label = 'Suppressor', hash = `w_pi_g40vvr_supp` },
{ name = 'laser', label = 'laser', hash = `w_pi_g40vvr_laser` },
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_pi_g40vvr_gold` },
{ name = 'diamondcamo', label = 'Diamond Camo', hash = `w_pi_g40vvr_diamond` },
}
},
{
name = 'WEAPON_G45VVR',
label = 'G45 Custom',
ammo = { label = _U('ammo_pistol'), hash = `AMMO_PISTOL` },
components = {
{ name = 'clip_default', label = 'Mag1', hash = `w_pi_g45vvr_mag1` },
{ name = 'extendedmag1', label = 'Extended Mag', hash = `w_pi_g45vvr_mag2` },
{ name = 'extendedmag2', label = 'Extended Mag2', hash = `w_pi_g45vvr_mag3` },
{ name = 'extendedmag3', label = 'Extended Mag3', hash = `w_pi_g45vvr_mag4` },
{ name = 'scope', label = 'Scope', hash = `w_pi_g45vvr_scope` },
{ name = 'suppressor', label = 'Suppressor', hash = `w_pi_g45vvr_supp` },
{ name = 'laser', label = 'Laser', hash = `w_pi_g45vvr_laser` },
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_pi_g45vvr_gold` },
{ name = 'diamondcamo', label = 'Diamond Camo', hash = `w_pi_g45vvr_diamond` },
}
},
{
name = 'WEAPON_SM17VVR',
label = 'SM17 Custom',
ammo = { label = _U('ammo_pistol'), hash = `AMMO_PISTOL` },
components = {
{ name = 'clip_default', label = 'Mag1', hash = `w_pi_sm17vvr_mag1` },
{ name = 'extendedmag1', label = 'Extended Mag', hash = `w_pi_sm17vvr_mag2` },
{ name = 'extendedmag2', label = 'Extended Mag2', hash = `w_pi_sm17vvr_mag3` },
{ name = 'extendedmag3', label = 'Extended Mag3', hash = `w_pi_sm17vvr_mag4` },
{ name = 'scope', label = 'Scope', hash = `w_pi_sm17vvr_scope` },
{ name = 'suppressor', label = 'Suppressor', hash = `w_pi_sm17vvr_supp` },
{ name = 'laser', label = 'Laser', hash = `w_pi_sm17vvr_laser` },
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_pi_sm17vvr_gold` },
{ name = 'diamondcamo', label = 'Diamond Camo', hash = `w_pi_sm17vvr_diamond` },
}
},
{
name = 'WEAPON_M45VVR',
label = 'M45 Custom',
ammo = { label = _U('ammo_pistol'), hash = `AMMO_PISTOL` },
components = {
{ name = 'clip_default', label = 'Mag1', hash = `w_pi_m45vvr_mag1` },
{ name = 'extendedmag1', label = 'Extended Mag', hash = `w_pi_m45vvr_mag2` },
{ name = 'extendedmag2', label = 'Extended Mag2', hash = `w_pi_m45vvr_mag3` },
{ name = 'extendedmag3', label = 'Extended Mag3', hash = `w_pi_m45vvr_mag4` },
{ name = 'scope', label = 'Scope', hash = `w_pi_m45vvr_scope` },
{ name = 'suppressor', label = 'Suppressor', hash = `w_pi_m45vvr_supp` },
{ name = 'laser', label = 'Laser', hash = `w_pi_m45vvr_laser` },
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_pi_m45vvr_gold` },
{ name = 'diamondcamo', label = 'Diamond Camo', hash = `w_pi_m45vvr_diamond` },
}
},
{
name = 'WEAPON_FN5VVR',
label = 'FN5 Custom',
ammo = { label = _U('ammo_pistol'), hash = `AMMO_PISTOL` },
components = {
{ name = 'clip_default', label = 'Mag1', hash = `w_pi_fn5vvr_mag1` },
{ name = 'extendedmag1', label = 'Extended Mag', hash = `w_pi_fn5vvr_mag2` },
{ name = 'extendedmag2', label = 'Extended Mag2', hash = `w_pi_fn5vvr_mag3` },
{ name = 'extendedmag3', label = 'Extended Mag3', hash = `w_pi_fn5vvr_mag4` },
{ name = 'scope', label = 'Scope', hash = `w_pi_fn5vvr_scope` },
{ name = 'suppressor', label = 'Suppressor', hash = `w_pi_fn5vvr_supp` },
{ name = 'laser', label = 'Laser', hash = `w_pi_fn5vvr_laser` },
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_pi_fn5vvr_gold` },
{ name = 'diamondcamo', label = 'Diamond Camo', hash = `w_pi_fn5vvr_diamond` },
}
},
{
name = 'WEAPON_MP7VVR',
label = 'MP7 Custom',
ammo = { label = _U('ammo_smg'), hash = `AMMO_SMG` },
components = {
{ name = 'clip_default', label = 'Mag1', hash = `w_sb_mp7vvr_mag1` },
{ name = 'extendedmag1', label = 'Extended Mag', hash = `w_sb_mp7vvr_mag2` },
{ name = 'extendedmag2', label = 'Extended Mag2', hash = `w_sb_mp7vvr_mag3` },
{ name = 'extendedmag3', label = 'Extended Mag3', hash = `w_sb_mp7vvr_scope` },
{ name = 'suppressor', label = 'Suppressor', hash = `w_sb_mp7vvr_supp` },
{ name = 'laser', label = 'laser', hash = `w_sb_mp7vvr_laser` },
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_sb_mp7vvr_gold` },
{ name = 'diamondcamo', label = 'Diamond Camo', hash = `w_sb_mp7vvr_diamond` },
}
},
{
name = 'WEAPON_SPAS12VVR',
label = 'SPAS12 Custom',
ammo = { label = _U('ammo_shotgun'), hash = `AMMO_SHOTGUN` },
components = {
{ name = 'suppressor', label = 'Suppressor', hash = `w_sg_spas12vvr_supp` },
{ name = 'laser', label = 'laser', hash = `w_sg_spas12vvr_laser` },
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_sg_spas12vvr_gold` },
{ name = 'diamondcamo', label = 'Diamond Camo', hash = `w_sg_spas12vvr_diamond` },
}
},
{
name = 'WEAPON_THOMPSONVVR',
label = 'Thompson Custom',
ammo = { label = _U('ammo_smg'), hash = `AMMO_SMG` },
components = {
{ name = 'clip_default', label = 'Mag1', hash = `w_sb_thompsonvvr_mag1` },
{ name = 'extendedmag1', label = 'Extended Mag', hash = `w_sb_thompsonvvr_mag2` },
{ name = 'extendedmag2', label = 'Extended Mag2', hash = `w_sb_thompsonvvr_mag3` },
{ name = 'suppressor', label = 'Suppressor', hash = `w_sb_thompsonvvr_supp` },
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_sb_thompsonvvr_gold` },
{ name = 'diamondcamo', label = 'Diamond Camo', hash = `w_sb_thompsonvvr_diamond` },
}
},
{
name = 'WEAPON_BOWIEVVR',
label = 'Bowie Knife Custom',
ammo = nil,
components = {
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_me_bowievvr_gold` },
}
},
{
name = 'WEAPON_BUTTERFLYVVR',
label = 'Butterfly Knife Custom',
ammo = nil,
components = {
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_me_butterflyvvr_gold` },
}
},
{
name = 'WEAPON_DRAGONKATANAVVR',
label = 'Katana Dragon Custom',
ammo = nil,
components = {
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_me_dragonkatanavvr_gold` },
}
},
{
name = 'WEAPON_KARAMBITVVR',
label = 'Karambit Custom',
ammo = nil,
components = {
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_me_karambitvvr_gold` },
}
},
{
name = 'WEAPON_TACTICALAXEVVR',
label = 'Tactical Axe Custom',
ammo = nil,
components = {
{ name = 'goldcamo', label = 'Gold Camo', hash = `w_me_tacticalaxevvr_gold` },
}
},

Now follow one of the inventory guides based on what your server uses:


Copy all PNG files from INSTALL_ME/images/ to your inventory’s image directory:

InventoryDestination
ox_inventoryox_inventory/web/images/
qs-inventoryqs-inventory/html/images/
ak47_inventoryCheck your ak47_inventory config for the image path

  1. Open config.lua and set:
    Config.Framework = 'esx'
  2. Set Config.Images to match your inventory’s image path
  3. Add to your server.cfg:
    ensure vvsgunspacks
    ensure ars_vvsguns_v2
  4. Install the VVSGUNV2 resource from https://vvscustoms.tebex.io/package/7430699 following its own instructions
  5. Restart your server

GradeNameSalary
0Goldsmith$20
1Shopkeeper$40
2Manager$60
3Owner (Boss)$100

  • Weapons don’t appear in inventory: Verify weapon entries were added to both es_extended/config.weapons.lua and your inventory’s data files.
  • Attachments not working: Check that component hashes in es_extended/config.weapons.lua match the ones in your inventory’s attachment config.
  • Job not showing up: Re-run the job SQL from Step 1b and restart es_extended.
  • Images not loading: Confirm PNGs are in the correct folder and Config.Images points to it.
  • Items table errors: Not all ESX versions need the items SQL. If es_extended handles items via Lua files only, skip Step 1c.

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.