# Configuration

#### UI Style switch

You can choose the interface style by selecting one CSS file and naming it style.css:

* Default style: `html/style.css`

<figure><img src="https://3134166133-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVbSFutCNIEkFTeIZcu5W%2Fuploads%2FvJx2SYNdLP7RQIexVA8a%2Fimage.png?alt=media&#x26;token=819dc011-a0e1-42d1-ad90-e7edefed1616" alt=""><figcaption></figcaption></figure>

* Glossy style: `html/style - glossy.css`

<figure><img src="https://3134166133-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVbSFutCNIEkFTeIZcu5W%2Fuploads%2Fnpi9F4JMzt1PzkNkjYHn%2Fimage.png?alt=media&#x26;token=b128ebd4-1915-4235-9e7c-7536669cf96b" alt=""><figcaption></figcaption></figure>

To switch: replace the file named style.css with the desired version (or rename the chosen file to style.css).

#### General settings

* `Config.JobName`, `Config.JobLabel`, `Config.JobGrades`: define the job, label, and ESX grades.
* `Config.SocietyName`, `Config.SocietyLabel`: society account used for finances.
* `Config.Bank`, `Config.Money`: accounts for payments (bank/cash).
* `Config.Locale`: language (`fr`/`en`) for server messages.
* `Config.DefaultWeight`, `Config.MaxWeight`, `Config.MoreCapacityInside`: inventory weight rules and bonus inside Burger Shot.
* `Config.MultiplicatorEarning`, `Config.SocietyCommissionPercent`, `Config.EmployeeCommissionPercent`: revenue split and multipliers.
* `Config.UseF6`: enable/disable the F6 management menu.

#### Permissions

* `Config.AdminGroups` (ESX), `Config.AdminPermissions` (QBCore): admin groups.
* `Config.PermissionLevels`: per-action permission lists (view orders, force cancel, duty list).

#### Zones & targets

* `Config.BurgerShotPlace`, `Config.BurgerShotPlaceMinZ/MaxZ`: polyzone defining the restaurant for weight bonus.
* `Config.Spots`: interaction spots (service, shop, employee panel, boss menu) with coords/radius/label. Those are not optional service, shop, employee panel, boss menu need to be here.

#### Deliveries ( WIP )

* `Config.DeliveryLocations`: list of delivery points.
* `Config.DeliveryPayMin/Max`: payout range.
* `Config.DeliveryPedModel`, `Config.DeliveryPedScenario`: delivery NPC model/scenario.
* `Config.DeliveryItems`: items required per delivery mission (what the player must carry).
* `Config.DeliveryCooldown`: cooldown between deliveries.

#### NPC vendor

* `Config.NPC`: enables the public NPC shop, model, coords, heading, scenario
* the option `priceMultiplier` is here to increase the price of the item from the config one

#### Customer kiosks

* `Config.CustomerKiosks`: list of in-world terminals (id, coords, radius, label, icon) for players to place orders. Minimum 1 Kiosks is needed.

```lua
Config.CustomerKiosks = {{
    id = 'kiosk_main_1',
    coords = vector3(-1189.169189, -887.408691, 14),
    radius = 1,
    label = 'Order Terminal 1',
    icon = 'fa-solid fa-shopping-cart'
}}
```

#### Craft stations

* `Config.CraftStations`: each station has an id, name, coords/radius, a label, allowed recipe ids, and an animation.\
  Use case: restrict which recipes can be crafted at a given station (e.g., grill, fryer, drinks, assembly).
* To add/modify a station: duplicate an entry, give it a unique `id`, set coords/radius/label, pick `allowedRecipes`, and set an animation dict/anim/flag.
* The `allowedRecipes` value have the name of items into the Config.CraftingRecipes -> id&#x20;

```lua
Config.CraftStations = {{
    id = 'grill',
    name = 'Grill Station',
    coords = vector3(-1195.539307, -897.491394, 13.703711),
    radius = 1,
    label = 'Grill Station - Burgers & Desserts',
    allowedRecipes = {'burger', 'burger_deluxe', 'cookie'},
    animation = {
        dict = 'amb@prop_human_bbq@male@base',
        anim = 'base',
        flag = 16
    }
}, {
    id = 'fryer',
    name = 'Fryer',
    coords = vector3(-1196.030884, -900.299866, 13.582122),
    radius = 1,
    label = 'Fryer - Fries & Fried Foods',
    allowedRecipes = {'frites', 'nuggets', 'oignon_rings'},
    animation = {
        dict = 'mp_common',
        anim = 'givetake1_a',
        flag = 16
    }
}, {
    id = 'drinks',
    name = 'Drinks Station',
    coords = vector3(-1200.466187, -896.468628, 14),
    radius = 1,
    label = 'Drinks Machine',
    allowedRecipes = {'coca', 'sprite', 'milkshake', 'biere'},
    animation = {
        dict = 'mp_common',
        anim = 'givetake1_a',
        flag = 16
    }
}, {
    id = 'assembly',
    name = 'Assembly Table',
    coords = vector3(-1201.167603, -895.227173, 13.797116),
    radius = 1.25,
    label = 'Assembly - Menus & Trays',
    allowedRecipes = {'menu_burger', 'menu_deluxe', 'plateau_famille'},
    animation = {
        dict = 'anim@amb@clubhouse@tutorial@bkr_tut_ig3@',
        anim = 'machinic_loop_mechandplayer',
        flag = 16
    }
}}

```

#### Crafting recipes

* `Config.CraftingRecipes`: defines every craftable food/drink/menu.
  * Fields: `id`, `outputItem`, `hunger`, `thirst`, `isInNPC` (if sold by NPC), `price` (price into the kiosks), `category`, `label`, `description`, `icon`, `outputQty`, `craftTime`, and `requires` (ingredients item from Config.ShopItems).

#### Shop items&#x20;

* `Config.ShopItems`: employee-only ingredients shop list (item, label, price, description, icon).\
  These items are used by the staff they are needed for crafting.

#### How to sell item via the NPC

* Any recipe with `isInNPC = true` is offered by the public NPC at `price * Config.NPC.priceMultiplier`.\
  The NPC is not available when a burgershot employee is on duty

#### Commands (related to items)

* `/bs_gen_oxitems` (console only): generates Ox Inventory entries from `Config.CraftingRecipes` and `Config.ShopItems` using your data.

#### Notes on props/animations (Ox items generation)

* Drinks vs food use different default props/animations and use times when generating Ox entries.
* Hunger/thirst values come from each recipe (`hunger`, `thirst`).
