# Installation

### DEPENDENCIES

> **REQUIRED DEPENDENCIES**

<table data-full-width="false"><thead><tr><th>Resource</th><th>Download</th></tr></thead><tbody><tr><td>Apex Library</td><td><a href="https://astudios.tebex.io/package/5541419">Apex Studios Tebex Store</a></td></tr><tr><td>Framework</td><td><a href="https://github.com/qbcore-framework/qb-core">QBCore</a> or <a href="https://github.com/esx-framework/esx_core">ESX</a></td></tr><tr><td>Target</td><td><a href="https://github.com/qbcore-framework/qb-target">qb-target</a> / <a href="https://github.com/overextended/ox_target">ox_target</a></td></tr><tr><td>Menu</td><td><a href="https://github.com/qbcore-framework/qb-menu">qb-menu</a> &#x26; <a href="https://github.com/qbcore-framework/qb-input">qb-input</a> / <a href="https://github.com/overextended/ox_lib">ox_lib</a></td></tr><tr><td>Inventory</td><td><ul><li><a href="https://github.com/qbcore-framework/qb-inventory">qb-inventory</a></li><li><a href="https://github.com/loljoshie/lj-inventory">lj-inventory</a></li><li><a href="https://github.com/Project-Sloth/ps-inventory">ps-inventory</a></li><li><a href="https://github.com/overextended/ox_inventory">ox_inventory</a></li><li><a href="https://buy.quasar-store.com/category/2395209">Quasar Inventory</a></li></ul></td></tr></tbody></table>

> **OPTIONAL DEPENDENCIES**

| Resource | Download                                                                          |
| -------- | --------------------------------------------------------------------------------- |
| Mapping  | [PF Mods](https://pf-mods.tebex.io/package/6260116) Recommend / Whatever you want |

### RESOURCE INSTALLATION GUIDE

> **1) RESOURCE DOWNLOAD**

{% hint style="info" %}
Download your resource from [FiveM's Keymaster](https://keymaster.fivem.net/asset-grants).
{% endhint %}

> **2) RESOURCE POSITIONING**

{% tabs %}
{% tab title="QBCore" %}
{% hint style="info" %}

```
ensure qb-core
ensure ox_lib
ensure apex_lib
ensure [apex] -- or ensure apex_noodleexchange
```

{% endhint %}
{% endtab %}

{% tab title="ESX" %}
{% hint style="info" %}

```lua
ensure es_extended
ensure ox_lib
ensure apex_lib
ensure [apex] -- or ensure apex_noodleexchange
```

{% endhint %}
{% endtab %}
{% endtabs %}

> **3) ASSET ADDING**

{% hint style="info" %}

1. Open apex\_koi > assets > inventory\_images
2. Copy files from the folder and add them into your inventory image folder
   {% endhint %}

> **4) ITEM ADDING (QBCORE & ESX)**

{% tabs %}
{% tab title="QBCore" %}
{% hint style="info" %}

