Links

Dispatch

Step-by-step installation guide, common issues & solutions, code snippets, error codes, config previews, locales previews, SQL previews, and changelogs; all in 1 easily accessible place.
Buy Here
This resource can be purchased as part of a bundle for a discount here

Translate

INSTALLATION GUIDE

Step 0 - First Steps

1. Download your resource from FiveM’s Keymaster.
2. Unzip the cd_dispatch.zip folder and place this folder in your server's resource folder.
3. Add the resource to your server start config: ensure cd_dispatch. If you are using a framework, it must be placed anywhere below your framework resource e.g., es_extended, not above.

Step 1 - Fxmanifest

Depending on your framework and dependencies, you may need to make some changes to the [cd_dispatch/fxmanifest.lua]. We have made this easier by commenting on the lines you possibly need to change.

Step 2 - Configure Resource

You MUST read all configurable options inside the [cd_dispatch/configs/config.lua] file and configure them to suit your server's needs. Please read the ”commented out help text” at the end of each line so you can understand what each config option does.
The most important sections are the options under the Framework and Important sections at the top of the config.lua. Everything else is optional.
We have added a new feature we are calling 'auto_detect', which will automatically identify your framework and SQL database resource, and apply the appropriate default settings.

Step 3 - SQL Database

Insert Automatically?
If you set Config.AutoInsertSQL in the [cd_dispatch/configs/config.lua] to true, the resource will automatically insert the SQL for you. You can set this to false after the SQL has been inserted successfully.
Insert Manually?
Alternatively, if you want to insert the SQL queries manually, you can find them here.

Step 4 - Configure Key Binds

Before starting this resource on your main/live server, we highly advise configuring your key binds because this resource uses Fivem's Key Mapping.
Where can I configure my key binds?
You can configure key binds in the Keys and Commands section near the bottom of the [cd_dispatch/configs/config.lua].
Why do I need to do this?
Well long story short;- once a player has joined your server with this resource running you can no longer force change their key binds for this resource through the config.lua, only they can change it in the in-game pause menu settings. Although it will change for the players who join after you have changed it.
The benefit of this system is that it's much more optimised and players can easily change their key binds on keyboards or controllers. You can also check out the Default Keybinds for this resource.

Step 5 - Integrate Into Your Robbery Scripts

Why do I need to do this?
Because you need to replace your existing code for police alerts in your criminal/robbery resources with the code snippet provided below, instead of police being notified via your existing police alerts, they will all come through the dispatch.
PLEASE READ
Trigger from the client-side or server-side, but not both
  • Below we provide you with 2 different methods of triggering notifications; 1 from the client-side and 1 from the server-side. You DON’T need to add both code snippets to trigger the same notification. Choose 1 or the other, but we recommend using the client-side method as it’s simpler.
Find where the robbery starts
  • You need to trigger the event on the client (criminal) performing the action, not the police. You don’t want to trigger the event in an existing register event that gets triggered from the server-side and affects all police clients, as that will cause multiple of the same police alerts to be sent.
Example
  • Here is an example of implementing the code snippet below into your robbery/criminal resources to replace your old police alerts. Not every resource will look identical to this, but the general idea is the same.
    • Yellow = Remove the old police alert code.
    • Red = Copy the code snippet below and paste it to replace the old code you removed above^.
Customise the dispatch notification
Summary
  • To sum up the above, basically, how this works is; you need to find where the player starts the robbery, place the code snippet there, and cd_dispatch will handle the rest.
