π©Ί Doctor β
VORP RSG
A complete medical system for RedM: NPC doctors with cinematic heal scenes, a full death screen with its own camera, wake-up-at-the-doctor respawns, and a medic alert system for player doctors, all with zero edits to vorp_core code.
Features β
NPC doctors β
- Doctors at 8 clinics (Blackwater, Valentine, Saint Denis, Rhodes, Annesburg, Strawberry, Armadillo, Tumbleweed). Add or move them freely in the config.
- Optional map blips per clinic (the game's own doctor-shop icon).
- Optionally disable the NPC while real player doctors are online (
Config.MaxOnline).
Heal scenes β
- G (alive): the doctor chair scene. The patient sits in the clinic chair (a real seat scenario with a natural sit-down and stand-up), a doctor appears and treats them under a calibrated overhead camera.
- Enter (dead or downed): the bed scene. The body is placed on the clinic's medical bed and the doctor performs surgery on camera.
- No chair or bed in town: an automatic quick patch-up (progress bar and screen effects).
- A body still being carried can be handed to the doctor. It never drops on the floor: it transfers cleanly from the carrier's shoulder to the bed, and the carrier's carry animation is released at the same moment.
Death screen β
One toggle, zero vorp edits.
Config.DeathScreen.enabled = truegives the full zoo_doctor death experience: YOU DIED, heartbeat, countdown, G (call a doctor) and E (wake up at the doctor). vorp's own Respawn prompt is hidden at runtime, so no vorp files are touched.- Its own death camera: top-down on the ground, a follow shot while the body is carried, and it stays on the body through a doctor's treatment until the revive.
- A dead body brought near a doctor NPC unlocks E instantly (no countdown) and revives right there with the bed scene.
enabled = falseleaves the stock vorp death screen untouched.
Respawn at the doctor β
After the death screen (or vorp) respawn, the player wakes at the doctor nearest to where they died, with the full bed scene. Never at a random hospital.
Medic alert (player doctors) β
- A downed player's G (death screen) or /calldoctor (any mode) alerts every online doctor: a pulsing map ring, a marker and a GPS route.
- The alert follows the body if it is carried, and clears the moment the patient is helped or disconnects.
Doctor job (player doctors) β
- Job-locked usable items: a revive kit (dead players) and a heal kit (alive players), inserted into the items table automatically on first start.
- Progress bars on both sides, and the patient pays the doctor automatically (config).
Payments β
- The heal fee and the revive fee are separate (
HealPriceandRevivePrice). - A revive is never refused: with no money the balance goes negative.
- Doctors reviving other players do it for free.
Also β
- 6 languages: English, Arabic, Spanish, French, German, Portuguese.
- Several notification systems: VORP (5 styles), ox_lib, NUI, or a custom event.
- Discord webhook logs for heals and revives.
- Optional skin reload after a revive (
Config.ReloadSkinOnRevive, off by default, which avoids the visible clothes flicker).
Requirements β
- vorp_core or rsg-core
- objectloader, which streams the clinic medical beds
oxmysql, which registers the doctor job items- zoo_input, optional, for NUI notifications
Installation β
Place
zoo_doctorin your resources folder.Add it to
server.cfg, with objectloader first:iniensure objectloader ensure zoo_doctorSet one vorp config option (a normal supported setting, not a code edit) in
vorp_core/config/config.lua:luaRagdollOnResurrection = falseCopy the item images from
Item/intovorp_inventory/html/img/items/(doctor_revive_kit.png,doctor_heal_kit.png).The doctor job items are inserted into the
itemstable on first start.Item/database.sqlis included if you prefer to run it by hand.Configure
config.luato your needs.
Death and respawn modes β
| Mode 1 (full) | Mode 2 | Mode 3 (pure vorp) | |
|---|---|---|---|
DeathScreen.enabled | true | false | false |
DeathScreen.respawnAtDoctor | true | true | false |
| Death screen | zoo_doctor | vorp default | vorp default |
| Respawn | E, then the nearest doctor with the bed scene | vorp E, then the nearest doctor with the bed scene | vorp default |
vorp's UseDeathHandler stays true in every mode.
Key config β
Config.PayForHeal = true -- G heal charges HealPrice
Config.HealPrice = 50.0
Config.PayForRevive = true -- every revive charges RevivePrice (never refused, can go negative)
Config.RevivePrice = 100.0
Config.DeathScreen = {
enabled = true, -- zoo_doctor death screen | false = stock vorp
respawnAtDoctor = true, -- wake at the nearest doctor with the bed scene
callDoctorEnabled = true, -- G (call for help) on the death screen
callDoctorCooldown = 300, -- seconds between calls
}
-- The respawn countdown length (both modes) is vorp's own RespawnTime setting
-- in vorp_core/config/config.lua.
Config.CallDoctorCommand = "calldoctor" -- /calldoctor works in every modeAdding a location β
{
name = "CityName",
npcHash = "model_name",
npcPosition = {x, y, z, heading},
doctorPosition = {x, y, z, heading}, -- optional: BED-scene doctor spot
camPosition = {x, y, z, heading}, -- optional: BED-scene camera
blip = false,
}Custom bed placement β
Edit doctor_bed.xml to add, remove or move the medical beds (Map Editor XML format):
<DeletedObject Hash="model_hash" Position_x="x" Position_y="y" Position_z="z"/>
<Object Hash="model_hash" Position_x="x" Position_y="y" Position_z="z" Rotation_x="0" Rotation_y="0" Rotation_z="heading" Collision="true" Visible="true"/>The scenes only use the script's own bed model (p_medbed01x), so behaviour is predictable in every town.
Controls β
| Key | Where | Action |
|---|---|---|
| G (hold) | at the NPC, alive | chair heal scene |
| Enter (hold) | at the NPC, dead or downed | bed revive scene (self) |
| Enter (hold) | at the NPC, near a downed player | revive that player |
| G | death screen | call the online doctors |
| E | death screen | wake up at the doctor (instant when at a clinic) |
/calldoctor | anywhere, any mode | call the online doctors |
