[ESX/QBCORE] Wasabi's Advanced Ambulance Job

wasabi_ambulance


:shopping_cart: Buy Escrow - $49.99

:shopping_cart: Buy Unlocked - $99.99


Background

Let’s all face the facts, when it comes to ESX/QBCore ambulance jobs / death handlers; there are not too many great options out there to choose from. Running into the same issue many others have, I built an ambulance job that I believe will fulfill your player’s needs. This was exclusive for my personal server but upon dozens of requests I will be releasing & providing updates as I update it for myself.

Features

  • 0.0ms on idle

  • Fully optimized

  • Players must be treated for injuries they die from or will respawn with less health / the EMT will receive less of a reward (Configurable)

  • Death animation synced and persistent

  • Medical Bag with instruments that treat possible wounds to add immersion to RP

  • Animations and props

  • Working stretchers

  • Built in easy dispatch system

  • Built in ambulance garage with aircraft compatibility

  • Integrated invoices (Optional - esx _billing/ Qbcore / okokBilling compatibility but easy to add custom in editable client.lua)

  • *Integrated cloakroom (Optional - Configurable between esx skin and wasabi’s fivem-appearance)

  • Integrate your dispatch, phone, notifications, and inventory with ease with plenty of editable code!

  • Support out of the box for GKS Phone & qs-phone dispatch (Optional/editable) New as of 1.0.9

  • Option to clear inventory on player death (ox_inventory/qb-inventory/mf-inventory/qs-inventory & esx supported)

  • Anti-combat log option (Player will return dead if disconnected while dead)

  • Extremely configurable

  • Multi-hospital support

  • Hospital check-in (Configurable)

  • Usable Medikits (Medics can heal others and themselves & civilians can heal themselves)

  • Usable Sedatives (Temporarily sedate players - Configurable )

  • Boss Menu access w/optional wasabi_multijob compatibility (Configurable)

  • Complete esx_ambulancejob / qb-ambulancejob replacement

  • GKS/Quasar phone distress signal configurable(Will disable built-in dispatch)

  • Wasabi Carlock / qb-carlock compatible (Custom car lock events can be added as well)

  • Target compatible(OPTIONAL - qtarget/qb-target/ox_target)

  • Very frequent updates planned / additional features planned


Configuration

config.lua
local seconds, minutes = 1000, 60000
Config = {}
--------------------------------------------------------------
-- TO MODIFY NOTIFICATIONS TO YOUR OWN CUSTOM NOTIFICATIONS:--
------------ Navigate to client/cl_customize.lua -------------
--------------------------------------------------------------
Config.phoneDistress = false -- Options: 'gks' (GKS Phone) / 'qs' (qs-smartphone) WILL REPLACE BUILT IN DISPATCH WITH PHONE DISPATCH / Add additonal dispatch in client/cl_customize.lua
Config.customCarlock = false -- If you use wasabi_carlock(Or want to add your own key system to client/cl_customize.lua)
Config.MythicHospital = false -- If you use that old injury script by mythic. (Added per request to reset injuries on respawn)

Config.jobMenu = 'F6' -- Default job menu key
Config.billingSystem = false -- Current options: 'esx' (For esx_billing) / 'okok' (For okokBilling) (Easy to add more in editable client - SET TO false IF UNDESIRED) or of course false to disable
Config.skinScript = false -- Current options: 'esx' (For esx_skin) / 'appearance' (For wasabi-fivem-appearance) or of course false to disable

Config.RespawnTimer = 3 * seconds -- Time before optional respawn
Config.BleedoutTimer = 20 * minutes -- Time before it forces respawn

Config.removeItemsOnDeath = false -- Remove items on death?
Config.Inventory = 'ox' -- THIS ONLY MATTERS FOR REMOVE ITEM ON DEATH - 
                        --Options include: 'ox' - (ox_inventory) / 'mf' - (mf-inventory) / 'qs' (qs-inventory) / 'other' (whatever else can customize in client/cl_customize.lua)

Config.AntiCombatLog = { -- When enabled will kill player who logged out while dead
    enabled = false, -- enabled?
    notification = {
        enabled = true, -- enabled notify of wrong-doings??
        title = 'Logged While Dead',
        desc = 'You last left dead and now have returned dead'
    }
}

Config.RespawnPoint = { -- Where player respawns if bleeds out
    coords = vec3(324.15, -583.14, 44.20), -- This defaults pillbox
    heading = 332.22
}