```lua
-- Ingredients
tofu 		= { name = 'tofu', 			label = 'Tofu', 			weight = 10, type = 'item', image = 'tofu.png', 		unique = false, useable = true, shouldClose = true, combinable = nil,   description = 'Ingredients'},
rice 		= { name = 'rice', 			label = 'Rice', 			weight = 10, type = 'item', image = 'rice.png', 		unique = false, useable = true, shouldClose = true, combinable = nil,   description = 'Ingredients'},
seaweed 		= { name = 'seaweed', 		label = 'Sea Weed', 		weight = 10, type = 'item', image = 'seaweed.png', 		unique = false, useable = true, shouldClose = true, combinable = nil,   description = 'Ingredients'},
skewer 		= { name = 'skewer', 		label = 'Skewer', 			weight = 10, type = 'item', image = 'skewer.png', 		unique = false, useable = true, shouldClose = true, combinable = nil,   description = 'Ingredients'},
fish 		= { name = 'fish', 			label = 'Fish', 			weight = 10, type = 'item', image = 'fish.png', 		unique = false, useable = true, shouldClose = true, combinable = nil,   description = 'Ingredients'},
teriyaki 		= { name = 'teriyaki', 		label = 'Teriyaki', 		weight = 10, type = 'item', image = 'teriyaki.png', 	unique = false, useable = true, shouldClose = true, combinable = nil,   description = 'Ingredients'},
noodles 		= { name = 'noodles', 		label = 'Noodles', 			weight = 10, type = 'item', image = 'noodles.png', 		unique = false, useable = true, shouldClose = true, combinable = nil,   description = 'Ingredients'},
chickenraw 		= { name = 'chickenraw', 		label = 'Raw Chicken Fillet', 	weight = 10, type = 'item', image = 'chickenraw.png', 	unique = false, useable = true, shouldClose = true, combinable = nil,   description = 'Ingredients'},
-- Food
ramen_hot 		= { name = 'ramen_hot', 		label = 'Ramen Hot', 		weight = 10, type = 'item', image = 'ramen_hot.png', 	unique = false, useable = true, shouldClose = true, combinable = nil,   description = 'Food'},
ramen_chicken 	= { name = 'ramen_chicken', 		label = 'Ramen Chicken', 		weight = 10, type = 'item', image = 'ramen_chicken.png', 	unique = false, useable = true, shouldClose = true, combinable = nil,   description = 'Food'},
ramen_pork 		= { name = 'ramen_pork', 		label = 'Ramen Pork', 		weight = 10, type = 'item', image = 'ramen_pork.png', 	unique = false, useable = true, shouldClose = true, combinable = nil,   description = 'Food'},
yakitori 		= { name = 'yakitori', 		label = 'Yakitori', 		weight = 10, type = 'item', image = 'yakitori.png', 	unique = false, useable = true, shouldClose = true, combinable = nil,   description = 'Food'},
teriyaki_chicken 	= { name = 'teriyaki_chicken', 	label = 'Teriyaki Chicken', 	weight = 10, type = 'item', image = 'teriyaki_chicken.png', unique = false, useable = true, shouldClose = true, combinable = nil,   description = 'Food'},
sushi 		= { name = 'sushi', 			label = 'Sushi', 			weight = 10, type = 'item', image = 'sushi.png', 		unique = false, useable = true, shouldClose = true, combinable = nil,   description = 'Food'},
misosoup 		= { name = 'misosoup', 		label = 'Miso Soup', 	        weight = 30, type = 'item', image = 'misosoup.png', 	unique = false, useable = true, shouldClose = true, combinable = nil,   description = 'Food'},
onigiri 		= { name = 'onigiri', 		label = 'Onigiri', 			weight = 10, type = 'item', image = 'onigiri.png', 		unique = false, useable = true, shouldClose = true, combinable = nil,   description = 'Food'},
-- Drinks
milkshake 		= { name = 'milkshake', 		label = 'Milkshake', 		weight = 10, type = 'item', image = 'milkshake.png', 	unique = false, useable = true, shouldClose = true, combinable = nil,   description = 'Drink'},
soda 		= { name = 'soda', 			label = 'Soda', 			weight = 10, type = 'item', image = 'soda.png', 		unique = false, useable = true, shouldClose = true, combinable = nil,   description = 'Drink'},
```

{% endhint %}
{% endtab %}

{% tab title="ESX" %}
{% hint style="info" %}

```sql
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES
('tofu', 'Tofu', 10, 0, 1),
('rice', 'Rice', 10, 0, 1),
('seaweed', 'Sea Weed', 10, 0, 1),
('skewer', 'Skewer', 10, 0, 1),
('fish', 'Fish', 10, 0, 1),
('teriyaki', 'Teriyaki', 10, 0, 1),
('noodles', 'Noodles', 10, 0, 1),
('chickenraw', 'Raw Chicken Fillet', 10, 0, 1),
('ramen_hot', 'Ramen Hot', 10, 0, 1),
('ramen_chicken', 'Ramen Chicken', 10, 0, 1),
('ramen_pork', 'Ramen Pork', 10, 0, 1),
('yakitori', 'Yakitori', 10, 0, 1),
('teriyaki_chicken', 'Teriyaki Chicken', 10, 0, 1),
('sushi', 'Sushi', 10, 0, 1),
('misosoup', 'Miso Soup', 10, 0, 1),
('onigiri', 'Onigiri', 10, 0, 1),
('milkshake', 'Milkshake', 10, 0, 1),
('soda', 'Soda', 10, 0, 1);
```

{% endhint %}
{% endtab %}
{% endtabs %}

> **5) JOB ADDING**

{% tabs %}
{% tab title="QBCore" %}
{% hint style="info" %}

```lua
noodle = {
	label = 'Noodle Exchange',
	defaultDuty = true,
	offDutyPay = false,
	grades = {
		['0'] = { name = 'Helper', payment = 30 },
		['1'] = { name = 'Delivery', payment = 40 },
		['2'] = { name = 'Cook', payment = 50 },
		['3'] = { name = 'Manager', isboss = true, payment = 60 },
	},
},
```

{% endhint %}
{% endtab %}

{% tab title="ESX" %}
{% hint style="info" %}

```sql
INSERT INTO `jobs` (name, label) VALUES
('noodle', 'Noodle Exchange');

INSERT INTO `job_grades` (job_name, grade, name, label, salary, skin_male, skin_female) VALUES
('noodle', 0, 'helper', 'Helper', 30, '{}', '{}'),
('noodle', 1, 'delivery', 'Delivery', 40, '{}', '{}'),
('noodle', 2, 'cook', 'Cook', 60, '{}', '{}'),
('noodle', 3, 'boss', 'Manager', 60, '{}', '{}');
```

