[STANDALONE] Advanced Roleplay Environment | Medical System v2 [PAID]

Advanced Roleplay Environment v2
Now standalone: Update released on 25.07.2022!

Preview
Showcase
Installation Guide
Download

Features

  • This system will simulate an pulse, blood pressure, pain and much more.
  • Modern and clean UI to get an overview of the player and perform actions. Also there is an activity log to see what actions has been carried out already.
  • You can now receive situation-depended injuries on every body part. For example when you get shot on the right arm you will get an avulsion on the right arm. But if you get hit by an car, you can get a crush, an abrasion or a contusion. Injuries can be easily added and edited inside the specified file for it. Preview of this file: Injuries-File-Preview
  • ECG. You can open an ecg monitor and see the vitals in realtime!
  • Bodybags. You can put people in bodybags.
  • Anasthesia. You can put people in anasthesia when giving the correct medications like propofol.
  • When you are unconscious, you can also be revived by non-medics with specific treatments. (Not everytime since injuries may require some special items.)
  • There are now medications like morphine and epinephrine that have effect on the system like increasing or decreasing pulse. (Also medications can be easily added and edited: Medications-File-Preview)
  • There are now infusions that can have different effects like blood infusions, nutrition infusions and so on. (Also these can be easy added and edited: Infusions-File-Preview)
  • There are many other actions like: Checking pulse, checking blood pressure, performing cpr and so on. (These actions can be added end edited very easily: Actions-File-Preview)
  • There are now bandages that have different effects on injuries. (Bandages can be added and edited easily: Bandages-File-Preview)
  • You can carry unconscious people and put them inside a car or pull them out. :smiley:
  • There are different sounds like item sounds or heartbeat sounds when the pulse is to high to improve the atmosphere.
  • Triage system. You can categorize patients.
  • There are custom game objects like bandages, syringes to improve the atmosphere.
  • And so much more…

Config Previews

