Limited time Limited time: 20% off every script
Docs/Advanced Billing System/Config

Config

Taxes, late fees, reminders, payment methods, layouts and themes — all configured in the open config.

Note: The snippets below mirror the structure of the shipped config.lua. Option names can differ slightly between versions — the file is fully commented, so treat it as the source of truth.

Config files

FilePurpose
config.luaCurrency, taxes, fees, reminders, payment methods, permissions, UI.
locales/Every string on the interface and on receipts.
html/Open UI layer: themes and invoice layouts are CSS-driven.
install.sqlManual table install if auto-install is not possible.

Currency and taxes

Config.Currency = {
    symbol   = '$',
    position = 'prefix',       -- prefix | suffix
    decimals = 2,
}

Config.Tax = {
    enabled = true,
    rate    = 8.5,             -- percent, added on top of the invoice total
    label   = 'VAT',
}

Payment methods, partial payments and discounts

Config.Payments = {
    methods        = { 'cash', 'bank', 'card', 'crypto' },   -- remove the ones you do not use
    allowPartial   = true,      -- the payer can pay part of an invoice
    minimumPartial = 10,        -- smallest partial payment
    allowDiscounts = true,      -- the issuer can apply a % or fixed discount
    maxDiscount    = 50,        -- percent
}

Tip: crypto is a labelled payment method for roleplay — it still debits a normal framework account you map in Config.Accounts.

Late fees and due dates

Config.LateFees = {
    enabled     = true,
    gracePeriod = 3,           -- days after the due date before a fee applies
    rate        = 5,           -- percent of the open amount, applied once per period
    period      = 7,           -- days between repeated fees
    maxFees     = 3,
}

Config.Invoices = {
    defaultDueDays = 7,
    numberFormat   = 'INV-{year}-{seq}',
}

Payment reminders

Config.Reminders = {
    enabled      = true,
    interval     = 24,         -- hours between reminders for an unpaid invoice
    maxReminders = 3,
    notifyOffline = true,      -- queue the reminder until the payer is online
}

Who can issue invoices

Config.Permissions = {
    personalInvoices = true,                       -- any player can bill another player
    businessJobs     = { 'mechanic', 'police', 'ambulance', 'realestate' },
    businessAccount  = true,                       -- pay into the job's society account
    adminPermission  = 'venombilling.admin',
}

Layouts and themes

Four invoice layouts and six UI themes ship with the script. Both are plain CSS in html/, so you can add your own.

Config.UI = {
    theme  = 'neon-lime',      -- midnight | neon-lime | rose-gold | ghost | ember | custom
    layout = 'modern',         -- classic | modern | compact | minimal
    accent = '#a9f60e',        -- used when theme = 'custom'
    openCommand = 'billing',
    openKey     = 'F7',        -- leave empty to disable the keybind
}

Receipt branding

Config.Receipt = {
    logo       = 'https://your-cdn.example/logo.png',
    footer     = 'Thank you for your business.',
    primary    = '#a9f60e',
    showTaxId  = true,
}

Dashboard and filters

The dashboard shows live totals for total, paid, pending and overdue, and the list can be filtered by All, Pending, Paid, Overdue, Recent and Clients. Set Config.Dashboard.recentDays to control what counts as recent.

Database

Tables are created on first boot. Invoices, payments, reminders and receipt settings are stored per server; nothing is written to player files. Back up the tables before major updates.

Localization

Set Config.Locale and edit the files under locales/. Currency formatting follows Config.Currency, not the locale.