Kartik Scripts

Medical

A patient is stabilised once every treatment in their condition's treatments list has been given.

Conditions

Config.Medical = {
    assessTime = 4000, -- ms to assess a patient
    conditions = {
        gunshot = {
            label = 'Gunshot wound', severity = 'critical', pose = 'writhe',
            treatments = { 'tourniquet', 'bandage', 'oxygen' },
            vitals = { hr = { 125, 150 }, sys = { 75, 95 }, spo2 = { 88, 94 }, rr = { 24, 32 } }, avpu = 'Pain',
        },
        -- ...
    },
}
FieldMeaning
labelShown in the patient status
severityminor, serious or critical
poseHow the patient lies: writhe, unconscious or sitting
treatmentsTreatment ids needed to stabilise them
vitalsRanges for heart rate, systolic blood pressure, SpO₂ and breathing rate
avpuResponsiveness: Alert, Verbal, Pain or Unresponsive

Built-in conditions: laceration, fracture, head_trauma, gunshot, burns, overdose, cardiac, stab_wound, spinal_injury, hypoglycemia, crush_injury, panic, smoke.

Treatments

treatments = {
    bandage = { label = 'Pressure bandage', icon = 'droplet', time = 6000, anim = 'kneel' },
    cpr     = { label = 'CPR', icon = 'heart-pulse', time = 9000, anim = 'cpr' },
    -- ...
},
FieldMeaning
labelShown in the treatment menu
iconA Lucide icon name
timeHow long it takes, in ms
animkneel, cpr or standing

Built-in treatments: bandage, tourniquet, splint, collar, burn_dressing, painkiller, naloxone, oxygen, cpr, glucometer, oral_glucose.

CPR

cpr = {
    successChance   = 35, -- % per CPR cycle to regain a pulse
    guaranteedAfter = 4,  -- regain a pulse at the latest on this cycle
},

Adding a condition

  1. Add it to conditions with the treatments it needs.
  2. Add patient lines for it under Config.Dialogue.answers.injured in config_dialogue.lua (otherwise the default lines are used).
  3. Use it in a scenario with ctx:SpawnPatient(coords, model, 'your_condition').

On this page