# Editable Files

{% hint style="warning" %}
This is ONE config file divided into parts!
{% endhint %}

<details>

<summary>Hospital Setup</summary>

```lua
---@param Config.Hospital string [default hospital, must be the same as in Config.Hospitals below]
--- You can also set it to false to use all or table {'gabz_hospital', 'prompts_hospital'} to use multiple hospitals
Config.Hospital = 'kiiya_hospital'

---@class Config.Hospitals: table<string, Hospital>
---@class Hospital
---@field jobs table<string> [which jobs are allowed to use this hospital]
---@field blip table {enabled: boolean, sprite: number, scale?: number, color: number, name: string} [blip settings]
---@field duty table {coords: vec4 [coords of duty point], ped?: string [ped model, remove to disable ped], anim?: table {dict: string [animation dictionary], clip: string [animation clip], flag?: number [animation flag, default 1]}, prop?: table {model: string [prop model], bone: number [bone index], coords: vec3 [prop position], rot: vec3 [prop rotation]}} [duty point settings]
-- Blip Reference: https://docs.fivem.net/docs/game-references/blips/
Config.Hospitals = {
    ['kiiya_hospital'] = {
        jobs = {'ambulance'}, -- which jobs are allowed to use this hospital
        blip = {
            enabled = true,
            name = locale('hospital'),
            sprite = 61, 
            scale = 0.9,
            color = 25, 
            coords = vec3(298.20, -584.56, 42.26)
        },
        duty = {
            enabled = true,
            coords = vec4(317.65, -582.11, 43.06, 0.0),
            -- ped = 's_m_m_paramedic_01',
            -- anim = {dict = 'missfam4', clip = 'base', flag = 1},
            -- prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)}
        },
        wardrobe = vec3(318.69, -600.69, 43.31),
        management = {
            coords = vec3(312.07, -562.62, 43.06), -- coords of boss menu [script will open your boss menu!]
            allowedGrades = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} -- which job grades are allowed to use management menu
        }, 
    },

    -- Get discount on FM's ALL Maps with Creator Code "pscripts" :)
    ['fm_hospital'] = {
        jobs = {'ambulance'}, -- which jobs are allowed to use this hospital
        blip = {
            enabled = true,
            name = locale('hospital'),
            sprite = 61, 
            scale = 0.9,
            color = 25, 
            coords = vec3(71.27, -405.99, 38.28),
        },
        duty = {
            enabled = true,
            coords = vec4(88.88, -415.26, 39.36, 0.0),
            -- ped = 's_m_m_paramedic_01',
            -- anim = {dict = 'missfam4', clip = 'base', flag = 1},
            -- prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)}
        },
        wardrobe = vec3(57.21, -385.51, 39.53),
        management = {
            coords = vec3(90.08, -412.24, 39.45), -- coords of boss menu [script will open your boss menu!]
            allowedGrades = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} -- which job grades are allowed to use management menu
        }, 
    },
    ['wxmaps_hospital'] = {
        jobs = {'ambulance'}, -- which jobs are allowed to use this hospital
        blip = {
            enabled = true,
            name = locale('hospital'),
            sprite = 61, 
            scale = 0.9,
            color = 25, 
            coords = vec3(-316.13, -603.79, 31.85),
        },
        duty = {
            enabled = true,
            coords = vec4(-324.22, -586.46, 32.68, 0.0),
            -- ped = 's_m_m_paramedic_01',
            -- anim = {dict = 'missfam4', clip = 'base', flag = 1},
            -- prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)}
        },
        wardrobe = vec3(-344.65, -588.72, 32.96),
        management = {
            coords = vec3(-327.90, -576.27, 32.61), -- coords of boss menu [script will open your boss menu!]
            allowedGrades = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} -- which job grades are allowed to use management menu
        }, 
    },

    -- Get discount on Prompt's ALL Maps with Creator Code "piotreq" :)
    ['prompts_hospital'] = {
        jobs = {'ambulance'}, -- which jobs are allowed to use this hospital
        blip = {
            enabled = true,
            name = locale('hospital'),
            sprite = 61, 
            scale = 0.9,
            color = 25, 
            coords = vec3(1752.0015, 3624.0273, 34.9851),
        },
        duty = {
            enabled = true,
            coords = vec4(1746.26, 3634.62, 34.91, 0.0),
            -- ped = 's_m_m_paramedic_01',
            -- anim = {dict = 'missfam4', clip = 'base', flag = 1},
            -- prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)}
        },
        wardrobe = vec3(1753.45, 3638.22, 35.36),
        management = {
            coords = vec3(1721.34, 3639.49, 35.06), -- coords of boss menu [script will open your boss menu!]
            allowedGrades = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} -- which job grades are allowed to use management menu
        }, 
    },

    ['nteam_hospital'] = {
        jobs = {'ambulance'}, -- which jobs are allowed to use this hospital
        blip = {
            enabled = true,
            name = locale('hospital'),
            sprite = 61, 
            scale = 0.9,
            color = 25, 
            coords = vec3(-497.8876, -1002.7608, 22.9947),
        },
        duty = {
            enabled = true,
            coords = vec4(-478.75, -994.69, 34.25, 0.0),
            -- ped = 's_m_m_paramedic_01',
            -- anim = {dict = 'missfam4', clip = 'base', flag = 1},
            -- prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)}
        },
        wardrobe = vec3(-461.06, -1005.67, 23.76),
        management = {
            coords = vec3(-482.60, -994.68, 34.21), -- coords of boss menu [script will open your boss menu!]
            allowedGrades = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} -- which job grades are allowed to use management menu
        }, 
    },

    ['gabz_hospital'] = {
        jobs = {'ambulance'}, -- which jobs are allowed to use this hospital
        blip = {
            enabled = true,
            name = locale('hospital'),
            sprite = 61, 
            scale = 0.9,
            color = 25, 
            coords = vec3(297.9502, -584.3785, 43.2609)
        },
        duty = {
            enabled = true,
            coords = vec4(310.19, -593.06, 43.09, 0.0),
            -- ped = 's_m_m_paramedic_01',
            -- anim = {dict = 'missfam4', clip = 'base', flag = 1},
            -- prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)}
        },
        wardrobe = vec3(302.47, -598.98, 43.50),
        management = {
            coords = vec3(339.65, -590.56, 43.09), -- coords of boss menu [script will open your boss menu!]
            allowedGrades = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} -- which job grades are allowed to use management menu
        }, 
    },
}
```

</details>

<details>

<summary>Alerts and Terminal TV Setup</summary>

```lua
---@class Config.Alerts
---@field enabled boolean [enable alerts feature?]
---@field jobs table<string> [which jobs are allowed to see alerts]
---@field menuKey string | false [key to open alerts menu, false = none key]
---@field menuCommand string | false [command to open alerts menu, false = none command]
Config.Alerts = {
    enabled = true,
    jobs = {'ambulance'},
    menuKey = 'F5',
    menuCommand = 'emsDispatch',
    -- menuItem = ''
}

---@class Config.TV
---@field enabled boolean [enable tv feature?]
---@field points table<string, table<string, TVPoint>> [list of tv points, string is unique name of hospital!]

---@class TVPoint
---@field coords vec3 [coords of tv, they should be at least 20.0 units away from other tv points in same hospital to avoid texture issues]
---@field rot vec3 [rotation of tv]
Config.TV = {
    enabled = true,
    points = {
        -- must be name of hospital from Config.Hospitals!!
        ['kiiya_hospital'] = {
            ['Entrance TV'] = {
                coords = vec3(301.283, -582.483, 44.518),
                rot = vec3(8.231, 0.000, 47.436),
            },
        },
        ['fm_hospital'] = {
            ['Entrance TV'] = {
                coords = vec3(83.51, -408.42, 40.29),
                rot = vec3(9.00, 0.00, 17.00),
            },
        },
        ['wxmaps_hospital'] = {
            ['Entrance TV'] = {
                coords = vec3(-317.10, -594.68, 33.86),
                rot = vec3(1.00, -0.00, -125.00),
            },
        },
        ['prompts_hospital'] = {
            ['Entrance TV'] = {
                coords = vec3(1750.44, 3631.35, 36.13),
                rot = vec3(11.00, 0.00, -100.00),
            },
        },
        ['nteam_hospital'] = {
            ['Entrance TV'] = {
                coords = vec3(-489.15, -1005.83, 24.59),
                rot = vec3(-1.00, -0.00, 110.00),
            },
        },
        ['gabz_hospital'] = {
            ['Entrance TV'] = {
                coords = vec3(301.283, -582.483, 44.318),
                rot = vec3(8.231, 0.000, 47.436),
            },
        },
    }
}
```

</details>

<details>

<summary>Check-In and Insurance Setup</summary>

```lua
---@class Config.CheckIn
---@field enabled boolean [enable check-in feature?]
---@field moneyIntoSociety boolean [should money from check-in go into society account?]
---@field points table<string, CheckInPoint> [list of check-in points, string is unique name!]
---@field beds table<string, vec4[]> [list of beds for each check-in point, string must be the same as in points!]

---@class CheckInPoint
---@field label string [display name of check-in point]
---@field coords vec4 [coords of point]
---@field ped string [ped model at point]
---@field duration number [time in ms for check-in progress]
---@field maxDutyMedics number | false [maximum medics on duty to enable check-in, false = can always use]
---@field price table<string, number> | false [price for check-in in different accounts, false = no payment]
Config.CheckIn = {
    enabled = true,
    moneyIntoSociety = true, -- should money from check-in go into society account?
    camera = {
        enabled = true, -- enable script camera when checking in?
        offset = vec3(-1.5, 1.25, -0.65), -- offset from player coords [left/right, forward/back, up/down]
    },
    points = {
        -- this kiiya_hospital must be UNIQUE! and the same as in beds below [that means these beds are for that check-in point]
        ['kiiya_hospital'] = {
            label = 'Pillbox Hospital',
            coords = vec4(311.22, -582.14, 43.27, 74.00),
            ped = 's_m_m_doctor_01',
            anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
            prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
            duration = 5000,
            maxDutyMedics = 2,
            price = {
                money = 500, -- price in cash
                bank = 500, -- price in bank
                black_money = 500, -- price in black money [if you want to disable some payment method, just remove it from table]
                insurance = true, -- can be used insurance for check-in? [only will work if player own insurance]
            }
        },
        ['fm_hospital'] = {
            label = 'Alta Hospital',
            coords = vec4(87.6377, -413.0038, 39.3781, 72.6047),
            ped = 's_m_m_doctor_01',
            anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
            prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
            duration = 5000,
            maxDutyMedics = 2,
            price = {
                money = 500, -- price in cash
                bank = 500, -- price in bank
                black_money = 500, -- price in black money [if you want to disable some payment method, just remove it from table]
                insurance = true, -- can be used insurance for check-in? [only will work if player own insurance]
            }
        },
        ['wxmaps_hospital'] = {
            label = 'San Andreas Hospital',
            coords = vec4(-327.9289, -590.4722, 32.7755, 244.6265),
            ped = 's_m_m_doctor_01',
            anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
            prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
            duration = 5000,
            maxDutyMedics = 2,
            price = {
                money = 500, -- price in cash
                bank = 500, -- price in bank
                black_money = 500, -- price in black money [if you want to disable some payment method, just remove it from table]
                insurance = true, -- can be used insurance for check-in? [only will work if player own insurance]
            }
        },
        ['prompts_hospital'] = {
            label = 'Sandy Shores Hospital',
            coords = vec4(1747.4933, 3634.1384, 35.1408, 206.2178),
            ped = 's_m_m_doctor_01',
            anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
            prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
            duration = 5000,
            maxDutyMedics = 2,
            price = {
                money = 500, -- price in cash
                bank = 500, -- price in bank
                black_money = 500, -- price in black money [if you want to disable some payment method, just remove it from table]
                insurance = true, -- can be used insurance for check-in? [only will work if player own insurance]
            }
        },
        ['nteam_hospital'] = {
            label = 'Little Seul Hospital',
            coords = vec4(-469.1707, -999.3661, 23.6923, 93.5120),
            ped = 's_m_m_doctor_01',
            anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
            prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
            duration = 5000,
            maxDutyMedics = 2,
            price = {
                money = 500, -- price in cash
                bank = 500, -- price in bank
                black_money = 500, -- price in black money [if you want to disable some payment method, just remove it from table]
                insurance = true, -- can be used insurance for check-in? [only will work if player own insurance]
            }
        },
        ['gabz_hospital'] = {
            label = 'Pillbox Hospital',
            coords = vec4(307.0528, -595.0332, 43.2841, 67.0701),
            ped = 's_m_m_doctor_01',
            anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
            prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
            duration = 5000,
            maxDutyMedics = 2,
            price = {
                money = 500, -- price in cash
                bank = 500, -- price in bank
                black_money = 500, -- price in black money [if you want to disable some payment method, just remove it from table]
                insurance = true, -- can be used insurance for check-in? [only will work if player own insurance]
            }
        },
    },
    beds = {
        -- this kiiya_hospital must be the same as in check-in point above [that means these beds are for that check-in point]
        -- use "/setup ped" from our p_bridge to setup beds easily :)
        ['kiiya_hospital'] = {
            vec4(338.35, -595.38, 42.94, 344.00),
            vec4(341.93, -596.69, 42.94, 346.00),
            vec4(335.01, -594.16, 42.94, 0.00),
            vec4(331.22, -592.89, 42.94, 0.00),
            vec4(332.52, -589.49, 42.94, 256.00),
            vec4(343.16, -593.55, 42.95, 81.00),
            vec4(344.28, -590.33, 42.94, 77.00),
        },
        ['fm_hospital'] = {
            vec4(108.43, -385.38, 43.81, 67.00),
            vec4(106.25, -391.57, 43.81, 80.00),
            vec4(95.38, -393.86, 43.81, 347.00),
            vec4(89.21, -391.64, 43.81, 348.00),
        },
        ['wxmaps_hospital'] = {
            vec4(-347.96, -604.04, 37.19, 217.00),
            vec4(-347.01, -607.95, 37.19, 314.00),
            vec4(-344.81, -611.29, 37.19, 314.00),
            vec4(-341.28, -612.91, 37.19, 34.00),
        },
        ['prompts_hospital'] = {
            vec4(1763.54, 3655.84, 34.82, 30.00),
            vec4(1756.82, 3651.95, 34.82, 35.00),
            vec4(1753.47, 3650.00, 34.82, 40.00),
        },
        ['nteam_hospital'] = {
            vec4(-452.77, -1022.07, 29.87, 100.00),
            vec4(-452.74, -1017.39, 29.87, 100.00),
            vec4(-460.18, -1016.77, 29.87, 293.00),
            vec4(-460.14, -1021.40, 29.87, 276.00),
            vec4(-460.28, -1027.73, 29.87, 280.00),
            vec4(-460.21, -1032.40, 29.87, 282.00),
            vec4(-452.69, -1031.91, 29.87, 97.00),
        },
        ['gabz_hospital'] = {
            vec4(322.69, -587.27, 44.20, 341.00),
            vec4(324.19, -582.87, 44.20, 174.00),
            vec4(317.81, -585.33, 44.20, 354.00),
            vec4(319.35, -581.05, 44.20, 166.00),
            vec4(314.51, -584.30, 44.20, 0.00),
            vec4(313.85, -579.02, 44.20, 172.00),
            vec4(311.19, -582.88, 44.20, 0.00),
            vec4(309.32, -577.37, 44.20, 165.00),
            vec4(307.81, -581.64, 44.20, 0.00),
        }
    }
}

---@class Config.Insurance
---@field enabled boolean [enable insurance feature?]
---@field moneyIntoSociety boolean [should money from insurance go into society account?]
Config.Insurance = {
    enabled = true,
    moneyIntoSociety = true,
    points = {
        ['kiiya_hospital'] = {
            coords = vec4(314.5467, -586.1916, 43.2710, 161.7225),
            ped = 's_m_m_doctor_01',
            anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
            prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        },
        ['fm_hospital'] = {
            coords = vec4(70.5336, -377.0609, 39.3782, 211.5145),
            ped = 's_m_m_doctor_01',
            anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
            prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        },
        ['wxmaps_hospital'] = {
            coords = vec4(-323.1106, -586.9794, 32.7755, 191.7357),
            ped = 's_m_m_doctor_01',
            anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
            prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        },
        ['prompts_hospital'] = {
            coords = vec4(1744.7739, 3634.6533, 35.1408, 123.3434),
            ped = 's_m_m_doctor_01',
            anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
            prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        },
        ['nteam_hospital'] = {
            coords = vec4(-469.2556, -1001.8315, 23.6920, 91.1998),
            ped = 's_m_m_doctor_01',
            anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
            prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        },
        ['gabz_hospital'] = {
            coords = vec4(312.4630, -592.8284, 43.2841, 344.9943),
            ped = 's_m_m_doctor_01',
            anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
            prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        }
    },
    options = {
        -- list of insurance policies
        -- each policy must have unique name!
        ['basic'] = {
            label = 'Basic Insurance',
            price = 1000, -- price to buy this insurance
            duration = 7 * 24 * 60 * 60, -- duration of insurance in seconds [7 days]
        },
        ['premium'] = {
            label = 'Premium Insurance',
            price = 4000,
            duration = 30 * 24 * 60 * 60, -- 30 days
        }
    }
}
```

