doctor, doctorR, doctorS) and a shaman variant are supported out of the box, each with their own hospital location, duty station, NPC, and storage. The resource supports both VORP and RSG frameworks.
Framework Support
sh-doctorjob supports both VORP and RSG frameworks. Set the framework in your server-side config before starting the resource:config/main.lua
Supported Jobs
sh-doctorjob is multi-job aware. All of the following job names are recognized as medical staff out of the box:| Job | Default location |
|---|---|
doctor | Valentine Clinic |
doctorR | Rhodes Clinic |
doctorS | Strawberry Clinic |
medic | Any clinic |
shaman | Shaman-specific alerts and locations |
Config.Jobs and configure which jobs receive doctor alerts versus shaman alerts separately.
Features
Death & Bleedout System
Death & Bleedout System
sh-doctorjob includes a full server-authoritative death handler. When downed, players enter a bleedout state for a configurable duration (
Config.Death.BleedoutMs, default 15 seconds) during which they can be revived by a doctor. A free-roam camera lets downed players observe the scene. After bleedout ends, players either wait for a doctor during the revive window (Config.Death.ReviveWindowMs, default 5 minutes) or respawn manually. A deathscreen overlay with Call Doctor and Respawn buttons is optionally available.Set Config.Death.Enabled = false when using your own death handler.Duty System
Duty System
Doctors toggle duty at a configured station inside their clinic using the [G] key by default. Only on-duty doctors appear in dispatch alerts and unlock restricted interactions. Duty state resets on disconnect. Each hospital entry in
Config.Hospitals provides the dutyStation coordinates for its clinic.Treatment Items
Treatment Items
On-duty doctors use inventory items to treat patients. Each item is defined in
Config.Items.Catalog with a class of treatment or revive, a use duration, health and core restoration values, disease cure probabilities, and optional job restrictions. Default items include:| Item | Class | Effect |
|---|---|---|
bandages | treatment | Stops bleeding, restores health and core |
splints | treatment | Applies a splint to reduce movement for fracture recovery |
antibiotic | treatment | Cures cold |
antipoison | treatment | Cures snake bite |
cool_rag | treatment | Cures heat stroke |
syringe | revive | Revives a downed player (restricted to doctor/shaman jobs) |
firstaidkit | revive | Revives a downed player (restricted to doctor/shaman jobs) |
Disease System
Disease System
sh-doctorjob tracks diseases per character. Treatments have configurable cure probabilities for each disease type. Diseases persist through death and respawn unless
Config.Death.RespawnRemoveDiseases is enabled. The Medical Dashboard UI (/medui or via the doctorfieldkit item) gives on-duty doctors a full view of a patient’s active conditions.NPC Services
NPC Services
Each hospital has an optional NPC doctor (
Config.Hospitals[*].npc) that provides heal and revive services when no player-doctors are on duty. The NPC can be disabled when doctors come online (disableWhenDoctorsOnline = true). A configurable percentage of each NPC service payment is deposited into the clinic’s boss menu ledger (Config.NpcService.Ledger.DepositPercent, default 100%).NPC Dispatch Revive
NPC Dispatch Revive
When
Config.NPCRevive.Enabled = true, players can use /sendmedic to summon an NPC doctor to their location (blocked when any player-doctor is on duty by default). The NPC rides or walks to the downed player, plays a revive animation, and departs after a delay.Alert Dispatch
Alert Dispatch
Players use
/alertdoctor to broadcast their location to all on-duty doctors. Doctors see a blip on their map with the patient’s name. Shaman alerts route to the shaman job via /alertshaman. Alerts expire after Config.Alerting.BlipTimeoutSeconds (default 300 seconds).Boss Menu & Payroll
Boss Menu & Payroll
Medical Wagons
Medical Wagons
Each hospital can have a wagon spawn station (
wagonStation) where on-duty doctors can spawn and use a medical wagon for field response.Hospital Configuration
Clinic locations, NPC positions, duty stations, and respawn points are defined inconfig/hospitals.lua. Three clinics ship by default:
config/hospitals.lua
Commands
| Command | Config key | Description |
|---|---|---|
/medui | OpenMedicalUi | Open the Medical Dashboard UI |
/alertdoctor | RequestDoctorHelp | Broadcast a help alert to on-duty doctors |
/alertshaman | RequestShamanCommand | Broadcast an alert to the shaman job |
/responddoctor | RespondHelp | Mark yourself as responding to an alert |
/cleardoctoralerts | ClearHelp | Clear your active alert responses |
/docboss | BossMenu | Open the boss management panel |
/docduty | ToggleDuty | Toggle on/off duty state |
/sendmedic | Config.NPCRevive.Command | Request an NPC doctor dispatch |
Payroll Configuration
Per-grade salaries are defined per job inConfig.Payroll.Jobs. Payroll runs every Config.Payroll.IntervalMinutes minutes for all currently on-duty staff:
config/main.lua
Discord Webhook Logging
sh-doctorjob logs to configurable per-channel webhooks defined inConfig.Logging.Webhooks. Separate channels are available for revives, treatments, duty toggles, admin actions, boss actions, alerts, and wagon events:
config/main.lua
Installation
Add to server.cfg
Ensure sh-doctorjob after your framework. If you use sh-society for the boss ledger, ensure it first:
server.cfg
Import the SQL files
Run the SQL files from the
sql/ folder against your database to create the duty log, ledger, and patient records tables.Register the doctor job
Add the
doctor, doctorR, doctorS, medic, and shaman jobs (as needed) and their grades to your framework’s job registry.Register medical items
Register each medical item (
bandages, splints, syringe, firstaidkit, doctorfieldkit, etc.) as usable items in your framework’s item registry.Disable framework death handler
If you are using VORP, set
Config.UseDeathHandler = false in vorp_core/config/config.lua to hand death management to sh-doctorjob. Remove rsg_medic if it is running on RSG.Configure hospitals and payroll
Edit
config/hospitals.lua to set clinic coordinates, NPC positions, and duty station locations. Edit config/main.lua to adjust payroll rates, bleedout timers, and alert settings.