Player (Doctor)
A player with the right job will be able to access the Medical UI, along with some other restricted items, specified by theallowedJobs table in the items configuration file.
Medical UI
The medical UI can be accessed in multiple ways:- Player Targeting: By default in RedM (and RDR2) it’s possible to target other players by holding the right mouse button. By doing so you’ll have access to a prompt menu in the bottom right corner. If you’re close enough (defined in the script’s config) you’ll be able to see the visit prompt.
- Medical Bed: By being close enough to a configured medical bed you’ll be able to access the visit menu prompt.
- Visit command (optional): If enabled/configured, you can open the Medical UI through
Config.visitCommand(commonly/visit). If you prefer a custom selector, you can also call the server eventmega_doctorjob:visitand pass the target’s server id. Example with NPlayerSelector integration:
Treating diseases
There are two main ways diseases get treated:- Through the Medical UI (doctor treating a patient)
- Through items (see
MedicineItemsin Items.lua)
- Open the Medical UI on the patient (targeting or medical bed).
- Review the patient’s active diseases.
- Apply the appropriate treatment (UI action and/or item), based on what you configured in
MedicineItems. - Re-check the patient status to confirm the disease is healed (or improved).
Treating injuries (bone damage)
Doctorjob V2 can track injury/bone damage separately from diseases.- Bone damage tracking is controlled by DamageLogger.lua (
Config.boneDamageLogger.enabled). - When enabled, the script assigns damage to a specific bone/body part and stores it in the script’s injury system.
- The bone injury system is not the same as actual ped health damage.
How damage is assigned (high-level)
- When a player takes damage, the script determines which bone/body part was hit.
- The raw damage is converted to a normalized basis (typically 0–100). This is important because raw health deltas can differ from player to player (e.g., due to different
MaxHealth). - The script also determines a damage type from the weapon mapping in DamageTypes.lua (
Config.weaponToDamageType), with adefaultfallback. - It then assigns the normalized damage to the bone that got hit and stores an injury entry for that body part with a numeric damage value and a
damageType.
How injuries are treated
- Light injuries can be treated with configured
HealItems(see Items.lua).
- Open the Medical/Inspect UI on the patient/yourself.
- Identify which body part(s) are injured.
- Apply the available treatment action(s).
Inspect UI
The Inspect UI is a lightweight version of the Medical UI.- It can be opened via the
Config.inspectCommandchat command (commonly/inspect). - It is available to everyone, including normal players.
Self-tending
Normal players can use the Inspect UI to self-tend their own injuries, when they have an allowed healing item in their inventory. This behavior depends on your configuration in Items.lua (for example, whichHealItems are available and whether they are job-restricted).
Inspect remains “limited” compared to the full Medical UI: it is intended for quick checks/self-care and does not replace the full doctor system.
Commands
These are the chat commands exposed by Doctorjob. Command names can be customized via Config.lua.Player commands
-
Inspect:
Config.inspectCommand(commonly/inspect)- Opens the Inspect UI.
- Available to everyone (normal players can self-tend if configured and they have an allowed healing item).
-
Visit:
Config.visitCommand(commonly/visit)- Opens the full Medical UI on a target (typically restricted to medical jobs).
- The built-in implementation uses a player selector (no arguments).
-
Request help:
Config.alertCommand- Creates a help request/alert (subject to cooldown and dead-player rules).
-
Clear route:
Config.clearAlertCommand- Clears the GPS route created by alerts.
Admin commands
/giveDisease <diseaseId> <id>: Gives a player a disease (fails if the player has immunity for that disease)./healDisease <diseaseId> <id>: Heals a player’s disease./giveImmunity <diseaseId> <id> [durationSeconds]: Grants immunity to a disease.durationSecondsis optional. Use-1(or omit) for permanent immunity.
/removeImmunity <diseaseId> <id>: Removes immunity to a disease./dload: Reload character data without quitting game. (use only in dev environments, not recommended for live servers)/dsave: Force-save all online players to the database.
Job-restricted commands
Config.openAlertMenuCommand- Opens the alerts menu for medical jobs (doctors) so they can view/respond to help requests.
