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