{% endhint %}
{% endtab %}
{% endtabs %}

> **6) CONSUMABLES**
>
> The first 2 blocks i'll show how to add the items into both [qb-smallresources](https://github.com/qbcore-framework/qb-smallresources) and [jim-consumables](https://github.com/jimathy/jim-consumables) for **qbcore**

{% tabs %}
{% tab title="qb-smallresources" %}
{% hint style="info" %}
{% code title="qb-smallresources/config.lua" %}

```lua
Config.ConsumablesDrink = {
    ["milkshake"] = math.random(40, 80),
    ["soda"] = math.random(40, 80),
}

Config.ConsumablesEat = {
    ["ramen_hot"] = math.random(80, 100),
    ["ramen_chicken"] = math.random(80, 100),
    ["ramen_pork"] = math.random(80, 100),
    ["yakitori"] = math.random(80, 100),
    ["teriyaki_chicken"] = math.random(80, 100),
    ["sushi"] = math.random(80, 100),
    ["misosoup"] = math.random(80, 100),
    ["onigiri"] = math.random(80, 100),
}
```

{% endcode %}
{% endhint %}
{% endtab %}

{% tab title="jim-consumables" %}
{% hint style="info" %}
With jim-consumables, it is a little different, you'll have to find this: **Consumables = {}** in the config file add the following into it.

If you are not able to get it working, ask **jimathy** for help

{% code title="jim-consumables/config.lua" %}

```lua
["milkshake"] = {
	emote = "drink", time = math.random(5000, 6000), stress = math.random(1, 2), heal = 0, armor = 5, type = "drink",
	stats = {
		screen = "", effect = "heal", time = 10000, amount = 2,
		hunger = math.random(0,0), thirst = math.random(40, 80),
	},
},
["soda"] = {
	emote = "drink", time = math.random(5000, 6000), stress = math.random(1, 2), heal = 0, armor = 5, type = "drink",
	stats = {
		screen = "", effect = "heal", time = 10000, amount = 2,
		hunger = math.random(0,0), thirst = math.random(40, 80),
	},
},

["ramen_hot"] = {
	emote = "eat", time = math.random(5000, 6000), stress = math.random(1, 2), heal = 0, armor = 5, type = "food",
	stats = {
		screen = "", effect = "heal", time = 10000, amount = 2,
		hunger = math.random(80,100), thirst = math.random(0, 0),
	},
},
["ramen_chicken"] = {
	emote = "eat", time = math.random(5000, 6000), stress = math.random(1, 2), heal = 0, armor = 5, type = "food",
	stats = {
		screen = "", effect = "heal", time = 10000, amount = 2,
		hunger = math.random(80,100), thirst = math.random(0, 0),
	},
},
["ramen_pork"] = {
	emote = "eat", time = math.random(5000, 6000), stress = math.random(1, 2), heal = 0, armor = 5, type = "food",
	stats = {
		screen = "", effect = "heal", time = 10000, amount = 2,
		hunger = math.random(80,100), thirst = math.random(0, 0),
	},
},
["yakitori"] = {
	emote = "eat", time = math.random(5000, 6000), stress = math.random(1, 2), heal = 0, armor = 5, type = "food",
	stats = {
		screen = "", effect = "heal", time = 10000, amount = 2,
		hunger = math.random(80,100), thirst = math.random(0, 0),
	},
},
["teriyaki_chicken"] = {
	emote = "eat", time = math.random(5000, 6000), stress = math.random(1, 2), heal = 0, armor = 5, type = "food",
	stats = {
		screen = "", effect = "heal", time = 10000, amount = 2,
		hunger = math.random(80,100), thirst = math.random(0, 0),
	},
},
["sushi"] = {
	emote = "eat", time = math.random(5000, 6000), stress = math.random(1, 2), heal = 0, armor = 5, type = "food",
	stats = {
		screen = "", effect = "heal", time = 10000, amount = 2,
		hunger = math.random(80,100), thirst = math.random(0, 0),
	},
},
["misosoup"] = {
	emote = "eat", time = math.random(5000, 6000), stress = math.random(1, 2), heal = 0, armor = 5, type = "food",
	stats = {
		screen = "", effect = "heal", time = 10000, amount = 2,
		hunger = math.random(80,100), thirst = math.random(0, 0),
	},
},
["onigiri"] = {
	emote = "eat", time = math.random(5000, 6000), stress = math.random(1, 2), heal = 0, armor = 5, type = "food",
	stats = {
		screen = "", effect = "heal", time = 10000, amount = 2,
		hunger = math.random(80,100), thirst = math.random(0, 0),
	},
},
```

{% endcode %}
{% endhint %}
{% endtab %}
{% endtabs %}