client-side to server-side (recommended)
server-side to client-side
GUIDE:
Step 1: Open the client-side file in the resource you want to replace the police alert.
Step 2: Search for the code which triggers a server event to send a police alert. You can press Control + F and search for "police". Specifically, you are looking for the part of the code where, for example, a criminal starts robbing a bank, and the police are called. This will most likely trigger a server event. The key here is to look for the start of the robbery.
Step 3: Follow the example above and replace the old code you have just found in step 2 with the code snippet below.
CODE SNIPPET:
local data = exports['cd_dispatch']:GetPlayerInfo()
TriggerServerEvent('cd_dispatch:AddNotification', {
job_table = {'police', },
coords = data.coords,
title = '10-15 - Store Robbery',
message = 'A '..data.sex..' robbing a store at '..data.street,
flash = 0,
unique_id = data.unique_id,
sound = 1,
blip = {
sprite = 431,
scale = 1.2,
colour = 3,
flashes = false,
text = '911 - Store Robbery',
time = 5,
radius = 0,
}
})
NOTES: We recommend you use the client-side method, but if you NEED to trigger the notification from the server-side, you can use the code snippet below.
CODE SNIPPET:
TriggerClientEvent('cd_dispatch:AddNotification', -1, {
job_table = {'police', },
coords = vector3(0, 0, 0),
title = '10-15 - Store Robbery',
message = 'A person robbing a store',
flash = 0,
unique_id = tostring(math.random(0000000,9999999)),
sound = 1,
blip = {
sprite = 431,
scale = 1.2,
colour = 3,
flashes = false,
text = '911 - Store Robbery',
time = 5,
sound = 1,
}
})

A detailed guide for all variables used in the dispatch "code snippet".

  • job_table: Everyone who has this job will receive this notification. You can add multiple jobs to the table.
    • Example: {'police', 'sheriff'}
  • coords: These are the coordinates of the incident.
    • Example: vector3(0, 0, 0)
  • title: The title of the notification; normally, your police 10 codes are used here.
  • message: You can customise the message and add any available variables - A detailed guide for all the data the client-side export returns.
  • flash: Set to 1 to make the UI flash, used for high-priority calls such as panic buttons etc.
  • unique_id: DON’T change this.
  • blip:
    • sprite: The icon for the blip - More can be found here.
    • scale: Size of the blip.
    • colour: Colour of the blip - More can be found here at the bottom.
    • flashes: If set to true, the blip will flash on the pause menu/mini-map, used for more important calls.
    • time: (in minutes) The amount of time until the blip fades and deletes (default is 5 minutes).
    • sound: The sound when receiving a notification:
      • 1 = x1 sound alert, 2 = x2 sound alert's, 3 = panic button alert sound.
      • You can change the sounds in the configs/client_customise_me.lua/BlipSound().
    • radius: This will take the coords, randomize them, and add an area blip.
      • 50-100 is a good size.
      • 0 will disable this feature.

A detailed guide for all the data the client-side export returns.

The export used in the code snippet above will return this table. This can be customised in the [client/main/functions.lua] file.
Is the player on foot?
Is the player in a vehicle?
If the player is on foot then the export will return this:
local data = exports['cd_dispatch']:GetPlayerInfo()
data.ped --The player's id: eg., 123456789.
data.coords --The players coordinates: eg., vector3(1.0, 2.0, 3.0).
data.street_1 --The street name: eg., “Palomino Ave”.
data.street_2 --The streets area name: eg., “Legion Square”.
data.street --Both the street name & area name: eg., “Palomino Ave, Legion Square”.
data.sex --The players ped’s sex; eg., “Male”.
If the player is in a vehicle then the export will return this:
local data = exports['cd_dispatch']:GetPlayerInfo()
data.ped --The player's id: eg., 123456789.
data.coords --The players coordinates: eg., vector3(1.0, 2.0, 3.0).
data.street_1 --The street name: eg., “Palomino Ave”.
data.street_2 --The streets area name: eg., “Legion Square”.
data.street --Both the street name & area name: eg., “Palomino Ave, Legion Square”.
data.sex --The players ped’s sex; eg., “Male”.
data.vehicle --The vehicle id: eg., 123456789.
data.vehicle_label --The vehicle name: eg., “Audi RS7”.
data.vehicle_colour --The vehicles colour: eg., “Blue”.
data.vehicle_plate --The vehicles license plate: eg., “ABCD1234”.
data.heading --The vehicle's direction: eg., “North”.
data.speed --The vehicles speed: eg., “70MPH”.

OPTIONAL FEATURES

This section is to help you understand how the built-in features of this resource work and, if applicable, how you can make them compatible with other resources. These features are not required. They are optional and can be configured in the [configs/config.lua].

Large UI Settings

What do the settings do and how does this work?
This is where each player can customise settings to suit their own individual role-play needs.
Status
  • The status shows other players what you are doing, such as available, unavailable, processing, training, undercover etc. It‘s displayed on the “Units List”, and each status displays a different colour. For example., green = available, red = unavailable and blue = training.
