Config
Complete reference for the editable Vehicle Keys configuration.
The editable configuration is shared/unlocked/config.lua. Key names registered through FiveM keymapping can be changed by each player after the resource starts.
#Config.Settings
All Vehicle Keys settings.
#debug
Enables resource debug output. Keep this disabled during normal production use.
Example:luadebug = false
#keys
Settings for physical keys, identifier access, replacement limits, failed inventory grants, and item labels.
Example:luakeys = { useIdentifierAccess = false, item = "vehicle_keys", maxKeys = 0, fullInventoryFallback = { enabled = true, command = "getkeys", expiresAfter = 60, }, itemLabel = { base = "{MODEL_LABEL} - {PLATE}", allowCustom = true, maxCharacters = 50, command = "keylabel", }, }
#keys.useIdentifierAccess
Uses physical inventory keys when
false. Whentrue, permanent access is persisted against the character identifier instead. See Access Modes.
Example:luauseIdentifierAccess = false
#keys.item
Inventory item used for physical keys.
Example:luaitem = "vehicle_keys"
#keys.maxKeys
Maximum replacement keys when an integration requests limit enforcement.
0is unlimited. Automatic and temporary grants do not consume this limit.
Example:luamaxKeys = 0
#keys.fullInventoryFallback
Settings for recovering automatic key grants that failed because the player's inventory was full. This is used only in physical item mode.
Example:luafullInventoryFallback = { enabled = true, command = "getkeys", expiresAfter = 60, }
#keys.fullInventoryFallback.enabled
Registers the pending-key recovery command in physical item mode.
Example:luaenabled = true
#keys.fullInventoryFallback.command
Command used to retry automatic grants that failed because the inventory was full.
Example:luacommand = "getkeys"
#keys.fullInventoryFallback.expiresAfter
Seconds a pending key grant remains claimable.
Example:luaexpiresAfter = 60
#keys.itemLabel
Settings for the physical key item label and player-defined label templates.
Example:luaitemLabel = { base = "{MODEL_LABEL} - {PLATE}", allowCustom = true, maxCharacters = 50, command = "keylabel", }
#keys.itemLabel.base
Default physical key label. Supports
{ITEM_LABEL},{PLATE},{VIN}, and{MODEL_LABEL}.
Example:luabase = "{MODEL_LABEL} - {PLATE}"
#keys.itemLabel.allowCustom
Lets players save their own physical key-label template.
Example:luaallowCustom = true
#keys.itemLabel.maxCharacters
Maximum length of a custom key-label template.
Example:luamaxCharacters = 50
#keys.itemLabel.command
Command that opens the custom key-label form.
Example:luacommand = "keylabel"
#vehicleActions
Settings for the key fob, vehicle list, lock shortcut, action range, menu provider, and sounds.
Example:luavehicleActions = { maxDistance = 100.0, menuProvider = "zyke_garages", menuKey = "G", menuHoldDuration = 150, closeKeyFob = { mouse = "MOUSE_RIGHT", keyboard = "ESCAPE", }, lockClosest = "L", ui = { vehicleList = true, keyFob = true, reachIndicator = true, distance = true, engine = true, lock = true, gps = true, }, sounds = { keyBeep = {name = "carkey_beep.wav", volume = 0.025, distance = 2.0}, lock = {name = "vehicle_lock.wav", volume = 0.025, distance = 8.0}, unlock = {name = "vehicle_unlock.wav", volume = 0.025, distance = 8.0}, }, }
#vehicleActions.maxDistance
Maximum server-authorized distance from a vehicle action. Set
-1to disable the distance limit.
Example:luamaxDistance = 100.0
#vehicleActions.menuProvider
Optional resource that adds persistent rows and provider actions to the vehicle list.
Example:luamenuProvider = "zyke_garages"
#vehicleActions.menuKey
Keymapping default used to open vehicle actions. Tap it for the closest accessible vehicle's key fob or hold it for the vehicle list.
Example:luamenuKey = "G"
#vehicleActions.menuHoldDuration
Milliseconds the menu key must be held before opening the vehicle list.
Example:luamenuHoldDuration = 150
#vehicleActions.closeKeyFob
Mouse and keyboard keymapping defaults used to close the focused key fob.
Example:luacloseKeyFob = { mouse = "MOUSE_RIGHT", keyboard = "ESCAPE", }
#vehicleActions.closeKeyFob.mouse
Mouse key used to close the key fob.
Example:luamouse = "MOUSE_RIGHT"
#vehicleActions.closeKeyFob.keyboard
Keyboard key used to close the key fob.
Example:luakeyboard = "ESCAPE"
#vehicleActions.lockClosest
Keymapping default used to lock or unlock the closest accessible vehicle. Set a non-string value to avoid registering this keybind.
Example:lualockClosest = "L"
#vehicleActions.ui
Controls which vehicle-action interfaces and states are shown.
Example:luaui = { vehicleList = true, keyFob = true, reachIndicator = true, distance = true, engine = true, lock = true, gps = true, }
#vehicleActions.ui.vehicleList
Enables the held-key vehicle list.
Example:luavehicleList = true
#vehicleActions.ui.keyFob
Enables the focused key-fob interface.
Example:luakeyFob = true
#vehicleActions.ui.reachIndicator
Displays whether a listed vehicle is inside the authorized action range.
Example:luareachIndicator = true
#vehicleActions.ui.distance
Displays the live distance to each listed vehicle.
Example:luadistance = true
#vehicleActions.ui.engine
Displays engine state and engine controls.
Example:luaengine = true
#vehicleActions.ui.lock
Displays lock state and lock controls.
Example:lualock = true
#vehicleActions.ui.gps
Displays provider GPS state and controls when the configured menu provider supports them.
Example:luagps = true
#vehicleActions.sounds
Configured key-fob, lock, and unlock sounds. Each sound accepts
name,volume, anddistance. Sounds are used only whenzyke_soundsis running.
Example:luasounds = { keyBeep = {name = "carkey_beep.wav", volume = 0.025, distance = 2.0}, lock = {name = "vehicle_lock.wav", volume = 0.025, distance = 8.0}, unlock = {name = "vehicle_unlock.wav", volume = 0.025, distance = 8.0}, }
#vehicleActions.sounds.keyBeep
Player key-fob click sound.
Example:luakeyBeep = {name = "carkey_beep.wav", volume = 0.025, distance = 2.0}
#vehicleActions.sounds.lock
Spatial vehicle lock sound.
Example:lualock = {name = "vehicle_lock.wav", volume = 0.025, distance = 8.0}
#vehicleActions.sounds.unlock
Spatial vehicle unlock sound.
Example:luaunlock = {name = "vehicle_unlock.wav", volume = 0.025, distance = 8.0}
#vehicleActions.sounds[sound].name
Sound file played through
zyke_sounds.
Example:luaname = "vehicle_lock.wav"
#vehicleActions.sounds[sound].volume
Playback volume for the configured sound.
Example:luavolume = 0.025
#vehicleActions.sounds[sound].distance
Maximum spatial playback distance for the configured sound.
Example:luadistance = 8.0
#vehicleEngine
Settings for starting, stopping, and leaving vehicles. Player-specific exit and automatic-start defaults are configured through
personalSettings.settings.
Example:luavehicleEngine = { startKey = "W", stopKeyEnabled = false, stopKey = "O", exitKey = "F", blockExitWhenLocked = true, }
#vehicleEngine.startKey
Keymapping default used to start the engine while driving.
Example:luastartKey = "W"
#vehicleEngine.stopKeyEnabled
Registers a dedicated engine-stop keybind.
Example:luastopKeyEnabled = false
#vehicleEngine.stopKey
Keymapping default used to stop the engine when the dedicated stop key is enabled.
Example:luastopKey = "O"
#vehicleEngine.exitKey
Vehicle exit key monitored for engine-state behavior.
Example:luaexitKey = "F"
#vehicleEngine.blockExitWhenLocked
Prevents players from leaving a vehicle while its doors are locked.
Example:luablockExitWhenLocked = true
#personalSettings
Settings for the player-configurable engine-start and vehicle-exit menu. Changes save immediately to the configured local KVP.
Example:luapersonalSettings = { command = "keysettings", kvp = "zyke_vehiclekeys:personal_settings", settings = { { name = "holdExitToKeepState", values = {false, true}, default = true, force = false, }, { name = "autoStartEngine", values = {false, true}, default = true, force = false, }, }, }
#personalSettings.command
Command that opens the personal settings menu.
Example:luacommand = "keysettings"
#personalSettings.kvp
Local KVP used to save player preferences. Changing this value makes existing selections unavailable under the new key.
Example:luakvp = "zyke_vehiclekeys:personal_settings"
#personalSettings.settings
Ordered personal setting definitions displayed in the menu. Entry order controls card order, and each
valuesarray controls button order. Keep both supported setting names. See Personal Settings for the complete player behavior.
Example:luasettings = { { name = "holdExitToKeepState", values = {false, true}, default = true, force = false, }, { name = "autoStartEngine", values = {false, true}, default = true, force = false, }, }
#personalSettings.settings[x]
One menu definition containing the internal name, allowed values, default, and forced state.
Example:luasettings[1] = { name = "holdExitToKeepState", values = {false, true}, default = true, force = false, }
#personalSettings.settings[x].name
Internal setting name used by Vehicle Keys.
holdExitToKeepStatecontrols tap-and-hold exit behavior.autoStartEnginestarts an off engine when the player enters the driver's seat and engine use is allowed.
Example:luaname = "holdExitToKeepState"
#personalSettings.settings[x].values
Choices displayed from left to right. Both current settings require
{false, true}.
Example:luavalues = {false, true}
#personalSettings.settings[x].default
Initial value when the player has no valid saved selection. The default must be present in
values.
Example:luadefault = true
#personalSettings.settings[x].force
Locks the setting to its configured default. The player's saved selection remains stored and becomes active again when the lock is removed.
Example:luaforce = false
#npcVehicles
Settings for NPC vehicle locks, searches, temporary keys, and gunpoint robbery.
Example:luanpcVehicles = { lock = 100, requireKey = true, allowSearch = true, allowRobbery = true, robbery = { gunRob = true, pickupModels = {"prop_paper_bag_01"}, pickupLifetime = 300, }, tempKeys = { enabled = true, chanceForSearch = 100, automaticSearch = false, automaticGive = false, searchKey = "U", searchDuration = 3, skillCheck = true, }, }
#npcVehicles.lock
Percentage chance an eligible NPC vehicle starts locked.
Example:lualock = 100
#npcVehicles.requireKey
Requires key access to use NPC vehicles. Disabling this bypasses the search prompt and key requirement.
Example:luarequireKey = true
#npcVehicles.allowSearch
Master switch for searching eligible NPC vehicles.
Example:luaallowSearch = true
#npcVehicles.allowRobbery
Master switch for robbing NPC drivers.
Example:luaallowRobbery = true
#npcVehicles.robbery
Settings for robbing NPC drivers and collecting dropped keys.
Example:luarobbery = { gunRob = true, pickupModels = {"prop_paper_bag_01"}, pickupLifetime = 300, }
#npcVehicles.robbery.gunRob
Allows gunpoint robbery of eligible NPC drivers.
Example:luagunRob = true
#npcVehicles.robbery.pickupModels
Prop models used for dropped key bags.
Example:luapickupModels = {"prop_paper_bag_01"}
#npcVehicles.robbery.pickupLifetime
Seconds a dropped key bag remains available.
Example:luapickupLifetime = 300
#npcVehicles.tempKeys
Settings for searching NPC vehicles and granting temporary access.
Example:luatempKeys = { enabled = true, chanceForSearch = 100, automaticSearch = false, automaticGive = false, searchKey = "U", searchDuration = 3, skillCheck = true, }
#npcVehicles.tempKeys.enabled
Enables the temporary-key search flow.
Example:luaenabled = true
#npcVehicles.tempKeys.chanceForSearch
Percentage chance a completed search finds keys.
Example:luachanceForSearch = 100
#npcVehicles.tempKeys.automaticSearch
Starts the configured search automatically when the player enters an eligible vehicle.
Example:luaautomaticSearch = false
#npcVehicles.tempKeys.automaticGive
Skips the search challenge and grants access automatically when the vehicle is eligible.
Example:luaautomaticGive = false
#npcVehicles.tempKeys.searchKey
Keymapping default used to search an NPC vehicle manually.
Example:luasearchKey = "U"
#npcVehicles.tempKeys.searchDuration
Search duration in seconds.
Example:luasearchDuration = 3
#npcVehicles.tempKeys.skillCheck
Runs the configured
zyke_libskill check during vehicle searches.
Example:luaskillCheck = true
#pedWitnesses
Settings used to detect pedestrians who witnessed theft and robbery stages. Detection returns witness data for hooks and events; it does not create dispatch alerts by itself.
Example:luapedWitnesses = { enabled = true, debug = false, maxDistance = 75.0, fieldOfView = 60.0, vehicleFieldOfView = 120.0, blacklistedModels = { [joaat("g_m_importexport_01")] = true, }, }
#pedWitnesses.enabled
Enables witness detection for theft and robbery integrations.
Example:luaenabled = true
#pedWitnesses.debug
Enables witness-specific diagnostics.
Example:luadebug = false
#pedWitnesses.maxDistance
Default maximum witness search distance. Individual events can supply a smaller distance.
Example:luamaxDistance = 75.0
#pedWitnesses.fieldOfView
Field of view in degrees for pedestrians on foot.
Example:luafieldOfView = 60.0
#pedWitnesses.vehicleFieldOfView
Field of view in degrees for the vehicle-driver witness fallback.
Example:luavehicleFieldOfView = 120.0
#pedWitnesses.blacklistedModels
Hash or model-name map excluded from witness detection.
Example:luablacklistedModels = { [joaat("g_m_importexport_01")] = true, }
#lockpicking
Settings for lockpick items, restrictions, witness range, skill checks, progress duration, and item damage.
Example:lualockpicking = { enabled = true, witnessDistance = 15.0, itemUsageMode = "durability", blockInGarageSections = true, restrictedVehicles = { temp = false, personal = false, profession = true, }, timeToLockpick = 10, items = { veh_lockpick = { timeMultiplier = 1.2, durability = {success = 0, failure = 20}, breakChance = 25, failChance = 0, breakOnChanceFailure = false, }, veh_advancedlockpick = { timeMultiplier = 0.8, durability = {success = 0, failure = 10}, breakChance = 10, failChance = 0, breakOnChanceFailure = false, }, }, dict = "anim@gangops@facility@servers@", anim = "hotwire", skillCheck = {"easy", "medium", "hard"}, }
#lockpicking.enabled
Registers the configured lockpick items and flow.
Example:luaenabled = true
#lockpicking.witnessDistance
Maximum distance used for pedestrian witness checks when a lockpick attempt starts.
Example:luawitnessDistance = 15.0
#lockpicking.itemUsageMode
Controls how lockpick items are consumed.
"durability"removes configured durability,"breakOnFail"rolls break chance after failure, and"disabled"does not consume the item.
Example:luaitemUsageMode = "durability"
#lockpicking.blockInGarageSections
Makes the default client hook block lockpicking inside Zyke Garages sections.
Example:luablockInGarageSections = true
#lockpicking.restrictedVehicles
Vehicle categories blocked from lockpicking when their value is
true.
Example:luarestrictedVehicles = { temp = false, personal = false, profession = true, }
#lockpicking.restrictedVehicles.temp
Blocks temporary and NPC vehicles from lockpicking when enabled.
Example:luatemp = false
#lockpicking.restrictedVehicles.personal
Blocks player-owned personal vehicles from lockpicking when enabled.
Example:luapersonal = false
#lockpicking.restrictedVehicles.profession
Blocks profession vehicles from lockpicking when enabled.
Example:luaprofession = true
#lockpicking.timeToLockpick
Base lockpick duration in seconds before the configured item multiplier.
Example:luatimeToLockpick = 10
#lockpicking.items
Lockpick items and their duration, durability, break, and forced-failure settings.
Example:luaitems = { veh_lockpick = { timeMultiplier = 1.2, durability = {success = 0, failure = 20}, breakChance = 25, failChance = 0, breakOnChanceFailure = false, }, veh_advancedlockpick = { timeMultiplier = 0.8, durability = {success = 0, failure = 10}, breakChance = 10, failChance = 0, breakOnChanceFailure = false, }, }
#lockpicking.items[item]
Settings for one usable lockpick item.
Example:luaveh_lockpick = { timeMultiplier = 1.2, durability = {success = 0, failure = 20}, breakChance = 25, failChance = 0, breakOnChanceFailure = false, }
#lockpicking.items[item].timeMultiplier
Multiplies the base lockpick duration for this item.
Example:luatimeMultiplier = 1.2
#lockpicking.items[item].durability
Durability removed after a successful or failed attempt when
itemUsageModeis"durability".
Example:luadurability = {success = 0, failure = 20}
#lockpicking.items[item].durability.success
Durability removed after a successful attempt when
itemUsageModeis"durability".
Example:luasuccess = 0
#lockpicking.items[item].durability.failure
Durability removed after a failed attempt when
itemUsageModeis"durability".
Example:luafailure = 20
#lockpicking.items[item].breakChance
Percentage removal chance after failure when
itemUsageModeis"breakOnFail".
Example:luabreakChance = 25
#lockpicking.items[item].failChance
Percentage chance to turn an otherwise successful attempt into a failure.
Example:luafailChance = 0
#lockpicking.items[item].breakOnChanceFailure
Allows a forced chance failure to also roll item breakage in
"breakOnFail"mode.
Example:luabreakOnChanceFailure = false
#lockpicking.dict
Lockpick animation dictionary.
Example:luadict = "anim@gangops@facility@servers@"
#lockpicking.anim
Lockpick animation clip.
Example:luaanim = "hotwire"
#lockpicking.skillCheck
Runs each
zyke_libskill-check difficulty in order. Setfalseto disable the skill check.
Example:luaskillCheck = {"easy", "medium", "hard"}
#hotwiring
Settings for hotwire items, vehicle restrictions, animation, staged skill checks, failure penalties, and the optional button prompt.
Example:luahotwiring = { enabled = true, timeToHotwire = 15, restrictedVehicles = { temp = false, personal = false, profession = true, }, items = { hotwire_kit = {timeMultiplier = 1.2}, adv_hotwire_kit = {timeMultiplier = 0.8}, }, anim = {dict = "anim@gangops@facility@servers@", clip = "hotwire"}, skillCheck = {"easy", "medium", "hard"}, failurePenalty = { enabled = true, healthLoss = 10, }, buttonPress = { enabled = true, key = "H", timeMultiplier = 1.0, }, }
#hotwiring.enabled
Enables item and optional keybind hotwiring.
Example:luaenabled = true
#hotwiring.timeToHotwire
Base hotwire duration in seconds before the item or button multiplier.
Example:luatimeToHotwire = 15
#hotwiring.restrictedVehicles
Vehicle categories blocked from hotwiring when their value is
true.
Example:luarestrictedVehicles = { temp = false, personal = false, profession = true, }
#hotwiring.restrictedVehicles.temp
Blocks temporary and NPC vehicles from hotwiring when enabled.
Example:luatemp = false
#hotwiring.restrictedVehicles.personal
Blocks player-owned personal vehicles from hotwiring when enabled.
Example:luapersonal = false
#hotwiring.restrictedVehicles.profession
Blocks profession vehicles from hotwiring when enabled.
Example:luaprofession = true
#hotwiring.items
Hotwire items and their duration multipliers.
Example:luaitems = { hotwire_kit = {timeMultiplier = 1.2}, adv_hotwire_kit = {timeMultiplier = 0.8}, }
#hotwiring.items[item]
Settings for one usable hotwire item.
Example:luahotwire_kit = { timeMultiplier = 1.2, }
#hotwiring.items[item].timeMultiplier
Multiplies the base hotwire duration for this item.
Example:luatimeMultiplier = 1.2
#hotwiring.anim
Hotwire animation dictionary and clip.
Example:luaanim = {dict = "anim@gangops@facility@servers@", clip = "hotwire"}
#hotwiring.anim.dict
Hotwire animation dictionary.
Example:luadict = "anim@gangops@facility@servers@"
#hotwiring.anim.clip
Hotwire animation clip.
Example:luaclip = "hotwire"
#hotwiring.skillCheck
Runs each
zyke_libskill-check difficulty in order. Setfalseto disable the skill check.
Example:luaskillCheck = {"easy", "medium", "hard"}
#hotwiring.failurePenalty
Electrical failure effect applied when an attempt fails while the player remains inside the vehicle.
Example:luafailurePenalty = { enabled = true, healthLoss = 10, }
#hotwiring.failurePenalty.enabled
Enables the electrical visual, camera, particle, and health penalty after a failed attempt.
Example:luaenabled = true
#hotwiring.failurePenalty.healthLoss
Health removed by the enabled failure penalty.
Example:luahealthLoss = 10
#hotwiring.buttonPress
Settings for starting a hotwire attempt through a keybind instead of an inventory item.
Example:luabuttonPress = { enabled = true, key = "H", timeMultiplier = 1.0, }
#hotwiring.buttonPress.enabled
Registers the button-press hotwire prompt and keybind.
Example:luaenabled = true
#hotwiring.buttonPress.key
Keymapping default used to start button-press hotwiring.
Example:luakey = "H"
#hotwiring.buttonPress.timeMultiplier
Multiplies the base hotwire duration for button-press attempts.
Example:luatimeMultiplier = 1.0