Jobs are the engine of a FiveM roleplay server — police, EMS, mechanic, and the legal and illegal careers that give players a reason to log in. This guide covers how jobs work and how to add them, whether you run ESX, QBCore or QBox.
How jobs work in FiveM
A “job” is a role your framework assigns to a player, with grades (ranks), a paycheck, and permissions that scripts check — only police can cuff, only mechanics can use the lift, and so on. Where jobs are defined depends on your framework:
- ESX — jobs live in the database (the
jobsandjob_gradestables) and a shared config; you add scripts per job. - QBCore / QBox — jobs are defined in the core’s shared jobs file, with QBox using the modern ox ecosystem for interactions.
Two ways to add a job
1. Install a ready-made job script
The fastest route. Download a job resource built for your framework (police, ambulance, mechanic, etc.), add any SQL it includes, register the job with your framework, and ensure it in your server.cfg. Always match the script to your framework — an ESX job won’t work on QBox without a conversion (see ESX vs QBCore vs QBox).
2. Create a custom job
- Register the job in your framework (the jobs config/table) with its grades and salaries.
- Give it a workplace — a duty point, often inside a custom MLO, using
ox_targetzones or markers. - Add the gameplay — what the job actually does (tasks, payouts, items), checking the player’s job server-side.
- Set permissions so only on-duty members of that job can use its features.
Best practices
- Validate server-side. Always check a player’s job and grade on the server, never trust the client — this prevents exploiters granting themselves police powers.
- Use the modern stack. ox_target and ox_lib make job interactions clean and performant.
- Balance the economy. Job payouts drive your server’s economy — tune them so no single job breaks it.
Types of jobs to add
A well-rounded server mixes several job types:
- Whitelisted jobs — police and EMS are usually application/whitelist-only, with their members managed by a boss or admin.
- Open civilian jobs — mechanic, taxi, trucker, fishing — anyone can clock in for income.
- Illegal/gang jobs — drug running, robberies and gang systems that drive conflict RP (validate these especially carefully server-side).
Boss menus, duty and garages
Most job scripts come with the supporting systems that make a job feel complete:
- Boss menu — lets a job’s leader hire/fire, set grades and manage the society bank.
- Duty toggle — players clock on/off so payouts and permissions only apply on-duty.
- Job garages — spawn job vehicles for on-duty members, often placed inside the job’s MLO.
When you add a job, plan these pieces too — a job without a duty toggle or boss menu feels half-finished.
Frequently asked questions
How do I add a job to my FiveM server?
Either install a job script built for your framework, or register a custom job in your framework’s jobs config/table, give it a workplace with ox_target, and add its gameplay — validating the job server-side.
Where are jobs stored in ESX?
In the database (jobs and job_grades tables) plus a shared config.
Can I use an ESX job on QBCore or QBox?
Not directly — jobs are framework-specific and need conversion. Match scripts to your framework.
Ready to play?
Run your own FiveM server with XGamingServer
Spin up an always-on FiveM server your friends can join in minutes — no port-forwarding, no tech headaches.




