Kartik Scripts

Medications

Medications are given to the whole patient, not a body part. Each has a route, a class, a duration, and a list of what it treats.

Medication tab

๐Ÿ˜ฃ Painkillers

DrugRoutePain reliefLastsAddictive?
FentanylIVโˆ’805 minโš ๏ธ Very, overdose at 2 doses / 10 min
MorphineIVโˆ’6010 minโš ๏ธ Yes, overdose at 3 doses / 15 min
TramadolOralโˆ’4020 minโš ๏ธ Mild, overdose at 4 doses / 30 min
VicodinOralโˆ’3520 minโš ๏ธ Mild, overdose at 4 doses / 30 min
IbuprofenOralโˆ’2015 minNo
ParacetamolOralโˆ’1515 minNo

Opioids suppress breathing. Morphine drops the breathing rate by 4, fentanyl by 6. On a patient who is already struggling to breathe, that matters.

Watch the dose count. Three morphines in fifteen minutes is an overdose, and an untreated opioid overdose drops the patient into last stand after four minutes. See Addictions & Overdoses.


๐Ÿšจ Emergency drugs

DrugRouteWhat it does
EpinephrineIVAdrenaline. +35 heart rate, +30 systolic. Treats anaphylaxis, and adds +25% to defibrillation success
NaloxoneNasalReverses opioids and sedatives instantly. The cure for an opioid overdose
Magnesium SulfateIVRemoves the torsades penalty on defibrillation
AmiodaroneIV+15% defibrillation success while active
PropofolIVSedates the patient for 90 seconds. Required for surgery

Epinephrine and naloxone are both self-usable. A patient with a known allergy can carry their own, and so can someone at risk of an overdose.


๐Ÿฆ  Treating illness

DrugRouteTreats
AntibioticsOralBacterial infections, pneumonia, sepsis. Also clears wound infection
AntiviralOralViral illness, influenza, common cold
AntihistamineOralAllergies, transfusion reactions
Cough SyrupOralRespiratory illness, common cold, asthma
AntiemeticOralNausea, food poisoning
AnxiolyticOralPanic attacks, epilepsy
MelatoninOralInsomnia
Paracetamol / VicodinOralFever
IbuprofenOralInflammation, migraine, high blood pressure

๐Ÿฉธ Fluids & blood sugar

DrugRouteEffect
Saline IV (500ml)IV+350 ml blood volume, +8 systolic. Treats dehydration
Saline IV (250ml)IV+175 ml blood volume, +4 systolic
Electrolyte DrinkOral+50 ml. Cheap dehydration fix
Glucose GelOral+70 blood sugar. Treats hypoglycemia
InsulinSubQโˆ’120 blood sugar. Treats hyperglycemia and controls diabetes

Saline raises blood volume, not blood cells. For serious blood loss you need a transfusion.


๐ŸŒก๏ธ Support

DrugRouteEffect
Oxygen MaskInhaled+8 oxygen saturation for 10 min. Not consumed, reusable
Thermal BlanketExternal+1.2 ยฐC body temperature. Cures hypothermia

๐Ÿ’‰ IV drugs need a line

Every drug with route IV, and every blood bag, goes through an IV line. The first IV drug you give places one with a short minigame; after that the line stays in for 30 minutes and every IV dose goes straight through it. See Surgery & Procedures โ†’ IV access.


๐Ÿงญ How doses work

  • A drug's effects last for its duration, then wear off.
  • Giving a second dose while the first is active stacks the dose count, that is how overdoses happen.
  • A dose counts toward curing a disease if the drug's treats list matches that disease. Doses do not have to come from the same medic.
  • Glucose and blood effects are instant, not gradual.

๐Ÿ“ Prescription drugs

Marked prescription = true, these can be prescribed to a patient who then collects them at any pharmacy:

morphine, paracetamol, ibuprofen, tramadol, vicodin, antibiotics, antihistamine, cough_syrup, anxiolytic, antiviral, antiemetic, insulin, melatonin

Each has preset dosage options, for example morphine is 5 mg or 10 mg, paracetamol is 500 mg or 1 g.

See Prescriptions.


๐Ÿ”ง For developers: custom behaviour

Any medication can run Lua when it is used, ticks, or finishes:

blood_drip = {
    label = 'Blood Drip', item = 'blood_bag', route = 'IV', duration = 60,
    class = 'fluid', anim = 'iv', prop = 'iv', tickInterval = 2,
    onUse    = function(ctx) ctx.notify('drip_started') end,
    onTick   = function(ctx) ctx.addBlood(15) end,
    onFinish = function(ctx) ctx.notify('drip_finished') end,
},

ctx gives you source, patient, doses, remaining, addBlood(ml), addPain(n) and notify(key, kind, ...).

See Exports & Events.

On this page