Police Job for QB-Core Framework 👮
This is an edited version of the official qb-policejob with added features.
For help, questions and other resources you can join my discord : Hi-Dev
If you like my work and want to support me :
- Multiple locations
- Tie players with a rope item and untie them with knife
- Target ped interactions (Robplayer, Tie / Untie, Kidnap - Escort and Cuff for policejob only)
- Updated the evidence stash
- Change the duty with the menu
- You can write comment on evidence bags
- Added config option for block to see trough walls with thermal in heli
- Added target and ped for police garage
- Every garage has his own vehicle list
- Changed the garage logic where you can choose the job level for a specific car
- Moved the livery option into the car options
- Added option for max mods for engine, brake, transmission, armour, turbo
- Added target and ped for spawning and returning helicopter
- Only 1 heli can be spawned by 1 player
- Each officier can get 1 vehicle and return it from ped menu
v1.3.0
- Added cuff, ziptie, broken handcuffs, cuffkeys, bolt cutter and flush cutter
- You can cuff players with handcuffs and uncuff them with cuffkeys
- You can only uncuff them from the side (front / back) where the cuffs are (same for zipties)
- You can ziptie players and cut it with flush cutter
- Illegals can use bolt cutter to cut the cuffs and will get broken cuffs
v1.3.1
- When used cuff, you'll get cuff key and cuffs will be removed
- When you use keys, it will be removed and give you cuffs again
- Added vehicle livery menu
- Added prices for police vehicles
v1.3.2 :
- Added new prop item for zipties
- Fixed the rob player when cuffed from front
- Added configurable cufftypes into config where you can choose from wether the player can move with that kind handcuffs or not
v1.3.3
- Fingerprint UI has been changed
- Added evidence research option. Police can research filled evidence bags in lab and will see more info about the evidence
- Changed depot and impound system for police. Able to use target on vehicle and charging for depot / impound
- Citizens can access police impound and will see their own cars. When they pay the charge they can get their own vehicle
- Added breakout option. When you enable this in config, the cuffed player will see a minigame and when they success they can escape.
- Fixed the problem with negative amounts for depot / impound
- Fixed warning with missing phrases
- Animation fix for dead or in last stand players
- Classical requirements like on duty/off duty, clothing, vehicle, stash etc.
- Citizen ID based armory (Whitelisted)
- Fingerprint test
- Evidence locker (stash)
- Whitelisted vehicles
- Speed radars across the map
- Stormram
- Impounding player vehicle (permanent / for an amount of money)
- Integrated jail system
- Bullet casings
- GSR
- Blood drop
- Evidence bag & Money bag
- Police radar
- Handcuff as an item (Can used via command too. Check Commands section.)
- Emergency services can see each other on map
-
Copy images from images folder to your inventory images folder
-
Add the below items to your qb-core\shared\items.lua
['broken_handcuffs'] = {['name'] = 'broken_handcuffs', ['label'] = 'Broken Handcuffs', ['weight'] = 100, ['type'] = 'item', ['image'] = 'broken_handcuffs.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'It\'s broken, maybe you can repair it?'},
['cuffkeys'] = {['name'] = 'cuffkeys', ['label'] = 'Cuff Keys', ['weight'] = 75, ['type'] = 'item', ['image'] = 'cuffkeys.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Set them free !'},
['ziptie'] = {['name'] = 'ziptie', ['label'] = 'ZipTie', ['weight'] = 50, ['type'] = 'item', ['image'] = 'ziptie.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Comes in handy when people misbehave. Maybe it can be used for something else?'},
['flush_cutter'] = {['name'] = 'flush_cutter', ['label'] = 'Flush Cutter', ['weight'] = 50, ['type'] = 'item', ['image'] = 'flush_cutter.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Comes in handy when you want to cut zipties..'},
['bolt_cutter'] = {['name'] = 'bolt_cutter', ['label'] = 'Bolt Cutter', ['weight'] = 50, ['type'] = 'item', ['image'] = 'bolt_cutter.png', ['unique'] = false, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'Wanna cut some metal items ?'},
- Update the filled evidence bag in you qb-core/shared
['filled_evidence_bag'] = {['name'] = 'filled_evidence_bag', ['label'] = 'Evidence Bag', ['weight'] = 200, ['type'] = 'item', ['image'] = 'evidence.png', ['unique'] = true, ['useable'] = true, ['shouldClose'] = true, ['combinable'] = nil, ['description'] = 'A filled evidence bag to see who committed the crime >:('},
- Update the filled evidence bag in your qb-inventory
else if (itemData.name == "filled_evidence_bag") {
$(".item-info-title").html("<p>" + itemData.label + "</p>");
if (itemData.info.type == "casing") {
if (itemData.info.evidenceNote != null) {
$(".item-info-description").html(
"<p><strong>Evidence material: </strong><span>" + itemData.info.label + "</span></p>" +
"<p><strong>Type number: </strong><span>" + itemData.info.ammotype + "</span></p>" +
"<p><strong>Caliber: </strong><span>" + itemData.info.ammolabel + "</span></p>" +
"<p><strong>Serial: </strong><span>" + itemData.info.serie + "</span></p>" +
"<p><strong>Crime scene: </strong><span>" + itemData.info.street + "</span></p>" +
"<br /><p><strong>Note Writer: </strong><span>" + itemData.info.noteWrite + "</span></p>" +
"<p><strong>Note: </strong><span>" + itemData.info.evidenceNote + "</span></p>"
);
} else {
$(".item-info-description").html(
"<p><strong>Evidence material: </strong><span>" + itemData.info.label + "</span></p>" +
"<p><strong>Type number: </strong><span>" + itemData.info.ammotype + "</span></p>" +
"<p><strong>Caliber: </strong><span>" + itemData.info.ammolabel + "</span></p>" +
"<p><strong>Serial: </strong><span>" + itemData.info.serie + "</span></p>" +
"<p><strong>Crime scene: </strong><span>" + itemData.info.street + "</span></p>" +
"<br /><p>" + itemData.description +"</p>"
);
}
} else if (itemData.info.type == "blood") {
if (itemData.info.evidenceNote != null) {
$(".item-info-description").html(
"<p><strong>Evidence material: </strong><span>" + itemData.info.label +"</span></p>" +
"<p><strong>Blood type: </strong><span>" + itemData.info.bloodtype +"</span></p>" +
"<p><strong>DNA Code: </strong><span>" + itemData.info.dnalabel +"</span></p>" +
"<p><strong>Crime scene: </strong><span>" + itemData.info.street +"</span></p>" +
"</br><p><strong>Note Writer: </strong><span>" + itemData.info.noteWrite + "</span></p>" +
"<p><strong>Note: </strong><span>" + itemData.info.evidenceNote + "</span></p>"
);
} else {
$(".item-info-description").html(
"<p><strong>Evidence material: </strong><span>" + itemData.info.label +"</span></p>" +
"<p><strong>Blood type: </strong><span>" + itemData.info.bloodtype +"</span></p>" +
"<p><strong>DNA Code: </strong><span>" + itemData.info.dnalabel +"</span></p>" +
"<p><strong>Crime scene: </strong><span>" + itemData.info.street +"</span></p>" +
"<br /><p>" + itemData.description + "</p>"
);
}
} else if (itemData.info.type == "fingerprint") {
if (itemData.info.evidenceNote != null) {
$(".item-info-description").html(
"<p><strong>Evidence material: </strong><span>" + itemData.info.label + "</span></p>" +
"<p><strong>Fingerprint: </strong><span>" + itemData.info.fingerprint + "</span></p>" +
"<p><strong>Crime Scene: </strong><span>" + itemData.info.street + "</span></p>" +
"</br><p><strong>Note Writer: </strong><span>" + itemData.info.noteWrite + "</span></p>" +
"<p><strong>Note: </strong><span>" + itemData.info.evidenceNote + "</span></p>"
);
} else {
$(".item-info-description").html(
"<p><strong>Evidence material: </strong><span>" + itemData.info.label + "</span></p>" +
"<p><strong>Fingerprint: </strong><span>" + itemData.info.fingerprint + "</span></p>" +
"<p><strong>Crime Scene: </strong><span>" + itemData.info.street + "</span></p>" +
"<br /><p>" + itemData.description + "</p>"
);
}
} else if (itemData.info.type == "dna") {
if (itemData.info.evidenceNote != null) {
$(".item-info-description").html(
"<p><strong>Evidence material: </strong><span>" + itemData.info.label + "</span></p>" +
"<p><strong>DNA Code: </strong><span>" + itemData.info.dnalabel + "</span></p>" +
"</br><p><strong>Note Writer: </strong><span>" + itemData.info.noteWrite + "</span></p>" +
"<p><strong>Note: </strong><span>" + itemData.info.evidenceNote + "</span></p>"
);
} else {
$(".item-info-description").html(
"<p><strong>Evidence material: </strong><span>" + itemData.info.label + "</span></p>" +
"<p><strong>DNA Code: </strong><span>" + itemData.info.dnalabel + "</span></p>" +
"<br /><p>" + itemData.description + "</p>"
);
}
}
}
- qb-core
- qb-management - For the boss/gang menu
- qb-garages - For the vehicle spawner
- qb-clothing - For the locker room
- qb-phone - For the MEOS app and notifications etc.
- qb-smallresources - qb-log was added to qb-smallresources
- qb-menu - For the vehicle menus
- qb-input - For accessing evidence stashes
- /spikestrip - Places spike strip on ground.
- /pobject [pion/barier/schotten/tent/light/delete] - Places or deletes an object on/from ground.
- /cuff - Cuffs/Uncuffs nearby player
- /escort - Escorts nearby plyer.
- /callsign [text] - Sets the player a callsign on database.
- /clearcasings - Clears nearby bullet casings.
- /jail [id] [time] - Sends a player to the jail.
- /unjail [id] - Takes the player out of jail.
- /clearblood - Clears nearby blood drops.
- /seizecash - Seizes nearby player's cash. (Puts in money bag)
- /sc - Puts soft cuff on nearby player.
- /cam [cam] - Shows the selected security cam display.
- /flagplate [plate] [reason] - Flags the vehicle.
- /unflagplate [plate] - Removes the flag of a vehicle.
- /plateinfo [plate] - Displays if a vehicle is marked or not.
- /depot [price] - Depots nearby vehicle. Player can take it after paying the cost.
- /impound - Impounds nearby vehicle permanently.
- /paytow [id] - Makes payment to the tow driver.
- /paylawyer [id] - Makes payment to the lawyer.
- /radar - Toggles the police radar.
- /911 [message] - Sends a report to emergency services.
- /911r [id] - Used to respond the emergency alerts.
- /911a [message] - Sends an anonymous report to emergency services (gives no location).
- /anklet - Places anklet (tracking device) on nearby player.
- /removeanklet [citizenid] - Removes the anklet from player.
- /ebutton - Used to respond an emergency alert.
- /takedrivinglicense - Takes the driving license from nearby player.
- /takedna [id] - Takes a DNA sample from the player.
- Download the script and put it in the
[qb]
directory. - Add the following code to your server.cfg/resouces.cfg
ensure qb-core
ensure qb-policejob