</details>

<details>

<summary>Shops Setup</summary>

```lua
---@class Config.Shops: table<string, Shop>
---@class Shop
---@field blip? table {sprite: number, scale?: number, color: number, name: string} [blip settings]
---@field coords vec4 [coords of shop]
---@field ped string [ped model at shop]
---@field anim table {dict: string [animation dictionary], clip: string [animation clip], flag?: number [animation flag, default 1]}
---@field prop table {model: string [prop model], bone: number [bone index], coords: vec3 [prop position], rot: vec3 [prop rotation]}
---@field items table<{item: string, price: number}> [list of items in shop]

Config.Shops = {
    -- must be name of hospital from Config.Hospitals!!
    ['kiiya_hospital'] = {
        label = 'Hospital Cabinet',
        blip = {name = locale('cabinet'), sprite = 59, scale = 0.85, color = 25},
        coords = vec4(316.85, -597.72, 43.26, 254.00),
        ped = 's_m_m_paramedic_01',
        anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
        prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        jobRestricted = true, -- only for jobs from Config.Hospitals?
        items = {
            {name = 'medicbag', price = 0},
            {name = 'ambulance_gps', price = 0},
            {name = 'wheelchair', price = 0},
            {name = 'crutch', price = 0},
            {name = 'stretcher', price = 0},
            {name = 'bodybag', price = 0},
            {name = 'bandage', price = 0},
            {name = 'icepack', price = 0},
            {name = 'ointment', price = 0},
            {name = 'defibrilator', price = 0},
            {name = 'splint', price = 0},
            {name = 'suture_kit', price = 0},
            {name = 'morphine', price = 0},
            {name = 'medical_kit', price = 0},
            {name = 'disinfectant', price = 0},
            {name = 'advanced_medical_kit', price = 0},
            {name = 'blood_bag_250', price = 0},
            {name = 'blood_bag_500', price = 0},
            {name = 'antipyretics', price = 0},
            {name = 'painkillers', price = 0},
            {name = 'gauze', price = 5},
            {name = 'adrenaline', price = 10},
            {name = 'cyclonamine', price = 15},
            {name = 'tourniquet', price = 20},
        }
    },
    ['kiiya_hospital_pharmacy'] = {
        label = 'Hospital Pharmacy',
        blip = {name = locale('pharmacy'), sprite = 403, scale = 0.85, color = 69},
        coords = vec4(298.30, -598.00, 43.26, 337.00),
        ped = 's_m_m_paramedic_01',
        items = {
            {name = 'gauze', price = 50},
            {name = 'adrenaline', price = 100},
            {name = 'bandage', price = 200},
            {name = 'cyclonamine', price = 300},
            {name = 'tourniquet', price = 500},
        }
    },

    ['fm_hospital'] = {
        label = 'Hospital Cabinet',
        blip = {name = locale('cabinet'), sprite = 59, scale = 0.85, color = 25},
        coords = vec4(113.0803, -378.3839, 39.3782, 237.9791),
        ped = 's_m_m_paramedic_01',
        anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
        prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        jobRestricted = true, -- only for jobs from Config.Hospitals?
        items = {
            {name = 'medicbag', price = 0},
            {name = 'ambulance_gps', price = 0},
            {name = 'wheelchair', price = 0},
            {name = 'crutch', price = 0},
            {name = 'stretcher', price = 0},
            {name = 'bodybag', price = 0},
            {name = 'bandage', price = 0},
            {name = 'icepack', price = 0},
            {name = 'ointment', price = 0},
            {name = 'defibrilator', price = 0},
            {name = 'splint', price = 0},
            {name = 'suture_kit', price = 0},
            {name = 'morphine', price = 0},
            {name = 'medical_kit', price = 0},
            {name = 'disinfectant', price = 0},
            {name = 'advanced_medical_kit', price = 0},
            {name = 'blood_bag_250', price = 0},
            {name = 'blood_bag_500', price = 0},
            {name = 'antipyretics', price = 0},
            {name = 'painkillers', price = 0},
            {name = 'gauze', price = 5},
            {name = 'adrenaline', price = 10},
            {name = 'cyclonamine', price = 15},
            {name = 'tourniquet', price = 20},
        }
    },

    ['wxmaps_hospital'] = {
        label = 'Hospital Cabinet',
        blip = {name = locale('cabinet'), sprite = 59, scale = 0.85, color = 25},
        coords = vec4(-344.9016, -587.7113, 32.7745, 303.0427),
        ped = 's_m_m_paramedic_01',
        anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
        prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        jobRestricted = true, -- only for jobs from Config.Hospitals?
        items = {
            {name = 'medicbag', price = 0},
            {name = 'ambulance_gps', price = 0},
            {name = 'wheelchair', price = 0},
            {name = 'crutch', price = 0},
            {name = 'stretcher', price = 0},
            {name = 'bodybag', price = 0},
            {name = 'bandage', price = 0},
            {name = 'icepack', price = 0},
            {name = 'ointment', price = 0},
            {name = 'defibrilator', price = 0},
            {name = 'splint', price = 0},
            {name = 'suture_kit', price = 0},
            {name = 'morphine', price = 0},
            {name = 'medical_kit', price = 0},
            {name = 'disinfectant', price = 0},
            {name = 'advanced_medical_kit', price = 0},
            {name = 'blood_bag_250', price = 0},
            {name = 'blood_bag_500', price = 0},
            {name = 'antipyretics', price = 0},
            {name = 'painkillers', price = 0},
            {name = 'gauze', price = 5},
            {name = 'adrenaline', price = 10},
            {name = 'cyclonamine', price = 15},
            {name = 'tourniquet', price = 20},
        }
    },

    ['prompts_hospital'] = {
        label = 'Hospital Cabinet',
        blip = {name = locale('cabinet'), sprite = 59, scale = 0.85, color = 25},
        coords = vec4(1742.6763, 3652.2773, 35.1408, 210.4657),
        ped = 's_m_m_paramedic_01',
        anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
        prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        jobRestricted = true, -- only for jobs from Config.Hospitals?
        items = {
            {name = 'medicbag', price = 0},
            {name = 'ambulance_gps', price = 0},
            {name = 'wheelchair', price = 0},
            {name = 'crutch', price = 0},
            {name = 'stretcher', price = 0},
            {name = 'bodybag', price = 0},
            {name = 'bandage', price = 0},
            {name = 'icepack', price = 0},
            {name = 'ointment', price = 0},
            {name = 'defibrilator', price = 0},
            {name = 'splint', price = 0},
            {name = 'suture_kit', price = 0},
            {name = 'morphine', price = 0},
            {name = 'medical_kit', price = 0},
            {name = 'disinfectant', price = 0},
            {name = 'advanced_medical_kit', price = 0},
            {name = 'blood_bag_250', price = 0},
            {name = 'blood_bag_500', price = 0},
            {name = 'antipyretics', price = 0},
            {name = 'painkillers', price = 0},
            {name = 'gauze', price = 5},
            {name = 'adrenaline', price = 10},
            {name = 'cyclonamine', price = 15},
            {name = 'tourniquet', price = 20},
        }
    },
    ['prompts_hospital_pharmacy'] = {
        label = 'Hospital Pharmacy',
        blip = {name = locale('pharmacy'), sprite = 403, scale = 0.85, color = 69},
        coords = vec4(1744.8768, 3645.4358, 35.1408, 113.9539), radius = 1.5,
        ped = 's_m_m_paramedic_01',
        items = {
            {name = 'gauze', price = 50},
            {name = 'adrenaline', price = 100},
            {name = 'bandage', price = 200},
            {name = 'cyclonamine', price = 300},
            {name = 'tourniquet', price = 500},
        }
    },

    ['nteam_hospital'] = {
        label = 'Hospital Cabinet',
        blip = {name = locale('cabinet'), sprite = 59, scale = 0.85, color = 25},
        coords = vec4(-461.4127, -994.7538, 23.7311, 182.1652),
        ped = 's_m_m_paramedic_01',
        anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
        prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        jobRestricted = true, -- only for jobs from Config.Hospitals?
        items = {
            {name = 'medicbag', price = 0},
            {name = 'ambulance_gps', price = 0},
            {name = 'wheelchair', price = 0},
            {name = 'crutch', price = 0},
            {name = 'stretcher', price = 0},
            {name = 'bodybag', price = 0},
            {name = 'bandage', price = 0},
            {name = 'icepack', price = 0},
            {name = 'ointment', price = 0},
            {name = 'defibrilator', price = 0},
            {name = 'splint', price = 0},
            {name = 'suture_kit', price = 0},
            {name = 'morphine', price = 0},
            {name = 'medical_kit', price = 0},
            {name = 'disinfectant', price = 0},
            {name = 'advanced_medical_kit', price = 0},
            {name = 'blood_bag_250', price = 0},
            {name = 'blood_bag_500', price = 0},
            {name = 'antipyretics', price = 0},
            {name = 'painkillers', price = 0},
            {name = 'gauze', price = 5},
            {name = 'adrenaline', price = 10},
            {name = 'cyclonamine', price = 15},
            {name = 'tourniquet', price = 20},
        }
    },
    ['nteam_hospital_pharmacy'] = {
        label = 'Hospital Pharmacy',
        blip = {name = locale('pharmacy'), sprite = 403, scale = 0.85, color = 69},
        coords = vec4(-460.5862, -1015.3923, 23.7354, 176.1330), radius = 1.5,
        ped = 's_m_m_paramedic_01',
        items = {
            {name = 'gauze', price = 50},
            {name = 'adrenaline', price = 100},
            {name = 'bandage', price = 200},
            {name = 'cyclonamine', price = 300},
            {name = 'tourniquet', price = 500},
        }
    },

    ['gabz_hospital'] = {
        label = 'Hospital Cabinet',
        blip = {name = locale('cabinet'), sprite = 59, scale = 0.85, color = 25},
        coords = vec4(306.33, -601.66, 43.28, 338.00),
        ped = 's_m_m_paramedic_01',
        anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
        prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        jobRestricted = true, -- only for jobs from Config.Hospitals?
        items = {
            {name = 'medicbag', price = 0},
            {name = 'ambulance_gps', price = 0},
            {name = 'wheelchair', price = 0},
            {name = 'crutch', price = 0},
            {name = 'stretcher', price = 0},
            {name = 'bodybag', price = 0},
            {name = 'bandage', price = 0},
            {name = 'icepack', price = 0},
            {name = 'ointment', price = 0},
            {name = 'defibrilator', price = 0},
            {name = 'splint', price = 0},
            {name = 'suture_kit', price = 0},
            {name = 'morphine', price = 0},
            {name = 'medical_kit', price = 0},
            {name = 'disinfectant', price = 0},
            {name = 'advanced_medical_kit', price = 0},
            {name = 'blood_bag_250', price = 0},
            {name = 'blood_bag_500', price = 0},
            {name = 'antipyretics', price = 0},
            {name = 'painkillers', price = 0},
            {name = 'gauze', price = 5},
            {name = 'adrenaline', price = 10},
            {name = 'cyclonamine', price = 15},
            {name = 'tourniquet', price = 20},
        }
    },
}
```

