> For the complete documentation index, see [llms.txt](https://veil-development.gitbook.io/veil-development-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://veil-development.gitbook.io/veil-development-documentation/paid-resources/gang-system/installing-the-resource.md).

# Installing the Resource

**Dependencies**\
fivem-freecam - [Download Here](https://github.com/Deltanic/fivem-freecam)\
ox\_lib - [Download Here](https://github.com/overextended/ox_lib)

**Building the resource**

The resource needs to be built for the UI to work as it is made in Svelte and Typescript. Follow these instructions to do so.

Prerequisites: `Node JS`

* Open the resource in VS Code
* In the terminal navigate to the `src` folder, this can be done using these commands. `cd web` `cd src`
* In this directory run these commands: `npm i` `npm install vite` `npm run build`
* If the process executes without errors, then you are finished.
* If you encounter any issues with this process, feel free to contact us VIA our discord<br>

**Territory Overlay Position**\
This resource has it's own overlay to show what territory you are in, etc.\
To set this up you need to add a player metadata variable\
\
**New QBCore**\
Go to `qb-core/config.lua` and add this to the `QBConfig.Player.PlayerDefaults`

```lua
territory_hud_position = "bottom-right",
```

\
**Old QBCore**\
Go to `qb-core/server/player.lua` and add this line

```lua
PlayerData.metadata['territory_hud_position'] = PlayerData.metadata['territory_hud_position'] or "bottom-right"
```

And that is it\
\
**Files**\
This Resource comes with 2 additional resources\
`veil-sprays` and `veil-gangshells`\
veil-gangshells is required if you are planning to use the Trap House System\
You WILL need to purchase the gang shells from [here](https://www.k4mb1maps.com/package/4672293)\
\
veil-sprays is required if you are planning to use the Spray System\
See [here](/veil-development-documentation/paid-resources/gang-system/creating-gang-sprays.md) for instructions\
\
**Items**\
**OX Inventory**\
Add these items to **ox\_inventory/data/items.lua**

```lua
['gang_laptop'] = {
	label = 'Gang Laptop',
	weight = 115,
	client = {
		image = "laptop_prog.png"
	},
},
['empty_plastic_bags'] = {
        label = "Empty Plastic Bags",
		description = "A box of empty plastic bags",
        weight = 115,
		stack = true,
        client = {
            image = "empty_plastic_bag.png"
        }
},
['scale'] = {
    label = "Scale",
		description = "A Scale used for weighing items",
    weight = 115,
		stack = true,
    client = {
        image = "scale.png"
    }
},
['shrink_wrap'] = {
    label = "Shrink Wrap",
		description = "A roll of shrink wrap",
    weight = 115,
		stack = true,
    client = {
        image = "shrinkwrap.png"
    }
},
['coca_plant'] = {
    label = "Coca Plant",
    weight = 115,
		stack = true,
    client = {
        image = "coca_plant.png"
    }
},
['baking_soda'] = {
    label = "Baking Soda",
		description = "A box of baking soda",
		stack = true,
    weight = 115,
    client = {
        image = "baking_soda.png"
    }
},
['bleach'] = {
    label = "Bleach",
		description = "A bottle of bleach",
		stack = true,
    weight = 115,
    client = {
        image = "bleach.png"
    }
},
['rat_poison'] = {
    label = "Rat Poison",
		description = "A bottle of rat poison",
		stack = true,
    weight = 115,
    client = {
        image = "rat_poison.png"
    }
},
['raw_cocaine'] = {
    label = "Raw Cocaine",
		stack = true,
    weight = 115,
    client = {
        image = "raw_cocaine.png"
    }
},
['processed_cocaine_high'] = {
    label = "Processed Coke [High]",
		description = "A bag of processed coke of high quality",
		stack = true,
    weight = 115,
    client = {
        image = "processed_coke_high.png"
    }
},
['processed_cocaine_med'] = {
    label = "Processed Coke [Medium]",
		description = "A bag of processed coke of medium quality",
		stack = true,
    weight = 115,
    client = {
        image = "processed_cocaine_med.png"
    }
},
['processed_coke_low'] = {
    label = "Processed Coke [Low]",
		description = "A bag of processed coke of low quality",
		stack = true,
    weight = 115,
    client = {
        image = "processed_coke_low.png"
    }
},
['bagged_coke_high'] = {
    label = "Bagged Coke [High]",
		description = "A bag of coke of high quality",
		stack = true,
    weight = 115,
    client = {
        image = "bagged_coke_high.png"
    }
},
['bagged_coke_med'] = {
    label = "Bagged Coke [Medium]",
		description = "A bag of coke of medium quality",
		stack = true,
    weight = 115,
    client = {
        image = "bagged_coke_med.png"
    }
},
['bagged_coke_low'] = {
    label = "Bagged Coke [Low]",
		description = "A bag of coke of low quality",
		stack = true,
    weight = 115,
    client = {
        image = "bagged_coke_low.png"
    }
},
['coke_brick_high'] = {
    label = "Coke Brick [High]",
		description = "A brick of coke of high quality",
		stack = true,
    weight = 115,
    client = {
        image = ""
    }
},
['coke_brick_med'] = {
    label = "Coke Brick [Medium]",
		description = "A brick of coke of medium quality",
		stack = true,
    weight = 115,
    client = {
        image = ""
    }
},
['coke_brick_low'] = {
    label = "Coke Brick [Low]",
		description = "A brick of coke of low quality",
		stack = true,
    weight = 115,
    client = {
        image = "coke_brick_low.png"
    }
},
['acetone'] = {
    label = "Acetone",
		description = "A bottle of acetone, used for making certain items",
		stack = true,
    weight = 115,
    client = {
        image = "acetone.png"
    }
},
['aluminium_oxide'] = {
    label = "Aluminium Oxide",
		description = "A box of aluminium oxide, used for making certain items",
		stack = true,
    weight = 115,
    client = {
        image = "aluminium_oxide.png"
    }
},
['mercury_fulninate'] = {
    label = "Mercury Fulninate",
		description = "A box of mercury fulninate, used for making certain items",
		stack = true,
    weight = 115,
    client = {
        image = "mercury_fulninate.png"
    }
},
['pseudoephedrine'] = {
    label = "Pseudoephedrine",
    description = "A bottle of Pseudoephedrine, used for making certain items",
    stack = true,
    weight = 115,
    client = {
        image = "pseudoephedrine.png"
    }
},
['tray'] = {
    label = "Tray",
		description = "A tray",
		stack = true,
    weight = 115,
    client = {
        image = "tray.png"
    }
},
['chemical_mix'] = {
    label = "Chemical Mix",
		description = "A chemical mix used for making certain items",
		stack = true,
    weight = 115,
    client = {
        image = "chemical_mix.png"
    }
},
['meth_crystals'] = {
    label = "Meth Crystals",
		description = "A bag of meth crystals",
		stack = true,
    weight = 115,
    client = {
        image = "meth_crystals.png"
    }
},
['meth_brick'] = {
    label = "Meth Brick",
		description = "A brick of meth",
		stack = true,
    client = {
        image = "meth_brick.png"
    }
},
['bagged_meth'] = {
    label = "Bagged Meth",
    description = "A bag of meth",
    stack = true,
    client = {
        image = "bagged_meth.png"
    }
},
```

**QB | PS | LJ | Quasar Inventories**\
Add these to qb-core/shared/items.lua

```lua
gang_spray_can = { name = 'gang_spray_can', label = 'Spray Can', weight = 5000, type = 'item', image = 'gang_spray_can.png', unique = false, useable = true, shouldClose = true, combinable = nil, description = 'A spray can for gangs...' },
gang_laptop = { name = "gang_laptop", label = "Gang Laptop", weight = 5000, type = "item", image = "laptop_prog.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A Gang Laptop..." },
empty_plastic_bags = { name = "empty_plastic_bags", label = "Empty Plastic Bags", weight = 115, type = "item", image = "empty_plastic_bag.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A box of empty plastic bags" },
scale = { name = "scale", label = "Scale", weight = 115, type = "item", image = "scale.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A Scale used for weighing items" },
shrink_wrap = { name = "shrink_wrap", label = "Shrink Wrap", weight = 115, type = "item", image = "shrinkwrap.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A roll of shrink wrap" },
coca_plant = { name = "coca_plant", label = "Coca Plant", weight = 115, type = "item", image = "coca_plant.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "" },
baking_soda = { name = "baking_soda", label = "Baking Soda", weight = 115, type = "item", image = "baking_soda.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A box of baking soda" },
bleach = { name = "bleach", label = "Bleach", weight = 115, type = "item", image = "bleach.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A bottle of bleach" },
rat_poison = { name = "rat_poison", label = "Rat Poison", weight = 115, type = "item", image = "rat_poison.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A bottle of rat poison" },
raw_cocaine = { name = "raw_cocaine", label = "Raw Cocaine", weight = 115, type = "item", image = "raw_cocaine.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "" },
processed_cocaine_high = { name = "processed_cocaine_high", label = "Processed Coke [High]", weight = 115, type = "item", image = "processed_coke_high.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A bag of processed coke of high quality" },
processed_cocaine_med = { name = "processed_cocaine_med", label = "Processed Coke [Medium]", weight = 115, type = "item", image = "processed_cocaine_med.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A bag of processed coke of medium quality" },
processed_coke_low = { name = "processed_coke_low", label = "Processed Coke [Low]", weight = 115, type = "item", image = "processed_coke_low.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A bag of processed coke of low quality" },
bagged_coke_high = { name = "bagged_coke_high", label = "Bagged Coke [High]", weight = 115, type = "item", image = "bagged_coke_high.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A bag of coke of high quality" },
bagged_coke_med = { name = "bagged_coke_med", label = "Bagged Coke [Medium]", weight = 115, type = "item", image = "bagged_coke_med.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A bag of coke of medium quality" },
bagged_coke_low = { name = "bagged_coke_low", label = "Bagged Coke [Low]", weight = 115, type = "item", image = "bagged_coke_low.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A bag of coke of low quality" },
coke_brick_high = { name = "coke_brick_high", label = "Coke Brick [High]", weight = 115, type = "item", image = "", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A brick of coke of high quality" },
coke_brick_med = { name = "coke_brick_med", label = "Coke Brick [Medium]", weight = 115, type = "item", image = "", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A brick of coke of medium quality" },
coke_brick_low = { name = "coke_brick_low", label = "Coke Brick [Low]", weight = 115, type = "item", image = "coke_brick_low.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A brick of coke of low quality" },
acetone = { name = "acetone", label = "Acetone", weight = 115, type = "item", image = "acetone.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A bottle of acetone, used for making certain items" },
aluminium_oxide = { name = "aluminium_oxide", label = "Aluminium Oxide", weight = 115, type = "item", image = "aluminium_oxide.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A box of aluminium oxide, used for making certain items" },
mercury_fulninate = { name = "mercury_fulninate", label = "Mercury Fulninate", weight = 115, type = "item", image = "mercury_fulninate.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A box of mercury fulninate, used for making certain items" },
pseudoephedrine = { name = "pseudoephedrine", label = "Pseudoephedrine", weight = 115, type = "item", image = "pseudoephedrine.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A bottle of Pseudoephedrine, used for making certain items" },
tray = { name = "tray", label = "Tray", weight = 115, type = "item", image = "tray.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A tray" },
chemical_mix = { name = "chemical_mix", label = "Chemical Mix", weight = 115, type = "item", image = "chemical_mix.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A chemical mix used for making certain items" },
meth_crystals = { name = "meth_crystals", label = "Meth Crystals", weight = 115, type = "item", image = "meth_crystals.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A bag of meth crystals" },
meth_brick = { name = "meth_brick", label = "Meth Brick", weight = 115, type = "item", image = "meth_brick.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A brick of meth" },
bagged_meth = { name = "bagged_meth", label = "Bagged Meth", weight = 115, type = "item", image = "bagged_meth.png", unique = false, useable = true, shouldClose = true, combinable = nil, description = "A bag of meth" },
```
