Configuration
A complete overview of all configuration options available in config.lua.
1. General & Framework Settings
Lua
--- Framework detection: 'auto' | 'qb' | 'qbx' | 'esx' | 'ox' | 'custom' | 'standalone'
Config.Framework = 'auto'
--- Automated database bootstrap upon resource startup
Config.SqlBootstrap = {
enabled = true,
waitMs = 30000, -- Maximum milliseconds to wait for oxmysql connection
}
--- Local testing flag (allows amending own rank/disciplinary file). Keep false in production!
Config.Dev = false
--- Active UI Color Theme ('yellow' or custom preset key)
Config.UiTheme = 'yellow'
--- Custom UI RGB/Hex Theme Presets
Config.CustomThemePresets = {
-- cyan = { primary = '#00f0ff', primaryRgb = '0, 240, 255' },
}2. Society & Treasury Bridge (Config.SocietyBridge)
Controls how society vault balances are read, deposited, and withdrawn:
| Mode | Target Resource | Notes |
|---|---|---|
finals_banking | finals_banking | Full society banking, deposit/withdraw logging, and balance syncing. |
qb_banking | qb-banking | Uses GetAccountBalance / AddMoney / RemoveMoney. |
qb_management | qb-management | Classic QBCore management account bridge. |
renewed_banking | Renewed-Banking | Uses getAccountMoney / addAccountMoney. |
own_system | Internal MySQL | Uses built-in finals_own_society table for standalone/custom servers. |
Example config:
Lua
Config.SocietyBridge = {
mode = 'finals_banking',
resources = {
qb_banking = 'qb-banking',
qb_management = 'qb-management',
finals_banking = 'finals_banking',
renewed_banking = 'Renewed-Banking',
},
reasons = {
deposit = 'finals_management:boss-deposit',
withdraw = 'finals_management:boss-withdraw',
payroll = 'finals_management:autopay',
},
OwnMysqlTable = 'finals_own_society',
OwnMysqlCreateTable = true,
}3. Management Terminal & Tablet Settings (Config.BossMenu)
Lua
Config.BossMenu = {
enabled = true,
command = 'management', -- Player command to toggle tablet
--- Allow standard employees without boss permissions to view their personal watch and roster
allowEmployeeTablet = true,
--- Merge offline database rows into the roster view
includeOfflineRoster = true,
--- Minimum numeric grade required to inspect society vault balance.
--- Leave nil to auto-detect from grade flags (isboss or bankAuth).
vaultMinGrade = nil,
--- In-world tablet prop and animation while NUI is open
tabletAnim = {
enabled = true,
dict = 'amb@code_human_in_bus_passenger_idles@female@tablet@idle_a',
clip = 'idle_a',
flags = 51,
useProp = true,
propModel = 'prop_cs_tablet',
propBone = 28422,
propPlacement = { -0.05, 0.0, 0.0, 0.0, -90.0, 0.0 },
},
}4. Disciplinary Actions & Badges (Config.Discipline)
Lua
Config.Discipline = {
enabled = true,
maxRedCards = 3, -- Maximum penalty cards an employee can accumulate per job
--- Automated salary deduction penalties applied during payroll:
salaryDeductions = {
enabled = true,
penalties = {
[1] = 10, -- 10% reduction for 1 active card
[2] = 30, -- 30% reduction for 2 active cards
[3] = 100, -- 100% reduction (salary withheld entirely) for 3 active cards
},
notifyDeduction = true,
},
--- Badges available for supervisors to award:
badges = {
-- Appreciation
{ id = 'employee_month', label = 'Employee of the Month', emoji = '🏆', category = 'appreciation' },
{ id = 'fast_responder', label = 'Fast Responder', emoji = '⚡', category = 'appreciation' },
{ id = 'problem_solver', label = 'Problem Solver', emoji = '🧠', category = 'appreciation' },
{ id = 'hard_worker', label = 'Hard Worker', emoji = '🔥', category = 'appreciation' },
{ id = 'trusted_staff', label = 'Trusted Staff', emoji = '💎', category = 'appreciation' },
{ id = 'team_player', label = 'Team Player', emoji = '🤝', category = 'appreciation' },
{ id = 'reliable', label = 'Reliable Employee', emoji = '🛡️', category = 'appreciation' },
{ id = 'never_late', label = 'Never Late', emoji = '🕒', category = 'appreciation' },
-- Fun
{ id = 'coffee_powered', label = 'Coffee Powered', emoji = '☕', category = 'fun' },
{ id = 'slow_working', label = 'Slow But Working', emoji = '🐌', category = 'fun' },
{ id = 'snack_consumer', label = 'Snack Consumer', emoji = '🧃', category = 'fun' },
{ id = 'last_minute_hero', label = 'Last Minute Hero', emoji = '🚨', category = 'fun' },
{ id = 'chaos_manager', label = 'Chaos Manager', emoji = '🤡', category = 'fun' },
{ id = 'internet_survivor', label = 'Internet Survivor', emoji = '🔌', category = 'fun' },
},
}5. On-Site Job Zones (Config.JobZones)
Define polygon coordinates per job. Staff flagged as "On-Site Only" on the tablet will be automatically clocked off duty if they step outside this boundary, pausing their paycheck accrual:
Lua
Config.JobZones = {
police = {
zone = {
vector2(400.00, -962.05),
vector2(507.58, -964.32),
vector2(506.44, -1020.00),
vector2(393.56, -1032.50),
},
},
cardealer = {
zone = {
vector2(-71.59, -1115.15),
vector2(-53.79, -1067.80),
vector2(-3.41, -1084.09),
vector2(-15.91, -1121.21),
},
},
}