</details>

<details>

<summary>Medic Bag Setup</summary>

```lua
---@class Config.MedicBag
---@field enabled boolean [enable medic bag feature?]
---@field prop table {model: string [prop model], coords: vector3 [prop position], rot: vector3 [prop rotation]}
---@field anims table {putdown: table {dict: string [animation dictionary], clip: string [animation clip], flag?: number [animation flag, default 1]}, pickup: table {dict: string [animation dictionary], clip: string [animation clip], flag?: number [animation flag, default 1]}} [animations for putting down and picking up medic bag]
---@field items table<string, boolean> [list of items that can be used from medic bag]
Config.MedicBag = {
    enabled = true,
    prop = {
        model = 'xm_prop_x17_bag_med_01a',
        coords = vector3(0.35, 0.0, 0.01),
        rot = vector3(0.0, 270.0, -120.0)
    },
    anims = {
        putdown = {dict = 'pickup_object', clip = 'pickup_low', flag = 1},
        pickup = {dict = 'pickup_object', clip = 'pickup_low', flag = 1}
    },
    items = {
        ['bandage'] = true,
        ['icepack'] = true,
        ['defibrilator'] = true,
        ['ointment'] = true,
        ['disinfectant'] = true,
        ['splint'] = true,
        ['suture_kit'] = true,
        ['morphine'] = true,
        ['medical_kit'] = true,
        ['advanced_medical_kit'] = true,
        ['blood_bag_250'] = true,
        ['blood_bag_500'] = true,
        ['painkillers'] = true,
        ['gauze'] = true,
        ['adrenaline'] = true,
        ['cyclonamine'] = true,
        ['tourniquet'] = true,
        ['antipyretics'] = true,
    }
}
```

</details>

<details>

<summary>Death System Setup</summary>

```lua
---@class Config.Death
---@field animals table {enabled: boolean [enable animal death animations?], anims: table<string, {dict: string [animation dictionary], clip: string [animation clip], flag?: number [animation flag, default 1]}>} [list of animal models with their death animations]
---@field commands table<string, {enabled: boolean [enable/disable this command?], names: string[] [command names], restricted: string[] [who can use this command]}[]> [list of kill commands]
---@field enabledKeys table<number> [enabled keys while player is dead/bleeding/recovering]
---@field stages table<string, any>
---@field onInit function [will be executed when this status is initialized]
---@field time number [time in seconds for death screen]
---@field anim table [animation data]
---@field enabled boolean [is stage enabled?]
---@field movement boolean [is player movement enabled? crawling on bleeding state]
---@field anims table[] [list of animations for this stage, script will choose one random]
---@field weapons table<string, {label: string [display name of weapon], bleedOutTime: number [different death screen time for each weapon]]}>
Config.Death = {
    -- support animal death animations? [if is enabled and player is using animal model, script will play death animation for that animal and skip bleeding/recovering]
    animals = {
        enabled = true,
        anims = {
            [`A_C_Rottweiler`] = {dict = 'creatures@rottweiler@move', clip = 'dead_left', flag = 1},
            [`A_C_Cat_01`] = {dict = 'creatures@cat@move', clip = 'dead_left', flag = 1},
            [`A_C_Pug`] = {dict = 'creatures@pug@move', clip = 'dead_left', flag = 1},
            [`A_C_Chop`] = {dict = 'creatures@rottweiler@move', clip = 'dead_left', flag = 1},
            [`A_C_Husky`] = {dict = 'creatures@rottweiler@move', clip = 'dead_left', flag = 1},
            [`A_C_Boar`] = {dict = 'creatures@boar@move', clip = 'dead_right', flag = 1},
            [`A_C_Cow`] = {dict = 'creatures@cow@move', clip = 'dead_left', flag = 1},
            [`A_C_Deer`] = {dict = 'creatures@deer@move', clip = 'dead_left', flag = 1},
            [`A_C_MtLion`] = {dict = 'creatures@coyote@move', clip = 'dead_left', flag = 1},
            [`A_C_Rabbit_01`] = {dict = 'creatures@rabbit@move', clip = 'dead_left', flag = 1},
            [`A_C_Shepherd`] = {dict = 'creatures@rottweiler@move', clip = 'dead_left', flag = 1},
            [`A_C_Westy`] = {dict = 'creatures@pug@move', clip = 'dead_left', flag = 1},
        }
    },
    commands = {
        ['kill'] = {
            enabled = true, -- enable/disable this command
            names = {'kill', 'slay'}, -- command names
            restricted = {'group.best', 'group.owner', 'group.admin'}, -- who can use this command
        },
        ['killall'] = {
            enabled = false, -- enable/disable this command
            names = {'killall'}, -- command names
            restricted = {'group.god', 'group.best', 'group.owner', 'group.admin'}, -- who can use this command
        },
        ['killradius'] = {
            enabled = false,
            names = {'killradius', 'slayradius'}, -- command names
            restricted = {'group.god', 'group.best', 'group.owner', 'group.admin'}, -- who can use
        },
        ['revive'] = {
            enabled = true, -- enable/disable this command
            names = {'revive', 'rev'}, -- command names
            restricted = {'group.best', 'group.owner', 'group.admin'}, -- who can use this command
            serverFunction = function(playerId, targetId)
                if GetResourceState('qb-core') == 'started' then
                    local player = Bridge.Framework.getPlayerById(targetId)
                    local status = {
                        ['hunger'] = 100,
                        ['thirst'] = 100,
                        ['stress'] = 0
                    }
                    if player then
                        for k, v in pairs(status) do
                            player.Functions.SetMetaData(k, v) -- qb-core
                            Player(targetId).state:set(k, v, true) -- qbx_core
                        end
                    end
                end

                if GetResourceState('jg-stress-addon') == 'started' then
                    Player(targetId).state:set('stress', 0, true) -- jg-stress-addon
                end
            end,
            clientFunction = function()
                if GetResourceState('esx_status') == 'started' then
                    TriggerEvent('esx_status:set', 'hunger', 1000000)
                    TriggerEvent('esx_status:set', 'thirst', 1000000)
                    TriggerEvent('esx_status:set', 'stress', 0) -- for stress system in esx status :)
                end

                if GetResourceState('rcore_drunk') == 'started' then
                    exports['rcore_drunk']:SetPlayerDrunkPercentage(0.0)
                end

                if GetResourceState('devcore_needs') == 'started' then
                    exports['devcore_needs']:RemoveAlcoholEffect()
                end
            end
        },
        ['reviveall'] = {
            enabled = true, -- enable/disable this command
            names = {'reviveall', 'revall'}, -- command names
            restricted = {'group.best', 'group.owner', 'group.admin'}, -- who can use this command
        },
        ['reviveradius'] = {
            enabled = true,
            names = {'reviveradius', 'revradius'}, -- command names
            restricted = {'group.best', 'group.owner', 'group.admin'}, -- who can use
        },
        ['heal'] = {
            enabled = true, -- enable/disable this command
            names = {'heal'}, -- command names
            restricted = {'group.best', 'group.owner', 'group.admin'}, -- who can use this command
            serverFunction = function(playerId, targetId)
                if GetResourceState('qb-core') == 'started' then
                    local player = Bridge.Framework.getPlayerById(targetId)
                    local status = {
                        ['hunger'] = 100,
                        ['thirst'] = 100,
                        ['stress'] = 0
                    }
                    if player then
                        for k, v in pairs(status) do
                            player.Functions.SetMetaData(k, v) -- qb-core
                            Player(targetId).state:set(k, v, true) -- qbx_core
                        end
                    end
                end

                if GetResourceState('jg-stress-addon') == 'started' then
                    Player(targetId).state:set('stress', 0, true) -- jg-stress-addon
                end
            end,
            clientFunction = function()
                if GetResourceState('esx_status') == 'started' then
                    TriggerEvent('esx_status:set', 'hunger', 1000000)
                    TriggerEvent('esx_status:set', 'thirst', 1000000)
                    TriggerEvent('esx_status:set', 'stress', 0) -- for stress system in esx status :)
                end

                if GetResourceState('rcore_drunk') == 'started' then
                    exports['rcore_drunk']:SetPlayerDrunkPercentage(0.0)
                end

                if GetResourceState('devcore_needs') == 'started' then
                    exports['devcore_needs']:RemoveAlcoholEffect()
                end
            end
        }
    },

    -- script disable all control actions, add here controls which you want to enable while player is dead/bleeding/recovering
    -- https://docs.fivem.net/docs/game-references/controls/
    enabledKeys = {0, 1, 2, 3, 4, 5, 6},
    stages = {
        ['alive'] = {
            onInit = function()
                -- this will execute when player revives
            end
        },
        ['vehicle'] = {
            anim = {dict = 'missprologuedead_guard', clip = 'dead_guard', flag = 49},
            onInit = function()
                -- this will execute when player enters vehicle while is death
            end
        },
        ['death'] = {
            time = 300,
            anim = {dict = 'dead', clip = 'dead_a', flag = 1},
            dropItems = {
                enabled = true, -- drop items when player dies?
                type = 'chance', -- chance / medics [chance = drop items is based on chance, medics = drop items only when medics are on duty]
                chance = 50, -- chance in % to drop items [only for chance type]
                minMedics = 2, -- minimum medics on duty to drop items [only for medics type]
                dropType = 'stash', -- stash / remove [stash = script will create temporary stash on player death, remove = script will just remove items]
                whitelistItems = {
                    ['phone'] = true,
                    ['simcard'] = true,
                }
            },
            alert = function()
                TriggerServerEvent('p_ambulancejob/server/alerts/new', {
                    code = '911',
                    title = 'Alert',
                    message = 'I need help!',
                    coords = GetEntityCoords(cache.ped),
                    expire = 60, -- 60 seconds
                    blip = {
                        sprite = 153,
                        color = 1,
                        scale = 1.1,
                        pulse = true
                    }
                })
            end,
            onInit = function()
                -- this will execute when player enters death state
            end
        },
        ['bleeding'] = {
            enabled = true, -- enable bleeding as death stage? [true = when someone kill you, first will be bleeding then death]
            movement = true,
            
            -- script will choose one random anim from this table
            anims = {
                {dict = 'move_injured_ground', clip = 'front_loop'},
                {dict = 'move_injured_ground', clip = 'back_loop'}
            },
            time = 120,
            onInit = function()
                -- this will execute when player enters bleeding state
            end
        },
        ['recovering'] = {
            enabled = true, -- enable recovering as death stage? [true = when someone beat you with melee, you will recover up]
            anim = {dict = 'missfinale_c1@', clip = 'lying_dead_player0', flag = 1},
            weapons = {
                [`WEAPON_UNARMED`] = { label = locale('fist'), recoveryTime = 20 },
                [`WEAPON_BAT`] = { label = locale('bat'), recoveryTime = 25 },
                [`WEAPON_FLASHLIGHT`] = { label = locale('flashlight'), recoveryTime = 20 },
                [`WEAPON_STUNGUN`] = { label = locale('stungun'), recoveryTime = 30 },
                [`WEAPON_STUNGUN_MP`] = { label = locale('stungun'), recoveryTime = 30 },
                [`WEAPON_NIGHTSTICK`] = { label = locale('nightstick'), recoveryTime = 25 },
                [`WEAPON_CANDYCANE`] = { label = locale('candycane'), recoveryTime = 25 },
                [`WEAPON_KNUCKLE`] = { label = locale('knuckle'), recoveryTime = 20 },

            },
            onInit = function()
                -- this will execute when player enters recovering state
            end
        }
    }
}
```

