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
| File | Purpose |
|---|---|
config.lua | Currency, 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.sql | Manual 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:
cryptois a labelled payment method for roleplay — it still debits a normal framework account you map inConfig.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.