QBCore Installation
Install oxide-medical on QBCore — cure item registration in qb-core, item images, needs polling, and death integration.
QBCore-specific steps for oxide-medical. Follow the Installation Guide first — this page only covers what differs on QBCore.
Nothing to Disable
oxide-medical does not replace anything QBCore ships. It adds a layer QBCore has no equivalent of.
If you are also installing oxide-ems, that one does replace qb-ambulancejob — see its own QBCore guide for that step.
Register the Cure Items
Open qb-core/shared/items.lua and paste these into the item list. These are the exact names oxide-medical looks for — do not rename them:
-- Oxide Medical
['antacid'] = { name = 'antacid', label = 'Antacid', weight = 100, type = 'item', image = 'antacid.png', unique = false, useable = true, shouldClose = true, description = 'Relieves nausea and stomach sickness.' },
['antibiotics'] = { name = 'antibiotics', label = 'Antibiotics', weight = 100, type = 'item', image = 'antibiotics.png', unique = false, useable = true, shouldClose = true, description = 'Treats bacterial infections.' },
['antiviral'] = { name = 'antiviral', label = 'Antiviral', weight = 100, type = 'item', image = 'antiviral.png', unique = false, useable = true, shouldClose = true, description = 'Treats viral infections.' },The fracture and wound catalogs also name two supply items. If you are installing oxide-ems alongside this, you will be adding them for it anyway — otherwise add them here:
-- Medical supplies (shared with oxide-ems)
['medical_bandage'] = { name = 'medical_bandage', label = 'Medical Bandage', weight = 100, type = 'item', image = 'medical_bandage.png', unique = false, useable = true, shouldClose = true, description = 'A sterile bandage used to stop bleeding.' },
['medical_splint'] = { name = 'medical_splint', label = 'Splint', weight = 300, type = 'item', image = 'medical_splint.png', unique = false, useable = true, shouldClose = true, description = 'A rigid splint used to set fractures.' },useable = true matters. oxide-medical registers each cure as a usable item, and an item that is not marked usable can never be used to treat anything.
Weights, labels and descriptions are sensible defaults — change them to taste. The item names must stay as written.
The sixth item: painkillers
painkillers is the cure for fever. QBCore ships it, so it is usually already in your item list — but search items.lua for it and confirm, because a trimmed or hand-written 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, add it with the others:
['painkillers'] = { name = 'painkillers', label = 'Painkillers', weight = 100, type = 'item', image = 'painkillers.png', unique = false, useable = true, shouldClose = true, description = 'Relieves moderate pain and aches.' },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:
qb-inventory/html/images/Images for all five non-stock items ship in itemimages/ in this resource. painkillers is stock on QBCore and already has an image.
Needs Integration
QBCore keeps hunger, thirst and stress in player metadata, and o-link reads all three. That means the needs-driven parts of oxide-medical work out of the box:
- going hungry can bring on nausea
- sustained stress can bring on dizziness
- neglect erodes the immune stat; looking after yourself regenerates it
- low thirst brings on dehydration, which clears when you drink
Those values 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 QBCore means the inlaststand and isdead metadata. While a player is either, no new injuries register, no illness rolls happen, damage over time pauses, and physical effects clear.
Stock qb-core has no death lifecycle of its own — qb-ambulancejob maintained that metadata, and if you have replaced it with oxide-ems, that keeps it accurate instead. Either way this works; it only stops working if you remove the ambulance job and put nothing in its place.
Verification on QBCore
- 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— should print your real hunger, thirst and stress values, notnil./med sim resetto clean up.