Before You Begin#
Before installing Medical Creator, make sure your server meets the minimum requirements. Four things are mandatory; everything else is optional and detected on its own.
Requirement | Status | Notes |
|---|---|---|
OneSync | Required | Stretchers, revives and state bags are synced through it. |
oxmysql | Required | Database access for the hospitals you create. |
ox_lib | Required | Callbacks, zones, menus, input dialogs and progress bars. |
Framework | Required | ESX, QBCore or Qbox — auto-detected. |
Inventory | Recommended | Medical items, the EMS stash and the pharmacy. qs-inventory, qb-inventory, ox_inventory, tgiann-inventory or origen_inventory. |
Target | Optional | ox_target or qb-target. Without one, every point becomes a 3D prompt with E. |
Keys / fuel / clothing | Optional | Keys and a full tank for garage vehicles, and the EMS wardrobe. |
Billing / society / dispatch | Optional | The Bill action, the boss menu and alerts on a dispatch or phone. |
screenshot-basic | Optional | Only for screenshots inside the Discord logs. |
Every optional integration is picked by looking at what is already running, and falls back to a built-in behaviour when nothing is found. Integrations lists every supported resource and how to pin one by hand.
github.comReleases · overextended/oxmysqlMySQL resource for FXServer.github.comReleases · overextended/ox_libA FiveM resource and script library for Lua and JS.Downloading Medical Creator#
After purchasing Medical Creator, the resource is automatically linked to your CFX Portal account.
Sign in to the CFX Portal using the same account used during checkout, open Granted Assets, and download Medical Creator.
After extracting the download, you should have the following folders:
[medical]/
├── qs-medical-creator/ -- the resource
│ ├── config/ -- what you may edit (main, hospital, stretcher)
│ ├── client/custom/ -- bridges to other resources (editable)
│ ├── server/custom/ -- bridges to other resources (editable)
│ ├── custom/ -- framework bridges (esx, qb)
│ ├── server/webhooks.lua -- Discord logs
│ ├── locales/ -- 27 languages
│ ├── stream/ -- stretcher, wheelchair and medical bag models
│ └── web/build/ -- the interface, already built
├── [sql]/ -- esx.sql, qb.sql and items.lua
├── [img]/ -- item images for your inventory
└── hospital_map/ -- optional Pillbox interiorKeep the folder named
qs-medical-creator. It is the name other scripts use to reach it, and the one the update check looks for.
Installing the Resource#
Move qs-medical-creator into your server's resources directory. It can live anywhere inside it, including a category folder:
resources/
└── [qs]/
├── qs-medical-creator/
└── hospital_map/ -- optionalThen open your server.cfg and make sure every dependency — and everything it should detect — starts before Medical Creator:
ensure oxmysql
ensure ox_lib
# Framework
ensure es_extended
# ensure qb-core
# ensure qbx_core
# Inventory, target, keys, fuel, clothing, billing...
ensure qs-inventory
ensure ox_target
ensure qs-vehiclekeys
ensure LegacyFuel
ensure illenium-appearance
# Optional Pillbox interior
ensure hospital_map
ensure qs-medical-creatorThe loading order matters. Detection only sees resources that are already started, so an inventory or target that starts after Medical Creator is not found and that part falls back to its standalone behaviour.
The Pillbox interior (optional)#
hospital_map is the Pillbox Medical Center top-floor interior used by the default Pillbox hospital. Use it if your server has no hospital MLO. If you run bob74_ipl, Medical Creator switches off its Pillbox interior automatically so the two never overlap.
The Database#
Import the SQL file that matches your framework, from the [sql] folder, before the first start. HeidiSQL or any MariaDB/MySQL manager works.
esx.sql creates the hospitals table and adds two columns to users: is_dead keeps a player dead across reconnects, and ems_duty remembers the EMS job while off duty.
ALTER TABLE `users` ADD IF NOT EXISTS `ems_duty` LONGTEXT NULL DEFAULT NULL;
ALTER TABLE `users` ADD IF NOT EXISTS `is_dead` TINYINT(1) NULL DEFAULT '0';
CREATE TABLE IF NOT EXISTS `hospitals` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`creator` VARCHAR(50) NOT NULL DEFAULT '0',
`zone` LONGTEXT NOT NULL,
`respawnPoint` LONGTEXT NOT NULL,
`blip` LONGTEXT NOT NULL,
`duty` LONGTEXT NOT NULL,
`stash` LONGTEXT NOT NULL,
`boss` LONGTEXT NOT NULL,
`checkIn` LONGTEXT NOT NULL,
`wardrobe` LONGTEXT NOT NULL,
`shop` LONGTEXT NOT NULL,
`garage` LONGTEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) COLLATE='utf8mb3_general_ci' ENGINE=InnoDB;qb.sql creates only the hospitals table. Death and last stand are kept in the player's metadata (isdead, inlaststand) and duty uses QBCore's own on-duty flag.
CREATE TABLE IF NOT EXISTS `hospitals` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`creator` VARCHAR(50) NOT NULL DEFAULT '0',
`zone` LONGTEXT NOT NULL,
`respawnPoint` LONGTEXT NOT NULL,
`blip` LONGTEXT NOT NULL,
`duty` LONGTEXT NOT NULL,
`stash` LONGTEXT NOT NULL,
`boss` LONGTEXT NOT NULL,
`checkIn` LONGTEXT NOT NULL,
`wardrobe` LONGTEXT NOT NULL,
`shop` LONGTEXT NOT NULL,
`garage` LONGTEXT NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) COLLATE='utf8mb3_general_ci' ENGINE=InnoDB;Hospitals you build with the creator are stored in
hospitalsand added on top of the ones written inconfig/hospital.lua. Beds, distress calls, injuries and stretchers live in memory and reset with the resource.
Adding the Items#
The defibrillator, medikit, treatment tools, medications, medical bag and stretcher are inventory items. Add them to your inventory and copy the images from [img] into its images folder. Inventory Items has every item ready to paste for each inventory.
Claiming Admin Access#
The hospital creator (/hospital_creator) opens for anyone who passes one of two routes:
Automatic. ESX: the admin and superadmin groups. QBCore / Qbox: the god and admin permissions, or anyone allowed the command ace:
add_ace group.admin command allow
add_principal identifier.license:xxxxxxxxxxxxxxxx group.adminAny player whose job is listed in Config.CreatorJobs in config/main.lua can open the creator.
Config.CreatorJobs = { 'realestate', 'police' } -- shipped default
-- Config.CreatorJobs = {} -- admins onlyConfiguring the Resource#
Hospitals are built in game. The files only hold behaviour and integrations:
File | Contents |
|---|---|
| Language, detection of every integration, jobs, the EMS key, death and last-stand timers, items lost on death, injuries, medications, EMS items and the creator controls. |
| Hospitals written by hand (Pillbox ships here) and standalone check-in points. |
| The stretcher switch, its item, its keys and where it sits in each ambulance model. |
| Discord webhooks and the FiveManage token for screenshots. |
| Every text the player reads, in 27 languages. |
The values worth reviewing first:
Config.Locale = 'en' -- see locales/ for the 27 languages
Config.Jobs = { 'ambulance' } -- jobs that use the EMS menu, stash, shop and garage
Config.CreatorJobs = { 'realestate', 'police' } -- jobs allowed in /hospital_creator
Config.EMSMenuKey = 'F5' -- default key of the EMS menu
Config.UseTarget = true -- false = 3D prompts with E
Config.LastStand = true -- crawl phase before death
Config.RespawnTimer = 5 * 60000 -- length of the last stand
Config.BleedOutTimer = 20 * 60000 -- time until the automatic respawn
Config.RemoveItemsAfterRPDeath = true
Config.KeepItemsOnDeath = { 'phone', 'cash', 'id_card' }
Config.Debug = true -- set to false on a live serverVerifying the Installation#
Restart your server and look for this line in the console:
[INFO] Successfully loaded the framework. esx -- or qb on QBCore and QboxIf it is missing, or a framework error appears instead, your framework started after Medical Creator or was renamed — see Common Errors. Then join and work through the first loop:
Visit Pillbox
Pillbox Hospital is on the map with a blip. Entering it spawns the check-in doctor and the pharmacist.
Go down and check in
Take some damage until you fall. Crawl with W, press G to call EMS, then hold E once the respawn is offered — you wake up on a Pillbox bed.
Try the EMS side
Set your job to
ambulance— on QBCore and Qbox also go on duty at the duty point — and press F5. Diagnose yourself, then take an ambulance from the garage and pull its stretcher out.Open the creator
/hospital_creatorlists your hospitals. Press + to draw your first one — Usage explains every section.
Hospitals created, edited or deleted in game apply to every player at once — no restart needed. Changes to the config files need a resource restart.



