inside-scripts
Store
  • INFORMATION
    • inside-scripts
  • PAID SCRIPTS
    • 🔑 Vehicle Keys
      • Functions
      • Config
    • 🚗 Garage
      • Functions
      • Script Functionality Overview
      • Config
    • 🥦 Weed Laboratory
      • Config
    • 💊 Sell Drugs
      • Script Functionality Overview
      • Config
    • 🗯️ Dialog V1
      • Functions
      • Config
    • 🗯️ Dialog V2
      • Functions
      • Config
    • 📰 Interaction
      • Functions
      • Config
    • 🪧Notifications and Progress
      • Functions
      • Config
    • 🪛 Lock Picking
      • Config
  • FREE SCRIPTS
    • 🖥️ Bridge & Library
      • Compatibility
      • Usage & Installation
      • Functions
        • Bridge
          • Framework
            • Client
            • Server
          • Inventory
            • Server
          • Fuel
            • Client
          • Keys
            • Client
            • Server
          • Notification
            • Client
            • Server
          • Progress Bar
            • Client
          • Target
            • Client
        • Library
          • Callback
            • Client
            • Server
          • Entity
            • Client
            • Server
          • Blip
            • Client
          • Identifier
            • Server
          • Timezone
            • Server
          • Webhook
            • Server
          • Utility
            • Shared
Powered by GitBook
On this page
  1. PAID SCRIPTS
  2. 🔑 Vehicle Keys

Config

You can check out default config

cfg = {}

cfg.KeyBinds = { -- https://overextended.dev/ox_lib/Modules/AddKeybind/Client#ckeybind-class
    mode = {
        description = "Vehicle Keys Mode",
        defaultKey = "CAPITAL",
        defaultMapper = "KEYBOARD",
        secondaryKey = nil,
        secondaryMapper = nil,
    },
    toggleLock = {
        description = "Toggle Vehicle Lock In Nearest Vehicle",
        defaultKey = "L",
        defaultMapper = "KEYBOARD",
        secondaryKey = nil,
        secondaryMapper = nil,
    },
}

cfg.Mode = { -- Controls using [Scroll Up | Right Arrow], [Scroll Down | Left Arrow], [Left Mouse Button | Enter], [Right Mouse Button | Backspace]
    optionDuration = 5.0,
    showStatusWithoutKeys = false, -- true - without keys, we can see if the car is unlocked, locked, or stealable | false - we can only see this when we have keys
    disableControls = {80, 81, 25, 68},
    outline = {
        enabled = false,
        type = 0, -- 0, 1, 2
        notlocked = {r = 0, g = 240, b = 190, a = 100},
        locked = {r = 255, g = 66, b = 93, a = 100},
        nokeys = {r = 52, g = 206, b = 255, a = 100},
    },
}