</details>

<details>

<summary>Bleeding System Setup</summary>

```lua
---@class Config.Bleeding
---@field enabled boolean [enabled bleeding feature?]
---@field screenEffect table {enabled: boolean [enable screen effect bleeding?], requiredValue: number [required minimum value to show it up]}
---@field loopInterval number [time in ms for bleeding loop, how often player will get damage from bleeding]
---@field maxValue number [maximum bleeding value]
---@field items table<string, {value: number [how much this item will reduce bleeding value], duration: number [time in ms for using item], anim: table {dict: string [animation dictionary], clip: string [animation clip], flag?: number [animation flag, default 1]}}> [list of items which can reduce bleeding value]
---@field weapons table<string, number [when u got hit by this weapon, it will add this value to overall bleeding value]>
---@field onInit function [this will execute when player enters bleeding state]
Config.Bleeding = {
    enabled = true, -- enabled bleeding feature? [you will bleed when u get stabbed / shot]
    screenEffect = {
        enabled = true, -- enable screen effect bleeding?
        requiredValue = 5, -- required minimum value to show it up
    },
    loopInterval = 10000,
    maxValue = 25,
    items = {
        ['gauze'] = {
            value = 1,
            duration = 3000,
            anim = {dict = 'mp_suicide', clip = 'pill', flag = 49},
        },
        ['adrenaline'] = {
            value = 5,
            duration = 3000,
            anim = {dict = 'mp_suicide', clip = 'pill', flag = 49},
        },
        ['bandage'] = {
            value = 10,
            duration = 3000,
            anim = {dict = 'mp_suicide', clip = 'pill', flag = 49},
        },
        ['cyclonamine'] = {
            value = 10,
            duration = 3000,
            anim = {dict = 'mp_suicide', clip = 'pill', flag = 49},
        },
        ['tourniquet'] = {
            value = 15,
            duration = 3000,
            anim = {dict = 'mp_suicide', clip = 'pill', flag = 49},
        }
    },
    weapons = {
        [`WEAPON_KNIFE`] = 1, -- when u got hit by WEAPON_KNIFE, it will add 1 to overall bleeding value [higher value = faster bleeding and more effects] max value is 100
        [`WEAPON_DAGGER`] = 1,
        [`WEAPON_STONE_HATCHET`] = 1,
        [`WEAPON_BATTLEAXE`] = 1,
        [`WEAPON_STUNROD`] = 1,
        [`WEAPON_MACHETE`] = 1,
        [`WEAPON_SWITCHBLADE`] = 1,
        [`WEAPON_HATCHET`] = 1,
        [`WEAPON_PISTOL`] = 2, -- when u got hit by WEAPON_PISTOL, it will add 2 to overall bleeding value
        [`WEAPON_VINTAGEPISTOL`] = 2,
        [`WEAPON_PISTOLXM3`] = 2,
        [`WEAPON_CERAMICPISTOL`] = 2,
        [`WEAPON_COMBATPISTOL`] = 2,
        [`WEAPON_SNSPISTOL_MK2`] = 2,
        [`WEAPON_PISTOL50`] = 2,
        [`WEAPON_SNSPISTOL`] = 2,
        [`WEAPON_PISTOL_MK2`] = 2,
        [`WEAPON_HEAVYPISTOL`] = 2,
        [`WEAPON_SMG`] = 3, -- when u got hit by WEAPON_SMG, it will add 3 to overall bleeding value
        [`WEAPON_COMBATPDW`] = 3,
        [`WEAPON_MICROSMG`] = 3,
        [`WEAPON_MINISMG`] = 3,
        [`WEAPON_RIFLE`] = 4, -- when u got hit by WEAPON_RIFLE, it will add 4 to overall bleeding value
        [`WEAPON_SNIPERRIFLE`] = 5, -- when u got hit by WEAPON_SNIPER, it will add 5 to overall bleeding value
        [`WEAPON_PUMPSHOTGUN`] = 5,
        [`WEAPON_HEAVYSHOTGUN`] = 5,
        [`WEAPON_PUMPSHOTGUN_MK2`] = 5,
        [`WEAPON_SAWNOFFSHOTGUN`] = 4,
        [`WEAPON_BULLPUPSHOTGUN`] = 4,
        [`WEAPON_ASSAULTSHOTGUN`] = 4,
    },
    onInit = function()
        -- this will execute when player enters bleeding state
    end,
    onClear = function()
        -- this will execute when player bleeding is cleared
    end
}
```

</details>

<details>

<summary>Crutch and Wheelchair Setup</summary>

```lua
---@class Config.Crutch
---@field enabled boolean [enable crutch feature?]
---@field allowedJobs table<string, number> [which jobs are allowed to force crutch on some player]
---@field disableSprint boolean [disable sprint when using crutch?]
---@field prop table {model: string [crutch prop model], coords: vec3 [coords of prop], rot: vec3 [rotation of prop]}
Config.Crutch = {
    enabled = true,
    allowedJobs = {['ambulance'] = 0},
    disabledControls = {22, 21, 24, 25},
    prop = {
        model = 'prop_mads_crutch01', -- Author of Prop [https://mads.tebex.io/]
        coords = vec3(1.18, -0.36, -0.20), -- coords of prop
        rot = vec3(-20.0, -87.0, -20.0), -- rotation of prop
    }
}

---@class Config.Wheelchair
---@field enabled boolean [enable crutch feature?]
---@field allowedJobs table<string, number> [which jobs are allowed to force crutch on some player]
---@field model string [wheelchair model as vehicle]
---@field disableExitWhenForced boolean [disable exit when forced into wheelchair]
Config.Wheelchair = {
    enabled = true,
    allowedJobs = {['ambulance'] = 0},
    model = 'iak_wheelchair',
    disableExitWhenForced = true
}
```

</details>

<details>

<summary>Damages Setup</summary>

