FiveM ESX Job & Salary Builder

Build an ESX job definition with grades and salaries. Outputs ready-to-run SQL INSERT statements for the jobs and job_grades tables, plus an optional config.lua snippet.

Quick-load example jobs

Job Info

Grades

0
$
1
$
2
$
3
$
4
$
5
$

Grade 0 is lowest rank. Grades are numbered in the order listed above.

Output options

SQL — jobs & job_grades

-- ── ESX Job SQL ─────────────────────────────────────────────
-- Generated by DustBowl.Games ESX Job Builder
-- https://dustbowl.games/tools/fivem-esx-job

-- Remove existing entries for this job (safe re-run)
DELETE FROM `job_grades` WHERE `job_name` = 'police';
DELETE FROM `jobs` WHERE `name` = 'police';

-- Insert job
INSERT INTO `jobs` (`name`, `label`) VALUES
  ('police', 'Police Department');

-- Insert job grades
INSERT INTO `job_grades` (`job_name`, `grade`, `name`, `label`, `salary`, `skin_male`, `skin_female`) VALUES
  ('police', 0, 'cadet', 'Cadet', 1200, '{}', '{}'),
  ('police', 1, 'officer', 'Officer', 1800, '{}', '{}'),
  ('police', 2, 'detective', 'Detective', 2400, '{}', '{}'),
  ('police', 3, 'sergeant', 'Sergeant', 3000, '{}', '{}'),
  ('police', 4, 'lieutenant', 'Lieutenant', 4000, '{}', '{}'),
  ('police', 5, 'chief', 'Chief', 5500, '{}', '{}');

config.lua snippet

-- config.lua snippet — place inside your resource's Config table
-- Job: Police Department

Config.DefaultDuty = true -- players spawn on-duty for this job

Config.Jobs = {
	['police'] = {
		label = 'Police Department',
		defaultDuty = true,
		grades = {
			[0] = { name = 'cadet', label = 'Cadet', salary = 1200 },
			[1] = { name = 'officer', label = 'Officer', salary = 1800 },
			[2] = { name = 'detective', label = 'Detective', salary = 2400 },
			[3] = { name = 'sergeant', label = 'Sergeant', salary = 3000 },
			[4] = { name = 'lieutenant', label = 'Lieutenant', salary = 4000 },
			[5] = { name = 'chief', label = 'Chief', salary = 5500 },
		},
	},
}
How to apply these to your ESX server

Run the SQL against your server's database (using HeidiSQL, phpMyAdmin, or the oxmysql query runner). The jobs and job_grades tables are created by ESX's default SQL on first install.

After inserting, restart es_extended (or the whole server) so ESX reloads the job cache from the database.

To assign a player to the new job in-game, use: ESX.SetPlayerJob(xPlayer, 'police', 5)

Reference: ESX Framework docs

Private FiveM hosting

Run your own FiveM server.

Rent a private FiveM server on real hardware — full control-panel access, your mods, your configs, your rules. It's your server; run it your way.

Rent a FiveM server Real hardware · Full control panel · 98% SLA

Don't want to run it yourself? Our managed services & consulting team will set it up and keep it running for you — game servers, Windows, Linux, and cloud, from 10+ years of MSP work.