cfg.Keys = {
    ["bike"] = {
        range = 2.0,
        sound = {
            src = "bike_lock.mp3",
            volume = 50,
        },
        settings = {
            lockpick = {
                enabled = true,
                keyBreakOnSucces = 10, -- 0 - 100%
                keyBreakOnFail = 25, -- 0 - 100%
                minigame = function()
                    return lib.skillCheck("easy")
                end,
            },
        }
    },
    ["universal"] = {
        range = 20.0,
        sound = {
            src = "universal_lock.mp3",
            volume = 75,
        },
        settings = {
            alarm = {
                enabled = true,
                activeOnFailLockPick = true,
                activeOnSuccessLockPick = false,
                activeOnSearchingKeys = false,
                activeOnHotwiring = true,
                handlePull = true,
                toggleLockDeactivate = true,
                min = 15000,
                max = 30000,
            },
            hotwiring = {
                successChance = 50, -- 0 - 100%
                maxAttempts = 2,
                min = 10000,
                max = 20000,
            },
            keysearching = {
                successChance = 25, -- 0 - 100%
                rewardChance = 50, -- 0 - 100%
                rewards = {
                    {item = true, name = "carlockpick", label = "Lock Pick", count = {min = 1, max = 2}},
                    {item = false, name = "cash", count = {min = 100, max = 1000}},
                },
                min = 10000,
                max = 20000,
            },
            lockpick = {
                enabled = true,
                keyBreakOnSucces = 25, -- 0 - 100%
                keyBreakOnFail = 50, -- 0 - 100%
                minigame = function()
                    return lib.skillCheck("medium")
                end,
            },
            anim_lock = function(veh)
                lightAnim(veh, 0.1, false, {
                    {duration = 100, gap = 40, fadeIn = false, fadeOut = false},
                    {duration = 100, gap = 40, fadeIn = false, fadeOut = false},
                    {duration = 100, gap = 40, fadeIn = false, fadeOut = false},
                    {duration = 1250, gap = 40, fadeIn = false, fadeOut = false},
                })

                hornAnim(veh, {
                    {duration = 100, gap = 0},
                })
            end,
            anim_unlock = function(veh)
                lightAnim(veh, 0.1, false, {
                    {duration = 100, gap = 40, fadeIn = false, fadeOut = false},
                    {duration = 100, gap = 40, fadeIn = false, fadeOut = false},
                    {duration = 100, gap = 40, fadeIn = false, fadeOut = false},
                    {duration = 100, gap = 40, fadeIn = false, fadeOut = false},
                    {duration = 1250, gap = 40, fadeIn = false, fadeOut = false},
                })
            end,
        }
    },
    ["old_car"] = {
        range = 15.0,
        sound = {
            src = "old_car_lock.mp3",
            volume = 40,
        },
        settings = {
            alarm = {
                enabled = true,
                activeOnFailLockPick = true,
                activeOnSuccessLockPick = false,
                activeOnSearchingKeys = false,
                activeOnHotwiring = true,
                handlePull = true,
                toggleLockDeactivate = true,
                min = 15000,
                max = 30000,
            },
            hotwiring = {
                successChance = 50, -- 0 - 100%
                maxAttempts = 2,
                min = 10000,
                max = 20000,
            },
            keysearching = {
                successChance = 25, -- 0 - 100%
                rewardChance = 50, -- 0 - 100%
                rewards = {
                    {item = true, name = "carlockpick", label = "Lock Pick", count = {min = 1, max = 2}},
                    {item = false, name = "cash", count = {min = 100, max = 1000}},
                },
                min = 10000,
                max = 20000,
            },
            lockpick = {
                enabled = true,
                keyBreakOnSucces = 25, -- 0 - 100%
                keyBreakOnFail = 50, -- 0 - 100%
                minigame = function()
                    return lib.skillCheck("medium")
                end,
            },
            anim_lock = function(veh)
                lightAnim(veh, 0.35, false, {
                    {duration = 100, gap = 50, fadeIn = false, fadeOut = false},
                    {duration = 100, gap = 50, fadeIn = false, fadeOut = false},
                    {duration = 2500, gap = 50, fadeIn = false, fadeOut = true},
                })

                hornAnim(veh, {
                    {duration = 200, gap = 25},
                    {duration = 200, gap = 25},
                })
            end,
            anim_unlock = function(veh)
                lightAnim(veh, 0.35, false, {
                    {duration = 100, gap = 50, fadeIn = false, fadeOut = false},
                    {duration = 100, gap = 50, fadeIn = false, fadeOut = false},
                    {duration = 100, gap = 50, fadeIn = false, fadeOut = false},
                    {duration = 2500, gap = 50, fadeIn = false, fadeOut = true},
                })
            end,
        }
    },
    ["new_car"] = {
        range = 30.0,
        sound = {
            src = "new_car_lock.mp3",
            volume = 30,
        },
        settings = {
            alarm = {
                enabled = true,
                activeOnFailLockPick = true,
                activeOnSuccessLockPick = true,
                activeOnSearchingKeys = true,
                activeOnHotwiring = true,
                handlePull = true,
                toggleLockDeactivate = true,
                min = 30000,
                max = 60000,
            },
            hotwiring = {
                successChance = 25, -- 0 - 100%
                maxAttempts = 4,
                min = 10000,
                max = 20000,
            },
            keysearching = {
                successChance = 10, -- 0 - 100%
                rewardChance = 75, -- 0 - 100%
                rewards = {
                    {item = true, name = "carlockpick", label = "Lock Pick", count = {min = 1, max = 2}},
                    {item = false, name = "cash", count = {min = 100, max = 1000}},
                },
                min = 10000,
                max = 20000,
            },
            lockpick = {
                enabled = true,
                keyBreakOnSucces = 50, -- 0 - 100%
                keyBreakOnFail = 75, -- 0 - 100%
                minigame = function()
                    return lib.skillCheck("hard")
                end,
            },
            anim_lock = function(veh)
                lightAnim(veh, 3.0, true, {
                    {duration = 125, gap = 25, fadeIn = true, fadeOut = false},
                    {duration = 125, gap = 25, fadeIn = true, fadeOut = false},
                    {duration = 5000, gap = 25, fadeIn = true, fadeOut = true},
                })

                local suspensionHeight = GetVehicleSuspensionHeight(veh)

                suspensionAnim(veh, {
                    {duration = 500, gap = 100, height = suspensionHeight + 0.015},
                    {duration = 500, gap = 100, height = suspensionHeight},
                    {duration = 500, gap = 100, height = suspensionHeight + 0.015},
                    {duration = 500, gap = 100, height = suspensionHeight},
                })

                hornAnim(veh, {
                    {duration = 200, gap = 0},
                })
            end,
            anim_unlock = function(veh)
                lightAnim(veh, 3.0, true, {
                    {duration = 125, gap = 25, fadeIn = true, fadeOut = false},
                    {duration = 125, gap = 25, fadeIn = true, fadeOut = false},
                    {duration = 125, gap = 25, fadeIn = true, fadeOut = false},
                    {duration = 2500, gap = 25, fadeIn = true, fadeOut = true},
                })

                local suspensionHeight = GetVehicleSuspensionHeight(veh)

                suspensionAnim(veh, {
                    {duration = 500, gap = 100, height = suspensionHeight + 0.015},
                    {duration = 500, gap = 100, height = suspensionHeight},
                    {duration = 500, gap = 100, height = suspensionHeight + 0.015},
                    {duration = 500, gap = 100, height = suspensionHeight},
                })
            end,
        }
    },
}