```lua
---@class Config.Damages
---@field enabled boolean [enable damages feature?]
---@field reviveAnimation boolean [play revive animation? when medic heal all injuries]
---@field moneyIntoSociety boolean [should money from healing injuries go into society account?]
---@field moneyforHealing table {perInjury: boolean [add money for each injury?], amount: number [base amount of money for healing], medicPercent: number [how much % from base amount will get medic]} [money settings for healing injuries]
---@field effects table {enabled: boolean [enable damage effects?], chance: number [chance in % to get effect when get hit in some body part below], bones: table<string, string> [list of bones with their effects]} [effects settings]
---@field bones table<string, table<string, boolean>> [list of bones which will be tracked for damages]
---@field weapons table<string, {injuries: table<number, {label: string [display name of injury], color: string [color from p_notify], items: table<string, number> [items needed to heal this injury]}[]>}> [list of weapons with their injuries]
-- Bones Reference: https://wiki.rage.mp/wiki/Bones
Config.Damages = {
    enabled = true,
    reviveAnimation = true,
    moneyIntoSociety = true,
    moneyforHealing = {
        perInjury = true,
        amount = 100,
        medicPercent = 20, -- how much % from base amount will get medic
    },
    effects = {
        enabled = true,
        chance = 10, -- 10% chance to get effect when get hit in some body part below
        bones = {
            ['head'] = {effect = 'blackOut', value = 30}, -- add 30 value to blackOut effect
            ['leftArm'] = {effect = 'shakeAim', value = 30},
            ['rightArm'] = {effect = 'shakeAim', value = 30},
        }
    },
    bones = {
        -- These means when player got hit in one of these bones, it will register damage for that body part :)
        ['head'] = {
            ['12844'] = true, ['31086'] = true, ['25260'] = true, ['27474'] = true, ['39317'] = true,
        },
        ['torso'] = {
            ['0'] = true, ['11816'] = true,  ['24816'] = true, ['24817'] = true, ['24818'] = true
        },
        ['leftArm'] = {
            ['45509'] = true, ['61163'] = true, ['18905'] = true, ['36029'] = true, ['60309'] = true,
            ['61163'] = true, ['65245'] = true, ['64729'] = true,
        },
        ['rightArm'] = {
            ['2992'] = true, ['6286'] = true, ['24806'] = true, ['28422'] = true, ['37119'] = true,
            ['40269'] = true, ['57005'] = true, ['10706'] = true,
        },
        ['leftLeg'] = {
            ['14201'] = true, ['46078'] = true, ['57717'] = true, ['58271'] = true, ['65245'] = true,
            ['63931'] = true,
        },
        ['rightLeg'] = {
            ['16335'] = true, ['24806'] = true, ['35502'] = true, ['36864'] = true, ['51826'] = true,
            ['52301'] = true,
        }
    },
    weapons = {
        [`WEAPON_UNARMED`] = {
            injuries = {
                -- there must be some damage at [1] index !!!
                [1] = {label = 'Bruise', color = 'grape.6', items = {['ointment'] = 1}},
                [5] = {label = 'Minor Cut', color = 'red.6', items = {['disinfectant'] = 1, ['gauze'] = 1, ['bandage'] = 1}},
                [7] = {label = 'Deep Cut', color = 'red.7', items = {['disinfectant'] = 1, ['suture_kit'] = 1, ['bandage'] = 1}},
                [10] = {label = 'Fracture', color = 'red.8', items = {['splint'] = 1, ['medical_kit'] = 1}},
                [20] = {label = 'Broken Bone', color = 'red.9', items = {['splint'] = 1, ['advanced_medical_kit'] = 2}},
            }
        },
        [`WEAPON_KNIFE`] = {
            injuries = {
                [1] = {label = 'Knife Small Cut', color = 'grape.6', items = {['disinfectant'] = 1, ['gauze'] = 1, ['bandage'] = 1}},
                [2] = {label = 'Knife Minor Cut', color = 'red.6', items = { ['disinfectant'] = 1, ['gauze'] = 2, ['bandage'] = 1}},
                [3] = {label = 'Knife Deep Cut', color = 'red.7', items = {['disinfectant'] = 1, ['suture_kit'] = 1, ['medical_kit'] = 1, ['bandage'] = 1}},
                [4] = {label = 'Stab Wound', color = 'red.8', items = {['suture_kit'] = 2, ['advanced_medical_kit'] = 1, ['bandage'] = 2}},
                [5] = {label = 'Severed Artery', color = 'red.9', items = {['gauze'] = 2, ['blood_bag_250'] = 1, ['suture_kit'] = 1, ['advanced_medical_kit'] = 1}},
                [6] = {label = 'Critical Laceration', color = 'red.10', items = {['gauze'] = 2, ['blood_bag_500'] = 1, ['suture_kit'] = 1, ['advanced_medical_kit'] = 1}},
            }
        },
        [`WEAPON_PISTOL`] = {
            injuries = {
                [1] = {label = 'Small Caliber Wound', color = 'red.5', items = {['tourniquet'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [3] = {label = 'Caliber Wound', color = 'red.6', items = {['bandage'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1, ['morphine'] = 1}},
                [5] = {label = 'Large Caliber Wound', color = 'red.7', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['morphine'] = 2}},
                [7] = {label = 'Heavy Bleeding Wound', color = 'red.8', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['medical_kit'] = 1, ['morphine'] = 2}},
            }
        },
        [`WEAPON_COMBATPISTOL`] = {
            injuries = {
                [1] = {label = 'Small Caliber Wound', color = 'red.5', items = {['tourniquet'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [3] = {label = 'Caliber Wound', color = 'red.6', items = {['bandage'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1, ['morphine'] = 1}},
                [5] = {label = 'Large Caliber Wound', color = 'red.7', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['morphine'] = 2}},
                [7] = {label = 'Heavy Bleeding Wound', color = 'red.8', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['medical_kit'] = 1, ['morphine'] = 2}},
            }
        },
        [`WEAPON_VINTAGEPISTOL`] = {
            injuries = {
                [1] = {label = 'Small Caliber Wound', color = 'red.5', items = {['tourniquet'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [3] = {label = 'Caliber Wound', color = 'red.6', items = {['bandage'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1, ['morphine'] = 1}},
                [5] = {label = 'Large Caliber Wound', color = 'red.7', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['morphine'] = 2}},
                [7] = {label = 'Heavy Bleeding Wound', color = 'red.8', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['medical_kit'] = 1, ['morphine'] = 2}},
            }
        },
        [`WEAPON_SNSPISTOL_MK2`] = {
            injuries = {
                [1] = {label = 'Small Caliber Wound', color = 'red.5', items = {['tourniquet'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [3] = {label = 'Caliber Wound', color = 'red.6', items = {['bandage'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1, ['morphine'] = 1}},
                [5] = {label = 'Large Caliber Wound', color = 'red.7', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['morphine'] = 2}},
                [7] = {label = 'Heavy Bleeding Wound', color = 'red.8', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['medical_kit'] = 1, ['morphine'] = 2}},
            }
        },
        [`WEAPON_PISTOL50`] = {
            injuries = {
                [1] = {label = 'Small Caliber Wound', color = 'red.5', items = {['tourniquet'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [3] = {label = 'Caliber Wound', color = 'red.6', items = {['bandage'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1, ['morphine'] = 1}},
                [5] = {label = 'Large Caliber Wound', color = 'red.7', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['morphine'] = 2}},
                [7] = {label = 'Heavy Bleeding Wound', color = 'red.8', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['medical_kit'] = 1, ['morphine'] = 2}},
            }
        },
        [`WEAPON_SNSPISTOL`] = {
            injuries = {
                [1] = {label = 'Small Caliber Wound', color = 'red.5', items = {['tourniquet'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [3] = {label = 'Caliber Wound', color = 'red.6', items = {['bandage'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1, ['morphine'] = 1}},
                [5] = {label = 'Large Caliber Wound', color = 'red.7', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['morphine'] = 2}},
                [7] = {label = 'Heavy Bleeding Wound', color = 'red.8', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['medical_kit'] = 1, ['morphine'] = 2}},
            }
        },
        [`WEAPON_PISTOL_MK2`] = {
            injuries = {
                [1] = {label = 'Small Caliber Wound', color = 'red.5', items = {['tourniquet'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [3] = {label = 'Caliber Wound', color = 'red.6', items = {['bandage'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1, ['morphine'] = 1}},
                [5] = {label = 'Large Caliber Wound', color = 'red.7', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['morphine'] = 2}},
                [7] = {label = 'Heavy Bleeding Wound', color = 'red.8', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['medical_kit'] = 1, ['morphine'] = 2}},
            }
        },
        [`WEAPON_HEAVYPISTOL`] = {
            injuries = {
                [1] = {label = 'Small Caliber Wound', color = 'red.5', items = {['tourniquet'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [3] = {label = 'Caliber Wound', color = 'red.6', items = {['bandage'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1, ['morphine'] = 1}},
                [5] = {label = 'Large Caliber Wound', color = 'red.7', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['morphine'] = 2}},
                [7] = {label = 'Heavy Bleeding Wound', color = 'red.8', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['medical_kit'] = 1, ['morphine'] = 2}},
            }
        },
        [`WEAPON_APPISTOL`] = {
            injuries = {
                [1] = {label = 'Small Caliber Wound', color = 'red.5', items = {['tourniquet'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [3] = {label = 'Caliber Wound', color = 'red.6', items = {['bandage'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1, ['morphine'] = 1}},
                [5] = {label = 'Large Caliber Wound', color = 'red.7', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['morphine'] = 2}},
                [7] = {label = 'Heavy Bleeding Wound', color = 'red.8', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['medical_kit'] = 1, ['morphine'] = 2}},
            }
        },
        [`WEAPON_SMG`] = {
            injuries = {
                [1] = {label = 'Light SMG Wound', color = 'red.6', items = {['tourniquet'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [5] = {label = 'SMG Wound', color = 'red.7', items = {['bandage'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [7] = {label = 'Multiple SMG Wounds', color = 'red.8', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1}},
                [10] = {label = 'Critical SMG Trauma', color = 'red.9', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['medical_kit'] = 1}},
                [15] = {label = 'SMG Arterial Damage', color = 'red.10', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_500'] = 1, ['medical_kit'] = 1}},
            }
        },
        [`WEAPON_COMBATPDW`] = {
            injuries = {
                [1] = {label = 'Light SMG Wound', color = 'red.6', items = {['tourniquet'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [5] = {label = 'SMG Wound', color = 'red.7', items = {['bandage'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [7] = {label = 'Multiple SMG Wounds', color = 'red.8', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1}},
                [10] = {label = 'Critical SMG Trauma', color = 'red.9', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['medical_kit'] = 1}},
                [15] = {label = 'SMG Arterial Damage', color = 'red.10', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_500'] = 1, ['medical_kit'] = 1}},
            }
        },
        [`WEAPON_MICROSMG`] = {
            injuries = {
                [1] = {label = 'Light SMG Wound', color = 'red.6', items = {['tourniquet'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [5] = {label = 'SMG Wound', color = 'red.7', items = {['bandage'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [7] = {label = 'Multiple SMG Wounds', color = 'red.8', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1}},
                [10] = {label = 'Critical SMG Trauma', color = 'red.9', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['medical_kit'] = 1}},
                [15] = {label = 'SMG Arterial Damage', color = 'red.10', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_500'] = 1, ['medical_kit'] = 1}},
            }
        },
        [`WEAPON_TECPISTOL`] = {
            injuries = {
                [1] = {label = 'Light SMG Wound', color = 'red.6', items = {['tourniquet'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [5] = {label = 'SMG Wound', color = 'red.7', items = {['bandage'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [7] = {label = 'Multiple SMG Wounds', color = 'red.8', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1}},
                [10] = {label = 'Critical SMG Trauma', color = 'red.9', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['medical_kit'] = 1}},
                [15] = {label = 'SMG Arterial Damage', color = 'red.10', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_500'] = 1, ['medical_kit'] = 1}},
            }
        },
        [`WEAPON_MINISMG`] = {
            injuries = {
                [1] = {label = 'Light SMG Wound', color = 'red.6', items = {['tourniquet'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [5] = {label = 'SMG Wound', color = 'red.7', items = {['bandage'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [7] = {label = 'Multiple SMG Wounds', color = 'red.8', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1}},
                [10] = {label = 'Critical SMG Trauma', color = 'red.9', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['medical_kit'] = 1}},
                [15] = {label = 'SMG Arterial Damage', color = 'red.10', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_500'] = 1, ['medical_kit'] = 1}},
            }
        },
        [`WEAPON_MACHINEPISTOL`] = {
            injuries = {
                [1] = {label = 'Light SMG Wound', color = 'red.6', items = {['tourniquet'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [5] = {label = 'SMG Wound', color = 'red.7', items = {['bandage'] = 1, ['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [7] = {label = 'Multiple SMG Wounds', color = 'red.8', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1}},
                [10] = {label = 'Critical SMG Trauma', color = 'red.9', items = {['suture_kit'] = 1, ['blood_bag_500'] = 1, ['medical_kit'] = 1}},
                [15] = {label = 'SMG Arterial Damage', color = 'red.10', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_500'] = 1, ['medical_kit'] = 1}},
            }
        },
        [`WEAPON_CARBINERIFLE`] = {
            injuries = {
                [1] = {label = 'Rifle Graze', color = 'red.6', items = {['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [4] = {label = 'Rifle Entry Wound', color = 'red.7', items = {['suture_kit'] = 1, ['blood_bag_250'] = 1, ['medical_kit'] = 1}},
                [7] = {label = 'Rifle Exit Wound', color = 'red.8', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_250'] = 1, ['medical_kit'] = 1}},
                [9] = {label = 'High Velocity Impact', color = 'red.9', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_500'] = 1, ['advanced_medical_kit'] = 1}},
                [12] = {label = 'Rifle Organ Damage', color = 'red.10', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_500'] = 2, ['advanced_medical_kit'] = 1}},
            }
        },
        [`WEAPON_ASSAULTRIFLE_MK2`] = {
            injuries = {
                [1] = {label = 'Rifle Graze', color = 'red.6', items = {['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [4] = {label = 'Rifle Entry Wound', color = 'red.7', items = {['suture_kit'] = 1, ['blood_bag_250'] = 1, ['medical_kit'] = 1}},
                [7] = {label = 'Rifle Exit Wound', color = 'red.8', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_250'] = 1, ['medical_kit'] = 1}},
                [9] = {label = 'High Velocity Impact', color = 'red.9', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_500'] = 1, ['advanced_medical_kit'] = 1}},
                [12] = {label = 'Rifle Organ Damage', color = 'red.10', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_500'] = 2, ['advanced_medical_kit'] = 1}},
            }
        },
        [`WEAPON_ADVANCEDRIFLE`] = {
            injuries = {
                [1] = {label = 'Rifle Graze', color = 'red.6', items = {['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [4] = {label = 'Rifle Entry Wound', color = 'red.7', items = {['suture_kit'] = 1, ['blood_bag_250'] = 1, ['medical_kit'] = 1}},
                [7] = {label = 'Rifle Exit Wound', color = 'red.8', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_250'] = 1, ['medical_kit'] = 1}},
                [9] = {label = 'High Velocity Impact', color = 'red.9', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_500'] = 1, ['advanced_medical_kit'] = 1}},
                [12] = {label = 'Rifle Organ Damage', color = 'red.10', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_500'] = 2, ['advanced_medical_kit'] = 1}},
            }
        },
        [`WEAPON_ASSAULTRIFLE`] = {
            injuries = {
                [1] = {label = 'Rifle Graze', color = 'red.6', items = {['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [4] = {label = 'Rifle Entry Wound', color = 'red.7', items = {['suture_kit'] = 1, ['blood_bag_250'] = 1, ['medical_kit'] = 1}},
                [7] = {label = 'Rifle Exit Wound', color = 'red.8', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_250'] = 1, ['medical_kit'] = 1}},
                [9] = {label = 'High Velocity Impact', color = 'red.9', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_500'] = 1, ['advanced_medical_kit'] = 1}},
                [12] = {label = 'Rifle Organ Damage', color = 'red.10', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_500'] = 2, ['advanced_medical_kit'] = 1}},
            }
        },
        [`WEAPON_TACTICALRIFLE`] = {
            injuries = {
                [1] = {label = 'Rifle Graze', color = 'red.6', items = {['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [4] = {label = 'Rifle Entry Wound', color = 'red.7', items = {['suture_kit'] = 1, ['blood_bag_250'] = 1, ['medical_kit'] = 1}},
                [7] = {label = 'Rifle Exit Wound', color = 'red.8', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_250'] = 1, ['medical_kit'] = 1}},
                [9] = {label = 'High Velocity Impact', color = 'red.9', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_500'] = 1, ['advanced_medical_kit'] = 1}},
                [12] = {label = 'Rifle Organ Damage', color = 'red.10', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_500'] = 2, ['advanced_medical_kit'] = 1}},
            }
        },
        [`WEAPON_CARBINERIFLE_MK2`] = {
            injuries = {
                [1] = {label = 'Rifle Graze', color = 'red.6', items = {['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [4] = {label = 'Rifle Entry Wound', color = 'red.7', items = {['suture_kit'] = 1, ['blood_bag_250'] = 1, ['medical_kit'] = 1}},
                [7] = {label = 'Rifle Exit Wound', color = 'red.8', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_250'] = 1, ['medical_kit'] = 1}},
                [9] = {label = 'High Velocity Impact', color = 'red.9', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_500'] = 1, ['advanced_medical_kit'] = 1}},
                [12] = {label = 'Rifle Organ Damage', color = 'red.10', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_500'] = 2, ['advanced_medical_kit'] = 1}},
            }
        },
        [`WEAPON_SHOTGUN`] = {
            injuries = {
                [1] = {label = 'Shotgun Pellet Wound', color = 'red.6', items = {['suture_kit'] = 1, ['blood_bag_250'] = 1}},
                [2] = {label = 'Shotgun Spread Wound', color = 'red.7', items = {['suture_kit'] = 1, ['blood_bag_250'] = 1, ['medical_kit'] = 1}},
                [4] = {label = 'Shotgun Blast Trauma', color = 'red.8', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_250'] = 1, ['medical_kit'] = 1}},
                [6] = {label = 'Close Range Devastation', color = 'red.9', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_500'] = 1, ['advanced_medical_kit'] = 1}},
                [8] = {label = 'Shotgun Critical Trauma', color = 'red.10', items = {['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_500'] = 2, ['advanced_medical_kit'] = 1}},
            }
        },
        [`WEAPON_SNIPER`] = {
            injuries = {
                [1] = {label = 'Sniper Graze', color = 'red.7', items = {['bandage'] = 2, ['advanced_medical_kit'] = 1}},
                [2] = {label = 'High Caliber Impact', color = 'red.8', items = {['bandage'] = 3, ['suture_kit'] = 1, ['morphine'] = 1, ['blood_bag_250'] = 1}},
                [3] = {label = 'Armor Piercing Wound', color = 'red.9', items = {['bandage'] = 4, ['suture_kit'] = 1, ['cyclonamine'] = 1, ['morphine'] = 1, ['blood_bag_500'] = 1}},
                [4] = {label = 'Devastating Impact', color = 'red.10', items = {['bandage'] = 4, ['suture_kit'] = 2, ['cyclonamine'] = 1, ['adrenaline'] = 1, ['blood_bag_500'] = 1}},
                [5] = {label = 'Critical Sniper Trauma', color = 'red.10', items = {['bandage'] = 4, ['suture_kit'] = 1, ['cyclonamine'] = 1, ['morphine'] = 1, ['morphine'] = 1, ['blood_bag_500'] = 1}},
            }
        },
        [`WEAPON_MACHETE`] = {
            injuries = {
                [1] = {label = 'Machete Slash', color = 'red.6', items = {['bandage'] = 2, ['disinfectant'] = 1}},
                [3] = {label = 'Deep Machete Cut', color = 'red.7', items = {['bandage'] = 2, ['disinfectant'] = 1, ['suture_kit'] = 1}},
                [5] = {label = 'Severed Muscle', color = 'red.8', items = {['bandage'] = 2, ['suture_kit'] = 1, ['tourniquet'] = 1}},
            }
        },
        [`WEAPON_CROWBAR`] = {
            injuries = {
                [1] = {label = 'Blunt Force Bruise', color = 'grape.6', items = {['bandage'] = 1, ['ointment'] = 1, ['icepack'] = 1}},
                [2] = {label = 'Crowbar Laceration', color = 'red.6', items = {['bandage'] = 2, ['disinfectant'] = 1}},
                [4] = {label = 'Bone Fracture', color = 'red.8', items = {['bandage'] = 3, ['advanced_medical_kit'] = 2}},
                [6] = {label = 'Compound Fracture', color = 'red.9', items = {['bandage'] = 3, ['advanced_medical_kit'] = 2, ['morphine'] = 1, ['adrenaline'] = 1}},
                [8] = {label = 'Severe Head Trauma', color = 'red.10', items = {['bandage'] = 3, ['advanced_medical_kit'] = 1, ['morphine'] = 2, ['suture_kit'] = 1}},
            }
        },
        [`WEAPON_WRENCH`] = {
            injuries = {
                [1] = {label = 'Blunt Force Bruise', color = 'grape.6', items = {['bandage'] = 1, ['ointment'] = 1, ['icepack'] = 1}},
                [2] = {label = 'Wrench Laceration', color = 'red.6', items = {['bandage'] = 2, ['disinfectant'] = 1}},
                [4] = {label = 'Bone Fracture', color = 'red.8', items = {['bandage'] = 3, ['advanced_medical_kit'] = 2}},
                [6] = {label = 'Compound Fracture', color = 'red.9', items = {['bandage'] = 3, ['advanced_medical_kit'] = 2, ['morphine'] = 1, ['adrenaline'] = 1}},
                [8] = {label = 'Severe Head Trauma', color = 'red.10', items = {['bandage'] = 3, ['advanced_medical_kit'] = 1, ['morphine'] = 2, ['suture_kit'] = 1}},
            }
        },
        [`WEAPON_HAMMER`] = {
            injuries = {
                [1] = {label = 'Blunt Force Bruise', color = 'grape.6', items = {['bandage'] = 1, ['ointment'] = 1, ['icepack'] = 1}},
                [2] = {label = 'Hammer Laceration', color = 'red.6', items = {['bandage'] = 2, ['disinfectant'] = 1}},
                [4] = {label = 'Bone Fracture', color = 'red.8', items = {['bandage'] = 3, ['advanced_medical_kit'] = 2}},
                [6] = {label = 'Compound Fracture', color = 'red.9', items = {['bandage'] = 3, ['advanced_medical_kit'] = 2, ['morphine'] = 1, ['adrenaline'] = 1}},
                [8] = {label = 'Severe Head Trauma', color = 'red.10', items = {['bandage'] = 3, ['advanced_medical_kit'] = 1, ['morphine'] = 2, ['suture_kit'] = 1}},
            }
        },
        [`WEAPON_DAGGER`] = {
            injuries = {
                [1] = {label = 'Knife Small Cut', color = 'grape.6', items = {['disinfectant'] = 1, ['gauze'] = 1, ['bandage'] = 1}},
                [2] = {label = 'Knife Minor Cut', color = 'red.6', items = { ['disinfectant'] = 1, ['gauze'] = 2, ['bandage'] = 1}},
                [3] = {label = 'Knife Deep Cut', color = 'red.7', items = {['disinfectant'] = 1, ['suture_kit'] = 1, ['medical_kit'] = 1, ['bandage'] = 1}},
                [4] = {label = 'Stab Wound', color = 'red.8', items = {['suture_kit'] = 2, ['advanced_medical_kit'] = 1, ['bandage'] = 2}},
                [5] = {label = 'Severed Artery', color = 'red.9', items = {['gauze'] = 2, ['blood_bag_250'] = 1, ['suture_kit'] = 1, ['advanced_medical_kit'] = 1}},
                [6] = {label = 'Critical Laceration', color = 'red.10', items = {['gauze'] = 2, ['blood_bag_500'] = 1, ['suture_kit'] = 1, ['advanced_medical_kit'] = 1}},
            }
        },
        [`WEAPON_BATTLEAXE`] = {
            injuries = {
                [1] = {label = 'Blunt Force Bruise', color = 'grape.6', items = {['bandage'] = 1, ['ointment'] = 1, ['icepack'] = 1}},
                [2] = {label = 'Axe Laceration', color = 'red.6', items = {['bandage'] = 2, ['disinfectant'] = 1}},
                [4] = {label = 'Bone Fracture', color = 'red.8', items = {['bandage'] = 3, ['advanced_medical_kit'] = 2}},
                [6] = {label = 'Compound Fracture', color = 'red.9', items = {['bandage'] = 3, ['advanced_medical_kit'] = 2, ['morphine'] = 1, ['adrenaline'] = 1}},
                [8] = {label = 'Severe Head Trauma', color = 'red.10', items = {['bandage'] = 3, ['advanced_medical_kit'] = 1, ['morphine'] = 2, ['suture_kit'] = 1}},
            }
        },
        [`WEAPON_BAT`] = {
            injuries = {
                [1] = {label = 'Bat Bruise', color = 'grape.6', items = {['bandage'] = 1, ['icepack'] = 1}},
                [2] = {label = 'Bat Welt', color = 'red.6', items = {['bandage'] = 2, ['icepack'] = 1}},
                [3] = {label = 'Rib Fracture', color = 'red.7', items = {['bandage'] = 3, ['advanced_medical_kit'] = 1}},
                [4] = {label = 'Multiple Fractures', color = 'red.8', items = {['bandage'] = 4, ['advanced_medical_kit'] = 2, ['splint'] = 1}},
                [5] = {label = 'Severe Blunt Trauma', color = 'red.9', items = {['bandage'] = 5, ['advanced_medical_kit'] = 3, ['blood_bag_250'] = 1}},
            }
        },
        [`WEAPON_HAMMER`] = {
            injuries = {
                [1] = {label = 'Hammer Bruise', color = 'grape.6', items = {['bandage'] = 1, ['icepack'] = 1}},
                [2] = {label = 'Hammer Laceration', color = 'red.6', items = {['bandage'] = 2}},
                [3] = {label = 'Crushed Bone', color = 'red.8', items = {['bandage'] = 3, ['advanced_medical_kit'] = 1, ['splint'] = 1}},
                [4] = {label = 'Shattered Bone', color = 'red.9', items = {['bandage'] = 4, ['advanced_medical_kit'] = 1, ['suture_kit'] = 1}},
                [5] = {label = 'Pulverized Trauma', color = 'red.10', items = {['bandage'] = 4, ['advanced_medical_kit'] = 1, ['blood_bag_250'] = 1, ['suture_kit'] = 2}},
            }
        },
        [`WEAPON_EXPLOSION`] = {
            injuries = {
                [1] = {label = 'Blast Bruise', color = 'red.6', items = {['bandage'] = 2, ['ointment'] = 1}},
                [2] = {label = 'Shrapnel Wound', color = 'red.7', items = {['bandage'] = 3, ['suture_kit'] = 1, ['ointment'] = 1}},
                [3] = {label = 'Blast Burns', color = 'red.8', items = {['bandage'] = 3, ['advanced_medical_kit'] = 1, ['ointment'] = 2}},
                [4] = {label = 'Multiple Shrapnel', color = 'red.9', items = {['bandage'] = 3, ['suture_kit'] = 2, ['blood_bag_250'] = 1}},
                [5] = {label = 'Catastrophic Blast Injury', color = 'red.9', items = {['ointment'] = 3, ['suture_kit'] = 1, ['bandage'] = 1, ['gauze'] = 1}},
            }
        },
        [`WEAPON_FIRE`] = {
            injuries = {
                [1] = {label = 'Minor Burn', color = 'orange.6', items = {['ointment'] = 1}},
                [2] = {label = 'First Degree Burn', color = 'orange.7', items = {['bandage'] = 1, ['ointment'] = 2}},
                [3] = {label = 'Second Degree Burn', color = 'red.7', items = {['bandage'] = 2, ['advanced_medical_kit'] = 1, ['ointment'] = 3}},
                [4] = {label = 'Third Degree Burn', color = 'red.9', items = {['bandage'] = 3, ['advanced_medical_kit'] = 2, ['ointment'] = 4, ['morphine'] = 1}},
                [5] = {label = 'Severe Burns', color = 'red.10', items = {['bandage'] = 3, ['advanced_medical_kit'] = 3, ['ointment'] = 5, ['suture_kit'] = 1, ['morphine'] = 2}},
            }
        },
        [`WEAPON_FALL`] = {
            injuries = {
                [1] = {label = 'Scraped Knee', color = 'grape.6', items = {['bandage'] = 1, ['disinfectant'] = 1}},
                [2] = {label = 'Sprained Ankle', color = 'red.6', items = {['bandage'] = 2, ['icepack'] = 1}},
                [3] = {label = 'Broken Arm', color = 'red.7', items = {['bandage'] = 3, ['advanced_medical_kit'] = 1, ['splint'] = 1}},
                [4] = {label = 'Multiple Fractures', color = 'red.8', items = {['bandage'] = 3, ['advanced_medical_kit'] = 2, ['splint'] = 2}},
                [5] = {label = 'Spinal Injury', color = 'red.10', items = {['bandage'] = 3, ['advanced_medical_kit'] = 1, ['blood_bag_500'] = 1, ['suture_kit'] = 2, ['morphine'] = 2}},
            }
        },
        [`WEAPON_VEHICLE`] = {
            injuries = {
                [1] = {label = 'Road Rash', color = 'red.6', items = {['bandage'] = 2, ['disinfectant'] = 1}},
                [2] = {label = 'Impact Bruising', color = 'red.7', items = {['bandage'] = 3, ['icepack'] = 2}},
                [3] = {label = 'Broken Ribs', color = 'red.8', items = {['bandage'] = 1, ['advanced_medical_kit'] = 2, ['splint'] = 1}},
                [4] = {label = 'Internal Bleeding', color = 'red.9', items = {['morphine'] = 2, ['blood_bag_250'] = 1, ['suture_kit'] = 1}},
                [5] = {label = 'Massive Trauma', color = 'red.10', items = {['morphine'] = 2, ['blood_bag_500'] = 1, ['suture_kit'] = 1}},
            }
        },
    }
}
```