Auto Delete
  • Each notification will auto-delete after x minutes to clear out old notifications.
Update Callsign
  • This is how you update your callsign.
Assigned Vehicle
  • This is used to show other players what type of vehicle you are currently using. It’s displayed on the “Units List” and the pause-menu/mini-map blips. Players must change this manually, as it won’t change automatically.
Dispatcher Mode
  • This is where you enable dispatcher mode.

Radio Channels

How do radio channels work?
We use radio channels to allow players to see which radio channels other players are on, and also to allow players to quickly join radio channels through the large UI.
You will of course need to be using some sort of voip and radio resource. By default we have added compatibility with tokovoip, mumble and pmavoice.
Where are the radio channels displayed?
The radio channels are displayed in 2 places: on the large UI and the pause-menu/mini-map blips.
This event needs to be triggered from your radio resource, specifically when a player (who has access to use the dispatch) joins/leaves/changes a radio channel, and it needs to send the players new radio channel in the first argument.
Example 1
Example 2
client-side to server-side
RADIO_CHANNEL_HERE needs to be a string or a number.
TriggerServerEvent('cd_dispatch:GetRadioChannel', RADIO_CHANNEL_HERE)

Duty System

How does the duty system work?
QBCore and ESX Legacy 1.6+ use built in duty system’s. We use this by default to require players who have the job to be on duty to use the dispatch.
Do you use QBCore or ESX Legacy 1.6+?
Then you don't need to make any changes. We have already implemented this for you.
Using an external duty resource, you can use the events below to tell the dispatch when a player is on or off duty.
client-side to client-side
server-side to client-side
Boolean means (true or false).
TriggerEvent('cd_dispatch:OnDutyChecks', BOOLEAN)
Boolean means (true or false).
TriggerClientEvent('cd_dispatch:OnDutyChecks', source, BOOLEAN)

Blips

How do the blips work?
Our built-in player blips feature allows all players of the job(s) you define in the Config.Allowedjobs table to see each other on the in-game pause-menu and mini-map.
The blips show much more information than usual blip resources because it gets data from the large UI; such as the players character name, callsign, radio channel and vehicle type. Blips also flash when a vehicles emergancy lights are enabled.
Possible Modifications are Required!
If you use another player blips resource, you must disable it to use the built-in player blips feature; otherwise, they will conflict.
Known player blip conflicts.
qb-policejob
esx_policejob
Comment out this thread in qb-policejob/server/main.lua/line 1097.
-[[CreateThread(function()
while true do
Wait(5000)
UpdateBlips()
end
end)-]]
Disable this config option in esx_policejob/config.lua/line 17.
Config.EnableJobBlip = false

Callsign

How do callsigns work?
Callsigns can only be changed in the settings on the large UI. Open the large UI, click the “settings” icon at the top of your screen and change your callsign.

Dispatcher

How does the dispatcher system work?
Our dispatcher system allows dispatcher(s) to recieve calls and assign them to individual players. Only those with the pre-defined job(s) and job grade (defined in the Config.Dispatcher table) can use this feature. While a player has dispatcher mode enabled, non-dispatchers will not recieve calls until a dispatcher assigns them one.
How to enable dispatcher mode?
  • Open the large UI, click the “settings” icon at the top of your screen and click “Toggle dispatcher mode”. You don’t have the required job or grade if this option is not clickable.
How to assign a unit/group to a call?
  • You must drag a unit/group from the “Unit List” (on the right side of your screen) onto a call in the “Notification List” (on the left side of your screen). You will see the unit(s) added to the “Units Responding” on the call if assigned successfully. You must drag the unit/group from the drag icon (8 dots).
How To assign all units to a call?
  • While the large UI is open, right-click on a call in the “Notification List” (on the left side of your screen), and click “Assign every unit to call”.
How to speak on the radio while in the large UI?
  • While the large UI is open, click the “Toggle Voice ON” button (at the bottom right corner of your screen). When enabled, this button will change colour to white.
