A multijob system transforms how jobs work on your server โ instead of players being stuck in one role, they can hold several and switch between them from a menu. This guide covers setting one up cleanly on QBCore or ESX.
What a multijob system does
Out of the box, most frameworks let a player hold one job at a time. A multijob system adds a layer on top that:
- Lets players own multiple jobs and switch between them on demand
- Shows each job's grade and salary
- Handles duty toggling
- Validates server-side that players only access jobs they actually own
It's a quality-of-life upgrade that makes your server feel far more flexible.
Step 1: Choose a quality multijob script
Before setup, pick the right script. The essentials (covered in our best multijob guide):
- Server-side validation โ non-negotiable for security
- Framework support matching your server (or dual-framework)
- Good performance โ near-zero idle resmon
- An open config so you can tailor it
Step 2: Install the resource
Follow the standard install process:
- Place the resource folder in your
resourcesdirectory. - Add
ensure resource-nametoserver.cfg, after your framework andox_lib. - Run any included SQL file if the script stores job ownership in the database.
- Confirm dependencies (
oxmysql,ox_lib, framework) are present and load first.
Step 3: Configure it
Open the config and set up:
- Which jobs are available through the multijob menu
- How players acquire jobs (job centers, boss hiring, admin grants)
- The keybind or command to open the menu
- Duty behavior โ whether certain jobs require a station duty point
- UI theme to match your server
Take time here โ a well-configured multijob fits your server's economy and roleplay rules.
Step 4: Make sure your jobs exist
The multijob system switches between jobs that already exist in your framework. Ensure the jobs you want available are properly defined (see how to add a job to QBCore). The multijob menu surfaces and manages these โ it doesn't replace your job definitions.
Step 5: Test the full flow
- Restart and watch the console for errors.
- Give a test player a couple of jobs.
- Open the menu and confirm switching works, with correct grade/salary display.
- Test duty toggling.
- Try to exploit it โ attempt to switch to a job the player doesn't own. A secure script will block this server-side.
That last test is the important one. If you can grant yourself an unowned job, the script isn't validating properly โ don't run it on a live server.
Common setup issues
- Menu won't open โ check the keybind/command config and that the resource started.
- Jobs missing from the menu โ confirm they're defined in your framework and listed in the config.
- Switching doesn't stick โ often a database/SQL step was skipped.
- Duty issues โ check duty-point configuration for station-locked jobs.
The easy path
Setting up a multijob is much smoother with a script built to be clean and well-documented. Our Viper Multi-Job FiveM multijob script is designed for exactly this: dual QBCore/ESX support with auto-detection, one-click switching with grade and salary, built-in duty toggling (including station-locked duty), server-side anti-exploit validation, a re-themeable UI, and four languages โ all with clear docs and Discord support.