cfg.CarJack = {
    notLockedVehicleChance = 100, -- 0 - 100%
    withGun = {
        chanceToLeaveKeys = 50, -- 0 - 100%
        cooldownBeetwenJacking = 30000,
        fromVehicle = true,
        range = 20.0,
        weaponTypesChance = {
            [2685387236] = 0, -- MELEE | 0 - 100%
            [1548507267] = 0, -- THROWABLE | 0 - 100%
            [4257178988] = 0, -- MISC | 0 - 100%
            [416676503] = 50, -- HANDGUN | 0 - 100%
            [-957766203] = 75, -- SMG | 0 - 100%
            [860033945] = 90, -- SHOTGUN | 0 - 100%
            [970310034] = 90, -- RIFLE | 0 - 100%
            [1159398588] = 90, -- LMG | 0 - 100%
            [3082541095] = 90, -- SNIPER | 0 - 100%
            [2725924767] = 90, -- HEAVY | 0 - 100%
        },
        blockWeapons = {
            GetHashKey("WEAPON_UNARMED"),
        },
    },
    noGun = {
        chanceToLeaveKeys = 50, -- 0 - 100%
        attackChance = 50, -- 0 - 100%
        weaponChance = 50, -- 0 - 100%
        gangMemberAlwaysAttack = true,
        gangMemberAlwaysWeapon = true,
        pedWeaponAccuracy = { -- 0 - 100%
            min = 85,
            max = 100,
        },
        pedWeapons = {
            GetHashKey("WEAPON_SWITCHBLADE"),
            GetHashKey("WEAPON_BATTLEAXE"),
            GetHashKey("WEAPON_BAT"),
            GetHashKey("WEAPON_MACHETE"),
            GetHashKey("WEAPON_COMBATPISTOL"),
            GetHashKey("WEAPON_PISTOL50"),
            GetHashKey("WEAPON_HEAVYPISTOL"),
        },
    },
}

