Skip to content
NUIRO STUDIOS / DOCUMENTATION

Configuration ​

Edit the existing fields in config.lua, then apply them during your normal resource maintenance process. The examples below are settings from the inspected implementation, not replacements for the entire file.

App identity ​

lua
Config.App = {
    id = 'nurio_multijob',
    name = 'Employment',
    tagline = 'Los Santos Labor Office',
    description = 'Clock in, track pay, and run your crew',
    developer = 'Nurio',
    defaultApp = true,
    size = 28000,
}

Name, tagline, description and developer are display text. Keep id unique across LB Phone custom apps. Changing a resource folder name, app ID and SQL table names are separate changes; a branding edit should not silently rename persistent tables.

Job rules ​

SettingSupplied valuePurpose
OffDutyJob{ name = 'unemployed', grade = 0 }Framework job used when clocked out
MaxJobs7Saved-job limit for new additions
SwitchCooldown8Seconds between successful clock changes
HireDistance12.0Maximum nearby-hiring distance in metres
RefreshMs30000App refresh interval in milliseconds
MaxTransaction500000Maximum amount in one society transfer
DepositAccount'bank'Character account used for society deposits
WithdrawAccount'bank'Character account receiving society withdrawals

Blacklist, DutyLock and Locked are maps of exact framework job names:

lua
Config.Blacklist = { prisoner = true }
Config.DutyLock = {}
Config.Locked = {}
  • Blacklist: excludes jobs from saving, display and taking them through the app. The off-duty job is also treated as excluded from saved employment.
  • DutyLock: prevents a player from clocking out or switching away while the matching job is active; it also prevents quitting that saved job.
  • Locked: prevents quitting a saved job without imposing the same active-duty switch restriction.

An empty map adds no restrictions of that type.

Public openings and tile colors ​

The supplied openings list is empty. Add an existing framework job and grade to expose it publicly:

lua
Config.Openings = {
    { job = 'miner', grade = 0,
      description = 'Mine materials and sell what you pull out of the ground.' },
}

This example requires a real miner job and grade 0 in your framework. It does not create those definitions.

Config.JobLook optionally overrides tile codes and hues:

lua
Config.JobLook = {
    police = { code = 'PD', hue = 250 },
}

Jobs without an override receive a stable color derived from their name.

Paycheck modes ​

lua
Config.Paycheck = {
    mode = 'track',
    interval = 15 * 60,
    account = 'bank',
    offDutyAmount = 0,
    fromSociety = false,
}
ModeMoney movementDisplay/statistics
trackDoes not pay moneyRecords configured salary cycles and updates the pay display
payThis resource pays the salaryRecords the salary it processes
offNo payments from this loopNo paycheck ring or earnings updates from this loop

interval is in seconds and is clamped to at least 30 seconds. Match it to your framework cycle in track mode; ESX paycheck intervals commonly use milliseconds and QB's timeout uses minutes, so convert the configured value rather than copying it blindly.

In pay mode, disable the other paycheck mechanism for the same salary before enabling this one. account selects the payout account. offDutyAmount = 0 is the supplied off-duty amount; nil uses the configured off-duty job grade's salary.

fromSociety applies only in pay mode. When enabled for an eligible working job, the society account must exist and cover the wage; otherwise that wage cycle is skipped and the player is notified. In track mode it does not debit the society account.

Bridge selection ​

lua
Config.bridge = {
    framework = 'auto',
    notify = 'auto',
    society = 'auto',
    customNotify = { event = 'nurio-multijob:customNotify' },
}

Framework IDs are esx, qb and qbx. Society IDs are auto, esx, qb, management, renewed, okok, custom and off. See Integrations for resource names, detection order and custom adapters.

Nuiro StudiosTHOUGHTFUL RESOURCES. MEMORABLE ROLEPLAY.Nuiro Studios operates independently and is not affiliated with Cfx.re, Rockstar Games, or Take-Two Interactive.