OrigenNetwork
Docs

Configuration · origen_billing

All configurable options live in config.lua (client + server shared) and svconfig.lua (server-only, Discord logs). Both files are in escrow_ignore — edit freely.


General

VariableDefaultDescription
Config.DebugfalsePrint debug messages to the server console
Config.Language'en'Locale file to load from locales/. Options: 'en', 'es'
Config.MaxPendingInvoices10Maximum number of pending invoices a player can have at once
Config.InvoiceDistance3.0Maximum distance (game units) the biller must be from the target to issue an invoice in-person
Config.ExpirationDays30Reserved for future use — not enforced in the current version

Providers

VariableDefaultDescription
Config.BankingProvider'auto'Banking resource to use. 'auto' picks the first detected running resource
Config.NotifyProvider'auto'Notification resource to use. 'auto' picks the first detected running resource

Valid values for Config.BankingProvider: 'auto' · 'qb-banking' · 'renewed-banking' · 'fd_banking' · 'kartik-banking' · 'okokBanking' · 'tgg-banking' · 'tgiann-bank' · 'wasabi_banking' · 'qb-management' · 'custom'

Valid values for Config.NotifyProvider: 'auto' · 'ox_lib' · 'origen_notify' · 'brutal_notify' · 'okokNotify' · 'mythic_notify' · 'lation_ui' · 'r_notify' · 't-notify' · 'wasabi_notify' · 'pNotify' · 'FL-Notify' · 'ZSX_UIV2' · 'custom'


Commands

lua
Config.Commands = {
    OpenBilling      = 'billing',       -- Standard employee panel
    OpenBillingAdmin = 'billingadmin',  -- Global admin panel (staff only)
}

Changes require restarting the resource.


Authorized jobs (seed)

Config.AuthorizedJobs defines the initial jobs inserted into the database on first start. Jobs that already exist in the database are not overwritten.

lua
Config.AuthorizedJobs = {
    ['police'] = {
        label          = 'LSPD',
        societyAccount = 'police',
        canInvoice     = true,
        isBoss         = function(source, jobName)
            return Custom.isJobBoss(source, jobName)
        end,
        commission  = 90.0,  -- % of net amount paid to the author
        societyLoss = 80.0,  -- % deducted from total before commission
    },
}

Payment flow example

Given a $1,000 police invoice with societyLoss = 80 and commission = 90:

StepCalculationResult
Net amount1000 − (1000 × 80%)$200
Author commission200 × 90%$180 → author's bank
Society deposit200 − 180$20 → society account

After the resource has started once, use /billingadmin to manage jobs. Changes to Config.AuthorizedJobs only apply to jobs that do not yet exist in the database.


Discord webhooks (svconfig.lua)

lua
return {
    enabled = true,
    webhooks = {
        ['invoice-created']   = 'YOUR_WEBHOOK_URL',
        ['invoice-paid']      = 'YOUR_WEBHOOK_URL',
        ['invoice-cancelled'] = 'YOUR_WEBHOOK_URL',
        ['commission-paid']   = 'YOUR_WEBHOOK_URL',
    },
}

Set enabled = false to disable all Discord logging.