Wasabi’s ESX/QBCore Evidence System🔍
Buy Escrowed - $24.99
Buy Open Source - $49.99
Background
This script was created as an addition to my Advanced Police Job and has now grown in to it’s own resource that will accompany any police job quite nicely! I plan to add many things to this script such as meta data support across the 3-4 main inventories.
Features
- Optimized with 0.00ms idle(0.01ms wielding gun)
- Multiple crime lab locations
- Can add any job to have the ability to process and collect evidence
- Choice to let criminals destroy evidence
- Fingerprint scanning for exposing identity to certain evidence(Configurable)
- Ability to assign hands or gloves to not leave evidence(Configurable)
- Configurable item requirement to destroy blood (By default Bleach Wipes)
- Configurable auto delete of evidence from ground(By default enabled and set to 15 minutes)
- Everything is configurable in regards to the information returned in evidence reports(Could easily implement your own parameters if you have any coding knowledge / examples included)
- Gather blood, bullets, and fingerprints
- Optional use of target system (Supports ox_target, qb-target, and qtarget out of the box)
- Customizable strings for easy language support
- Customizable notifications(Add your own)
- Customizable Text UI(Add your own)
- Supports both ESX and QBCore
- Much more added all the time!
Frequent updates / feature additions planned so stay tuned!
Configuration
config.lua
local minutes, seconds = 60000, 1000
Config = {}
----------------------
-- General Settings --
----------------------
Config.PoliceJobs = { -- Police jobs/grades able to use evidence system
['police'] = 0, -- ['JOB_NAME'] = GRADE_LEVEL
-- ['sheriff'] = 2 -- Example
}
Config.CriminalsCanCleanEvidence = {
enabled = false, -- Criminals are able to clean up bullets/blood when enabled
requiredBloodCleanItem = 'bleachwipes', -- Item name required in inventory for criminals to wipe blood evidence
removeBloodCleanItemOnUse = true, -- Remove item when clean blood
}
Config.MaxEvidence = 5 -- Max evidence that can be collected at once prior to going to evidence lab for analyzing
Config.FlashlightRange = 15 -- Default: 15 / Distance one can see evidence with flashlight (MUST BE ABOVE 2)
Config.AutoDestroy = 5 * minutes -- Auto destory evidence after so long (Default 5 * minutes / Set to false if no destroy)
Config.BloodProps = true -- Have prop on ground for blood splatter
Config.BossCanDeleteStorage = true -- Boss ranks can delete storage from storage(If enabled)
-----------------------
-- Evidence Settings --
-----------------------
Config.AnalyzingTime = 6 * seconds -- Time it takes to analyze evidence at the crime lab
Config.VehicleFingerPrinting = {
enabled = true, -- Enable finger printing vehicle steering wheel?
requiredItem = 'uvlight',
removeOnUse = false -- Remove the finger printing device on use
}
Config.EvidenceReportData = { -- Data it provides in evidence reports
-- Add custom parameters if desired and accomodate them in `client/cl_customize.lua` under OpenEvidenceReport()
-- You can remove/add any of these OR re-order them to display to your likings!
blood = { -- Will be displayed in evidence report in order they are placed in index
{
parameter = 'name', -- Argument for OpenEvidenceReport() function
label = 'Name' -- Label to describe on form
},
{
parameter = 'location', -- Street name(s) and zone names(defined in the Zones table of config.lua)
label = 'Location'
},
{
parameter = 'date', -- Server date of evidence drop
label = 'Date'
},
{
parameter = 'time', -- Server time of evidence drop
label = 'Time'
},
{
parameter = 'lab', -- Crime lab that processed evidence
label = 'Crime Lab'
},
-- {
-- parameter = 'bloodtype', -- Example of a custom parameter named 'bloodtype'
-- label = 'Blood Type' -- Using custom logic labeled in `client/cl_customize.lua` under GetBloodTypeFromCitizenId(citizenid) function (Works out of box if uncommented AND running QBCore)
-- },
-- {
-- parameter = 'custom', -- Example of a custom parameter named 'custom'
-- label = 'License #' -- Using logic from the 'data' table in `client/cl_customize.lua` under OpenEvidenceReport() function of identifier/citizenid
-- },
},
bullet = { -- Will be displayed in evidence report in order they are placed in index
{
parameter = 'name', -- Argument for OpenEvidenceReport() function
label = 'Name:' -- Label to describe on form
},
{
parameter = 'guntype',
label = 'Bullet Type'
},
{
parameter = 'location',
label = 'Location'
},
{
parameter = 'date',
label = 'Date'
},
{
parameter = 'time',
label = 'Time'
},
{
parameter = 'lab', -- Crime lab that processed evidence
label = 'Crime Lab'
},
-- {
-- parameter = 'custom', -- Example of a custom parameter named 'custom'
-- label = 'License #' -- Using logic from the 'data' table in `client/cl_customize.lua` under OpenEvidenceReport() function of identifier/citizenid
-- },
},
print = { -- Evidence related to finger prints
{
parameter = 'name', -- Argument for OpenEvidenceReport() function
label = 'Name:' -- Label to describe on form
},
{
parameter = 'plate',
label = 'License Plate'
},
{
parameter = 'location',
label = 'Location'
},
{
parameter = 'date',
label = 'Date'
},
{
parameter = 'time',
label = 'Time'
},
{
parameter = 'lab', -- Crime lab that processed evidence
label = 'Crime Lab'
},
-- {
-- parameter = 'custom', -- Example of a custom parameter named 'custom'
-- label = 'License #' -- Using logic from the 'data' table in `client/cl_customize.lua` under OpenEvidenceReport() function of identifier/citizenid
-- },
},
}
---------------
-- Locations --
---------------
Config.EvidenceLabs = { -- Locations where Config.PoliceJobs can analyze evidence
-- Copy starting here to add new location
LSPD = {
label = 'LSPD', -- Label to display during certain situations/notifications
analyze = {
coords = vec3(483.63, -987.9, 30.68), -- Coords for location(If target is not enabled)
range = 1.8, -- Range to show TextUI (If target is not enabled)
label = '[E] - Analyze Evidence', -- TextUI string(If target is not enabled)
target = {
enabled = false, -- Enable Target? (Can be customized in cl_customize.lua the target system)
label = 'Analyze Evidence',
coords = vec3(483.63, -987.9, 30.68),
heading = 181.42,
width = 2.0,
length = 1.0,
minZ = 30.68-0.9,
maxZ = 30.68+0.9
}
},
storage = {
enabled = true, -- Enable archive access in-game via storage location?
coords = vec3(480.84, -984.55, 30.68), -- Coords for location(If target is not enabled)
range = 1.8, -- Range to show TextUI (If target is not enabled)
label = '[E] - Access Evidence Storage', -- TextUI string(If target is not enabled)
target = {
enabled = false, -- Enable Target? (Can be customized in cl_customize.lua the target system)
label = 'Access Evidence Storage',
coords = vec3(480.84, -984.55, 30.68),
heading = 87.87,
width = 2.0,
length = 1.0,
minZ = 30.68-0.9,
maxZ = 30.68+0.9
}
},
---------------------------------------------------------------------------------------------------------------------
jobLock = false, -- Put job here if want this specific crime lab locked to only one job (Must be job listed in 'Config.PoliceJobs', --
-- leave as false if all Config.PoliceJobs can access) --
-- Can be string (ex. 'police' or table ex. {'police', 'sheriff'}) --
---------------------------------------------------------------------------------------------------------------------
},
-- Stop copying here and paste below, and rename LSPD to something else and re-configure for additional locations
}
Special Note For ESX Users: 100% functional/tested for ESX 1.2 and above; there is no guarantee at this time for older versions of es_extended!
Preview
Please report any issues/requests via PM or the support server!
Buy Escrowed - $24.99
Buy Open Source - $49.99
My Other Releases:
- wasabi_ambulance
- wasabi_police
- gangwar_phone
- wasabi_adminmenu
- wasabi_evidence
- wasabi_carlock
- wasabi_crutch
- wasabi_multijob
- wasabi_fishing
- wasabi_discord
- wasabi_backpack
- wasabi_sellshop
- wasabi_elevators
- fivem-appearance
- wasabi_boombox
- wasabi_mining
- wasabi_tireslash
- wasabi_carpaint
- wasabi_blackmarket
- wasabi_vehiclenames
- wasabi_nfc
- wasabi_oxshops
Props:
Code is accessible | Partially (Escrowed) / Open Source Option Avaliable |
Subscription-based | No |
Lines (approximately) | ~1000+ |
Requirements | es_extended OR qb-core, ox_lib, oxmysql OR mysql-async, wasabi_bridge(included with purchase) |
Support | Yes |