Progression, zones, AFK rules, targets, permissions, webhooks and locales for the Advanced Job Center.
Note: Jobs and zones are created in-game from the admin panel and stored in the database — they are not in the config. The config holds server-wide rules. Option names can differ slightly between versions; the shipped
config.luais fully commented.
Config files
| File | Purpose |
|---|---|
config.lua | Framework, target, progression, enforcement, permissions, webhooks, UI. |
locales/en.json, locales/ar.json | Around 680 strings each; Arabic renders right-to-left throughout. |
bridge/ | Framework adapters, including an open slot for a custom framework. |
install.sql | Manual install of the nine tables if auto-install is not possible. |
Framework and target
Config.Framework = 'auto' -- auto | qb | qbox | esx | standalone | custom
Config.Target = 'auto' -- auto | ox_target | qb-target | qs-target | eye-target | none
Config.Interact = {
keybind = 'F6', -- open the tablet anywhere; '' disables it
pressE = true, -- proximity fallback when no target resource is running
pedModel = 'a_m_y_business_03',
pedCoords = vector4(-265.0, -963.6, 31.2, 205.0),
}
Job classes
- Class A — owner-run RP jobs. A contact and a waypoint; the board points players to the owner. No shift tracking.
- Class B — scripted civilian jobs. One admin-drawn polygon zone per job, shift tracking, XP and hours, optional vehicle gate.
Progression
Job Center tracks XP and hours — it does not pay out money. Your economy stays exactly as you built it.
Config.Progression = {
xpPerMinute = 2, -- base XP while on shift inside the zone
hoursRounding = 5, -- minutes; shift time is stored in whole blocks
careerLevels = { 0, 500, 1500, 4000, 8000 }, -- XP thresholds for career levels 1..5
perJobMultiplier = true, -- each job carries its own rate multiplier (set in-game)
}
Requirement gates
Each job can require a minimum XP and a minimum career level. Requirements are re-checked server-side on every shift, so editing a player's XP from the admin panel takes effect immediately.
Enforcement: zones, vehicles and AFK
Config.Enforcement = {
zoneGraceSeconds = 45, -- visible countdown after leaving the zone
safeWindow = 90, -- seconds of inactivity before an AFK check starts
afkStrikes = 3, -- third strike ends the shift
vehicleGate = true, -- vehicle-gated jobs only count in the driver's seat
}
Permissions
Config.Permissions = {
ace = 'venomjobs.admin', -- add_ace group.admin venomjobs.admin allow
frameworkAdmin = true, -- QBCore / Qbox / ESX admin group
jobGrades = { police = 4, sheriff = 4 }, -- job + minimum grade
allowlist = { 'ABC12345' }, -- citizen IDs / identifiers
}
Discord webhooks
Config.Webhooks = {
admin = '', -- job created / edited / deleted, zone drawn, XP adjusted
shift = '', -- clock in / out, XP gained, mission completed
moderation = '', -- AFK strikes, out-of-zone, forced clock-out
}
Missions, leaderboard and inbox
Mission tracking, the live leaderboard and the player inbox are on by default and persisted to the database. Disable any of them with Config.Features if you do not need them:
Config.Features = {
missions = true,
leaderboard = true,
inbox = true,
profilePhoto = true, -- per-player profile photo on the tablet
terminalId = true, -- live per-server terminal identity
}
UI
The tablet is a React NUI with seven accent presets plus a free-hue custom picker:
Config.UI = {
accent = 'lime', -- lime | cyan | violet | amber | rose | slate | white | custom
customHue = 88, -- used when accent = 'custom'
locale = 'en', -- en | ar
}
Admin panel (in-game)
- Create, edit and delete jobs; publish or retire them live — every client updates with no restart.
- Draw or redraw work zones on the map, one polygon per Class B job.
- Reposition the Job Center ped.
- Adjust a player's XP; the change is re-validated on their next shift.
Database
Nine tables are created on first boot (jobs, zones, shifts, XP, missions, leaderboard, inbox, audit, settings). Use install.sql for a manual install and back the tables up before major updates.