ScriptsAboutBlogToolsKnowledge BaseReviewsFAQBasketDocsSupport
Tutorials

How to Set Up a Multijob Script in FiveM (QBCore & ESX)

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:

  1. Place the resource folder in your resources directory.
  2. Add ensure resource-name to server.cfg, after your framework and ox_lib.
  3. Run any included SQL file if the script stores job ownership in the database.
  4. 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

  1. Restart and watch the console for errors.
  2. Give a test player a couple of jobs.
  3. Open the menu and confirm switching works, with correct grade/salary display.
  4. Test duty toggling.
  5. 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.

Set up Viper Multi-Job on your server โ†’

Premium FiveM scripts for QBCore & ESX

Viper Development builds escrow-protected, dual-framework scripts that install clean and run without dragging your server down.

Keep reading

Related guides