Add jobs
Adding new jobs to rcore_dispatch is straightforward. Navigate to configs/sh_config.lua
and modify the CONFIG.JOBS
table to include your new job.
Job Configuration Structure
CONFIG.JOBS = {
['police'] = {
Jobname = 'police', -- The name used by the framework to recognize the job.
GlobalFrequency = 900, -- The frequency used for the global radio, this value should be unique for each job. If you are not using the dispatch radio just leave it.
Ispolice = true, -- Specify if the job is the police one.
Ranks = { -- Include every job rank, each rank has an index that should correspond with the integer used by the framework to recognize each one.
[0] = 'Recruit',
[1] = 'Officer',
[2] = 'Sergeant',
[3] = 'Lieutenant',
[4] = 'Captain',
},
Blips = { -- Each vehicle type has a blip, and no vehicle is equals to 'none'. Every icon should be an svg.
['automobile'] = 'https://cdn.discordapp.com/attachments/966004293041807362/1092758148515934218/police-car.svg',
['bike'] = 'https://cdn.discordapp.com/attachments/966004293041807362/1096442349132492841/motorbike.svg',
['heli'] = 'https://cdn.discordapp.com/attachments/966004293041807362/1092757648830511155/helicopter.svg',
['none'] = 'https://cdn.discordapp.com/attachments/966004293041807362/1087954256911675483/police-hat.svg'
},
Perms = { -- From the previous roles specified, you should include which ones of them have perms to interact with the draws or other things.
['Captain'] = true
},
Units = { -- The units of each job, you should include the unit name and the radio frequency that each unit will use.
{ 'H-50', 801, false },
{ 'Adam-10', 802, false },
{ 'Adam-20', 803, false },
{ 'TAC', 804, true } -- The true/false here specifies if the channel is TAC (TAC means that global radio will not affect the players in this channel, you will not listen or emit to the global radio)
}
}
}
Parameter Explanations
Jobname
string
Exact job name used by your framework (ESX, QBCore, etc.)
GlobalFrequency
number
Unique radio frequency for global communications
Ispolice
boolean
Set to true
only for the main police job
Ranks
table
All job ranks mapped to framework grade levels
Blips
table
SVG icons for different vehicle types and on-foot
Perms
table
Which ranks have administrative permissions to draw or move users to units
Units
table
Available radio units with frequencies and TAC settings
Example: Adding Security Job
['security'] = {
Jobname = 'security',
GlobalFrequency = 1000,
Ispolice = false,
Ranks = {
[0] = 'Guard',
[1] = 'Senior Guard',
[2] = 'Team Leader',
[3] = 'Supervisor',
[4] = 'Manager',
},
Blips = {
['automobile'] = 'https://example.com/security-car.svg',
['bike'] = 'https://example.com/security-bike.svg',
['none'] = 'https://example.com/security-badge.svg'
},
Perms = {
['Manager'] = true,
['Supervisor'] = true
},
Units = {
{ 'SEC-1', 1001, false },
{ 'SEC-2', 1002, false },
{ 'PATROL', 1003, false },
{ 'COMMAND', 1004, true }
}
}
Important Notes
Rank Numbers: Must match your framework's grade levels exactly
Frequencies: Each job needs a unique
GlobalFrequency
Icons: Must be SVG format and publicly accessible
TAC Channels: When set to
true
, units won't hear global radio
Troubleshooting
If dispatch doesn't run correctly, doesn't appear, or shows "missing rank" errors:
Missing Ranks: You must add ALL ranks that exist in your framework's job configuration. If your framework has grades 0-5, you must define ranks [0] through [5] in the
Ranks
table.Job Name Mismatch: Ensure
Jobname
exactly matches your framework's job nameInvalid Icons: Check that all SVG URLs are accessible
Duplicate Frequencies: Make sure
GlobalFrequency
is unique across all jobs
Last updated
Was this helpful?