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.

๐ฃ Painkillers
| Drug | Route | Pain relief | Lasts | Addictive? |
|---|---|---|---|---|
| Fentanyl | IV | โ80 | 5 min | โ ๏ธ Very, overdose at 2 doses / 10 min |
| Morphine | IV | โ60 | 10 min | โ ๏ธ Yes, overdose at 3 doses / 15 min |
| Tramadol | Oral | โ40 | 20 min | โ ๏ธ Mild, overdose at 4 doses / 30 min |
| Vicodin | Oral | โ35 | 20 min | โ ๏ธ Mild, overdose at 4 doses / 30 min |
| Ibuprofen | Oral | โ20 | 15 min | No |
| Paracetamol | Oral | โ15 | 15 min | No |
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
| Drug | Route | What it does |
|---|---|---|
| Epinephrine | IV | Adrenaline. +35 heart rate, +30 systolic. Treats anaphylaxis, and adds +25% to defibrillation success |
| Naloxone | Nasal | Reverses opioids and sedatives instantly. The cure for an opioid overdose |
| Magnesium Sulfate | IV | Removes the torsades penalty on defibrillation |
| Amiodarone | IV | +15% defibrillation success while active |
| Propofol | IV | Sedates 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
| Drug | Route | Treats |
|---|---|---|
| Antibiotics | Oral | Bacterial infections, pneumonia, sepsis. Also clears wound infection |
| Antiviral | Oral | Viral illness, influenza, common cold |
| Antihistamine | Oral | Allergies, transfusion reactions |
| Cough Syrup | Oral | Respiratory illness, common cold, asthma |
| Antiemetic | Oral | Nausea, food poisoning |
| Anxiolytic | Oral | Panic attacks, epilepsy |
| Melatonin | Oral | Insomnia |
| Paracetamol / Vicodin | Oral | Fever |
| Ibuprofen | Oral | Inflammation, migraine, high blood pressure |
๐ฉธ Fluids & blood sugar
| Drug | Route | Effect |
|---|---|---|
| Saline IV (500ml) | IV | +350 ml blood volume, +8 systolic. Treats dehydration |
| Saline IV (250ml) | IV | +175 ml blood volume, +4 systolic |
| Electrolyte Drink | Oral | +50 ml. Cheap dehydration fix |
| Glucose Gel | Oral | +70 blood sugar. Treats hypoglycemia |
| Insulin | SubQ | โ120 blood sugar. Treats hyperglycemia and controls diabetes |
Saline raises blood volume, not blood cells. For serious blood loss you need a transfusion.
๐ก๏ธ Support
| Drug | Route | Effect |
|---|---|---|
| Oxygen Mask | Inhaled | +8 oxygen saturation for 10 min. Not consumed, reusable |
| Thermal Blanket | External | +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.