Oxide EMS
Multi-framework ambulance-job replacement with hospitals, doctor's offices, field care, and a surgery minigame for FiveM servers.
oxide-ems is a complete ambulance-job replacement for FiveM. It drops the legacy qb-ambulancejob / esx_ambulancejob / qbx_ambulancejob flow and replaces it with a database-driven, runtime-configurable system: departments, hospitals, doctor's offices, grades, garages, uniforms, radio channels and the supply shop are all set up from an in-game admin panel rather than from config files.
The resource ships two facility pipelines. Hospitals are the emergency side — beds, hospital respawn, x-ray machines and operating tables. Doctor's offices are the appointment side — a reception bell that pages on-duty staff for walk-in treatment. On top of both sits a full field-care pipeline: examine a patient through a scripted diagnosis camera, treat the bleeding, stabilize them, wheel them out on a stretcher or load them into the ambulance, and revive them at a bed. Treatments themselves run as a graded surgery minigame, so a botched operation has consequences.
oxide-ems is framework-agnostic through o-link and runs on QBCore, ESX and Qbox. Compatibility shims keep the hospital:* event surface, the stock medical items, the stock admin commands and the QBCore doctor-count callback working for any third-party resource that depended on the legacy ambulance job.
Key Features
- Department Builder — Full runtime in-game admin (
/ems admin): departments, facilities, grades, salaries, badges, garages, fleet, uniforms, radio channels and the supply shop catalog - Two Facility Types — Hospitals get beds, respawn points, x-ray machines and operating tables; doctor's offices get a reception desk that pages on-duty staff. Both get clock-in, personal lockers, a management desk and a supply counter
- In-World Placement — Every interaction point is placed by walking to the spot, with live previews — a ghost patient lying on a bed, and resizable preview quads for x-ray screens and surgery monitors
- Diagnosis Overlay — Scripted camera, seven clickable body regions tracked to real ped bones, per-condition pricing and supply requirements, and a live vitals readout (pulse, blood pressure, SpO2, cardiac arrest)
- Triage — Badly hurt patients are locked out of street revives and must be stabilized, transported and revived at a hospital bed. Bleeding must be treated before a stabilization takes, and a fresh wound cancels it
- Surgery Minigame — Treatment runs as a graded keypress minigame everywhere: a clean run cures, a middling run cures with a complication, a failure can worsen the patient, with a hard cap on how much harm one patient can take
- Patient Transport — Load into an ambulance seat, or take the stretcher out of the vehicle, drag it over, load the patient and wheel them back. Patients can climb out of a stopped vehicle themselves if their medic disconnects
- X-ray Machines & Operating Tables — In-world screens: the x-ray display shows the skeleton highlight and findings list to everyone standing nearby, and the operating-table monitor shows the patient's record and a real-pulse ECG
- Hospital Beds & Respawn — A heal-to-full bed loop, medic-assisted check-in as the bed revive, a self-service fallback so an unstaffed server is never a dead end, and hospital respawn points behind a fade-out cutscene with an optional fee and optional inventory loss
- Duty, Pay & Treasury — Duty clock-in, salaries on an interval, department treasury, unpaid back-pay accrual, and a desktop-style boss panel for roster, treasury, payroll, uniforms and fleet
- Persistent Fleet — Individual vehicles that survive restarts, keep fuel and damage, re-link on clock-in, and are bought and recovered from the treasury
- Uniform Builder — Captures what you are wearing and owns only the clothing slots you choose, leaving the rest of the medic's outfit alone
- Supply Shop — Public self-service rows and rank-gated staff rows, revenue routed to the treasury
- Dispatch & Radio — Automatic down and death alerts, a distress keybind for downed players,
/911efor anyone, clinic reception pages, understaffed bed-request alerts, and department radio channels with rank and duty gates and automatic tuning at clock-in - Live Settings — In-game settings editor (
/ems settings) covering every setting, stored in the database and applied live — no restart - Compatibility Shims — The
hospital:*event surface, stock medical items, stock admin commands, the QBCorehospital:GetDoctorscallback, optional ESX job-table sync and esx_society registration, andg-multijobmirroring - Multi-Department Enrolment — Optional: one character in several EMS departments at once, each with its own rank, badge and callsign, following their active job
Requirements
Required
| Resource | Purpose |
|---|---|
o-link | Framework abstraction for character, job, money, inventory, notify, target, medical, death, dispatch, banking, clothing, placement |
ox_lib | Locale, callbacks, keybinds, UI helpers |
oxmysql | Database persistence |
oxide-medical | Blood types, injuries, illnesses, fractures and vitals — the medical record the clinic, surgery and x-ray systems read and write |
| Framework | One of qb-core, qbx_core, or es_extended |
Recommended
| Resource | Purpose |
|---|---|
oxide-dispatch | Delivers EMS alerts to a dispatch board. Without it, alerts still page on-duty medics directly, but automatic down/death alerts have nowhere to go |
oxide-banking | Department treasury accounts and patient invoicing for revives and treatment |
Optional
| Resource | Purpose |
|---|---|
oxide-radio | Runs the radio that department channels are registered into |
g-multijob | Mirrors hires, fires and promotions into the in-game multi-job menu |
On Qbox, qbx_medical stays the death provider — leave it running. oxide-ems layers on top of it, and only qbx_ambulancejob is removed. See the QBX install guide.
Supported Frameworks
| Framework | Support |
|---|---|
QBCore (qb-core) | Full |
QBX (qbx_core) | Full |
ESX Legacy (es_extended) | Full |
Quick Start
Place oxide-ems in your server's resources directory.
Start ox_lib, oxmysql, o-link, oxide-medical, optional oxide-banking, oxide-dispatch and oxide-radio, your framework, and oxide-ems in that order.
Run sql/install.sql to create every Oxide EMS table.
Follow the framework-specific setup (QBCore, QBX, or ESX) to register items and disable the legacy ambulance job.
Restart the whole server — not just the resource. The stretcher prop is streamed and only registers on a full server start.
Run /ems admin in-game to create a department, grades, facilities with their interaction points, garages, the fleet, uniforms, radio channels and the supply shop.
See the Installation Guide for the full setup flow.
Documentation
Installation
Generic install hub.
Configuration
Per-setting reference for the database-backed settings.
QBCore Setup
QBCore-specific install.
QBX Setup
Qbox-specific install.
ESX Setup
ESX Legacy install.
Features
Feature-by-feature reference.
Exports & Integration
Exports, events, statebags and the compatibility surface.
Admin Tools
Commands, /ems admin, and the boss desktop.
Troubleshooting
Common issues and fixes.