ClientConfig
ClientConfig = {
    -- [[ Language System  ]] -- 
    -- All language codes available in the languages folder.
    m_languageCode = "en", -- The language code.

    -- [[ General Settings ]] --
    -- General settings about this script.
    m_damageEnableCooldown = 7500, -- After this time in ms, the damage system will be enabled (useful when player dies on spawn for example).
    m_maxInteractionDistance = 2.0, -- Measured in gta distance units
    m_lastDamageCooldown = 210, -- The cooldown when the next damage can be handled after damage has happended (recommend to leave it at default value. | also in ~ms)
    m_nearbyPlayerDistance = 4.0, -- The distance in gta units, when a player is considered nearby.
    m_vehicleScanRadius = 6.0, -- The vehicle scan radius in gta units.
    m_disabledWeapons = { GetHashKey("WEAPON_PLASMAP") }, -- The weapons that will be ignored by the damage system.

    -- [[ Menu Settings    ]] --
    -- Settings about the menu.
    m_onlyShowActionsIfPlayerHasRequiredItems = true, -- Set this to 'true' to only show actions, if the player has the required items. (could affect performance)

    -- [[ Feature Settings ]] --
    -- Settings about the features, here you can enable or disable some features.
    m_enableSewings = true, -- Enable this to enable the sewing system.
    m_blurScreenOnHighBloodLoss = true, -- Enable this to blur the screen when high blood loss is detected. (bloodVolume <= 4200ml)
    m_allowManualRespawnWhileBeingUnconscious = false, -- Set this to 'true' to allow manual respawn while being unconscious. (disables automatic respawn)

    m_limpingFeature = { -- Enable this to make the player limp if the player has a injury that should make him limp.
        enabled = true,
        ragdollWhileRunning = {
            enabled = true, -- Enable this to enable the ragdoll while running if the player has a injury that should make him limp.
            chance = 25, -- The chance in percent.
            ragdollType = 3, -- The ragdoll type.
            time = 2000, -- The time in ms.
        }
    },

    m_enableWeaponAimShakeOnArmInjury = { -- Shakes the screen when aiming and having an arm injury.
        enabled = false, -- Enable this to enable the weapon aim shake on arm injury. (beta)
        painFactor = 0.1, -- The pain factor. (ClientHealthBuffer.painLevel * ClientConfig.m_enableWeaponAimShakeOnArmInjury.painFactor)
        shakeType = "SMALL_EXPLOSION_SHAKE", -- See for more: https://docs.fivem.net/natives/?_0xFD55E49555E017CF
    },

    m_weaponDisableAfterBeingRevived = { -- Disable weapons after being revived.
        enabled = false, -- Enable this to disable weapons after being revived.
        time = 30000, -- The time in ms.
    },

    m_emergencyDispatch = { -- Enable this to enable the emergency dispatch system. (Button press while being dead to alert emergency services)
        enabled = true, -- Enable this to enable the emergency dispatch system (or disable it :D).
        cooldown = 120, -- The cooldown in seconds.
        phoneConfiguration = "gcphone", -- The default phone configuration. ("esx_phone", "visn_phone", "gcphone", "dphone", "custom" -> edit in helpers/c_functions.lua|l:244)
        receivers = { "ambulance" } -- The jobs that will receive a message/notification when you alert the emergency dispatch.
    },

    m_spawnGameObjects = { -- Enable this to enable the spawn game objects feature (bandages on ground etc).
        enabled = true, -- When enabled be careful with restarting this script, since it will crash the game on every client because of the custom streamed props.
        lifetime = 60000 * 5, -- The timeout in ms. When the timeout is exceeded the game objects will be removed.
        limit = 50 -- The limit of game objects that can be spawned.
    },

    -- [[ Screen Effects   ]] --
    -- Settings about the screen effects.
    m_enabledScreenEffects = { "bleeding", "pain" }, -- The enabled screen effects. ("bleeding", "pain")

    -- [[  Controls        ]] --
    -- Settings about the controls.
    m_enabledControlActionsWhenUnconscious = {}, -- The enabled control actions when unconscious.
    m_enabledControlActionsWhenCarrying = { 1, 2, 30, 31, 32, 33, 34, 35, 73 }, -- The enabled control actions when carrying.
    m_disabledControlGroups = { 0, 1, 2 }, -- The disabled control groups.

    -- [[ Respawn Settings ]] --
    -- Settings about the respawn.
    m_respawnConfiguration = { -- The respawn configuration.
        m_respawnTime = 900, -- The default bleedout/death time in seconds (can be extended trough cpr...).
        m_respawnLocation = { x = 293.81, y = -591.92, z = 43.1 }, -- The default respawn location.
        m_respawnHeading = 0.0, -- The respawn heading.
    },

    -- [[ Default Settings ]] --
    -- Settings about the default settings. (recommend to leave at default)
    m_defaultValues = {
        HEART_RATE = 80, -- The default heart rate.
        BLOOD_VOLUME = 6000, -- Blood volume in milliliters
        PERIPH_RES = 100, -- Peripheral resistance
        IV_CHANGE_PER_SEC = 4.1667, -- 250ml should be done in 60s. 250ml / 60s ~ 4.1667 ml/s.
        BANDAGE_REOPENING_CHANCE = 0.1, -- Bandage reopening chance.
        BANDAGE_REOPENING_MIN_DELAY = 120, -- Bandage reopening min delay in seconds.
        BANDAGE_REOPENING_MAX_DELAY = 200, -- Bandage reopening max delay in seconds.
    },

    m_defaultKeys = {
        EMERGENCY_DISPATCH = "G",
        OPEN_SELF_MENU = "Y",
        OPEN_OTHER_MENU = "H",
        CANCEL_INTERACTION = "X",
        MANUAL_RESPAWN = "K",
    },

    -- [[ Util Settings    ]] --
    -- Settings about the util.
    m_newNetworkDamageEventArguments = true, -- Set this to 'true', if you are using game build 2060 or higher.

    -- [[ Debug Settings   ]] --
    -- Settings about the debug.
    m_debugModeEnabled = false, -- Enable this to get debug informations (sometimes useful, sometimes not :/)
    m_debugModeModules = { -- Enable this to get debug informations for the specified modules.
        "injuries",
        "infusions",
        "bandages",
        "medications",
        "interactions",
        "state_bags",
    },
}
ServerConfig
ServerConfig = {
    -- [[ General Settings    ]] --
    m_itemsNeeded = false, -- Set this 'true', if you want that players need items to perform actions.

    -- [[ Menu Settings       ]] --

    -- [[ Custom ESX Settings ]] --
    m_sharedObjectEvent = "esx:getSharedObject", -- Set this to the ESX-Shared-Object-Event (only if you use ESX)
    m_oxInventory = false, -- Set this to 'true', if you want that the system will use the oxInventory.

    -- [[ Feature Settings    ]] --
    m_ignoreItemsNeededJobs = { "ambulance" }, -- A table of jobs that ignore the that players need items to perform actions.

    -- TODO
    m_medicalOperations = { -- Limit some actions to certain jobs.
        enabled = false, -- Set this 'true', if you want that the system will limit players to have a job to perform medical operations.
        actions = { }, -- A table of actions that are limited to certain jobs.
        jobs = { "ambulance" }, -- A table of jobs that are allowed to perform medical operations.
    },

    m_limitMenuToJobs = { -- Limits the menu to certain jobs.
        enabled = false, -- Set this 'true', if you want that the system will limit the menu to certain jobs.
        jobs = { "ambulance" }, -- A table of jobs that are allowed to use the menu.
    },

    m_stateSaving = { -- This feature will save the state of the players (like injuries, blood pressure) to a file or mysql database.
        enabled = true, -- Set this to 'true', if you want that the system will save the state of the players.
        interval = 60 * 5, -- Set this to the interval in seconds, that the system will save the state of the players.
        method = 'file', -- 'oxmysql' or 'file'
        database = { -- Set this to the database settings, if you use oxmysql.
            table = 'users', -- Set this to the table name, where the state will be saved.
            column = 'health_state', -- The column in the table, that will be used to save the state of the players.
            identifierColumn = 'identifier' -- The column in the table, that will be used to query the player.
        },
        file = { -- Set this to the file settings, if you use file.
            path = '/database/' -- Set this to the path of the file, where the system will save the state of the players.
        }
    },

    m_discordLogging = { -- This feature will log kill logs to discord.
        enabled = false,  -- Set this to 'true', if you want that the system will log messages to Discord.
        webhook = '' -- Set this to the webhook URL of your discord channel.s
    },

    -- [[ Menu Settings    ]] --
    m_showNameOfPlayerOnMenuTitle = true, -- Set this to 'true', if you want that the system will show the name of the player on the menu title. Set this to 'false', if you want that the system will not show the name of the player on the menu title.

    -- [[ Respawn Settings ]] -- 
    m_respawnConfiguration = {
        m_removeMoneyOnDeath = true, -- Set this to 'true', if you want that players lose money on death.
        m_removeItemsOnDeath = true, -- Set this to 'true', if you want that players lose items on death.
        m_removeWeaponsOnDeath = true, -- Set this to 'true', if you want that players lose weapons on death.
    },

    -- [[ Debug Settings      ]] --
    m_debugModeEnabled = true, -- Set this to 'true', if you want expanded informations about things that are going on.
    m_debugModeModules = { "items" },
}

