> For the complete documentation index, see [llms.txt](https://docs.rainmad.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rainmad.com/resources/biker-melee-melee-weapons-on-bikes/configuration.md).

# Configuration

```lua
cfg = {}

---@type 'auto' | 'qb' | 'esx'
cfg.framework = 'auto'

---@type 'auto' | 'ox_inventory' | 'qs-inventory' | 'codem-inventory' | 'core_inventory' | 'tgiann-inventory' | 'origen_inventory' | 'one_inventory' | 'jpr-inventory' | 'qb-inventory' | 'ps-inventory'
cfg.inventory = 'auto'

---@type 'ox_lib' | 'qb' | 'esx' | 'okokNotify' | 'ps-ui'
cfg.notification = 'ox_lib'

-- Melee controls & tuning. Control IDs are GTA input indices (see the comments).
-- https://docs.fivem.net/docs/game-references/controls/
cfg.melee = {
    -- ── Attack keys (map naturally to LMB/RMB on keyboard and LT/RT on gamepad) ──
    keyboardLeftAttack  = 25,   -- INPUT_AIM     (RMB)
    keyboardRightAttack = 24,   -- INPUT_ATTACK  (LMB)

    -- ── Weapon select keys ──
    swapWeaponsKey      = 194,  -- INPUT_FRONTEND_RRIGHT (Backspace)
    nextWeaponControl   = 99,   -- INPUT_VEH_SELECT_NEXT_WEAPON ([)
    prevWeaponControl   = 100,  -- INPUT_VEH_SELECT_PREV_WEAPON (])

    -- ── Throw mode keys ──
    throwModeKey        = 47,   -- INPUT_DETONATE (G) — toggle throw mode
    throwReleaseKey     = 24,   -- INPUT_ATTACK (LMB) — release the throw

    -- ── Master on/off (lib.addKeybind key name; players can rebind in pause menu) ──
    toggleKey           = 'J',  -- toggles Biker Melee mode on/off (default on)

    -- ── Behaviour toggles ──
    onlyMeleeOnUnarmed  = false,
    ejectPedOffBike     = false,
    drawWeaponUI        = true,
    weaponUICenter      = true,
    weaponUIVanish      = true,
    swapBetweenGunsAndMelee = false,

    -- ── Physics / tuning ──
    kickForwardVelocity = 0.0,
    kickUpwardVelocity  = 0.0,
    vehicleDamage       = 0.0,
    throwSpeed          = 30.0,
    throwGravity        = 9.81,
    throwMaxSteps       = 35,
    throwTimeStep       = 0.05,
}

-- Melee weapons: inventory item key → in-hand prop + display name + type.
-- wpnType 'blade' deals more damage than 'blunt'.
cfg.meleeWeapons = {
    WEAPON_BAT         = { propModel = `w_me_bat`,          name = 'Bat',         wpnType = 'blunt' },
    WEAPON_CROWBAR     = { propModel = `w_me_crowbar`,      name = 'Crowbar',     wpnType = 'blade' },
    WEAPON_GOLFCLUB    = { propModel = `w_me_gclub`,        name = 'Golfclub',    wpnType = 'blunt' },
    WEAPON_HAMMER      = { propModel = `w_me_hammer`,       name = 'Hammer',      wpnType = 'blunt' },
    WEAPON_HATCHET     = { propModel = `prop_w_me_hatchet`, name = 'Hatchet',     wpnType = 'blade' },
    WEAPON_KNIFE       = { propModel = `w_me_knife_01`,     name = 'Knife',       wpnType = 'blade' },
    WEAPON_MACHETE     = { propModel = `w_me_machette_lr`,  name = 'Machete',     wpnType = 'blade' },
    WEAPON_NIGHTSTICK  = { propModel = `w_me_nightstick`,   name = 'Nightstick',  wpnType = 'blunt' },
    WEAPON_POOLCUE     = { propModel = `w_me_poolcue`,      name = 'Poolcue',     wpnType = 'blunt' },
    WEAPON_SWITCHBLADE = { propModel = `w_me_switchblade`,  name = 'Switchblade', wpnType = 'blade' },
    WEAPON_WRENCH      = { propModel = `w_me_wrench`,       name = 'Wrench',      wpnType = 'blunt' },
}

-- Order the script picks weapons in (first owned = first selected). Every key
-- here must exist in cfg.meleeWeapons above.
cfg.meleeItemPriority = {
    'WEAPON_BAT',
    'WEAPON_CROWBAR',
    'WEAPON_GOLFCLUB',
    'WEAPON_HAMMER',
    'WEAPON_HATCHET',
    'WEAPON_KNIFE',
    'WEAPON_MACHETE',
    'WEAPON_NIGHTSTICK',
    'WEAPON_POOLCUE',
    'WEAPON_SWITCHBLADE',
    'WEAPON_WRENCH',
}

```
