> For the complete documentation index, see [llms.txt](https://docs.17movement.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.17movement.net/vending-machines/configuration.md).

# ⚙️ Configuration

Most server behavior can be customized from `configs/Config.lua`

### General

| Option                                | Purpose                                             |
| ------------------------------------- | --------------------------------------------------- |
| `Config.Debug`                        | Enables debug output.                               |
| `Config.DevMode`                      | Enables development-only functionality.             |
| `Config.InstallDatabaseAutomatically` | Automatically creates the required database tables. |
| `Config.Lang`                         | Selects the locale file, such as `en` or `pl`.      |

### Interaction

| Option                         | Purpose                                                    |
| ------------------------------ | ---------------------------------------------------------- |
| `Config.UseTarget`             | Uses ox\_target or qb-target when available.               |
| `Config.StandaloneInteraction` | Configures the built-in marker and key interaction system. |

The built-in interaction defaults include:

```lua
Key = 38 -- E
Distance = 2.0
DrawDistance = 12.0
```

Its refresh rate and marker definition are also configurable.

### Machine placement

| Option                         | Purpose                                                                    |
| ------------------------------ | -------------------------------------------------------------------------- |
| `Config.RequireItem`           | Requires an item to place a machine. If disabled, `createvending` is used. |
| `Config.RequireJob`            | Restricts placement to configured jobs and minimum grades.                 |
| `Config.Placement.MinDistance` | Minimum distance between machines. Default: `15.0`.                        |
| `Config.Placement.BlockOnRoad` | Prevents placement on roads.                                               |
| `Config.WhitelistedZones`      | Limits placement to allowed zones when configured.                         |
| `Config.BlacklistedZones`      | Blocks placement inside configured zones.                                  |

### Tablet

| Option                   | Purpose                                                 |
| ------------------------ | ------------------------------------------------------- |
| `Config.Tablet.OpenWith` | Chooses `command` or `item`.                            |
| `Config.Tablet.Command`  | Configurable tablet command. Default: `vendingMachine`. |
| `Config.Tablet.ItemName` | Item used to open the tablet.                           |

### Stock and products

| Option                       | Purpose                                                                                    |
| ---------------------------- | ------------------------------------------------------------------------------------------ |
| `Config.Stash.MaxPerSlot`    | Maximum number of items per one of the machine's 20 slots. `0` or `false` means unlimited. |
| `Config.DefaultProp`         | Fallback product prop.                                                                     |
| `Config.AllowAllProducts`    | Allows any inventory item to be sold.                                                      |
| `Config.BlacklistedProducts` | Case-insensitive blacklist that also blocks wholesaler orders.                             |
| `Config.Products`            | Per-item product configuration.                                                            |

Each entry in `Config.Products` can define:

* `price`
* `minPrice`
* `maxPrice`
* `prop`
* `max`, with a default of 7 product props in a slot
* `box`
* `step`
* `offset`
* `elevatorOffset`
* `holdOffset`
* `holdRotation`
* `onBuy`

### Removing original GTA vending props

`Config.RemoveProps` can remove original GTA vending machine props from the world.

It supports:

* `all`
* `radius`

The configuration contains a list of 12 original props. Custom Vending Machines placed by this resource are never removed by this system.

### Payout and collection

| Option                    | Purpose                                                                                |
| ------------------------- | -------------------------------------------------------------------------------------- |
| `Config.Payout.Account`   | Chooses `cash` or `bank` for collected revenue.                                        |
| `Config.Collect.Duration` | Controls the vending machine door-opening duration during collection, in milliseconds. |

### Wholesaler

`Config.Wholesaler` controls the complete ordering and delivery system, including:

* Payment account
* `BoxSize`
* Product catalog in `Prices`
* Wholesaler ped
* Delivery van, default `speedo`
* Vehicle spawn points
* `returnVehicle`
* Deposit settings
* Blips
* Vehicle return point

The default deposit is $500. By default, abandoning the van for more than 10 minutes causes a 24-hour delivery block.