Other information

This script is standalone, you don’t need any dependencies. This script is plug and play.
But if you are using an framework, we have in-house-integration for ESX and QBCore.
Also for some phones out there. :smiley:

Interested?

Purchase Link: Package Link

Code is accessible No / Partial
Subscription-based No
Lines (approximately) 10k+
Requirements None
Support Yes
21 Likes

lol it’s so stupid to put ip check in the script!! think if the person is spending money on the script should have access to the whole code

4 Likes

I partially agree with you, but then there is a risk that the person will sell the script to others. So I prefer to be safe instead of taking a risk. I hope you understand the concern. :grinning:

5 Likes

Doesn’t look bad

1 Like

Looks very nice! But I have two questions :thinking:
Is there any handbook or tutorial for all the usage in the script for non professionals or newcomers
Are there any future plans with this or is this an finshed product :sweat_smile:
Sorry for these question but I’m kinda careful with paid scripts on this forum nowadays

2 Likes

how can I get this script without needing ip verification?

1 Like

First of all, thanks.
Currently, there is no handbook, but the community, or myself could create an handbook.
Currently its in an production state, but it could be easily expanded.

No worries, I would be careful too. :grinning:

3 Likes

No. This is not possible.

I can see the inspiration from ACE, reminds me of ArmA. :stuck_out_tongue:

5 Likes

haha yes.
That was actually my inspiration.
I found that something like that was currently missing.

dumb?

Awesome. Looks good.

1 Like

Thanks.

1 Like

Hey I apologize very much for any inconvenience.
I have now changed the two marked sections according to your request.
Thanks.

1 Like

So this is obfuscated? I’m not really a fan of paying for stuff for it to be locked down, if I was, I’d buy apple products.

2 Likes

Hey.

Only serverside is obfuscated due to the license system.
I hope this does not cause any inconvenience.

Looks awesome!

You are very envious, and your script above does not make sense

So, what is the guarantee that the IP database will always be around and up?

My word. And the experience. I am not a beginner in these areas. I will assure you that the license server will be permanently online.

1 Like