ox_inventory
1. Add the item definitions
- Open
ox_inventory/data/items.lua. - The file is one big table:
return { ... }. Scroll to the last item, just above the final}. - Paste the following item code inside that table:
-- TREATMENT SUPPLIES
['bandage'] = { label = 'Bandage', weight = 50, stack = true, close = true, description = 'Controls minor bleeding' },
['gauze'] = { label = 'Gauze Packing', weight = 40, stack = true, close = true, description = 'Controls moderate bleeding' },
['pressure_dressing'] = { label = 'Pressure Dressing', weight = 80, stack = true, close = true, description = 'Controls severe bleeding' },
['hemostatic_gauze'] = { label = 'Hemostatic Gauze', weight = 80, stack = true, close = true, description = 'Stops arterial bleeding' },
['tourniquet'] = { label = 'Tourniquet', weight = 120, stack = true, close = true, description = 'Stops limb bleeding. Do not leave on too long' },
['antiseptic'] = { label = 'Antiseptic', weight = 100, stack = true, close = true, description = 'Cleans wounds to prevent infection' },
['irrigation_kit'] = { label = 'Wound Irrigation Kit', weight = 250, stack = true, close = true, description = 'Flushes infected wounds' },
['antibiotic_cream'] = { label = 'Antibiotic Cream', weight = 60, stack = true, close = true, description = 'Treats mild wound infections' },
['suture_kit'] = { label = 'Suture Kit', weight = 150, stack = true, close = true, description = 'Closes deep wounds' },
['splint'] = { label = 'Splint', weight = 300, stack = true, close = true, description = 'Immobilises a broken limb' },
['cervical_collar'] = { label = 'Cervical Collar', weight = 300, stack = true, close = true, description = 'Stabilises neck injuries' },
['cast_kit'] = { label = 'Cast Kit', weight = 600, stack = true, close = true, description = 'Hospital cast for confirmed fractures' },
['burn_dressing'] = { label = 'Burn Dressing', weight = 80, stack = true, close = true, description = 'Dresses burns' },
['ice_pack'] = { label = 'Ice Pack', weight = 200, stack = true, close = true, description = 'Reduces bruising and pain' },
['chest_seal'] = { label = 'Chest Seal', weight = 60, stack = true, close = true, description = 'Seals an open chest wound' },
['decompression_needle'] = { label = 'Decompression Needle', weight = 40, stack = true, close = true, description = 'Relieves a tension pneumothorax' },
['pelvic_binder'] = { label = 'Pelvic Binder', weight = 500, stack = true, close = true, description = 'Holds a broken pelvis together to slow the bleeding' },
['airway_kit'] = { label = 'Suction & Airway Kit', weight = 400, stack = true, close = true, description = 'Clears water and fluid from the airway' },
['xray_film'] = { label = 'X-Ray Film', weight = 80, stack = false, close = true, description = 'Hold it up to a lightbox to read it' },
['ultrasound'] = { label = 'Portable Ultrasound', weight = 1200, stack = false, close = true, description = 'Bedside FAST scan: blood in the belly, around the heart or in the chest' },
['io_needle'] = { label = 'IO Needle', weight = 60, stack = true, close = true, description = 'Drill needle for bone access when no vein can be found' },
['intubation_kit'] = { label = 'Intubation Kit', weight = 350, stack = true, close = true, description = 'Secures the airway of an unconscious patient' },
-- MEDICATION & FLUIDS
['morphine'] = { label = 'Morphine', weight = 20, stack = true, close = true, description = 'Strong painkiller (addictive)' },
['fentanyl'] = { label = 'Fentanyl', weight = 20, stack = true, close = true, description = 'Very strong painkiller (addictive)' },
['epinephrine'] = { label = 'Epinephrine', weight = 20, stack = true, close = true, description = 'Adrenaline. Allergic reactions & cardiac arrest' },
['naloxone'] = { label = 'Naloxone (Narcan)', weight = 20, stack = true, close = true, description = 'Reverses opioid overdose & sedation' },
['propofol'] = { label = 'Propofol', weight = 30, stack = true, close = true, description = 'Sedative for surgery' },
['paracetamol'] = { label = 'Paracetamol', weight = 10, stack = true, close = true, description = 'Mild painkiller, lowers fever' },
['ibuprofen'] = { label = 'Ibuprofen', weight = 10, stack = true, close = true, description = 'Anti-inflammatory painkiller' },
['tramadol'] = { label = 'Tramadol', weight = 10, stack = true, close = true, description = 'Prescription painkiller' },
['antibiotics'] = { label = 'Antibiotics', weight = 10, stack = true, close = true, description = 'Treats bacterial infections' },
['antihistamine'] = { label = 'Antihistamine', weight = 10, stack = true, close = true, description = 'Treats allergies' },
['cough_syrup'] = { label = 'Cough Syrup', weight = 150, stack = true, close = true, description = 'Treats respiratory illness' },
['anxiolytic'] = { label = 'Anti-Anxiety Medication', weight = 10, stack = true, close = true, description = 'Treats panic attacks' },
['antiviral'] = { label = 'Antiviral', weight = 10, stack = true, close = true, description = 'Treats viral illness like influenza' },
['antiemetic'] = { label = 'Antiemetic', weight = 10, stack = true, close = true, description = 'Stops nausea' },
['glucose_gel'] = { label = 'Glucose Gel', weight = 40, stack = true, close = true, description = 'Treats low blood sugar' },
['insulin'] = { label = 'Insulin', weight = 30, stack = true, close = true, description = 'Treats high blood sugar' },
['oxygen_mask'] = { label = 'Oxygen Mask', weight = 800, stack = true, close = true, description = 'Improves oxygen saturation' },
['saline_bag'] = { label = 'Saline IV (500ml)', weight = 550, stack = true, close = true, description = 'Restores fluid volume' },
['electrolytes'] = { label = 'Electrolyte Drink', weight = 350, stack = true, close = true, description = 'Treats dehydration' },
-- BLOOD
['blood_bag'] = { label = 'Blood Bag', weight = 520, stack = false, close = true, description = 'Check the blood type before transfusing' },
['blood_tube'] = { label = 'Blood Tube', weight = 20, stack = false, close = true, description = 'Draw a patient sample, analyse it at the lab' },
-- DIAGNOSTIC TOOLS
['pulse_oximeter'] = { label = 'Pulse Oximeter', weight = 100, stack = false, close = true, description = 'Heart rate & oxygen' },
['bp_cuff'] = { label = 'Blood Pressure Cuff', weight = 400, stack = false, close = true, description = 'Blood pressure' },
['thermometer'] = { label = 'Thermometer', weight = 50, stack = false, close = true, description = 'Body temperature' },
['stethoscope'] = { label = 'Stethoscope', weight = 200, stack = false, close = true, description = 'Breathing, lung & heart sounds' },
['penlight'] = { label = 'Penlight', weight = 50, stack = false, close = true, description = 'Pupil reaction (head injuries, overdoses)' },
['glucometer'] = { label = 'Glucometer', weight = 100, stack = false, close = true, description = 'Blood sugar' },
['defibrillator'] = { label = 'Defibrillator', weight = 2500, stack = false, close = true, description = 'Shocks a shockable rhythm' },
['patient_monitor'] = { label = 'Patient Monitor', weight = 4000, stack = false, close = true, description = 'Deployable live vitals monitor' },
-- EQUIPMENT
['medbag'] = { label = 'Medical Bag', weight = 1500, stack = false, close = true, description = 'Place it on the ground, supplies inside can be used nearby' },
['stretcher'] = { label = 'Folded Stretcher', weight = 8000, stack = false, close = true, description = 'Deploy a stretcher' },
['wheelchair'] = { label = 'Wheelchair', weight = 9000, stack = false, close = true, description = 'Deploy a wheelchair' },
['crutch'] = { label = 'Crutch', weight = 1200, stack = false, close = true, description = 'Walk with a leg injury' },
['breathalyzer'] = { label = 'Breathalyzer', weight = 200, stack = false, close = true, description = 'Reads blood alcohol from a breath sample' },
['dna_swab'] = { label = 'DNA Swab', weight = 10, stack = true, close = true, description = 'Collect DNA from a dead body' },
['dna_sample'] = { label = 'DNA Sample', weight = 15, stack = false, close = true, description = 'Analyse it at the hospital lab to identify a body' },
['bodybag'] = { label = 'Body Bag', weight = 1000, stack = true, close = true, description = 'For patients who could not be saved' },
['first_aid_kit'] = { label = 'First Aid Kit', weight = 500, stack = true, close = true, description = 'Patch yourself up or help a downed person' },
['revive_kit'] = { label = 'Revive Kit', weight = 800, stack = true, close = true, description = 'Emergency revive (if enabled)' },
-- ADDED ITEMS
['pager'] = { label = 'Pager', weight = 150, stack = false, close = true, description = 'Receive distress calls, code blues and reception pages' },
['medical_report'] = { label = 'Medical report', weight = 10, stack = false, close = true, description = 'A signed medical document' },
['prescription'] = { label = 'Prescription', weight = 10, stack = false, close = true, description = 'Use it to read the prescription' },
['saline_bag_small'] = { label = 'Saline IV (250ml)', weight = 300, stack = true, close = true, description = 'Small fluid bag' },
['thermal_blanket'] = { label = 'Thermal Blanket', weight = 300, stack = true, close = true, description = 'Warms up a cold patient (hypothermia)' },
['magnesium'] = { label = 'Magnesium Sulfate', weight = 60, stack = true, close = true, description = 'IV antiarrhythmic, used for torsades' },
['amiodarone'] = { label = 'Amiodarone', weight = 60, stack = true, close = true, description = 'IV antiarrhythmic, improves defibrillation' },
['vicodin'] = { label = 'Vicodin', weight = 20, stack = true, close = true, description = 'Prescription pain relief' },
['melatonin'] = { label = 'Melatonin', weight = 20, stack = true, close = true, description = 'Helps with sleep problems' },2. Remove duplicates
A Lua table cannot hold the same key twice, the entry that comes last wins, which makes the file confusing and error prone.
Search the file for these names and keep a single definition of each:
bandage medbag first_aid_kit defibrillator stretcher wheelchairDelete the default ox bandage, not ours. The ox one has a client = { ... } block that heals on its own and bypasses the whole injury system.
3. Add the images
Copy every PNG from the script's images/items/ folder into:
ox_inventory/web/images/Names are case sensitive.
4. Restart
restart ox_inventory
restart kartik-ambulancejobOr restart the server.
✅ Check it worked
Give yourself an item and make sure it shows with its icon:
/giveitem 1 bandage 5Adding the Items
The script uses 70 items. Your inventory has to know about them before the script can hand them out.
qb / ps / lj-inventory
This guide covers every qb-core based inventory: qb-inventory, ps-inventory, lj-inventory, and also works as a reference for qs-inventory, codem-inventory, tgiann-inventory and origen_inventory.