Configuration · origen_vendings
All client-side configuration lives in config.lua. Server-side logging configuration lives in svconfig.lua. Both files are excluded from escrow and can be freely edited.
config.lua
General
| Variable | Type | Default | Description |
|---|---|---|---|
Config.Framework | string | 'qb-core' | Framework to use. Auto-detected at runtime — set this as a fallback only. Accepted values: 'qb-core', 'qbx_core', 'esx' |
Config.Inventory | string | 'auto' | Inventory provider. Use 'auto' to let the resource detect it, or force a specific one: 'ox_inventory', 'qb-inventory', 'qs-inventory', 'ps-inventory', 'origen_inventory', 'codem-inventory', 'tgiann-inventory', 'core_inventory' |
Config.GroupPermissions | string[] | { 'god', 'admin', 'superadmin' } | ACE groups with full access to the admin panel. Checked via IsPlayerAceAllowed |
Config.Debug | boolean | false | Print verbose logs to the server console (table creation, column additions, etc.) |
Config.Language | string | 'en' | UI language. Accepted values: 'en', 'es' |
Notification
| Variable | Type | Default | Description |
|---|---|---|---|
Config.NotificationPosition | string | 'top-right' | Toast position for in-game notifications. Passed directly to the notification bridge in custom/client.lua |
World
| Variable | Type | Default | Description |
|---|---|---|---|
Config.DistanceRender | float | 60.0 | Distance in game units at which the machine prop is spawned/despawned for the player |
Config.InteractDistance | float | 2.5 | Radius in game units within which the [E] prompt appears and the machine can be opened |
Prop Catalog
Config.PropCatalog defines the available prop categories and their associated GTA models. This controls what props admins can assign to vending machine groups.
Config.PropCatalog = {
{
category = 'drinks',
label = 'Bebidas',
props = {
{ model = 'prop_vend_soda_01', label = 'Máquina eCola', interactive = true },
{ model = 'prop_vend_soda_02', label = 'Máquina Sprunk', interactive = true },
{ model = 'prop_vend_fridge01', label = 'Refrigerador de bebidas', interactive = true },
{ model = 'prop_vend_water_01', label = 'Máquina de agua', interactive = true },
{ model = 'sf_prop_sf_vend_drink_01a', label = 'Máquina bebidas (The Contract)', interactive = true },
{ model = 'ch_chint10_vending_smallroom_01', label = 'Máquina vending (Casino)', interactive = true },
},
},
{
category = 'snacks',
label = 'Snacks',
props = {
{ model = 'prop_vend_condom_01', label = 'Máquina vending compacta', interactive = true },
{ model = 'prop_vend_snak_01_tu', label = 'Máquina de snacks (variante)', interactive = true },
},
},
{
category = 'coffee',
label = 'Café',
props = {
{ model = 'prop_vend_coffe_01', label = 'Cafetera Bean Machine (A)', interactive = true },
{ model = 'p_ld_coffee_vend_s', label = 'Cafetera móvil', interactive = true },
},
},
{
category = 'cigarettes',
label = 'Cigarrillos',
props = {
{ model = 'prop_vend_fags_01', label = 'Máquina de cigarrillos', interactive = true },
{ model = 'v_ret_247_cigs', label = 'Exhibidor de cigarrillos', interactive = true },
},
},
}Prop entry fields
| Field | Type | Description |
|---|---|---|
model | string | GTA V prop model name |
label | string | Display name shown in the admin panel |
interactive | boolean | If false, the prop appears in the admin catalog but cannot be placed as an active vending point |
Categories
| Category | Behavior |
|---|---|
'drinks', 'snacks', 'coffee', 'cigarettes' | Standard — props are auto-assigned when a group is created or its category changes. Admins cannot manually add or remove individual props |
'custom' | Groups start with no props. Admins can manually assign any interactive prop from any category listed in the catalog |
To add more props, append entries to any existing category or add a new category block. Custom props must be interactive = true to be placeable.
svconfig.lua
Controls Discord webhook logging. This file runs server-side only and is excluded from escrow.
| Field | Type | Default | Description |
|---|---|---|---|
enabled | boolean | true | Master toggle. Set to false to disable all Discord logging |
webhooks['group-created'] | string | 'YOUR_WEBHOOK_URL' | Fires when an admin creates a new vending group |
webhooks['group-updated'] | string | 'YOUR_WEBHOOK_URL' | Fires when an admin updates a vending group |
webhooks['group-deleted'] | string | 'YOUR_WEBHOOK_URL' | Fires when an admin deletes a vending group |
webhooks['item-added'] | string | 'YOUR_WEBHOOK_URL' | Fires when an item is added to a group |
webhooks['item-updated'] | string | 'YOUR_WEBHOOK_URL' | Fires when an item is updated in a group |
webhooks['item-removed'] | string | 'YOUR_WEBHOOK_URL' | Fires when an item is removed from a group |
webhooks['machine-created'] | string | 'YOUR_WEBHOOK_URL' | Fires when a vending machine is placed |
webhooks['machine-updated'] | string | 'YOUR_WEBHOOK_URL' | Fires when a vending machine is updated |
webhooks['machine-deleted'] | string | 'YOUR_WEBHOOK_URL' | Fires when a vending machine is deleted |
-- svconfig.lua
return {
enabled = true,
webhooks = {
['group-created'] = 'https://discord.com/api/webhooks/...',
['group-updated'] = 'https://discord.com/api/webhooks/...',
['group-deleted'] = 'https://discord.com/api/webhooks/...',
['item-added'] = 'https://discord.com/api/webhooks/...',
['item-updated'] = 'https://discord.com/api/webhooks/...',
['item-removed'] = 'https://discord.com/api/webhooks/...',
['machine-created'] = 'https://discord.com/api/webhooks/...',
['machine-updated'] = 'https://discord.com/api/webhooks/...',
['machine-deleted'] = 'https://discord.com/api/webhooks/...',
},
}You can use the same webhook URL for multiple events, or a different channel per event type. Leaving a value as 'YOUR_WEBHOOK_URL' with enabled = true will cause a failed HTTP request for that event — replace all values before going live.