ns-ambulancejob
NullSect Ambulance Job: a complete EMS job built around a patient model that runs on the server.
Wounds bleed, bleeding drains the blood volume, and the blood volume drives the vital signs, the collapse and the cardiac arrest. Medics treat the cause from two bags (BLS and ALS) on a cardiac monitor / AED and a paper trauma chart. Players who are down get the NullSect death screen.
Replaces qbx_medical + qbx_ambulancejob. Built and tested on Qbox. QBCore and ESX work through the bridge; they
are not tested in game yet, so report anything that behaves differently there.
Features
Patient model (server-side)
- 6 body zones, 5 wound kinds (gunshot, stab / laceration, contusion, fracture, burn), 4 severities. Repeated hits worsen the same wound, and vehicle or blast hits also break the bone.
- Bleeding in ml/s and blood volume. The vital signs follow the blood loss: HR, NIBP, SpO₂, RR, EtCO₂, temperature and GCS / AVPU.
- Alive → knocked down (collapse) → cardiac arrest. ROSC brings the patient back to unconscious with a pulse, and a medic then wakes them. Rhythms are VF and pulseless VT (shockable), asystole and PEA (exsanguination, hypoxia, tension pneumothorax). CPR slows the no-flow clock, and after too long no ROSC is possible.
- Since 0.11: VT, SVT and AF with a pulse (after ROSC, a bruised heart, epinephrine given with a pulse) keep the patient unconscious until they are converted, and VT loses its pulse if left alone. Chest wounds collapse a lung that builds up into a tension pneumothorax.
- Wound effects while alive: limping (untreated leg fracture), shaky aim (arm), blurred vision (head), shock (blood loss) and pain.
- A knockout from fists wears off by itself.
Treatment
- No inventory full of items: medics carry a BLS bag and an ALS bag. Supplies live in the bag's metadata and are restocked at the cabinet or the back of an ambulance.
- BLS: trauma dressing, hemostatic gauze, tourniquet (the time is written on the chart; left on too long it hurts the limb), chest seal, SAM splint, C-collar, burn dressing, O₂, OPA, BVM, AED, BP cuff and pulse oximeter.
- Tourniquet, IV, C-collar and oxygen can be taken off again.
- ALS: IV cannula, saline, epinephrine (IV in arrest, or local on a bleeding wound, also on a conscious patient), amiodarone, TXA, fentanyl (overdose depresses breathing), naloxone, i-gel, needle decompression, and a cardiac monitor / manual defibrillator with SYNC (synchronised cardioversion).
- Chest protocol: chest seal on an open chest wound, listen to both sides (breath sounds clear / reduced / absent, trachea shift), needle decompression on the silent side.
- The order of care matters: stop the bleeding, restore volume, oxygenate, then wake. Each step is timed by the server.
- CPR with a feedback panel: one SPACE press per compression, held to 5-6 cm and released for full recoil, at 100–120 / min (depth, rate gauge, 30-count, quality, live prompts). The AED analyses and advises a shock on VF and pulseless VT. The manual defibrillator has energy selection (50-360 J), charge, shock and SYNC.
Equipment (0.2)
- A stretcher and a wheelchair from the back of the ambulance: push, park, put the patient on, load into the ambulance with the patient.
- Bags on the ground that the whole crew works from, and a body bag for a patient who cannot be saved.
- A crutch for a leg injury. Running on an unsplinted fracture can make you fall.
- The ambulance's built-in monitor, and drawn skill games (0.4): IV cannula (aim, insert, stop at the flashback), CAT tourniquet (turn until the bleeding and distal pulse stop, lock the rod) and wound packing (pack between the spurts, then hold pressure). Since 0.10: chest seal (wipe dry, seal at the end of a breath out), SAM splint (straighten with traction, strap snug without losing the distal pulse), i-gel (glide in, stop at the resistance) and BVM (head tilt / chin lift); both airways end with two breaths in the green band. All of them are rendered with lit skin, cloth, blood and gloves, close to a photograph.
- Crew work on one patient: one medic does CPR while another starts the IV, gives drugs or runs the AED, each on their own screen with the same live patient. A monitor or AED stays on the patient when its medic closes the screen.
- Mistakes have consequences (0.6): an airway in a conscious patient makes him vomit, gauze in a head wound makes it worse, epinephrine or a shock on a beating heart can stop it, too much saline floods the lungs, CPR with a pulse breaks ribs. Shown in red on the timeline; the medic who caused it is not paid for that patient.
Screens
- Patient care: a cardiac monitor with live ECG / pleth / capnography drawn from the patient's real rhythm (QRS tone pitch follows SpO₂, alarms). Alongside it: an AED, a manual vital-signs card, a trauma assessment chart (body diagram, DCAP findings, highlighter, tourniquet times, ABC strip, timeline), and the two bags.
- Pocket guide (0.3): a tab on the clipboard opens an EMS field guide. It starts with a live, step-by-step treatment plan for the patient in front of you (built from what you found), then the reference chapters: first look, bleeding, airway, cardiac arrest, drugs, wake & transport, bag contents.
- Death screen: the same screen as ns-deathscreen (ECG line, bleed-out time from the model, recap, injuries, EMS call, give up, respawn).
Job and hospital
- Duty, a kit cabinet, a shared stash (ox_inventory), a garage and helipad by grade, carrying a patient and loading / unloading the ambulance.
- Reception check-in (NPC doctor, fee, bed time from the wounds), admission by a medic, and respawn into a hospital bed (fee, optional item loss).
- Medic payouts for treatment, waking, ROSC and admission, capped per emergency. Medic stats are saved in the database.
- Dispatch: ps-dispatch, cd_dispatch, rcore_dispatch, a built-in alert or your own function.
- Hospital presets for 26 popular hospital MLOs (0.8), a wardrobe on the job point, a pharmacy desk that sells first aid items, and elevators between the floors.
- First aid items for everyone (0.7): bandage, IFAK, painkillers, and a first aid kit that can wake a knocked-down player once the bleeding is under control. Fractures, burns and arrest stay EMS work.
- Compatibility:
qbx_medicalexports / state bags / metadata, txAdmin heal, andqbx_radialmenu's EMS entries and emergency button.
EMS tablet (0.5)
- Triage board: every open emergency (EMS calls, patients being treated, NPC call-outs) with a START triage tag (red / yellow / green / black) worked out from the patient record once a medic has looked, or set by the medic. Street, area, distance, age, who is responding and who treated. Respond (route + "responding" for the crew), accept a call-out, set the route.
- PCR reports: one report per case per medic. The system fills in times, findings, measured vitals, monitor readings, the care timeline and the patient's insurance; the medic writes the complaint, the narrative, triage, outcome and hospital. Archive with search; low grades read their own reports. Optional reward per report.
- Management (boss): staff with grade, duty and work counters (treatments, revives, ROSC, call-outs, reports, earnings), promote / demote, fire, hire the player next to you, insured citizens, optional society balance.
- NPC call-outs: while medics are on duty a call comes in now and then (gunshot, stabbing, crash, fall, burn, overdose, cardiac arrest). The patient is a full patient of the same model: treat him with the same care view, load him into the ambulance, hand him over at a hospital. Paid by outcome, split between the crew.
- Health insurance at the reception: plans pay part of the check-in, admit and respawn fees.
- Location editor (
/emseditor, admin): move hospital centres, receptions and beds, job points (duty, cabinet, stash, garage / helipad and their spawns) and call-out spots in game, add beds and spots, make new hospitals and job points. Saved in the database, no restart. - Discord log (optional, 1.0): knocked down / cardiac arrest, revives and by whom, every admin command, payouts and fees, boss actions, security flags. Webhook in a server convar, batched under Discord's rate limit.
Commands
| Command | Who | What |
|---|---|---|
/patient (/patient self) | everyone | care view on the nearest player (or yourself) |
/revive [id], /heal [id], /kill [id] | admin | medical admin tools |
/deathpreview down|dead|off | admin | the death screen only |
/medkit bls|als [id] | admin | a full bag |
/emspractice [trauma|arrest|cardiac|chest] | admin | the care view on a made-up patient (skill games, CPR, AED / monitor, cardioversion, needle decompression), alone; nothing is applied |
/dropbag bls|als | everyone | put your bag on the ground (same as using the item) |
/ems | EMS | the EMS tablet (also "EMS tablet" at an EMS vehicle; a key can be bound in the FiveM key settings) |
/emseditor | admin | the location editor |
/emscallout [scenario] | admin | a test NPC call in front of you (never pays) |
See INSTALLATION.md and CONFIGURATION.md.
Credits
The stretcher model (stream/ns_ambulance_stretcher) is based on "Ambulance Stretcher 2"
(https://sketchfab.com/3d-models/ambulance-stretcher-2-9fe5c15944914774a4ff1fe1193bc0d2) by Danish Shah
(https://sketchfab.com/s.danishshah57), licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/).
Changes by NullSect: colours and textures, backrest laid flat, collision, converted to a GTA V prop.