Configuration

The XSC_Evidence system allows you to fully customize how evidence is collected, processed, and interacted with in your server. This includes control over job access, evidence types, detection distances, props, animations, and more. Below is a complete breakdown of each configurable option, examples, and how to load the configuration into your server.


📁 Configuration Files

  • config.lua: Main configuration file for system behavior, evidence settings, visuals, durations, and metadata.

  • locations.lua: Handles the placement and access zones for evidence processing and storage locations.


Example Configuration: config.lua

Config = {}

-- General
Config.Debug = true                                -- Enable debug logging
Config.Locale = 'en'                                -- Translation locale
Config.RevealTimer = 2                              -- Time (in minutes) before tools auto-disable
Config.AntiSpamCooldown = 2000                      -- Anti-spam cooldown (in ms)
Config.AllowedJobs = { 'police', 'bcso', 'fib' }    -- Jobs allowed to use tools
Config.EvidenceRadius = 1.0                         -- Radius for pickup zones

-- Evidence Detection Ranges (in meters)
Config.RevealDistances = {
    casings = 15.0,
    blood = 15.0,
    fingerprints = 15.0,
}

-- Visual Markers (Optional - resource intensive)
Config.UseMarker = false
Config.Marker = {
    casing = { type = 1, size = 0.25, color = {0, 150, 255, 180}, duration = 1 },
    blood = { type = 1, size = 0.25, color = {180, 0, 180, 180}, duration = 30 },
    fingerprint = { type = 1, size = 0.25, color = {255, 255, 0, 180}, duration = 30 },
}

-- Timers
Config.CollectionDuration = 2000                    -- Evidence collection (ms)
Config.ProcessingDuration = 3000                    -- Evidence analysis (ms)

-- Inventory Integration
Config.EvidenceBagItem = 'evidence_bag'             -- Item required to collect evidence

-- GSR (Gunshot Residue)
Config.GSRDuration = 1800                           -- Duration in seconds (30 minutes)
Config.GSRClearSwimTime = 30                        -- Swim time in seconds to clear GSR
Config.GSRVehicleCheck = true
Config.VehicleGSR = {
    enableTarget = false                            -- Enable ox_target for GSR collection
}

-- Evidence Props
Config.EvidencePropCasing = 'sign_casings'
Config.EvidencePropBlood = 'sign_blood'
Config.EvidencePropFingerprint = 'sign_fingerprint'

-- Evidence Types
Config.EvidenceTypes = {
    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

Example Configuration: locations.lua

Locations = {
    processing = {
        {
            label = 'Evidence Processing',
            coords = vec3(489.22, -999.90, 27.80),
            radius = 3.0,
            icon = 'fa-solid fa-microscope',
            jobs = {'police', 'bcso', 'fib'},
        },
    },
    storage = {
        {
            label = 'Evidence Storage',
            coords = vec3(490.35, -997.42, 27.76),
            radius = 3.0,
            icon = 'fa-solid fa-box',
            jobs = {'police', 'bcso', 'fib'},
        },
    }
}

return Locations

Last updated