Skip to main content

Configuration

wasabi_multijob v2 is configured through shared, client, and server config files that merge into a single runtime config table.

tip

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

OptionDescription
Config.DebugEnables verbose lib.print.debug logging.
Config.LanguageLocale file key loaded from locales/*.json.
Config.maxJobsMax jobs per player. false disables the limit.
Config.fallbackJobJob/grade used when the active job is removed.
Config.defaultJobs{ jobName = grade } jobs always shown in the menu.
Config.disableUI.DutyChangeDisables duty toggles from the job menu UI.
Config.blacklistJobs that cannot be added.
Config.bossMenusOptional framework boss menu access points.
Config.toggleDutyZonesOptional duty clock-in/out zones.

Boss menu and duty zone fields

FieldDescription
coordsInteraction position as vec4(x, y, z, heading).
jobJob name required to use the interaction.
labelDisplay 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

OptionDescription
config.interactInteraction backend for boss menus and duty zones.
config.uiColorDashboard accent color.
config.openJobMenu.enabledEnables the /jobs command and keybind.
config.openJobMenu.commandChat command used to open the job menu.
config.openJobMenu.keyKeybind for the job menu. false disables it.
config.openJobMenu.canOpenMenuClient function that must return true to open the menu.
config.jobIconsPer-job Font Awesome icon overrides.
config.defaultJobIconFallback 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