Skip to main content
Everything lives in config.lua. Edit, then restart nex_bossmenu.

Framework

Config.Framework = 'auto'   -- 'auto' | 'qbx' | 'qb' | 'esx'
auto picks the first framework whose resource is started, preferring qbx_coreqb-corees_extended. Pin a specific one if you run more than one core simultaneously, or want to skip the auto-detect overhead.

Society backend

Config.SocietyBackend = 'auto'
-- 'auto' | 'qb-management' | 'qb-banking' | 'esx_addonaccount'
auto resolves to esx_addonaccount on ESX, and prefers Renewed-Banking / qb-management on QB / Qbox (falls back to qb-banking).

Boss gating

Config.BossGradeNames = { boss = true }
A player is treated as a boss for a society if:
  • the framework reports job.isboss == true (QB / Qbox), or
  • their grade name is in this table (any framework)
Add more names (owner, ceo, manager, etc.) if your jobs use them.

Admin access

Config.Admin = {
    acePermissions = {
        'bossmenu.admin',
        'group.admin',
        'group.superadmin',
        'command.bossmenu_admin',
    },
    esxGroups = { admin = true, superadmin = true },
    qbGroups  = { admin = true, god = true, superadmin = true },
}
Admin status is granted if any of these match. group.admin / group.superadmin are the built-in txAdmin / Cfx ACE groups, so most servers get admin access for free without touching permissions.cfg. See Commands → Permissions for the full breakdown.

Marker & blip

Config.InteractDistance = 1.6     -- distance at which the [E] prompt shows (textui mode)
Config.DrawDistance     = 15.0    -- distance at which the marker starts drawing

Config.Marker = {
    type         = 2,                                                -- chevron-down arrow
    outlineSize  = vector3(0.42, 0.42, 0.42),
    outlineColor = { r = 0, g = 0, b = 0, a = 255 },
    fillSize     = vector3(0.30, 0.30, 0.30),
    fillColor    = { r = 255, g = 255, b = 255, a = 255 },
    zOffset      = 0.0,
    rotate       = true,
    bobUpAndDown = true,
}

Config.Blip = {
    enabled    = true,
    sprite     = 408,
    color      = 5,
    scale      = 0.8,
    shortRange = true,
}
Two DrawMarker passes per frame — a larger black silhouette behind a smaller white fill — gives the floating two-tone outlined arrow look. Tweak sizes / colours / zOffset to taste. The blip is only shown to bosses of the matching job, so the map stays clean for everyone else.

Interaction (text UI vs target)

Config.Interaction = {
    mode = 'textui',                -- 'textui' | 'target'

    textui = {
        key      = 'E',
        keyCode  = 38,              -- INPUT_PICKUP
        label    = '[E] Open Boss Menu',
        position = 'right-center',
    },

    target = {
        icon     = 'fas fa-briefcase',
        label    = 'Open Boss Menu',
        distance = 2.0,
        radius   = 1.0,
    },
}
If target is requested but neither ox_target nor qb-target is started, the client soft-falls back to textui. Marker draw is unaffected by the mode — only the interaction prompt changes.

Hire / transaction gates

Config.HireDistance   = 5.0       -- max metres between boss and candidate at hire time
Config.MaxTransaction = 250000    -- cap on a single withdraw / deposit
Config.PlayerAccount  = 'cash'    -- 'cash' or 'bank' for withdraw/deposit on the player side
HireDistance is re-checked at the moment the boss clicks Hire, not just when the menu opens. Self-fire and self-promote are blocked server-side regardless of UI state.
Config.MenuOptions = {
    balance   = true,
    withdraw  = true,
    deposit   = true,
    employees = true,
    hire      = true,
}
Turn off any tab you don’t want bosses to see. The server-side handlers also no-op for disabled options, so spoofing the NUI can’t bring back a disabled action.

Admin placement

Config.AdminCommand = 'bossmenu_admin'

Config.JobBlacklist = {
    unemployed = true,
    offstate   = true,
}
JobBlacklist filters which jobs appear in the admin placement dropdown. Add anything you don’t want to accidentally place a marker for.

Polling

Config.JobPollMs = 2000
How often the client re-asks the server for the player’s job. Lower it (e.g. 1000) for faster marker / blip refresh after a job change; raise it to save callback traffic on busy servers.

UI

Config.UI = {
    Enabled = true,
    Sounds  = true,   -- open/close/confirm/error/success
}
If Enabled = false, the boss menu falls back to ox_lib menus and notifications. Useful if you’ve built your own HUD style and want everything in ox_lib for consistency.