
JC Multijob
Installing a multijob normally means going through your job center, your boss menu and your admin menu so each one tells the multijob what it just handed out.
- Frameworks
- ESXQBQBOX
- Requires
- ox_liboxmysql
- Languages
- ENES
- Source
- Escrow
- Updated
- 18 days ago
Nothing to edit
Installing a multijob normally means going through your job center, your boss menu and your admin menu so each one tells the multijob what it just handed out. Miss one and jobs from that source never get saved.
JC Multijob picks the job up by itself, wherever it came from. Drop it in, and there is no other resource to touch.
It keeps the grade
A saved job stores the rank the player actually had. Switch back to police and you're the grade you were, not reset to recruit and not handed the top one.
The active job counts as a slot, so the list always reflects what the player really has, and the last job is restored when they log back in.
Duty in the same panel
The active job carries an on and off duty toggle, handled the right way for each framework: the native duty call on QBCore, the qbx_core one on QBox, and the player state plus a statebag on ESX. It's the piece that usually breaks when a server moves between them.
A client can't give itself a job
Switching is a server callback that only accepts a job already in that player's saved list, at the grade stored with it. A modified client sending a job name it never had gets nothing. There's a cooldown between switches, and the menu can be blocked while the player is dead or handcuffed.
Your rules
- A slot limit you set, and you choose what a full list does: refuse the new job, or drop the oldest one to make room
- A blacklist for jobs that should never be saved, and a whitelist when you'd rather name the only ones that can
- Auto-saving can be turned off entirely if you'd rather add jobs through the exports yourself
- A Font Awesome icon per job, with a default for the ones you don't list
- A cooldown between switches, and an optional progressbar and animation instead of an instant swap
- A search box that only appears once a player's list gets long, so the panel stays small for everyone else
Setup
- Drop the folder into your resources
ensure jc-multijobin your server.cfg, after your framework, ox_lib and oxmysql- Start the server
The SQL table installs itself on the first start. The .sql file is in the box if you'd rather run it by hand. That's the whole install.
Compatibility
- Frameworks: QBCore, QBox and ESX Legacy, detected automatically
- Required: oxmysql
- ox_lib is optional. It's used for nicer notifications; comment two lines in the manifest and the script runs without it
- Languages: English and Spanish included
What stays open
The resource is escrow protected, with everything worth editing left open:
config/multijob.lua, the whole configuration: slots, command and keybind, blacklist and whitelist, auto-save behaviour, duty, cooldown, progressbar and the job iconslocales/, every string the script printsclient/framework/andserver/framework/, both bridges, so you can adapt it to a framework that isn't on the list
Server exports to add, remove and read a player's jobs, and a client export to open the panel, so your own scripts can drive it.
Support
Discord: https://discord.com/invite/qvHK4E6Pya
Showcase: https://youtu.be/LX35C2JQz7s
Not sure it fits your setup? Ask in the Discord before buying, I answer everything.
Terms
- Digital product. No refunds once the download has been delivered.
- One purchase covers one server.
- Redistributing, reselling or leaking the resource is not allowed.
- Support covers the script itself, not custom edits to your server.


