> For the complete documentation index, see [llms.txt](https://docs.apx-studios.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.apx-studios.com/docs/resources/businesses/restaurants/apex-rusty-brown/installation.md).

# 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  | [Map4all](https://fivem.map4all-shop.com/package/5139828) 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**

{% hint style="info" %}
**You need  to make sure that apex\_lib is always started before any of our scripts!**

```lua
ensure apex_lib
ensure [apex] -- or ensure apex_rustybrown
```

{% endhint %}

> **3) ASSET ADDING**

{% hint style="info" %}

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

> **4) ITEM ADDING (QBCORE & ESX)**
>
> The first block shows the data, you'll have to put into shared/items.lua in **qbcore**
>
> The second block shows the data, you'll have to put into the database in **esx**

{% hint style="info" %}

```lua
--[FOOD INGREDIENTS]--
['sugar'] 		= {['name'] = 'sugar', 			['label'] = 'Sugar', 			['weight'] = 10, ["type"] = "item", ["image"] = 'sugar.png', 			['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil,   ['description'] = 'Ingredients'},
['cocoa_powder'] 	= {['name'] = 'cocoa_powder', 		['label'] = 'Cocoa Powder', 		['weight'] = 10, ['type'] = 'item', ['image'] = 'cocoa_powder.png',             ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil,   ['description'] = 'Ingredients'},
['milk'] 		= {['name'] = 'milk', 			['label'] = 'Milk', 			['weight'] = 10, ['type'] = 'item', ['image'] = 'soda.png', 			['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil,   ['description'] = 'Ingredients'},
['butter'] 		= {['name'] = 'butter', 		['label'] = 'Butter', 			['weight'] = 10, ['type'] = 'item', ['image'] = 'butter.png', 		        ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil,   ['description'] = 'Ingredients'},
['flour'] 		= {['name'] = 'flour', 			['label'] = 'Flour', 			['weight'] = 10, ['type'] = 'item', ['image'] = 'flour.png', 			['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil,   ['description'] = 'Ingredients'},
['egg'] 		= {['name'] = 'egg', 			['label'] = 'Egg', 			['weight'] = 10, ['type'] = 'item', ['image'] = 'eggs.png', 			['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil,   ['description'] = 'Ingredients'},
['bakingsoda'] 		= {['name'] = 'bakingsoda', 		['label'] = 'Baking Soda', 		['weight'] = 10, ['type'] = 'item', ['image'] = 'bakingsoda.png', 		['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil,   ['description'] = 'Ingredients'},
--[FOOD]--
['donut'] 		= {['name'] = 'donut', 			['label'] = 'Donut', 			['weight'] = 30, ['type'] = 'item',  ['image'] = 'donut.png', 			['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil,   ['description'] = 'Donut'},
-[DRINKS]--
['brewedcoffee'] 	= {['name'] = 'brewedcoffee', 		['label'] = 'Brewed Coffee', 	        ['weight'] = 10, ['type'] = 'item',  ['image'] = 'brewedcoffee.png', 	        ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil,   ['description'] = 'Brewed Coffee Drink'},
['hotchocolade'] 	= {['name'] = 'hotchocolade', 		['label'] = 'Hot Chocolate', 	        ['weight'] = 30, ['type'] = 'item',  ['image'] = 'hotchocolade.png', 	        ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil,   ['description'] = 'Hot Chocolate Drink'},
['latte'] 		= {['name'] = 'latte', 			['label'] = 'Latte', 		        ['weight'] = 30, ['type'] = 'item',  ['image'] = 'latte.png', 			['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil,   ['description'] = 'Latte Drink'},
['matchatea'] 		= {['name'] = 'matchatea', 		['label'] = 'Matcha Tea', 	        ['weight'] = 30, ['type'] = 'item',  ['image'] = 'matchatea.png', 		['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil,   ['description'] = 'Matcha Tea Drink'},
['bubbletea'] 		= {['name'] = 'bubbletea', 		['label'] = 'Bubble Tea', 	        ['weight'] = 30, ['type'] = 'item',  ['image'] = 'bubbletea.png', 		['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil,   ['description'] = 'Bubble Tea Drink'},
```

{% endhint %}

{% hint style="info" %}

```sql
INSERT INTO `items` (`name`, `label`, `weight`, `rare`, `can_remove`) VALUES
('sugar', 'Sugar', 10, 0, 1),
('cocoa_powder', 'Cocoa Powder', 10, 0, 1),
('milk', 'Milk', 10, 0, 1),
('butter', 'Butter', 10, 0, 1),
('flour', 'Flour', 10, 0, 1),
('egg', 'Egg', 10, 0, 1),
('bakingsoda', 'Baking Soda', 10, 0, 1),
('donut', 'Donut', 10, 0, 1),
('brewedcoffee', 'Brewed Coffee', 10, 0, 1),
('hotchocolade', 'Hot Chocolate', 10, 0, 1),
('latte', 'Latte', 10, 0, 1),
('matchatea', 'Matcha Tea', 10, 0, 1),
('bubbletea', 'Bubble Tea', 10, 0, 1);
```

{% endhint %}

> **5) JOB ADDING**
>
> The first block shows the data, you'll have to put into shared/jobs.lua in **qbcore**
>
> The second block shows the data, you'll have to put into the database in **esx**

{% hint style="info" %}

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

{% endhint %}

{% hint style="info" %}

```sql
INSERT INTO `jobs` (name, label) VALUES
('rustybrown', 'Rusty Brown');

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

{% endhint %}

> **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**

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

```lua
Config.ConsumablesDrink = {
    ["brewedcoffee"] = math.random(40, 80),
    ["hotchocolade"] = math.random(40, 80),
    ["latte"] = math.random(40, 80),
    ["matchatea"] = math.random(40, 80),
    ["bubbletea"] = math.random(40, 80),
}

Config.ConsumablesEat = {
    ["donut"] = math.random(80, 100),
}
```

{% endcode %}
{% endhint %}

{% 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
["brewedcoffee"] = {
	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),
	},
},
["hotchocolade"] = {
	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),
	},
},
["latte"] = {
	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),
	},
},
["matchatea"] = {
	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),
	},
},
["bubbletea"] = {
	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),
	},
},
["donut"] = {
	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 %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.apx-studios.com/docs/resources/businesses/restaurants/apex-rusty-brown/installation.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