</details>

<details>

<summary>Pulse / Temperature / Defibrilator Setup</summary>

```lua
---@class Config.Pulse
---@field enabled boolean [enable pulse feature?]
---@field minPulse number [default minimum pulse value]
---@field maxPulse number [default maximum pulse value]
---@field critical table {enabled: boolean, chance: number, requiredInjuries: number, pulse: table<number>} [critical pulse settings]
--- Info: Pulse will decrease when player get injuries and increase when player heal injuries
--- Info: When player is in death/bleeding state there is a chance to get critical pulse value
Config.Pulse = {
    enabled = true,
    minPulse = 70, 
    maxPulse = 200,
    critical = {
        enabled = true,
        chance = 10, -- 10% chance to get critical pulse when in death/bleeding state
        requiredInjuries = 10, -- required number of injuries to get critical pulse
        pulse = {35, 50}, -- pulse value when critical [script will choose 35 or 50]
    }
}

---@class Config.Temperature
---@field enabled boolean [enable temperature feature?]
---@field minTemperature number [minimum temperature]
---@field maxTemperature number [maximum temperature]
---@field items table<string, number> [list of items that can affect temperature and their effect value]
---@field critical table {enabled: boolean, chance: number, requiredInjuries: number, temperature: table<number>} [critical temperature settings]
--- Info: Temperature will decrease when player get cold items and increase when player get hot items
--- Info: When player is in death/bleeding state there is a chance to get critical temperature value
Config.Temperature = {
    enabled = true,
    minTemperature = 36.0, -- minimum temperature
    maxTemperature = 38.0, -- maximum temperature
    items = {
        ['icepack'] = -0.5, -- icepack will reduce temperature by 0.5
        ['antipyretics'] = 0.5, -- antipyretics will increase temperature by 0.5
    },
    critical = {
        enabled = true,
        chance = 10, -- 10% chance to get critical temperature when in death/bleeding state
        requiredInjuries = 10, -- required number of injuries to get critical temperature
        temperature = {32.0, 41.0}, -- temperature value when critical [script will choose 34.0 or 42.0]
    }
}

---@class Config.Defibrilator
---@field enabled boolean [enable defibrilator feature?]
---@field allowedJobs table<string> [which jobs are allowed to use defibrilator]
---@field propModel string [defibrilator prop model]
---@field onUse function(targetId: number) [this will execute when defibrilator is used on some player, targetId = player id of target]
Config.Defibrilator = {
    enabled = true,
    allowedJobs = {'ambulance'},
    propModel = 'lifepak15',
    onUse = function(targetId)
        -- this will execute when defibrilator is used on some player
        -- targetId = player id of target
        if Bridge.Progress.StartCircle({
            duration = 5000,
            label = locale('preparing_defibrilator'),
            position = 'bottom',
            canCancel = false
        }) then
            local result = lib.skillCheck({'easy', 'medium', 'hard'})
            return result
        end
    end
}
```

</details>

<details>

<summary>Bodybag and Stretcher Setup</summary>

