Boss Menu
Guide for configuring sv_bossmenu_public.lua: company bank integration, employee SQL queries, and how to add new/custom systems safely.
Public vs Private Files
Customize only: server/sv_bossmenu_public.lua
Banking System Setup
Set BossMenuPublic.BankingSystem to one of the supported values.
BossMenuPublic.BankingSystem = "esx_society"
-- Available values:
-- "auto"
-- "esx_society"
-- "qb_management"
-- "qb-banking"
-- "okok-banking"
-- "snipe-banking"
-- "tgg-banking"
-- "custom_sql"Tip: with
"auto" the script detects framework + available resources.Banking Resource Configuration
Adjust only the section related to your selected banking type.
BossMenuPublic.BankingConfig = {
esx_society = {
accountPrefix = "society_", -- society_police, society_mechanic...
},
qb_management = {
resourceName = "qb-management", -- or "qbx_management"
},
["qb-banking"] = {},
["okok-banking"] = {},
["snipe-banking"] = {},
["tgg-banking"] = {}
}Add a New Banking System (Custom SQL)
If your banking is not in the built-in list, use "custom_sql" and map your table/columns.
BossMenuPublic.BankingSystem = "custom_sql"
BossMenuPublic.BankingConfig.custom_sql = {
getBalance = "SELECT amount FROM jobs WHERE name = '{job_name}' LIMIT 1",
balanceColumn = "amount",
addMoney = "UPDATE jobs SET amount = amount + {amount} WHERE name = '{job_name}'",
removeMoney = "UPDATE jobs SET amount = amount - {amount} WHERE name = '{job_name}'",
}Supported placeholders: {job_name}, {amount}
Employee SQL Presets
Configure how hire/fire/grade/offline payments are saved in database.
BossMenuPublic.QueryPreset = "esx_legacy"
-- Available presets:
-- "esx_legacy"
-- "qbcore"
-- "custom"Add a New SQL Schema (Custom Queries)
Use QueryPreset = "custom" and define all required operations.
BossMenuPublic.QueryPreset = "custom"
BossMenuPublic.Queries = {
hire = "UPDATE my_users SET job = '{job_name}', rank = {grade} WHERE id = '{identifier}'",
fire = "UPDATE my_users SET job = 'unemployed', rank = 0 WHERE id = '{identifier}'",
changeGrade = "UPDATE my_users SET rank = {grade} WHERE id = '{identifier}'",
listEmployees = "SELECT id as identifier, name, rank as job_grade, rank_name as grade_label FROM my_users WHERE job = '{job_name}'",
listGrades = "SELECT grade, label FROM my_grades WHERE job = '{job_name}' ORDER BY grade ASC",
offlinePayment = "UPDATE my_users SET bank = bank + {amount} WHERE id = '{identifier}'",
}Required keys: hire, fire, changeGrade, listEmployees, listGrades, offlinePayment
Query Placeholders
{identifier}→ player identifier (license/citizenid){job_name}→ job name (police, mechanic...){grade}→ numeric grade{grade_label}→ grade text label{amount}→ money amount
Verification Checklist
- Set one banking type only in
BankingSystem - Verify your target resource is started before
activitymanager - If using custom SQL, test
getBalancequery manually on DB - Ensure custom queries return expected aliases (
identifier,job_grade,grade_label) - Restart resource and check server console logs for detected banking mode
