ActivityManager
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 filesCustomize only
server/sv_bossmenu_public.lua. The private file holds the protected logic and should not be edited.Banking system setup
Set BossMenuPublic.BankingSystem to one of the supported values.
sv_bossmenu_public.lua
BossMenuPublic.BankingSystem = "esx_society"
-- Available values:
-- "auto"
-- "esx_society"
-- "qb_management"
-- "qb-banking"
-- "okok-banking"
-- "snipe-banking"
-- "tgg-banking"
-- "custom_sql"Auto detectionWith
"auto" the script detects the framework and the available banking resources.Banking resource configuration
Adjust only the section related to your selected banking type.
sv_bossmenu_public.lua
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.
sv_bossmenu_public.lua
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 the database.
sv_bossmenu_public.lua
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.
sv_bossmenu_public.lua
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 starts before
activitymanager - If using custom SQL, test the
getBalancequery manually on the DB - Ensure custom queries return the expected aliases (
identifier,job_grade,grade_label) - Restart the resource and check console logs for the detected banking mode
