# Configuration

```lua
Config = {}

Config.framework = {
    name = 'auto',                       -- Only esx or qb or auto. If auto, it will detect the framework automatically.
    useOxNotify = true,                  -- Use ox_lib instead of ESX.ShowNotification or QBCore.Functions.Notify
    debug = true,                        -- Debug mode (only developers)
    minigameScriptName = "rm_minigames"  -- Minigame script name for rainmad minigames
}

Config.general = {
    ropeCheckInterval = 15, -- seconds
}

Config.rappel = {
    itemName = "rappel",                -- Item name for rappel.
    shouldRemoveItem = true,            -- If true, item will be removed after use.
    groundPos = 5.0,                    -- Ground position.
    syncInterval = 500,                 -- Sync interval in ms. !!! (Values ​​lower than 500ms may cause performance issues.) !!!
    actionKeys = {
        rappelDownKey = 8,          -- Key to rappel down.
        rappelDownFasterKey = 21,   -- Key to rappel down faster.
        rappelJumpKey = 22,         -- Key to jump off the rappel.
    }
}

Config.zipline = {
    itemName = "zipline",               -- Item name for zipline.
    shouldRemoveItem = false,           -- If true, item will be removed after use.
    placementDistance = 50.0,           -- Maximum distance between player.
    actionKeys = {
        placeKey = 38,                  -- Key to place zipline.
        cancelKey = 47,                 -- Key to cancel zipline.
        destroyKey = 47,                -- Key to destroy zipline.
        useKey = 38,                    -- Key to use zipline.
    }
}

Config.grappel = {
    items = {
        ["grappel_gun_black"] = {
            shouldRemoveItem = true,        -- If true, item will be removed after use.
            tintIndex = 0,                  -- Tint index for the grappel gun.
            grappleRange = 100.0,               -- Maximum grappel range.
        },
        ["grappel_gun_green"] = {
            shouldRemoveItem = true,        -- If true, item will be removed after use.
            tintIndex = 13,                  -- Tint index for the grappel gun.
            grappleRange = 100.0,               -- Maximum grappel range.
        },
        ["grappel_gun_gold"] = {
            shouldRemoveItem = true,        -- If true, item will be removed after use.
            tintIndex = 2,                  -- Tint index for the grappel gun.
            grappleRange = 100.0,               -- Maximum grappel range.
        },
        ["grappel_gun_pink"] = {
            shouldRemoveItem = true,        -- If true, item will be removed after use.
            tintIndex = 3,                  -- Tint index for the grappel gun.
            grappleRange = 100.0,               -- Maximum grappel range.
        },
        ["grappel_gun_army"] = {
            shouldRemoveItem = true,        -- If true, item will be removed after use.
            tintIndex = 4,                  -- Tint index for the grappel gun.
            grappleRange = 100.0,               -- Maximum grappel range.
        },
        ["grappel_gun_police"] = {
            shouldRemoveItem = true,        -- If true, item will be removed after use.
            tintIndex = 5,                  -- Tint index for the grappel gun.
            grappleRange = 100.0,               -- Maximum grappel range.
        },
        ["grappel_gun_orange"] = {
            shouldRemoveItem = true,        -- If true, item will be removed after use.
            tintIndex = 6,                  -- Tint index for the grappel gun.
            grappleRange = 100.0,               -- Maximum grappel range.
        },
        ["grappel_gun_red"] = {
            shouldRemoveItem = true,        -- If true, item will be removed after use.
            tintIndex = 11,                  -- Tint index for the grappel gun.
            grappleRange = 100.0,               -- Maximum grappel range.
        },
        ["grappel_gun_blue"] = {
            shouldRemoveItem = true,        -- If true, item will be removed after use.
            tintIndex = 12,                  -- Tint index for the grappel gun.
            grappleRange = 100.0,               -- Maximum grappel range.
        },
    },
    actionKeys = {
        useKey = 38,                    -- Key to use grappel gun.
        cancelKey = 38,                 -- Key to cancel grappel gun.
    },
}

Config.hook = {
    itemName = "hooked_rope",             -- Item name for hook rope.
    shouldRemoveItem = true,            -- If true, item will be removed after use.
    hookRange = 15.0,                   -- Maximum hook range.
    giveItemAfterDetach = true,         -- If true, item will be given back after detach.
    ropeBreakable = true,               -- If true, rope can be broken.
    ropeBreakDistance = 12.0,           -- Distance to break the rope.
    breakFactor = 1.2,                  -- Break factor. (breakDistance * breakFactor) -> max distance to break the rope.-
    breakTolerance = 3,                 -- Break tolerance.
    actionKeys = {
        useKey = 38,                    -- Key to use hook rope.
        throwKey = 74,                  -- Key to throw hook rope.
        cancelKey = 47,                 -- Key to cancel hook rope.
        deattachKey = 38,              -- Key to deattach hook rope.
    },
}

Config.lasso = {
    -- none | default | typingGame | timedLockpick | timedAction | quickTimeEvent | combinationLock | buttonMashing | angledLockpick | fingerPrint | hackerMinigame | safeCrack
    minigame = "default",
    itemName = "lasso",                 -- Item name for lasso.
    shouldRemoveItem = true,            -- If true, item will be removed after use.
    lassoRange = 10.0,                  -- Maximum lasso range.
    giveItemAfterDetach = true,         -- If true, item will be given back after detach.
    actionKeys = {
        useKey = 38,                    -- Key to use lasso.
        throwKey = 74,                  -- Key to throw lasso.
        cancelKey = 47,                 -- Key to cancel lasso.
        tackleKey = 19,                 -- Key to tackle player with lasso.
        deattachKey = 38,              -- Key to deattach lasso.
    },
}

Strings = {
    -- general --
    ["place_object_label"] = "Placing Object",
    ["remove_object_label"] = "Removing Object",
    ["dont_have_item"] = "You dont have %s",
    
    -- zipline --
    ["zipline_place_action"] = "[E] - Place Post  \n[G] - Cancel",
    ["zipline_using_action"] = "[E] - Stop Using",
    ["zipline_use_action"] = "[E] - Use Zipline",
    ["zipline_remove"] = "[G] - Remove Zipline",

    -- grappel --
    ["grappel_use_action"] = "[E] - Use Grappel Gun",
    ["grappel_using_action"] = "[E] - Stop Using",
    ["grappel_range_too_far"] = "You are too far away from the target.",
    ["grappel_cant_use_in_vehicle"] = "You can't use grappel gun in vehicle.",

    -- hook --
    ["hook_use_action"] = "[E] - Attach Hook  \n[H] - Throw Hook  \n[G] - Cancel",
    ["hook_not_found_entity"] = "There is no nearby vehicle or object to tie the rope to.",
    ["hook_deattach_action"] = "[E] - Deattach Hook",
    ["hook_rope_too_long"] = "Rope appears too tight, which could cause it to break.",

    -- rappel --
    ["rappel_progress"] = "Rappeling",
    ["rappel_use_action"] = "[S] -  Rappel Down  \n[LSHIFT + S] - Rappel Down Faster  \n[SPACE] - Jump Off",


    -- lasso --
    ["lasso_action"] = "[E] - Attach Lasso  \n[H] - Throw Lasso  \n[LALT] - Ktackle  \n[G] - Cancel",
    ["lasso_deattach_action"] = "[E] - Deattach Lasso",
    ["lasso_not_found_entity"] = "There is no one you can tie a lasso to.",
    ["lasso_attach_failed"] = "Failed to attach lasso.",
    ["lasso_minigame_success"] = "You successfully broke free from the lasso",
    ["lasso_minigame_failed"] = "You failed to escape the lasso",
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.rainmad.com/resources/ropes-v-g-rappel-lasso-zipline-and-more/configuration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
