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
| Variable | Default | Description |
|---|---|---|
Config.Debug | false | Print debug messages to the server console |
Config.Language | 'en' | Locale file to load from locales/. Options: 'en', 'es' |
Config.MaxPendingInvoices | 10 | Maximum number of pending invoices a player can have at once |
Config.InvoiceDistance | 3.0 | Maximum distance (game units) the biller must be from the target to issue an invoice in-person |
Config.ExpirationDays | 30 | Reserved for future use — not enforced in the current version |
Providers
| Variable | Default | Description |
|---|---|---|
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
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.
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:
| Step | Calculation | Result |
|---|---|---|
| Net amount | 1000 − (1000 × 80%) | $200 |
| Author commission | 200 × 90% | $180 → author's bank |
| Society deposit | 200 − 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)
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.