Configuration
wasabi_multijob v2 is configured through shared, client, and server config files that merge into a single runtime config table.
After editing boss menu or duty zone coordinates, restart the resource and test in-game with your selected interact backend (ox_target, qb-target, or drawText).
config/shared/config.lua
Shared settings used by both client and server.
Config = {}
-- Enables verbose debug logging via lib.print.debug.
Config.Debug = false
-- Locale: en, de, es, fr, pt, nl, it, pl, cs, da, cn, tw, jp, ko, hi
Config.Language = 'en'
-- Maximum jobs per player. Set to false to disable the limit.
Config.maxJobs = 4
-- Job assigned when the active job is removed.
Config.fallbackJob = {
job = 'unemployed',
grade = 0,
}
-- Jobs always present in the menu. Cannot be removed through the UI.
Config.defaultJobs = {
['trucker'] = 0,
['taxi'] = 0,
}
-- Disable parts of the built-in UI.
Config.disableUI = {
DutyChange = false, -- Prevent duty toggles from the job menu
}
-- Jobs that can never be added through the UI or exports.
Config.blacklist = {
['prisoner'] = true,
}
-- Optional boss menu access points.
-- Routes through bridge.openBossMenu() -> esx_society / qb-bossmenu / qbx_management.
Config.bossMenus = {
enabled = false,
label = '[E] - Access Boss Menu',
key = 38,
distance = 2.0,
locations = {
{ coords = vec4(-576.11, -936.61, 28.7, 140), job = 'police', label = 'POLICE' },
{ coords = vec4(334.95, -594.01, 43.28, 140), job = 'ambulance', label = 'EMS' },
},
}
-- Clock-on / clock-off interaction zones.
Config.toggleDutyZones = {
enabled = true,
labels = {
clockoff = '[E] - Clock Off(%s)',
clockon = '[E] - Clock On(%s)',
},
key = 38,
distance = 2.0,
locations = {
{ coords = vec4(-576.11, -936.61, 28.7, 140), job = 'police', label = 'POLICE' },
},
}
Shared config reference
| Option | Description |
|---|---|
Config.Debug | Enables verbose lib.print.debug logging. |
Config.Language | Locale file key loaded from locales/*.json. |
Config.maxJobs | Max jobs per player. false disables the limit. |
Config.fallbackJob | Job/grade used when the active job is removed. |
Config.defaultJobs | { jobName = grade } jobs always shown in the menu. |
Config.disableUI.DutyChange | Disables duty toggles from the job menu UI. |
Config.blacklist | Jobs that cannot be added. |
Config.bossMenus | Optional framework boss menu access points. |
Config.toggleDutyZones | Optional duty clock-in/out zones. |
Boss menu and duty zone fields
| Field | Description |
|---|---|
coords | Interaction position as vec4(x, y, z, heading). |
job | Job name required to use the interaction. |
label | Display label. For duty zones, %s is replaced with this label. |
ESX boss menu note
On ESX, configured boss menu locations call esx_society:openBossMenu through the framework bridge. If you still use stock esx_society markers elsewhere, you can either disable them and rely on Config.bossMenus, or leave both in place if you want duplicate access points.
config/client/config.lua
Client-facing UI, interaction, and menu open settings.
local config = {}
-- Interact backend for boss menus and duty zones.
-- Valid values: 'ox_target' | 'qb-target' | 'drawText'
config.interact = 'ox_target'
-- UI accent color (#RRGGBB or #RGB).
config.uiColor = '#29b181'
config.openJobMenu = {
enabled = true,
command = 'jobs',
key = 'F5', -- set to false to disable the keymap
canOpenMenu = function()
if LocalPlayer.state.isDead then
return false
end
return true
end,
}
-- Font Awesome icons shown per job in the UI.
config.jobIcons = {
police = 'fa-solid fa-user-shield',
ambulance = 'fa-solid fa-truck-medical',
mechanic = 'fa-solid fa-wrench',
}
config.defaultJobIcon = 'fa-solid fa-briefcase'
Client config reference
| Option | Description |
|---|---|
config.interact | Interaction backend for boss menus and duty zones. |
config.uiColor | Dashboard accent color. |
config.openJobMenu.enabled | Enables the /jobs command and keybind. |
config.openJobMenu.command | Chat command used to open the job menu. |
config.openJobMenu.key | Keybind for the job menu. false disables it. |
config.openJobMenu.canOpenMenu | Client function that must return true to open the menu. |
config.jobIcons | Per-job Font Awesome icon overrides. |
config.defaultJobIcon | Fallback icon for jobs without a custom entry. |
:::warning Breaking change from v1
The old per-feature interactType = 'textui' | 'target' option has been replaced with a single config.interact value that applies to both boss menus and duty zones.
:::
config/server/config.lua
Server-side update check setting.
local config = {}
config.CheckForUpdates = true