cfg.ConfiscateVehicleJobs = {"police", "ems"}

cfg.SharedVehicles = {
    [GetHashKey("police")] = "police",
    [GetHashKey("police2")] = "police",
    [GetHashKey("police3")] = "police",
    [GetHashKey("policeb")] = "police",
    [GetHashKey("policet")] = "police",
    [GetHashKey("ambulance")] = "ems",
}

cfg.Dispatch = {
    handlePull = function(ped, pedCoords, vehicle, vehicleCoords)

    end,
    searchingkeys = function(ped, pedCoords, vehicle, vehicleCoords)

    end,
    hotwiring = function(ped, pedCoords, vehicle, vehicleCoords)

    end,
    lockpick = function(ped, pedCoords, vehicle, vehicleCoords)

    end,
    carJackNoGun = function(ped, pedCoords, vehicle, vehicleCoords)

    end,
    carJackGun = function(ped, pedCoords, vehicle, vehicleCoords)

    end,
}

cfg.Custom = {
    [GetHashKey("comet6")] = {
        vehicle = {make = "Pfister", model = "Comet VI"}
    },
    [GetHashKey("bmx")] = {
        vehicle = {make = "Subrosa", model = "BMX", img = "images/subrosa.png"}
    },
    [GetHashKey("police")] = {
        vehicle = {make = "Vapid", img = "images/vapid.webp"}
    },
    [GetHashKey("issi2")] = {
        keys = "new_car"
    },
    [GetHashKey("brioso")] = {
        keys = "new_car"
    },
    [GetHashKey("felon2")] = {
        keys = "new_car"
    },
    [GetHashKey("zion")] = {
        keys = "new_car"
    },
    [GetHashKey("zion2")] = {
        keys = "new_car"
    },
    [GetHashKey("windsor2")] = {
        keys = "new_car"
    },
    [GetHashKey("oracle2")] = {
        keys = "new_car"
    },
    [GetHashKey("felon")] = {
        keys = "new_car"
    },
    [GetHashKey("windsor")] = {
        keys = "new_car"
    },
    [GetHashKey("sentinel")] = {
        keys = "new_car"
    },
    [GetHashKey("exemplar")] = {
        keys = "new_car"
    },
    [GetHashKey("jackal")] = {
        keys = "new_car"
    },
    [GetHashKey("sentinel2")] = {
        keys = "new_car"
    },
    [GetHashKey("policeb")] = {
        keys = "universal"
    },
    [GetHashKey("riot2")] = {
        keys = "universal"
    },
    [GetHashKey("pbus")] = {
        keys = "universal"
    },
    [GetHashKey("firetruk")] = {
        keys = "universal"
    },
    [GetHashKey("RIOT")] = {
        keys = "universal"
    },
    [GetHashKey("AMBULANCE")] = {
        keys = "universal"
    },
    [GetHashKey("guardian")] = {
        keys = "old_car"
    },
    [GetHashKey("BARRACKS3")] = {
        keys = "old_car"
    },
    [GetHashKey("BARRACKS")] = {
        keys = "old_car"
    },
    [GetHashKey("vetir")] = {
        keys = "old_car"
    },
    [GetHashKey("CRUSADER")] = {
        keys = "old_car"
    },
    [GetHashKey("Gauntlet")] = {
        keys = "new_car"
    },
    [GetHashKey("buffalo5")] = {
        keys = "new_car"
    },
    [GetHashKey("dominator9")] = {
        keys = "new_car"
    },
    [GetHashKey("dominator2")] = {
        keys = "new_car"
    },
    [GetHashKey("vigero3")] = {
        keys = "new_car"
    },
    [GetHashKey("Dominator")] = {
        keys = "new_car"
    },
    [GetHashKey("dominator5")] = {
        keys = "universal"
    },
    [GetHashKey("buffalo4")] = {
        keys = "new_car"
    },
    [GetHashKey("dominator3")] = {
        keys = "new_car"
    },
    [GetHashKey("gauntlet4")] = {
        keys = "new_car"
    },
    [GetHashKey("vigero2")] = {
        keys = "new_car"
    },
    [GetHashKey("ruiner4")] = {
        keys = "new_car"
    },
    [GetHashKey("dune2")] = {
        keys = "universal"
    },
    [GetHashKey("verus")] = {
        keys = "universal"
    },
    [GetHashKey("brutus2")] = {
        keys = "universal"
    },
    [GetHashKey("dune5")] = {
        keys = "universal"
    },
    [GetHashKey("dune")] = {
        keys = "universal"
    },
    [GetHashKey("rcbandito")] = {
        keys = "universal"
    },
    [GetHashKey("monster3")] = {
        keys = "universal"
    },
    [GetHashKey("dloader")] = {
        keys = "universal"
    },
    [GetHashKey("monster")] = {
        keys = "universal"
    },
    [GetHashKey("menacer")] = {
        keys = "universal"
    },
    [GetHashKey("marshall")] = {
        keys = "universal"
    },
    [GetHashKey("blazer3")] = {
        keys = "universal"
    },
    [GetHashKey("bruiser2")] = {
        keys = "universal"
    },
    [GetHashKey("dune4")] = {
        keys = "universal"
    },
    [GetHashKey("ratel")] = {
        keys = "universal"
    },
    [GetHashKey("blazer4")] = {
        keys = "universal"
    },
    [GetHashKey("brutus3")] = {
        keys = "universal"
    },
    [GetHashKey("dune3")] = {
        keys = "universal"
    },
    [GetHashKey("brutus")] = {
        keys = "universal"
    },
    [GetHashKey("BfInjection")] = {
        keys = "universal"
    },
    [GetHashKey("technical2")] = {
        keys = "universal"
    },
    [GetHashKey("technical")] = {
        keys = "universal"
    },
    [GetHashKey("bifta")] = {
        keys = "universal"
    },
    [GetHashKey("monster4")] = {
        keys = "universal"
    },
    [GetHashKey("blazer5")] = {
        keys = "universal"
    },
    [GetHashKey("bruiser")] = {
        keys = "universal"
    },
    [GetHashKey("bruiser3")] = {
        keys = "universal"
    },
    [GetHashKey("nightshark")] = {
        keys = "universal"
    },
    [GetHashKey("blazer")] = {
        keys = "universal"
    },
    [GetHashKey("blazer2")] = {
        keys = "universal"
    },
    [GetHashKey("outlaw")] = {
        keys = "universal"
    },
    [GetHashKey("monster5")] = {
        keys = "universal"
    },
    [GetHashKey("winky")] = {
        keys = "universal"
    },
    [GetHashKey("trophytruck")] = {
        keys = "universal"
    },
    [GetHashKey("technical3")] = {
        keys = "universal"
    },
    [GetHashKey("stafford")] = {
        keys = "old_car"
    },
    [GetHashKey("intruder")] = {
        keys = "old_car"
    },
    [GetHashKey("stratum")] = {
        keys = "old_car"
    },
    [GetHashKey("ingot")] = {
        keys = "old_car"
    },
    [GetHashKey("premier")] = {
        keys = "old_car"
    },
    [GetHashKey("emperor3")] = {
        keys = "old_car"
    },
    [GetHashKey("washington")] = {
        keys = "old_car"
    },
    [GetHashKey("fugitive")] = {
        keys = "old_car"
    },
    [GetHashKey("asea")] = {
        keys = "old_car"
    },
    [GetHashKey("romero")] = {
        keys = "old_car"
    },
    [GetHashKey("emperor")] = {
        keys = "old_car"
    },
    [GetHashKey("asea2")] = {
        keys = "old_car"
    },
    [GetHashKey("vorschlaghammer")] = {
        keys = "old_car"
    },
    [GetHashKey("glendale")] = {
        keys = "old_car"
    },
    [GetHashKey("asterope")] = {
        keys = "old_car"
    },
    [GetHashKey("glendale2")] = {
        keys = "old_car"
    },
    [GetHashKey("stanier")] = {
        keys = "old_car"
    },
    [GetHashKey("asterope2")] = {
        keys = "old_car"
    },
    [GetHashKey("warrener2")] = {
        keys = "old_car"
    },
    [GetHashKey("primo")] = {
        keys = "old_car"
    },
    [GetHashKey("tailgater")] = {
        keys = "old_car"
    },
    [GetHashKey("warrener")] = {
        keys = "old_car"
    },
    [GetHashKey("regina")] = {
        keys = "old_car"
    },
    [GetHashKey("primo2")] = {
        keys = "old_car"
    },
    [GetHashKey("Emperor2")] = {
        keys = "old_car"
    },
    [GetHashKey("limo2")] = {
        keys = "old_car"
    },
    [GetHashKey("coach")] = {
        keys = "old_car"
    },
    [GetHashKey("Trash")] = {
        keys = "old_car"
    },
    [GetHashKey("taxi")] = {
        keys = "old_car"
    },
    [GetHashKey("trash2")] = {
        keys = "old_car"
    },
    [GetHashKey("BUS")] = {
        keys = "old_car"
    },
    [GetHashKey("Airbus")] = {
        keys = "old_car"
    },
    [GetHashKey("veto2")] = {
        keys = "universal"
    },
    [GetHashKey("zr3803")] = {
        keys = "universal"
    },
    [GetHashKey("futo2")] = {
        keys = "old_car"
    },
    [GetHashKey("driftfuto")] = {
        keys = "old_car"
    },
    [GetHashKey("comet3")] = {
        keys = "old_car"
    },
    [GetHashKey("zr3802")] = {
        keys = "universal"
    },
    [GetHashKey("banshee")] = {
        keys = "old_car"
    },
    [GetHashKey("fusilade")] = {
        keys = "old_car"
    },
    [GetHashKey("zr350")] = {
        keys = "old_car"
    },
    [GetHashKey("blista2")] = {
        keys = "old_car"
    },
    [GetHashKey("buffalo2")] = {
        keys = "old_car"
    },
    [GetHashKey("driftsentinel")] = {
        keys = "old_car"
    },
    [GetHashKey("gb200")] = {
        keys = "old_car"
    },
    [GetHashKey("comet4")] = {
        keys = "old_car"
    },
    [GetHashKey("raptor")] = {
        keys = "universal"
    },
    [GetHashKey("penumbra")] = {
        keys = "old_car"
    },
    [GetHashKey("veto")] = {
        keys = "universal"
    },
    [GetHashKey("buffalo")] = {
        keys = "old_car"
    },
    [GetHashKey("drifttampa")] = {
        keys = "universal"
    },
    [GetHashKey("jester3")] = {
        keys = "old_car"
    },
    [GetHashKey("sentinel3")] = {
        keys = "old_car"
    },
    [GetHashKey("sultan")] = {
        keys = "old_car"
    },
    [GetHashKey("ruston")] = {
        keys = "universal"
    },
    [GetHashKey("driftremus")] = {
        keys = "old_car"
    },
    [GetHashKey("drifteuros")] = {
        keys = "old_car"
    },
    [GetHashKey("tropos")] = {
        keys = "old_car"
    },
    [GetHashKey("everon2")] = {
        keys = "universal"
    },
    [GetHashKey("omnis")] = {
        keys = "universal"
    },
    [GetHashKey("remus")] = {
        keys = "old_car"
    },
    [GetHashKey("futo")] = {
        keys = "old_car"
    },
    [GetHashKey("sultan2")] = {
        keys = "old_car"
    },
    [GetHashKey("comet2")] = {
        keys = "old_car"
    },
    [GetHashKey("calico")] = {
        keys = "old_car"
    },
    [GetHashKey("elegy")] = {
        keys = "old_car"
    },
    [GetHashKey("sentinel4")] = {
        keys = "old_car"
    },
    [GetHashKey("scramjet")] = {
        keys = "universal"
    },
    [GetHashKey("vigilante")] = {
        keys = "universal"
    },
    [GetHashKey("sultanrs")] = {
        keys = "old_car"
    },
    [GetHashKey("Seminole")] = {
        keys = "old_car"
    },
    [GetHashKey("cavalcade")] = {
        keys = "old_car"
    },
    [GetHashKey("mesa2")] = {
        keys = "old_car"
    },
    [GetHashKey("MESA")] = {
        keys = "old_car"
    },
    [GetHashKey("seminole2")] = {
        keys = "old_car"
    },
    [GetHashKey("BjXL")] = {
        keys = "old_car"
    },
    [GetHashKey("habanero")] = {
        keys = "old_car"
    },
    [GetHashKey("rocoto")] = {
        keys = "old_car"
    },
    [GetHashKey("contender")] = {
        keys = "old_car"
    },
    [GetHashKey("gresley")] = {
        keys = "old_car"
    },
    [GetHashKey("squaddie")] = {
        keys = "old_car"
    },
    [GetHashKey("radi")] = {
        keys = "old_car"
    },
    [GetHashKey("Baller")] = {
        keys = "old_car"
    },
    [GetHashKey("landstalker")] = {
        keys = "old_car"
    },
    [GetHashKey("GRANGER")] = {
        keys = "old_car"
    },
    [GetHashKey("dorado")] = {
        keys = "old_car"
    },
    [GetHashKey("cavalcade2")] = {
        keys = "old_car"
    },
    [GetHashKey("patriot")] = {
        keys = "old_car"
    },
    [GetHashKey("serrano")] = {
        keys = "old_car"
    },
    [GetHashKey("fq2")] = {
        keys = "old_car"
    },
    [GetHashKey("huntley")] = {
        keys = "old_car"
    },
    [GetHashKey("sadler2")] = {
        keys = "old_car"
    },
    [GetHashKey("Utillitruck3")] = {
        keys = "old_car"
    },
    [GetHashKey("Sadler")] = {
        keys = "old_car"
    },
    [GetHashKey("journey")] = {
        keys = "universal"
    },
    [GetHashKey("gburrito")] = {
        keys = "universal"
    },
    [GetHashKey("youga")] = {
        keys = "universal"
    },
    [GetHashKey("CAMPER")] = {
        keys = "universal"
    },
    [GetHashKey("boxville3")] = {
        keys = "universal"
    },
    [GetHashKey("boxville5")] = {
        keys = "universal"
    },
    [GetHashKey("gburrito2")] = {
        keys = "universal"
    },
}

