XSC_Evidence - Immersive Forensic Evidence System
XSC_Evidence is a system that introduces immersive forensic evidence, specifically designed for law enforcement roleplay. XSC_Evidence brings realistic crime scene investigation to your server, with a huge focus on server performance.
Showcase Video: Preview
Purchase here: XSCripts Tebex
Support & Questions: XSCripts Discord
Features
- Dynamic Evidence
Supports different evidence types (bullet casings, blood, fingerprints, and gunshot residue) with supporting metadata for each evidence type. - Custom Evidence Marker Props
This resource comes with custom evidence props for each evidence type - Immersive Forensics
Collect, analyze, and reveal evidence types using job-restricted tools. (Magnifying Glass, Blacklight, and GSR Swab) - Highly Configurable
Each aspect of this script is configurable, including the ability to add additional evidence types. - Optimized for Performance on Large Servers
Resource usage between 0.00ms and 0.01ms
Configuration
This script is fully configurable with the ability to add new types of evidence. See below for the example config.
Example config.lua
Config = {}
-- General Settings
Config.Debug = true -- Enable debug logging
Config.Locale = 'en' -- Locale for translations
Config.RevealTimer = 2 -- Minutes before magnifying glass/blacklight auto-disables
Config.AntiSpamCooldown = 2000 -- Cooldown for evidence anti-spam (ms)
Config.AllowedJobs = { -- Jobs allowed to use magnifying glass/blacklight
'police',
'bcso',
'fib',
}
Config.EvidenceRadius = 1.0 -- Radius for evidence pickup zones
Config.RevealDistances = { -- Evidence reveal/detection distances (meters)
casings = 15.0, -- For magnifying glass (casings)
blood = 15.0, -- For blacklight (blood)
fingerprints = 15.0 -- For blacklight (fingerprints)
}
-- Marker Settings
Config.UseMarker = false -- Show markers for evidence (true/false) [THIS IS RESOURCE INTENSIVE]
Config.Marker = {
casing = {type = 1, size = 0.25, color = {0, 150, 255, 180}, duration = 1}, -- Blue
blood = {type = 1, size = 0.25, color = {180, 0, 180, 180}, duration = 30}, -- Purple
fingerprint = {type = 1, size = 0.25, color = {255, 255, 0, 180}, duration = 30} -- Yellow
}
-- Evidence Collection and Processing Progress Bars
Config.CollectionDuration = 2000 -- ms for evidence collection progress bar
Config.ProcessingDuration = 3000 -- ms for evidence analysis progress bar
-- Evidence Bag Item
Config.EvidenceBagItem = 'evidence_bag' -- Item required to collect evidence
-- GSR Residue Settings
Config.GSRDuration = 1800 -- 30 minutes
Config.GSRClearSwimTime = 30 -- seconds swimming to clear GSR
Config.GSRVehicleCheck = true -- Enable/disable vehicle GSR checks
Config.VehicleGSR = {
enableTarget = false -- Enables ox_targeting to collect GSR from vehicles
}
-- Evidence Prop Settings
Config.EvidencePropCasing = 'sign_casings' -- Prop to spawn for casing evidence
Config.EvidencePropBlood = 'sign_blood' -- Prop to spawn for blood evidence
Config.EvidencePropFingerprint = 'sign_fingerprint' -- Prop to spawn for fingerprint evidence
Config.EvidenceTypes = { -- Evidence types and their properties
blood = {
label = 'Blood Sample',
item = 'blood',
icon = 'fa-solid fa-droplet',
collectAnim = 'amb@medic@standing@kneel@idle_a',
collectAnimDict = 'idle_a',
processAnim = 'mini@repair',
processAnimDict = 'fixing_a_ped',
color = {255,0,0},
meta = {
dna_id = true,
timestamp = true,
location = true
}
},
casings = {
label = 'Bullet Casings',
item = 'casings',
icon = 'fa-solid fa-gun',
collectAnim = 'amb@medic@standing@kneel@idle_a',
collectAnimDict = 'idle_a',
processAnim = 'mini@repair',
processAnimDict = 'fixing_a_ped',
color = {200,200,0},
meta = {
weapon = true,
timestamp = true,
location = true
}
},
gsr = {
label = 'GSR',
item = 'gsr',
icon = 'fa-solid fa-mound',
collectAnim = 'mini@repair',
collectAnimDict = 'fixing_a_ped',
processAnim = 'mini@repair',
processAnimDict = 'fixing_a_ped',
color = {128,128,128},
meta = {
timestamp = true,
location = true
}
},
fingerprints = {
label = 'Fingerprints',
item = 'fingerprints',
icon = 'fa-solid fa-fingerprint',
collectAnim = 'amb@medic@standing@kneel@idle_a',
collectAnimDict = 'idle_a',
processAnim = 'mini@repair',
processAnimDict = 'fixing_a_ped',
color = {0,255,255},
meta = {
fingerprint_id = true,
timestamp = true,
location = true
}
}
}
return Config
Join Our Discord Server
For the fastest support and to connect with other XSCripts users, join our Discord community!
Join XSCripts Discord
| Code is accessible | Partially |
| Subscription-based | No |
| Lines (approximately) | 1600+ |
| Requirements | QBCore |
| Support | XSCripts Discord |
