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:
- Get this script (ARS VVS Guns V2): https://amirobin.tebex.io/package/7430707
- Get VVSGUNV2 (Weapon Assets): https://vvscustoms.tebex.io/package/7430699
- VVS Customs Discord: https://discord.gg/vvscustoms
You must purchase VVSGUNV2 from VVS Customs for weapons to work.
Prerequisites
Section titled “Prerequisites”- Latest FiveM build
oxmysql- Database connectionox_lib- UI and library functionsvvsgunspacks- VVSGUNV2 weapon asset pack by VVS Customs (purchase required: https://vvscustoms.tebex.io/package/7430699)- ESX framework (es_extended)
Step 1 - Database
Section titled “Step 1 - Database”Run the following SQL queries in your database.
1a. Main Table
Section titled “1a. Main Table”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`;1b. Job and Society Account
Section titled “1b. Job and Society Account”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
itemsSQL. Ifes_extendedhandles items via Lua files only, skip Step 1c.
Step 2 - es_extended Weapon Definitions
Section titled “Step 2 - es_extended Weapon Definitions”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` }, } },Step 3 - Inventory Integration
Section titled “Step 3 - Inventory Integration”Now follow one of the inventory guides based on what your server uses:
Step 4 - Inventory Images
Section titled “Step 4 - Inventory Images”Copy all PNG files from INSTALL_ME/images/ to your inventory’s image directory:
| Inventory | Destination |
|---|---|
| ox_inventory | ox_inventory/web/images/ |
| qs-inventory | qs-inventory/html/images/ |
| ak47_inventory | Check your ak47_inventory config for the image path |
Step 5 - Final Configuration
Section titled “Step 5 - Final Configuration”- Open
config.luaand set:Config.Framework = 'esx' - Set
Config.Imagesto match your inventory’s image path - Add to your
server.cfg:ensure vvsgunspacksensure ars_vvsguns_v2 - Install the VVSGUNV2 resource from https://vvscustoms.tebex.io/package/7430699 following its own instructions
- Restart your server
Job Grades Reference
Section titled “Job Grades Reference”| Grade | Name | Salary |
|---|---|---|
| 0 | Goldsmith | $20 |
| 1 | Shopkeeper | $40 |
| 2 | Manager | $60 |
| 3 | Owner (Boss) | $100 |
Troubleshooting
Section titled “Troubleshooting”- Weapons don’t appear in inventory: Verify weapon entries were added to both
es_extended/config.weapons.luaand your inventory’s data files. - Attachments not working: Check that component hashes in
es_extended/config.weapons.luamatch 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.Imagespoints to it. - Items table errors: Not all ESX versions need the
itemsSQL. Ifes_extendedhandles 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.