Skip to content

🩺 Doctor ​

VORP RSGZoo Doctor

πŸ›’ Buy on zoo-scripts.com

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 = true gives 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 = false leaves 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 (HealPrice and RevivePrice).
  • 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 ​

Installation ​

  1. Place zoo_doctor in your resources folder.

  2. Add it to server.cfg, with objectloader first:

    ini
    ensure objectloader
    ensure zoo_doctor
  3. Set one vorp config option (a normal supported setting, not a code edit) in vorp_core/config/config.lua:

    lua
    RagdollOnResurrection = false
  4. Copy the item images from Item/ into vorp_inventory/html/img/items/ (doctor_revive_kit.png, doctor_heal_kit.png).

  5. The doctor job items are inserted into the items table on first start. Item/database.sql is included if you prefer to run it by hand.

  6. Configure config.lua to your needs.

Death and respawn modes ​

Mode 1 (full)Mode 2Mode 3 (pure vorp)
DeathScreen.enabledtruefalsefalse
DeathScreen.respawnAtDoctortruetruefalse
Death screenzoo_doctorvorp defaultvorp default
RespawnE, then the nearest doctor with the bed scenevorp E, then the nearest doctor with the bed scenevorp default

vorp's UseDeathHandler stays true in every mode.

Key config ​

lua
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 mode

Adding a location ​

lua
{
    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):

xml
<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 ​

KeyWhereAction
G (hold)at the NPC, alivechair heal scene
Enter (hold)at the NPC, dead or downedbed revive scene (self)
Enter (hold)at the NPC, near a downed playerrevive that player
Gdeath screencall the online doctors
Edeath screenwake up at the doctor (instant when at a clinic)
/calldoctoranywhere, any modecall the online doctors

Zoo Scripts. Commercial resources, redistribution or resale is not permitted.