```lua
---@class Config.BodyBag
---@field enabled: boolean [enable body bag feature?]
---@field prop: {model: string, coords: vec3, rot: vec3} [body bag prop settings]
Config.BodyBag = {
    enabled = true,
    prop = {
        model = 'xm_prop_body_bag',
        coords = vec3(-0.4, -0.13, -0.14),
        rot = vec3(-94.32, 93.43, 114.67)
    }
}

---@class Config.Stretcher
---@field enabled boolean [enable stretcher feature?]
---@field anims table {carry: {dict: string, clip: string, flag: number}, lay: {dict: string, clip: string, flag: number}} [stretcher animations]
---@field prop {model: string, foldModel: string, coords: vec3, rot: vec3, bone: number} [stretcher prop settings]
---@field vehicleModels table<integer, {coords: vec3, rot: vec3}> [list of vehicle models that can store stretcher and their coords/rot settings]
--- Info: You can add your custom vehicle models to this list
Config.Stretcher = {
    enabled = true,
    anims = {
        carry = { dict = 'anim@heists@box_carry@', clip = 'idle', flag = 49 },
        lay = { dict = 'anim@gangops@morgue@table@', clip = 'body_search', flag = 1 }
    },
    prop = {
        model = 'strykergurney',
        foldModel = 'loweredstrykergurney',
        coords = vec3(1.58, -0.08, -0.17),
        rot = vec3(81.91, 10.4, -143.3),
        bone = 18905 -- left hand
    },
    vehicleModels = {
        [`ambulance`] = {
            -- left/right | forward/back | up/down
            coords = vec3(0.0, -3.25, -0.25),
            rot = vec3(0.0, 0.0, 0.0)
        },
        [`maverick`] = {
            coords = vec3(0.0, -0.15, -0.45),
            rot = vec3(0.0, 0.0, 0.0)
        }
    },
}
```

</details>

<details>

<summary>Radial and Radio Setup</summary>

```lua
---@class Config.Radial
---@field enabled boolean [enable radial menu feature?]
---@field requireDuty boolean [require to be on duty to see menu?]
---@field items table<{id: string, icon: string, label: string, onSelect: function}> [list of radial items]
--- Info: Our script use ox_lib radial menu!
Config.Radial = {
    enabled = true,
    requireDuty = true, -- require to be on duty to see menu?
    items = {
        {
            id = 'emsDispatch',
            icon = 'tablet',
            label = locale('dispatch'),
            onSelect = function()
                Alerts:open()
            end
        },
    }
}

---@class Config.Radio
---@field enabled boolean [enable radio feature?]
---@field channels table<{label: string, channel: number, jobs: string[]}> [list of radio channels]
--- Info: You can add your custom radio channels to this list
--- Info: This feature require pma-voice resource [its not custom radio, its as option in radial menu!]
Config.Radio = {
    enabled = true,
    channels = {
        {label = '#1 EMS', channel = 1, jobs = {'ambulance'}},
        {label = '#2 EMS', channel = 2, jobs = {'ambulance'}},
        {label = '#3 EMS', channel = 3, jobs = {'ambulance'}},
        {label = '#4 EMS', channel = 4, jobs = {'ambulance'}},
        {label = '#5 EMS', channel = 5, jobs = {'ambulance'}}
    }
}
```

</details>

<details>

<summary>Interactions and GPS Setup</summary>

```lua
---@class Config.Interactions
---@field enabled boolean [enable interactions feature?]
---@field options table<string, Interaction> [list of interactions]

---@class Interaction
---@field type string ['player' or 'vehicle']
---@field label string [display name of interaction]
---@field icon string [icon for interaction]
---@field distance number [max distance to interact]
---@field jobs string[] [which jobs are allowed to see this interaction]
---@field onSelect function [this will execute when interaction is selected]
---@field canInteract? function [if this function return false, interaction will be hidden]
Config.Interactions = {
    enabled = true,
    options = {
        ['openHealingMenu'] = {
            type = 'player',
            label = locale('heal_player'),
            icon = 'fas fa-suitcase-medical',
            distance = 2.0,
            jobs = {'ambulance'},
            onSelect = function(data)
                local entity = type(data) == 'number' and data or data.entity
                local targetId = GetPlayerServerId(NetworkGetPlayerIndexFromPed(entity))
                Damages:menu(targetId)
            end
        },
        ['checkPlayerInsurance'] = {
            type = 'player',
            label = locale('check_insurance'),
            icon = 'fas fa-file-medical',
            distance = 2.0,
            jobs = {'ambulance'},
            onSelect = function(data)
                if Bridge.Progress.Start({
                    duration = 10000,
                    label = locale('checking_insurance'),
                    canCancel = true,
                    anim = {dict = 'amb@code_human_in_bus_passenger_idles@female@tablet@idle_a', clip = 'idle_a', flag = 49},
                    prop = {model = 'prop_cs_tablet', pos = vec3(0.0, 0.0, -0.02), rot = vec3(0.0, 0.0, 0.0)}
                }) then
                    local entity = type(data) == 'number' and data or data.entity
                    local targetId = GetPlayerServerId(NetworkGetPlayerIndexFromPed(entity))
                    TriggerServerEvent('p_ambulancejob/server/insurance/check', targetId)
                end
            end
        },
        ['putPlayerInVehicle'] = {
            type = 'player',
            label = locale('put_in_vehicle'),
            icon = 'fas fa-car',
            distance = 2.0,
            jobs = {'ambulance'},
            onSelect = function(data, seat)
                local entity = type(data) == 'number' and data or data.entity
                local targetId = GetPlayerServerId(NetworkGetPlayerIndexFromPed(entity))
                TriggerServerEvent('p_ambulancejob/server/interactions/putInPlayer', {seat = seat, player = targetId})
            end,
            canInteract = function(entity, seat)
                -- to avoid duplicated options from both jobs :)
                if GetResourceState('p_policejob') == 'started' then
                    return false
                end

                local vehicle, coords = lib.getClosestVehicle(GetEntityCoords(cache.ped), 4.0, false)
                if not vehicle or vehicle == 0 or not IsVehicleSeatFree(vehicle, seat) or not NetworkGetEntityIsNetworked(vehicle) then
                    return false
                end

                local targetId = GetPlayerServerId(NetworkGetPlayerIndexFromPed(entity))
                return Player(targetId).state.isDead
            end
        },
        ['takeOutPlayerVehicle'] = {
            type = 'vehicle',
            label = locale('take_out_vehicle'),
            icon = 'fas fa-car',
            distance = 3.0,
            jobs = {'ambulance'},
            onSelect = function(data, seat)
                local entity = type(data) == 'number' and data or data.entity
                local targetId = GetPlayerServerId(NetworkGetPlayerIndexFromPed(GetPedInVehicleSeat(entity, seat)))
                TriggerServerEvent('p_ambulancejob/server/interactions/takeOutPlayer', {seat = seat, player = targetId})
            end,
            canInteract = function(entity, seat)
                -- to avoid duplicated options from both jobs :)
                if GetResourceState('p_policejob') == 'started' then
                    return false
                end

                local seatPed = GetPedInVehicleSeat(entity, seat)
                if not seatPed or seatPed == 0 or not IsPedAPlayer(seatPed) then
                    return false
                end
                
                local targetId = GetPlayerServerId(NetworkGetPlayerIndexFromPed(seatPed))
                return Player(targetId).state.isDead
            end
        }
    }
}

---@class Config.GPS
---@field allowedJobs table<string> [which jobs are allowed to use GPS]
Config.GPS = {
    allowedJobs = {'ambulance'},
    showHeading = true, -- show heading on gps?
    types = {
        ['walk'] = {sprite = 1, color = 1, sirenColor = 63, scale = 1.1},
        ['car'] = {sprite = 56, color = 1, sirenColor = 63, scale = 1.1},
        ['boat'] = {sprite = 755, color = 1, sirenColor = 63, scale = 1.1},
        ['heli'] = {sprite = 43, color = 1, sirenColor = 63, scale = 1.1},
        ['plane'] = {sprite = 758, color = 1, sirenColor = 63, scale = 1.1}
    }
}
```

</details>

<details>

<summary>Garage System Setup</summary>

