OrigenNetwork
Docs

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

VariableTypeDefaultDescription
Config.Frameworkstring'qb-core'Framework to use. Auto-detected at runtime — set this as a fallback only. Accepted values: 'qb-core', 'qbx_core', 'esx'
Config.Inventorystring'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.GroupPermissionsstring[]{ 'god', 'admin', 'superadmin' }ACE groups with full access to the admin panel. Checked via IsPlayerAceAllowed
Config.DebugbooleanfalsePrint verbose logs to the server console (table creation, column additions, etc.)
Config.Languagestring'en'UI language. Accepted values: 'en', 'es'

Notification

VariableTypeDefaultDescription
Config.NotificationPositionstring'top-right'Toast position for in-game notifications. Passed directly to the notification bridge in custom/client.lua

World

VariableTypeDefaultDescription
Config.DistanceRenderfloat60.0Distance in game units at which the machine prop is spawned/despawned for the player
Config.InteractDistancefloat2.5Radius 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.

lua
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

FieldTypeDescription
modelstringGTA V prop model name
labelstringDisplay name shown in the admin panel
interactivebooleanIf false, the prop appears in the admin catalog but cannot be placed as an active vending point

Categories

CategoryBehavior
'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.

FieldTypeDefaultDescription
enabledbooleantrueMaster 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
lua
-- 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.