ESX Installation
Install oxide-medical on ESX Legacy — ox_inventory item registration, the missing stress stat, and death integration.
ESX-specific steps for oxide-medical. Follow the Installation Guide first — this page only covers what differs on ESX.
Nothing to Disable
oxide-medical does not replace anything ESX ships. It adds a layer ESX has no equivalent of.
If you are also installing oxide-ems, that one does replace esx_ambulancejob — see its own ESX guide for that step.
Register the Cure Items
Every item oxide-medical looks for is ready to paste in itemimages/ox_inventory_items.lua in the resource folder. Copy the entries between its braces into ox_inventory/data/items.lua, above that file's final closing brace. Do not rename them.
The file also includes the two supply items the fracture and wound catalogs name (medical_bandage, medical_splint). If you are installing oxide-ems alongside this, they are the same entries its file has, so add them once.
Restart ox_inventory (or the server) after saving.
If your server uses a different inventory, register the same item names using that resource's syntax.
The sixth item: painkillers
painkillers is the cure for fever. Stock ox_inventory ships it, so it is usually already in data/items.lua — but search the file for it and confirm, because a trimmed or hand-written item list often drops it, and the failure is silent: using the item does nothing at all and no error appears in F8 or the server console.
If it is missing, paste the painkillers entry at the bottom of itemimages/ox_inventory_items.lua too.
oxide-medical owns painkillers as a usable item. If oxide-ems is installed alongside it, oxide-ems deliberately leaves the item alone so the fever cure keeps working. Any other resource that claims painkillers will still conflict — only one resource can own a usable item, and the last one to register wins.
Copy the Images
Copy the .png files into:
ox_inventory/web/images/Images for all five non-stock items ship in itemimages/ in this resource. painkillers is stock in ox_inventory and already has an image.
Needs Integration — Read This One
ESX stores hunger and thirst in esx_status, on a 0–1,000,000 scale. o-link normalises them to 0–100, so oxide-medical reads them correctly with nothing to configure. Going hungry can bring on nausea, neglect erodes the immune stat, and low thirst brings on dehydration that clears when the player drinks.
ESX has no stress stat. o-link reports stress as 0 on ESX, which means the shipped stress rule — dizziness at 80 or above — can never fire there. Everything else in the needs layer works normally.
If your server runs a stress system of its own, either point a custom rule at whatever it exposes, or drop the stress rule from Config.NeedsSicknessRules in shared/config/sickness.lua so it is not misleading:
Config.NeedsSicknessRules = {
{ need = 'hunger', op = '<=', value = 15, sickness = 'nausea', baseChance = 0.40 },
-- stress rule removed: ESX has no stress stat
}Needs are read on a poll — every 30 seconds, with the sickness rules rolling every fourth read. See Config.Triggers.NeedsPolling in Configuration.
Death Integration
oxide-medical reads downed and dead state through o-link, which on ESX means the isDead player statebag. While a player is dead, no new injuries register, no illness rolls happen, damage over time pauses, and physical effects clear.
ESX has no downed or laststand phase — a player is alive or dead, nothing in between. That is ESX's own model, and oxide-medical follows it.
Stock es_extended only detects death; esx_ambulancejob maintained the state around it. If you have replaced that with oxide-ems, it publishes the isDead statebag and this works. It only stops working if you remove the ambulance job and put nothing in its place.
Verification on ESX
- Server starts with no dependency errors.
/med testas an admin — every check should pass./med sim fracture— you should limp and your aim should drift./med add me disease infection - 1, then/med give me antibioticsand use it. A progress bar should run and the infection should clear./med checkneeds me— hunger and thirst should show real values. Stress showing0is expected on ESX./med sim resetto clean up.
QBX Installation
Install oxide-medical on Qbox — coexistence with qbx_medical, ox_inventory item registration, needs polling, and death integration.
Features
Feature-by-feature reference for oxide-medical — the medical record, conditions, injury detection, vitals, contagion, treatment, and the integration surface.