Skip to main content
Everything lives in config.lua. Edit, then restart nex_crutchsystem.

Crutch prop & use mechanics

Config.crutchModel = `v_med_crutch01`
Config.clipSet     = 'move_lester_CaneUp'

-- Use count before the item breaks and is removed from inventory.
Config.TimeUsedBeforeDelete = 5

-- Inventory item name (ox_inventory). Set to false to disable the item-use path
-- (auto-force from EMS still works without an item if ForceGiveItem = false).
Config.CrutchItem = 'crutch'

Config.pickupAnim = {
    dict = 'pickup_object',
    name = 'pickup_low',
}

Force lock

When EMS prescribes a crutch (or an ambulance job calls ForceCrutch), the patient is locked into the crutch for ForceDuration seconds. During the lock they can’t unequip the crutch manually.
Config.ForceDuration   = 10 * 60   -- seconds. Set to 0 to allow immediate manual unequip.
Config.ForceGiveItem   = false     -- also place a `crutch` item in the inventory if missing
Config.ForceItemAmount = 1
The patient HUD shows the remaining lock time when Config.UI.PatientHUD = true.

EMS permissions

Config.AllowedJobs = {
    ['ambulance'] = true,
    ['ems']       = true,
    ['doctor']    = true,
    ['ems_chief'] = true,
    ['medic']     = true,
    ['paramedic'] = true,
}

Config.GiveDistance   = 5.0   -- metres between EMS and target
Config.RemoveDistance = 5.0
The bridge only reads playerData.job.name, so any ambulance resource that sets a job name in this list works without further wiring.

Hospital medic NPC

Config.NPCModel      = 's_m_m_doctor_01'
Config.SpawnDistance = 60.0           -- player must be within this radius for the NPC to spawn

Config.Interaction = 'target'         -- 'target' or 'textui'
Config.TextUI = {
    distance = 2.0,
    label    = '[E] Remove Crutch',
    key      = 38,                    -- control id 38 = E
    icon     = 'crutch',              -- font-awesome icon (no 'fa-' prefix)
    position = 'right-center',        -- 'right-center' | 'left-center' | 'top-center' | 'bottom-center'
}

Config.ChargeMoney  = true
Config.RemovalPrice = 2500
Config.MoneyAccount = 'cash'          -- 'cash' or 'bank'

Config.Animation = {
    dict     = 'mini@repair',
    anim     = 'fixing_a_ped',
    duration = 3000,                   -- ms
}
Set Config.ChargeMoney = false to make the NPC remove crutches for free. Config.MoneyAccount controls which wallet is debited on every supported framework.

Medic locations

Config.MedicLocations = {
    {
        name   = 'Pillbox Medical Center',
        coords = vector4(296.27, -591.97, 43.27, 73.70),
        radius = 50.0,
        blip   = {
            enabled = true,
            sprite  = 61,
            color   = 2,
            scale   = 0.8,
            label   = 'Crutch Doctor',
        },
    },
}
Add as many entries as you want — one NPC and one blip spawn per location. The NPC despawns when the player leaves radius and respawns on re-entry.

Legacy crutch resources

When the hospital NPC successfully removes a crutch, removal hooks for legacy crutch resources also fire. Lets you migrate from wasabi_crutch, ak47_crutch, or ak47_qb_crutch without leaving players stuck.
Config.CrutchResources = {
    { resource = 'wasabi_crutch',  export = 'RemoveCrutch' },
    { resource = 'ak47_crutch',    event  = 'ak47_crutch:remove' },
    { resource = 'ak47_qb_crutch', event  = 'ak47_qb_crutch:remove' },
}
Each entry must have a resource plus either:
  • eventTriggerServerEvent(event, serverId)
  • exportexports[resource]:Export(..., serverId) on the client
Empty the table if you don’t want this. The internal nex_crutchsystem crutch is always removed regardless.

UI

Config.UI = {
    Enabled     = true,                -- master switch; if false, falls back to ox_lib menus / progressBar / notifications
    MedicDialog = true,                -- hospital NPC interaction
    EmsMenu     = true,                -- EMS third-eye give / remove
    PatientHUD  = true,                -- forced-crutch HUD
    AdminPanel  = true,                -- /crutchadmin panel
    Theme       = 'monochrome',        -- visual theme key

    -- Patient HUD anchor.
    HUDPosition = 'right',             -- 'top' | 'right' | 'bottom' | 'left' | any corner
}
Each panel can be toggled independently. Turning off MedicDialog, for example, swaps the React medic flow for an ox_lib progressBar and standard notifications — useful if you’ve built your own HUD style.

Notifications

Config.Notifications = {
    success        = 'Crutch removed successfully!',
    notEnoughMoney = 'You need $%s to remove the crutch!',
    cancelled      = 'Crutch removal cancelled.',
}
For the rest of the strings (block messages, EMS prompts, broken / use-count messages), edit locales/en.lua — or copy it to a new locale file and translate.

Commands

Config.Commands = {
    add    = 'addcrutch',     -- /addcrutch <id> [seconds]   (group.admin)
    remove = 'removecrutch',  -- /removecrutch <id>          (group.admin)
    admin  = 'crutchadmin',   -- /crutchadmin                (opens React admin panel)
}
Set any value to false or '' to skip registering that command entirely. See Commands for the full reference.