How to join/leave radio channels while in the large UI?
  • While the large UI is open, right-click on a unit in the “Unit List” (on the top right side of your screen) and click “Join radio channel”. Do the same thing to leave a radio channel but click “Leave radio channel”.

Job Call Commands

How does the job call commands work?
When a civilian uses any of the job call commands such as /911, a notification will be sent to the police. You can configure multiple jobs to use this system. After receiving a job call, players in said job can respond to the civilian using the /reply chat command. Calls can also be anonymous if the anonymous option is set to true (does not show the caller's name or phone number and uses radius blips).

Police Alerts

How does the police alerts work?
This dispatch includes 3 basic built-in police alerts: stolen car, gunshots and speed cameras.
Whitelisted Jobs
Please note that when testing this, if your job is in the whitelisted_jobs table, you won’t be able to trigger events.
Stolen Car Alerts
  • This alert is specifically for when a civilian tries to enter a locked vehicle or drags a ped out of their vehicle and steals it. If you use cd_radar, bolos will be automatically added for the stolen vehicles.
Gunshot Alerts
  • Weapons with silencers on won’t trigger an alert. If you use cd_radar, bolos will be automatically added for vehicle gunshots.
Speed Camera Alerts
  • Some speed cameras are already pre-configured. When a vehicle speeds through one of these speed camera areas, an alert will be sent to the police. You can also optionally send the player a fine automatically. If you use cd_radar, bolos will be automatically added for speeding vehicles.

INFORMATION

Default Keybinds

These keys can be modified and/or disabled in the Keys and Commands section of the [configs/config.lua].
Please make sure you understand how Key Mapping works.
Key
Description
U
Toggles the small dispatch UI.
G
Respond to a notification.
Left/Right Arrows
Scroll through the notifications on the small dispatch UI.
L
Opens the large dispatch UI.

Chat Commands

These chat commands can be renamed and/or disabled in the Keys and Commands section of the [configs/config.lua].
The exact usage for each command will be displayed in the chat suggestions when using the commands in-game.
Command
Description
/dispatchsmall
Toggles the small dispatch UI.
/dispatchlarge
Opens the large dispatch UI.
/respond
Respond to a notification.
/movemode
Allows you to move the small UI on your screen.
/panic
Press your panic button.
/reply
Reply to job calls such as /911 calls etc.
/dispatchtest
(Test Command) This is a test command which triggers a police notification.

Events

These events are completely optional; you can use them if needed.
client-side to client-side
Panic Button
Activates the panic button.
TriggerEvent('cd_dispatch:PanicButtonEvent')

Exports

These exports are completely optional; you can use them if needed.
client-side exports
server-side exports
Get Player Info
Returns useful information about a player which can be used for creating new dispatch notifications, as seen in step 5. (returns a table).
exports['cd_dispatch']:GetPlayerInfo()
Get Player Notifications
Returns all of a player's active dispatch notifications. (returns a table).
exports['cd_dispatch']:GetPlayerNotifications()
Get Players Dispatch Data
Returns a player's dispatch character data, eg., callsign, character name, status etc. (returns a table).
exports['cd_dispatch']:GetPlayersDispatchData()
Get Config
Returns the dispatch's full config.lua. (returns a table).
exports['cd_dispatch']:GetConfig()
Get Players Dispatch Data
Returns a player's dispatch character data, eg., callsign, character name, status etc. (returns a table)
exports['cd_dispatch']:GetPlayersDispatchData(source)
Get Config
Returns the dispatch's full config.lua. (returns a table).
exports['cd_dispatch']:GetConfig()

COMMON ISSUES

Please check out our Troubleshooting Guide before contacting our support.
🔔 Folder Name Make sure the name of the folder is cd_dispatch.
🔔 Encrypted Files Do not edit the encrypted files in any way.
SQL Default Value Error?
eg., if you see an error similar to this example when inserting an SQL query into your database - “BLOB/TEXT column 'callsign' can't have a default value”.
✔️ You can use “VARCHAR(256)” instead of “LONGTEXT” in the SQL query.
SQL Unknown Column Error?
eg., if you see an SQL error in the server console similar to this example - ER_BAD_FIELD_ERROR: Unknown colum 'callsign' in 'where clause'.
✔️ You are missing one of the required database columns. The SQL file can be found in the "READ_ME_AFTER_PURCHASING" folder.
Script Loading?
eg., if you see this notification at least 10-20 seconds after loading in or restarting the script - “The resource is still loading. Please try again in a few seconds”.
✔️ There will usually be a server side error which will be pretty self explanatory, usually a database error or because your Config.FrameworkTriggers were not configured correctly.
NUI "drawImage" error?
eg., if you see an error similar to this in the client-side F8 console.
✔️ This means you have chosen a blip colour that is not supported by default in: Config.lua/Config.BlipData/largeui_blip_colour. To fix this change it to one of the supported colours.
Players are not recveving calls?
eg., if all of a sudden players are not longer recieving dispatch calls.
✔️ This most likely means 1 or more players have enabled dispatcher mode, so only the dispatchers are recieving new calls. Please read more about how our dispatcher system works here.

ERROR CODES

If you see an error code not listed below, please open a script support ticket in the Codesign Discord.
Server
Client
N/A
3777 - You need to update to at least v4.2.2+ to use the new format from #Step 5 using the unique_id variable.
3651 - This error code can be ignored; it does not affect anything; it's just trying to delete a notification that has just been deleted.

CHANGELOG

Files Changed
Not every update requires you to replace the whole folder. We do this because we understand it's a pain to redo the configs for every update.
  • All Files - This means you should delete your old cd_dispatch folder, download and add in the latest version, reconfigure the configs folder and restart your server.
  • All Files Except config.lua - This means you should do all of the above (in the All Files section) but additionally make a backup of the config.lua file and replace the new config.lua file with the one you made a backup of.
  • Specific Files - This means you can copy and paste the SPECIFIC new files over the old ones and restart the server.
Update Type
On rare occasions, you are forced to update to the latest version. Mostly due to authentication updates where the old versions will no longer work.
  • Mandatory - This means you MUST update to this new version, or the old versions will no longer work.
  • Optional - This means it's completely your choice whether you wish to update to the latest version. But we do not offer support for old versions for obvious reasons; they are old.
Skipping Updates
If you are attempting to update to the latest version but have skipped previous updates, you should update all files just to be safe. For example., let's say you are currently on v4.0.1, you did not update when v4.0.2 was released, and now v4.0.3 is released, and you want to update; you should always use the “All Files” update method.
v3.0.0
v409 beta
v410 beta
v411 beta
v4.2.0
v4.2.1
v4.2.3
v4.2.4

26/12/2020 - 08/11/2021

v3.0.0 - v3.0.5
Files Changed:
  • All Files
  • All Files Except config.lua
  • Specific Files
Update Type:
  • Mandatory
  • Optional
Changelog:
Add
  • Added locales for the /911 etc chat commands.
  • Added the ability to rename all esx events such as the setjob and playerloaded events.
Edit
  • Minor script cleanups.
  • Updated the codesign error handlers.
  • Removed the need to cache individual players data when going on/off duty.
  • Added compatibility for oxmysql.
Fix
  • Fixed random server error on server start.
  • Minor bug fixes.
  • Fixed errors with the /callsign command.
  • Fixed error when using the UI before the script has loaded fully.
  • Fixed random server error on server start.
  • Temporary fix for the canary issue until the new Tebex FiveM license system is ready to launch, when this is released we will be fully switching over to the new system.
  • Fixed the random client side error that happens sometimes when pressing G to respond.

20/12/2021

Files Changed:
  • All Files
  • All Files Except config.lua
  • Specific Files
Update Type:
  • Mandatory
  • Optional
Changelog:
Authentication
  • We are now using the official Authentication System provided by FiveM. The old auth system will be taken offline 1 week from now (give or take a few days if needed).
Add
  • Large map zoom On the large UI map you can now zoom in and out and move around with the mouse. The blips of calls and other officers will always stay in the exact same position.
  • Grouped units On the large UI, if 2(or more) officers are patrolling together, they can create a group, which will show the other officers that they are patrolling together.
  • Vehicle type status The vehicle type icon on the large UI units list will change depending on what vehicle type a player has set in the settings.
  • Player status The players status on the large UI units list will be visible when you right click a players name on the unit list. Also, the background of the radio channel is also a quick way of viewing a players status as it will change colour when a player changes their status. You can configure add/remove/change statuses in the config, along with configuring the colour of each status.
  • Multi job compatibility You can configure it so multiple jobs can see each other on the large UI and pause menu blips menu. So for example if you have 2 police jobs (police and sheriff) or (police and ambulance), they will now be able to see each other on the maps.
  • Quick join/leave radio channels On the large UI, you can right click a players name on the units list and you have the option to join their radio channel or leave your radio channel.
  • New dispatcher mode When a call is initially received, only the dispatcher can see the call. Dispatchers can enable voice mode while the large UI is enabled to communicate over radio to other officers to see who is available to take calls (the large ui can stay enabled the whole time and everything will be instantly updated on the ui), dispatchers then can drag-and-drop a unit (single unit or grouped unit) onto the call and only that unit will receive the call. If there is no dispatcher logged in, the dispatch will function exactly like it currently does now in previous versions, where all online officers will receive the calls.
  • Pause menu player blips We have added a built in player blips system, which works on OneSync (legacy+infinity)/non OneSync . Your blip icon will change depending on what you have set your vehicle type to on the large UI settings. When your vehicles emergency lights are on your player blip will flash (flashing colours are configurable for each job). Your current radio channel will also be displayed on your player blip. Everything is fully synced across all players.
  • Gunshot, stolen car, speed trap alerts We have added a built in gunshot, stolen car and speed trap alerts, this is all fully configurable in the config.
  • View responding units On the large UI, you will be able to click on a notification and see which units are responding, it will show their name, callsign, how long ago they clicked respond etc.
  • Set GPS location On the large UI, you can right click a players name on the units list and it will set a waypoint to this players location on the pause menu/mini-map.
  • Live Map Added the ability to enable the player blips on the large UI to auto refresh while the UI is open.
  • Multi job notifications When creating notifications from other scripts, instead of only being able to choose 1 job to send the notification too, you can choose multiple, this also is the same for the built in job command calls eg., (/911). But don’t worry, this wont force you to update all of our scripts, as the previous single job format can also be used.
Fix
  • Fixed the on/off duty locals method showing blips on the map and playing the alert sound when a notification comes through when the player is off duty.
  • The callsign command is now removed and has been moved onto the settings tab on the large UI.
Edit
  • Added more data to the GetPlayerInfo() export.

08/03/2022

Files Changed:
  • All Files
  • All Files Except config.lua
  • Specific Files
Update Type:
  • Mandatory
  • Optional
Changelog:
PLEASE READ IMPORTANT!!!
The method of adding notifications has changed. Please see here for the new method. To use this, and future versions this does mean that you will need to REDO ALL OF YOUR CURRENT NOTIFICATIONS. Its a fairly quick process though, just a lot of copy paste.
This does have a couple of benefits such as being more optimised and more user friendly but we had to do this to fix a syncing issue.
Edit
  • If no blip data is sent, the blip will not show on the pause menu map; to allow the use of /311 calls to not show the location etc.
  • Optimised the client side of police alerts and the framework getjob code.
  • Updated compatibility with the new oxmysql method.
  • Optimised and simplified the UI notifications integrated into your other scripts.
  • Added checks for duplicate notifications in list.
Fix
  • Fixed some locales on the UI.
  • Fixed the units list not being scrollable.
  • Fixed the IsDispatcher client error.
  • Fixed an issue with assigning calls to a user as a dispatcher where it would show the user responding to the wrong call.
  • Disabled the ability to enable radio voice for non dispatchers on the large UI.
  • Fixed the client side playerblips error.
  • Fixed a server side related to the duty checks being triggered too early.
  • Fixed the issue where when responding to calls, it would show other users that you responded to the wrong call.
  • Fixed an error where when a dispatcher logged off it would not allow non dispatchers to receive calls.
  • Fixed an issue where when you logged in as a "non authorised job" and then switched to an "authorised job" it would not allow you to enable dispatcher mode.
  • Fixed hovering over notification blips when zoomed.
  • Fixed dispatcher sending wrong notification to group.
  • Fixed clicking on a notification not changing blip colour to green.
  • Fixed different screen resolutions.
  • Fixed an issue with getting the closest vehicle returning the wrong vehicle.
  • Fixed some issues with JS locales.
  • Fixed the units list not scrolling when full.

18/03/2022

Files Changed:
  • All Files
  • All Files Except config.lua
  • Specific Files
Update Type:
  • Mandatory
  • Optional
Changelog:
Add
  • Added the distance to the call on the small UI which can auto update the distance.
Fix
  • Fixed notifications not auto deleting.

29/03/2022

Files Changed:
  • All Files
  • All Files Except config.lua
  • Specific Files
Update Type:
  • Mandatory
  • Optional
Changelog:
Add
  • Added the option to choose a boat as your vehicle in the UI's settings.
  • Added a new option in the UI's settings to mute sound from notifications.
Edit
  • Add a config option to the police alerts to only find players who are speeding if they own the vehicle.
Fix
  • Fixed selecting multiple notifications when only clicking on one.
  • Fixed drag/drop being interrupted randomly.
  • Fixed matching notifications to pins when clicking on either one.

09/06/2022

Files Changed:
  • All Files
  • All Files Except config.lua
  • Specific Files
fxmanifest.lua - (IMPORTANT)
client/main/client.lua - (IMPORTANT)
html (FULL FOLDER) - (IMPORTANT)
configs/client_customise_me.lua
Update Type:
  • Mandatory
  • Optional
Changelog:
Add
  • Added compatibility with esx's built-in duty system.
Fix
  • Fixed the distance counter not working for the first notification.
  • Security fixes for the UI to prevent people from abusing the chat commands with js code.

15/02/2023

Files Changed:
  • All Files
  • All Files Except config.lua
  • Specific Files
Update Type:
  • Mandatory
  • Optional
Changelog:
Add
  • cd_radar Compatibility: The built-in police alerts will automatically add bolos to cd_radar if the criminal was in a vehicle.
  • Dispatcher Activity Notification: Players with the same job will be notified when a dispatcher comes online/goes offline.
  • Status Change Notification: Players with the same job will be notified when another player changes their status.
  • Area Blip: Added the ability for blips to have an area radius and be a random centre location.
  • Auto Framework Detection - We have added a new feature we are calling 'auto_detect', which will automatically identify your framework, SQL database resource, and framework notifications and apply the appropriate default settings.
  • Auto SQL Insert - If you set Config.AutoInsertSQL in [configs/config.lua] to true, the resource will automatically insert the SQL for you. You can set this to false after the SQL has been inserted.
  • Added the ability to require a witness (NPC/ped) to be within a certain distance of the player to alert the police from the built-in police alerts.
  • Added a new client+server export to get the config.
  • Added a new client+server export to get a player's dispatch data (callsign etc).
  • Added a new client export to get all active notifications for that player.
Edit
  • The built-in gunshot alerts are now more consistent while being more optimised.
  • The notification sound can now be played without adding a blip.
  • Added the new radius blips by default to the built-in police alerts and the anonymous job calls.
  • Added some pre-configured whitelisted gunshot areas (gun ranges for cd_gunrange).
  • Improved the open large UI load times if using OneSync.
  • Improved some of the backend code.
  • Improved the debug prints.
  • Added more plate format options to the get plate function for more consistency with finding vehicles in the database.
  • Removed the Config.DayHours config option due to it now being hardcoded because it didn't need to be changed.
  • When adding client-side notifications the unique_id is generated in the dispatch export.
  • When setting a notifications blip timer you can now use 5 instead of (5*60*1000) for 5 minutes.
Fix
  • Fixed the vehicle check for speed trap fines and stolen vehicles not finding the vehicle in the database due to the wrong plate format.

22/02/2023

Files Changed:
  • All Files
  • All Files Except config.lua
  • Specific Files
fxmanifest.lua
configs/server_customise_me.lua
configs/client_customise_me.lua
server/main/server.lua
Update Type:
  • Mandatory
  • Optional
Changelog:
Add
  • Added french locales.
Fix
  • Fixed an issue with QBCore duty where the small UI would open, but the large UI would not.
  • Fixed a typo causing the panic sound not to work.
  • Fixed a typo causing the wrong name to be sent on the status change and dispatcher activity notifications.