cfg.VehicleKeysType = {
    [0] = "old_car", -- Compacts  
    [1] = "new_car", -- Sedans  
    [2] = "new_car", -- SUVs  
    [3] = "old_car", -- Coupes  
    [4] = "old_car", -- Muscle  
    [5] = "old_car", -- Sports Classics  
    [6] = "new_car", -- Sports  
    [7] = "new_car", -- Super  
    [8] = "universal", -- Motorcycles  
    [9] = "old_car", -- Off-road  
    [10] = "universal", -- Industrial  
    [11] = "universal", -- Utility  
    [12] = "old_car", -- Vans
    [13] = "bike", -- Cycles  
    [14] = "universal", -- Boats  
    [15] = "universal", -- Helicopters  
    [16] = "universal", -- Planes  
    [17] = "universal", -- Service  
    [18] = "old_car", -- Emergency  
    [19] = "universal", -- Military  
    [20] = "universal", -- Commercial  
    [21] = nil, -- Trains  
    [22] = "universal", -- Open Wheel
}

function getSetting(key, hash, value)
    return cfg.Custom[hash]?.settings?[value] or cfg.Keys[key]?.settings?[value]
end

function createBackwardExport(script, name, cb)
    AddEventHandler(("__cfx_export_%s_%s"):format(script, name), function(registerCb)
        registerCb(cb)
    end)
end

translations = json.decode(LoadResourceFile(GetCurrentResourceName(), "locales/" .. bridge.language .. ".json"))
translations = translations.lua

function translate(side, key)
    if translations and translations[side] and translations[side][key] then
        return translations[side][key]
    end

    return Lib.print("Something went wrong with translations", "error")
end

Last updated 2 months ago