Kartik Scripts

Gunshot Residue (GSR)

The GSR system provides a realistic way to track and analyze firearm discharge history on suspects.

🧪 What is GSR?

Gunshot Residue (GSR) consists of trace chemical particles deposited on the hands, clothing, and hair of an individual when they discharge a firearm. In this system, GSR is a persistent state that can be tested by law enforcement.

📋 Key Features

⏱️ Realistic Persistence

GSR doesn't disappear instantly. It remains on the suspect for a configurable duration (default: 30 minutes), allowing officers to catch suspects even well after a shooting has occurred.

🧼 Cleaning Logic

Suspects can attempt to remove GSR by washing themselves.

  • Water Cleaning: Standing in water (pool, ocean, lake) will trigger a cleaning prompt.
  • Time-Based Decay: Residue naturally wears off over time as the suspect moves and interacts with the world.

📦 Field Testing (GSR Kit)

Officers can use a GSR Test Kit item to perform a field test on a suspect.

  • Interaction: Use the item near a suspect to trigger an animation and progress bar.
  • Results: Immediate notification indicating if the suspect is "Positive" or "Negative" for gunshot residue.

⚙️ Configuration

You can customize the GSR behavior in shared/config.lua:

Config.Residue = {
    enabled = true,
    allowCleaningInWater = true,
    cleaningDuration = 5000, -- Time to clean in water (ms)
    testDuration = 3000,     -- Time to perform the field test (ms)
}

On this page