```lua
---@class Config.Garages: table<string, Garage>
---@class Garage
---@field coords: vec4 [coords of garage]
---@field ped: string [ped model at garage]
---@field anim?: table {dict: string [animation dictionary], clip: string [animation clip], flag?: number [animation flag, default 1]}
---@field spawnInVehicle boolean [spawn player inside vehicle?]
---@field platePrefix string [plate prefix for vehicles, make it 2-3 letters only to avoid issues with plate length]
---@field parkDistance number [max distance to park in vehicle]
---@field vehicles: Vehicle[]
---@field spawnPoints vec4[] [list of spawn points for vehicles, script will choose first free]

---@class Vehicle
---@field label string [display name of vehicle]
---@field image string [image url or path in web folder]
---@field mods table [vehicle mods, see https://docs.fivem.net/natives/?_0x6AF0636DDEDCB6DD]
---@field allowedGrades number[] [which job grades are allowed to take out this vehicle]

Config.Garages = {
    ['kiiya_hospital'] = {
        blip = {sprite = 225, color = 1, scale = 0.8, label = locale('garage')},
        coords = vec4(333.8549, -580.6429, 28.7892, 341.3111),
        ped = 's_m_m_paramedic_01',
        anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
        prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        spawnInVehicle = true,
        platePrefix = 'EMS',
        parkDistance = 10.0,
        vehicles = {
            ['ambulance'] = {
                label = 'Ambulance',
                image = 'https://docs.fivem.net/vehicles/ambulance.webp',
                mods = {
                    [0] = 1,
                },
                allowedGrades = {0, 1, 2, 3, 4, 5},
            }
        },
        spawnPoints = {
            vec4(342.3798, -579.6738, 28.7422, 68.7208),
            vec4(343.5714, -576.2437, 28.7422, 68.9288),
            vec4(344.5694, -573.1098, 28.7422, 70.2456),
            vec4(345.5736, -569.7852, 28.7421, 67.3322)
        }
    },
    ['kiiya_hospital_heli'] = {
        blip = {sprite = 759, color = 1, scale = 0.8, label = locale('helipad')},
        coords = vec4(337.58, -586.89, 74.16, 251.00),
        ped = 's_m_m_paramedic_01',
        anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
        prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        spawnInVehicle = true,
        platePrefix = 'EMS',
        parkDistance = 15.0,
        vehicles = {
            ['maverick'] = {
                label = 'Maverick',
                image = 'https://docs.fivem.net/vehicles/maverick.webp',
                mods = {
                    [0] = -1,
                },
                allowedGrades = {0, 1, 2, 3, 4, 5},
            }
        },
        spawnPoints = {
            vec4(351.9953, -588.1979, 74.1644, 95.6272),
        }
    },

    ['fm_hospital'] = {
        blip = {sprite = 225, color = 1, scale = 0.8, label = locale('garage')},
        coords = vec4(85.52, -429.49, 39.38, 167.00),
        ped = 's_m_m_paramedic_01',
        anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
        prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        spawnInVehicle = true,
        platePrefix = 'EMS',
        parkDistance = 10.0,
        vehicles = {
            ['ambulance'] = {
                label = 'Ambulance',
                image = 'https://docs.fivem.net/vehicles/ambulance.webp',
                mods = {
                    [0] = 1,
                },
                allowedGrades = {0, 1, 2, 3, 4, 5},
            }
        },
        spawnPoints = {
            vec4(80.0823, -430.6950, 39.3787, 72.2520),
            vec4(77.8790, -437.4528, 39.3787, 62.0730),
        }
    },
    ['fm_hospital_heli'] = {
        blip = {sprite = 759, color = 1, scale = 0.8, label = locale('helipad')},
        coords = vec4(95.7043, -414.3566, 86.3001, 161.7164),
        ped = 's_m_m_paramedic_01',
        anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
        prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        spawnInVehicle = true,
        platePrefix = 'EMS',
        parkDistance = 15.0,
        vehicles = {
            ['maverick'] = {
                label = 'Maverick',
                image = 'https://docs.fivem.net/vehicles/maverick.webp',
                mods = {
                    [0] = -1,
                },
                allowedGrades = {0, 1, 2, 3, 4, 5},
            }
        },
        spawnPoints = {
            vec4(95.0298, -421.9781, 86.3001, 159.6156),
        }
    },

    ['wxmaps_hospital'] = {
        blip = {sprite = 225, color = 1, scale = 0.8, label = locale('garage')},
        coords = vec4(-293.0264, -588.3840, 27.7824, 0.9708),
        ped = 's_m_m_paramedic_01',
        anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
        prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        spawnInVehicle = true,
        platePrefix = 'EMS',
        parkDistance = 30.0,
        vehicles = {
            ['ambulance'] = {
                label = 'Ambulance',
                image = 'https://docs.fivem.net/vehicles/ambulance.webp',
                mods = {
                    [0] = 1,
                },
                allowedGrades = {0, 1, 2, 3, 4, 5},
            }
        },
        spawnPoints = {
            vec4(-285.2777, -585.4836, 27.6325, 273.0562),
            vec4(-285.8666, -580.5070, 27.6325, 268.1144),
            vec4(-285.8909, -576.0419, 27.6325, 268.6015),
            vec4(-285.8459, -571.7371, 27.6325, 267.1442),
        }
    },
    ['wxmaps_hospital_heli'] = {
        blip = {sprite = 759, color = 1, scale = 0.8, label = locale('helipad')},
        coords = vec4(-347.1185, -623.5330, 51.2549, 3.8405),
        ped = 's_m_m_paramedic_01',
        anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
        prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        spawnInVehicle = true,
        platePrefix = 'EMS',
        parkDistance = 20.0,
        vehicles = {
            ['maverick'] = {
                label = 'Maverick',
                image = 'https://docs.fivem.net/vehicles/maverick.webp',
                mods = {
                    [0] = -1,
                },
                allowedGrades = {0, 1, 2, 3, 4, 5},
            }
        },
        spawnPoints = {
            vec4(-344.8115, -613.6418, 51.2549, 358.7374),
        }
    },

    ['prompts_hospital'] = {
        blip = {sprite = 225, color = 1, scale = 0.8, label = locale('garage')},
        coords = vec4(1773.8491, 3654.0125, 34.9851, 298.6072),
        ped = 's_m_m_paramedic_01',
        anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
        prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        spawnInVehicle = true,
        platePrefix = 'EMS',
        parkDistance = 30.0,
        vehicles = {
            ['ambulance'] = {
                label = 'Ambulance',
                image = 'https://docs.fivem.net/vehicles/ambulance.webp',
                mods = {
                    [0] = 1,
                },
                allowedGrades = {0, 1, 2, 3, 4, 5},
            }
        },
        spawnPoints = {
            vec4(1773.6998, 3666.0576, 34.8761, 28.7577),
            vec4(1776.7332, 3668.1277, 34.8761, 27.9866),
            vec4(1779.7272, 3669.7820, 34.8761, 27.7882),
            vec4(1789.8666, 3650.7026, 34.8761, 303.4826),
            vec4(1791.3192, 3647.9697, 34.8761, 299.5294)
        }
    },
    ['prompts_hospital_heli'] = {
        blip = {sprite = 759, color = 1, scale = 0.8, label = locale('helipad')},
        coords = vec4(1762.3312, 3639.7080, 44.8571, 118.7744),
        ped = 's_m_m_paramedic_01',
        anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
        prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        spawnInVehicle = true,
        platePrefix = 'EMS',
        parkDistance = 20.0,
        vehicles = {
            ['maverick'] = {
                label = 'Maverick',
                image = 'https://docs.fivem.net/vehicles/maverick.webp',
                mods = {
                    [0] = -1,
                },
                allowedGrades = {0, 1, 2, 3, 4, 5},
            }
        },
        spawnPoints = {
            vec4(1754.0511, 3645.3696, 44.8572, 122.1271),
            vec4(1740.5880, 3637.6514, 44.8571, 119.6492)
        }
    },

    ['nteam_hospital'] = {
        blip = {sprite = 225, color = 1, scale = 0.8, label = locale('garage')},
        coords = vec4(-453.4760, -927.8133, 23.7703, 177.7404),
        ped = 's_m_m_paramedic_01',
        anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
        prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        spawnInVehicle = true,
        platePrefix = 'EMS',
        parkDistance = 30.0,
        vehicles = {
            ['ambulance'] = {
                label = 'Ambulance',
                image = 'https://docs.fivem.net/vehicles/ambulance.webp',
                mods = {
                    [0] = 1,
                },
                allowedGrades = {0, 1, 2, 3, 4, 5},
            }
        },
        spawnPoints = {
            vec4(-448.0132, -934.6707, 23.6889, 180.0168),
            vec4(-454.6916, -934.7469, 23.6550, 177.8638),
        }
    },
    ['nteam_hospital_heli'] = {
        blip = {sprite = 759, color = 1, scale = 0.8, label = locale('helipad')},
        coords = vec4(-464.7835, -934.1799, 39.7723, 268.0062),
        ped = 's_m_m_paramedic_01',
        anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
        prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        spawnInVehicle = true,
        platePrefix = 'EMS',
        parkDistance = 50.0,
        vehicles = {
            ['maverick'] = {
                label = 'Maverick',
                image = 'https://docs.fivem.net/vehicles/maverick.webp',
                mods = {
                    [0] = -1,
                },
                allowedGrades = {0, 1, 2, 3, 4, 5},
            }
        },
        spawnPoints = {
            vec4(-458.8449, -953.6262, 41.4890, 180.0616),
        }
    },

    ['gabz_hospital'] = {
        blip = {sprite = 225, color = 1, scale = 0.8, label = locale('garage')},
        coords = vec4(335.0324, -590.1027, 28.7968, 69.5732),
        ped = 's_m_m_paramedic_01',
        anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
        prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        spawnInVehicle = true,
        platePrefix = 'EMS',
        parkDistance = 20.0,
        vehicles = {
            ['ambulance'] = {
                label = 'Ambulance',
                image = 'https://docs.fivem.net/vehicles/ambulance.webp',
                mods = {
                    [0] = 1,
                },
                allowedGrades = {0, 1, 2, 3, 4, 5},
            }
        },
        spawnPoints = {
            vec4(332.8722, -590.2881, 28.7968, 158.3711),
            vec4(329.5510, -588.9984, 28.7968, 160.5542),
            vec4(326.3069, -587.9284, 28.7968, 158.1964),
            vec4(323.0535, -586.5775, 28.7968, 159.6957),
            vec4(319.5735, -585.2662, 28.7968, 159.9599),
            vec4(316.6394, -577.9641, 28.7968, 69.7879),
            vec4(318.5216, -573.6894, 28.7968, 68.9035)
        }
    },
    ['gabz_hospital_heli'] = {
        blip = {sprite = 759, color = 1, scale = 0.8, label = locale('helipad')},
        coords = vec4(337.58, -586.89, 74.16, 251.00),
        ped = 's_m_m_paramedic_01',
        anim = {dict = 'amb@world_human_clipboard@male@idle_a', clip = 'idle_a', flag = 1},
        prop = {model = 'p_amb_clipboard_01', bone = 36029, coords = vec3(0.16, 0.08, 0.1), rot = vec3(-130.0, -50.0, 0.0)},
        spawnInVehicle = true,
        platePrefix = 'EMS',
        parkDistance = 25.0,
        vehicles = {
            ['maverick'] = {
                label = 'Maverick',
                image = 'https://docs.fivem.net/vehicles/maverick.webp',
                mods = {
                    [0] = -1,
                },
                allowedGrades = {0, 1, 2, 3, 4, 5},
            }
        },
        spawnPoints = {
            vec4(351.9953, -588.1979, 74.1644, 95.6272),
        }
    },
}
```

</details>

<details>

<summary>Elevators / Beds / Outfits Setup</summary>

```lua
---@class Config.Elevators
---@field enabled boolean [enable elevators feature?]
---@field points table<string, ElevPoint> [list of elevator points]

---@class ElevPoint
---@field coords vec3 [coords of elevator target]
---@field floors table<{label: string [display name of floor], coords: vec4 [coords of floor]}>
Config.Elevators = {
    enabled = true,
    points = {
        -- must be name of hospital from Config.Hospitals!!
        ['kiiya_hospital'] = {
            {
                coords = vec3(327.93, -569.52, 43.60),
                jobRestricted = true,
                floors = {
                    {label = locale('roof'), coords = vec4(327.92, -574.99, 73.16, 159.00)},
                    {label = locale('garage'), coords = vec4(314.4622, -562.1915, 28.7803, 162.5392)},
                }
            },
            {
                coords = vec3(326.38, -576.09, 74.54),
                floors = {
                    {label = locale('hospital'), coords = vec4(329.4640, -568.4213, 43.2612, 158.0979)},
                    {label = locale('garage'), coords = vec4(314.4622, -562.1915, 28.7803, 162.5392)},
                }
            },
            {
                coords = vec3(313.07, -563.18, 29.13),
                floors = {
                    {label = locale('hospital'), coords = vec4(329.4640, -568.4213, 43.2612, 158.0979)},
                    {label = locale('roof'), coords = vec4(327.92, -574.99, 73.16, 159.00)},
                }
            }
        },

        ['fm_hospital'] = {
            {
                coords = vec3(96.71, -419.53, 39.56),
                floors = {
                    {label = locale('roof'), coords = vec4(90.3860, -400.0669, 84.4043, 162.8022)},
                }
            },
            {
                coords = vec3(90.82, -398.88, 84.64),
                floors = {
                    {label = locale('hospital'), coords = vec4(97.0565, -418.6712, 39.3781, 338.6014)},
                }
            },
        },

        ['wxmaps_hospital'] = {
            {
                coords = vec3(-304.69, -588.31, 32.98),
                floors = {
                    {label = locale('roof'), coords = vec4(-302.2470, -593.6422, 47.9819, 0.9272)},
                    {label = locale('garage'), coords = vec4(-294.8038, -591.3406, 27.7824, 357.6197)}
                }
            },
            {
                coords = vec3(-293.73, -589.56, 27.99),
                floors = {
                    {label = locale('roof'), coords = vec4(-302.2470, -593.6422, 47.9819, 0.9272)},
                    {label = locale('hospital'), coords = vec4(-304.5966, -590.5762, 32.7755, 37.3349)}
                }
            },
            {
                coords = vec3(-301.14, -591.84, 48.42),
                floors = {
                    {label = locale('hospital'), coords = vec4(-304.5966, -590.5762, 32.7755, 37.3349)},
                    {label = locale('garage'), coords = vec4(-294.8038, -591.3406, 27.7824, 357.6197)}
                }
            },

            {
                coords = vec3(-331.84, -606.63, 33.26),
                floors = {
                    {label = locale('roof'), coords = vec4(-329.8257, -611.5190, 47.9820, 87.5609)},
                }
            },
            {
                coords = vec3(-331.80, -610.39, 48.43),
                floors = {
                    {label = locale('hospital'), coords = vec4(-331.6162, -609.1214, 32.7755, 33.9749)},
                }
            },
        },

        -- Prompts doesn't have elevators in hospital, but we add empty table to avoid errors [map includes stairs to roof :)]
        ['prompts_hospital'] = {},

        -- Map includes stairs to roof/garage etc :)
        ['nteam_hospital'] = {},

        ['gabz_hospital'] = {
            {
                coords = vec3(332.66, -595.78, 43.49),
                floors = {
                    {label = locale('roof'), coords = vec4(338.9885, -584.0726, 74.1617, 250.3736)},
                    {label = locale('garage'), coords = vec4(339.9623, -584.7045, 28.7968, 70.3155)},
                }
            },
            {
                coords = vec3(340.42, -584.83, 28.92),
                floors = {
                    {label = locale('roof'), coords = vec4(338.9885, -584.0726, 74.1617, 250.3736)},
                    {label = locale('hospital'), coords = vec4(331.7536, -595.5214, 43.2840, 69.4922)},
                }
            },
            {
                coords = vec3(338.27, -583.74, 74.30),
                floors = {
                    {label = locale('hospital'), coords = vec4(331.7536, -595.5214, 43.2840, 69.4922)},
                    {label = locale('garage'), coords = vec4(339.9623, -584.7045, 28.7968, 70.3155)},
                }
            }
        }
    }
}

---@class Config.Beds
---@field enabled boolean [enable beds feature?]
---@field models table<string | number, {offset: vec3, rot: vec3, detach?: vec3}> [list of bed models with their offset and rotation]
---@field detach? vec3 [optional detach position of player from bed, if not set, player will be detached on default offset vec3(0.0, -1.0, 0.0)]
Config.Beds = {
    enabled = true,
    models = {
        [`kiiya_pillbox_prop_bed_3`] = {
            offset = vec3(0.0, 0.0, 1.75),
            rot = vec3(-0.05, 0.0, 90.0)
        },
        [`fm_hsp_med_bed_02`] = {
            offset = vec3(0.0, 0.0, 1.25),
            rot = vec3(0.0, 0.0, 270.0)
        },
        [`fm_hsp_med_bed_01`] = {
            offset = vec3(0.0, 0.0, 1.25),
            rot = vec3(0.0, 0.0, 90.0)
        },
        [`wx_hospital_bed`] = {
            offset = vec3(-0.2, 0.0, 1.825),
            rot = vec3(0.0, 0.0, 180.0),
            detach = vec3(0.0, -1.65, 0.0)
        },
        [`promt_hospital_sandy_bed2`] = {
            offset = vec3(-0.2, 0.0, 1.825),
            rot = vec3(0.0, 0.0, 180.0),
            detach = vec3(0.0, -1.65, 0.0)
        },
        [`v_med_bed1`] = {
            offset = vec3(-0.2, 0.0, 1.35),
            rot = vec3(0.0, 0.0, 180.0),
            detach = vec3(0.0, -1.65, 0.0)
        },
    },
    anims = {
        {dict = 'missfinale_c1@', clip = 'lying_dead_player0', flag = 1}
    }
}

---@class Config.Outfits
---@field enabled: boolean [enable outfits feature?]
---@field access table<{[jobName]: grade}> [which jobs and grades are allowed to create outfits]
Config.Outfits = {
    enabled = true,
    access = {
        ['ambulance'] = 0
    }
}
```

</details>