Config.EMSItems = {
    revive = {
        item = 'defib', -- Item used for reviving
        remove = false -- Remove item when using?
    },
    heal = {
        item = 'medikit', -- Item used for healing
        duration = 5 * seconds, -- Time to use
        remove = true -- Remove item when using?
    },
    sedate = {
        item = 'sedative', -- Item used to sedate players temporarily
        duration = 8 * seconds, -- Time sedative effects last
        remove = true -- Remove item when using?
    },
    medbag = 'medbag', -- Medbag item name used for getting supplies to treat patient
    stretcher = 'stretcher' -- Item used for stretcher
}

Config.ReviveRewards = {
    enabled = true, -- Enable cash rewards for reviving
    no_injury = 4000, -- If above enabled, how much reward for fully treated patient with no injury in diagnosis
    burned = 3000,  -- How much if player is burned and revived without being treated
    beat = 2500, -- So on, so forth
    stabbed = 2000,
    shot = 1500,
}

Config.ReviveHealth = { -- How much health to deduct for those revived without proper treatment
    shot = 60, -- Ex. If player is shot and revived without having the gunshots treated; they will respond with 60 health removed
    stabbed = 50,
    beat = 40,
    burned = 20
}

Config.TreatmentTime = 9 * seconds -- Time to perform treatment

Config.TreatmentItems = {
    shot = 'tweezers',
    stabbed = 'suturekit',
    beat = 'icepack',
    burned = 'burncream'
}

Config.Locations = {
    Pillbox = {

        Blip = {
            Enabled = true,
            Coords = vec3(324.15, -583.14, 44.20),
            Sprite = 61,
            Color = 2,
            Scale = 1.0,
            String = 'Pillbox Hospital'
        },

        BossMenu = {
            Enabled = true,
            Target = {
                label = 'Access Boss Menu',
                coords = vec3(335.59, -594.33, 43.21),
                heading = 269.85,
                width = 2.0,
                length = 1.0,
                minZ = 43.21-0.9,
                maxZ = 43.21+0.9
            }
        },

        CheckIn = { -- Hospital check-in
            Enabled = true, -- Enabled?
            Ped = 's_m_m_scientist_01', -- Check in ped
            Coords = vec3(308.58, -595.31, 43.28-0.9), -- Coords of ped
            Heading = 63.26, -- Heading of ped
            Cost = 3000, -- Cost of using hospital check-in. Set to false for free
            MaxOnDuty = 3, -- If this amount or less you can use, otherwise it will tell you that EMS is avaliable(Set to false to always enable check-in)
            PayAccount = 'bank', -- Account dead player pays from to check-in
            Label = '[E] - Check In'
        },

        Cloakroom = {
            Enabled = true, -- Set to false if you don't want to use (Compatible with esx_skin & wasabi fivem-appearance fork)
            Coords = vec3(300.6, -597.7, 42.1), -- Coords of cloakroom
            Label = '[E] - Change Clothes', -- String of text ui of cloakroom
            Range = 2.0, -- Range away from coords you can use.
            Uniforms = { -- Uniform choices
                ['Medic'] = { -- Name of outfit that will display in menu
                    male = { -- Male variation
                        ['tshirt_1'] = 15,  ['tshirt_2'] = 0,
                        ['torso_1'] = 5,   ['torso_2'] = 2,
                        ['arms'] = 5,
                        ['pants_1'] = 6,   ['pants_2'] = 1,
                        ['shoes_1'] = 16,   ['shoes_2'] = 7,
                        ['helmet_1'] = 44,  ['helmet_2'] = 7,
                    },
                    female = {
                        ['tshirt_1'] = 15,  ['tshirt_2'] = 0,
                        ['torso_1'] = 4,   ['torso_2'] = 14,
                        ['arms'] = 4,
                        ['pants_1'] = 25,   ['pants_2'] = 1,
                        ['shoes_1'] = 16,   ['shoes_2'] = 4,
                    }
                },
                ['Doctor'] = {
                    male = {
                        ['tshirt_1'] = 15,  ['tshirt_2'] = 0,
                        ['torso_1'] = 5,   ['torso_2'] = 2,
                        ['arms'] = 5,
                        ['pants_1'] = 6,   ['pants_2'] = 1,
                        ['shoes_1'] = 16,   ['shoes_2'] = 7,
                        ['helmet_1'] = 44,  ['helmet_2'] = 7,
                    },
                    female = {
                        ['tshirt_1'] = 15,  ['tshirt_2'] = 0,
                        ['torso_1'] = 4,   ['torso_2'] = 14,
                        ['arms'] = 4,
                        ['pants_1'] = 25,   ['pants_2'] = 1,
                        ['shoes_1'] = 16,   ['shoes_2'] = 4,
                    }
                },
            }
        },

        MedicalSupplies = { -- EMS Shop for supplies
            Enabled = true, -- If set to false, rest of this table do not matter
            Ped = 's_m_m_doctor_01', -- Ped to target
            Coords = vec3(306.63, -601.44, 43.28-0.95), -- Coords of ped/target
            Heading = 337.64, -- Heading of ped
            Supplies = { -- Supplies
                { item = 'medbag', label = 'Medical Bag', price = 1000 }, -- Pretty self explanatory, price may be set to 'false' to make free
                { item = 'medikit', label = 'First-Aid Kit', price = 150 },
            }
        },

        Vehicles = { -- Vehicle Garage
            Enabled = true, -- Enable? False if you have you're own way for medics to obtain vehicles.
            Zone = {
                coords = vec3(298.54, -606.79, 43.27), -- Area to prompt vehicle garage
                range = 5.5, -- Range it will prompt from coords above
                label = '[E] - Access Garage',
                return_label = '[E] - Return Vehicle'
            },
            Spawn = {
                land = {
                    coords = vec3(296.16, -607.67, 43.25),
                    heading = 68.43
                },
                air = {
                    coords = vec3(351.24, -587.67, 74.55),
                    heading =  289.29
                }
            },
            Options = {
                ['ambulance'] = { -- Car/Helicopter/Vehicle Spawn Code/Model Name
                    label = 'Ambulance',
                    category = 'land', -- Options are 'land' and 'air'
                },
                ['dodgeems'] = { -- Car/Helicopter/Vehicle Spawn Code/Model Name
                    label = 'Dodge Charger',
                    category = 'land', -- Options are 'land' and 'air'
                },
                ['polmav'] = { -- Car/Helicopter/Vehicle Spawn Code/Model Name
                    label = 'Maverick',
                    category = 'air', -- Options are 'land' and 'air'
                },
            }
        },
    }
}

Preview:

YouTube - Wasabi Ambulance
Note: Video does not display all features. Will make more in depth video when I’m become better at video editing.


:shopping_cart: Buy Escrow - $49.99

:shopping_cart: Buy Unlocked - $99.99


:police_car: Police / Ambulance Bundle :ambulance:

Per a few requests I’ve bundled my police and ambulance job scripts in the Tebex store with a discounted price in comparison to purchasing both separately.

:shopping_cart:Escrow PD/EMS BUNDLE: https://store.wasabiscripts.com/category/2080869
:shopping_cart:Open Source PD/EMS BUNDLE: https://store.wasabiscripts.com/category/open-source


Additional note: I take no credit in the creation of the custom medic props used in the creation of this script and full credits go to gta5-mods user Candice_211


My Other Releases:

Code is accessible Partially (Escrowed) / Open Source Option Avaliable
Subscription-based No
Lines (approximately) ~2000+
Requirements es_extended OR qb-core, ox_lib, oxmysql OR mysql-async, wasabi_bridge(included with purchase)
Support Yes
112 Likes

100% worth the money. The script is probably the best on the market. 10/10 bro!

5 Likes

Probably the new best ambulancejob for ESX out there! Works without any issues and I am definetly recommending it to people!

Great job as always Wasabi!

3 Likes

Amazing Release :heart_eyes::heart_eyes:

3 Likes

Must be a great resource and an addition for real rp servers, have multiple of wasabis resources and all are great working with excelent support when it is needed.

Keep up the great work bro🙌

3 Likes

Hello! Best scripts! Actually i’ve been using your scripts and its so amazing! Keep up the work :heart:

2 Likes

amazing release tbh

1 Like

Looks really nice bro ! Good work

1 Like

Can you make drawtext as option instead of qtarget? Ther are a lot of people who doesnt use any target system

1 Like

nice script and worthy

1 Like

Nice script… waiting for this long time…lov it

1 Like

Looks clean and amazing! Nice work!

1 Like

Amazing Release!

1 Like

Persistent death when they log out ?
Can ems send players to a hospital bed ?

LSPD job next pls? :slight_smile:

1 Like

Thank you all for the kind replies. Have some more features in the works! I’ll try to make a better video soon as well!

I’ve received these exact requests from others(including my personal players) so I’ll definitely be adding them today.

This looks absolutely amazing!

Everything looks perfect, i like the ped interaction with the bag and the stretch.

1 Like

keep pumping out quality work!

1 Like

Very Nice Release , Always supporting you :heart: :smiling_face:

2 Likes