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.
#General
| Setting | Default | Description |
|---|---|---|
debug | false | Enables resource debug output. Keep disabled during normal production use. |
#keys
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",
},
}
| Setting | Default | Description |
|---|---|---|
keys.useIdentifierAccess | false | false uses physical inventory keys; true persists direct character access. See Access Modes. |
keys.item | "vehicle_keys" | Inventory item used for physical keys. |
keys.maxKeys | 0 | Maximum replacement keys when an integration requests limit enforcement. 0 is unlimited. Automatic and temporary grants do not consume this limit. |
keys.fullInventoryFallback.enabled | true | Registers a pending-key recovery command in item mode. |
keys.fullInventoryFallback.command | "getkeys" | Command used to retry automatic grants that failed because the inventory was full. |
keys.fullInventoryFallback.expiresAfter | 60 | Seconds a pending grant remains claimable. |
keys.itemLabel.base | "{MODEL_LABEL} - {PLATE}" | Default physical key label. Supports {ITEM_LABEL}, {PLATE}, {VIN}, and {MODEL_LABEL}. |
keys.itemLabel.allowCustom | true | Lets players save their own label template. |
keys.itemLabel.maxCharacters | 50 | Maximum custom template length. |
keys.itemLabel.command | "keylabel" | Command that opens the custom label form. |
#vehicleActions
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},
},
}
| Setting | Default | Description |
|---|---|---|
vehicleActions.maxDistance | 100.0 | Maximum server-authorized distance from a vehicle action. Set -1 to disable the distance limit. |
vehicleActions.menuProvider | "zyke_garages" | Optional resource that adds persistent rows and provider actions to the vehicle list. |
vehicleActions.menuKey | "G" | Tap to open the closest vehicle's key fob; hold to open the vehicle list. |
vehicleActions.menuHoldDuration | 150 | Milliseconds the menu key must be held before opening the list. |
vehicleActions.closeKeyFob.mouse | "MOUSE_RIGHT" | Mouse key used to close the key fob. |
vehicleActions.closeKeyFob.keyboard | "ESCAPE" | Keyboard key used to close the key fob. |
vehicleActions.lockClosest | "L" | Key used to lock or unlock the closest accessible vehicle. Set a non-string value to avoid registering it. |
vehicleActions.ui.vehicleList | true | Enables the held-key vehicle list. |
vehicleActions.ui.keyFob | true | Enables the focused key-fob UI. |
vehicleActions.ui.reachIndicator | true | Displays whether a listed vehicle is in action range. |
vehicleActions.ui.distance | true | Displays live distance. |
vehicleActions.ui.engine | true | Displays engine state and control. |
vehicleActions.ui.lock | true | Displays lock state and control. |
vehicleActions.ui.gps | true | Displays provider GPS state and control when supported. |
vehicleActions.sounds.keyBeep | See example | Player key-fob click sound. |
vehicleActions.sounds.lock | See example | Spatial vehicle lock sound. |
vehicleActions.sounds.unlock | See example | Spatial vehicle unlock sound. |
Each sound accepts name, volume, and distance. Sounds are used only when zyke_sounds is running.
#vehicleEngine
| Setting | Default | Description |
|---|---|---|
vehicleEngine.startKey | "W" | Key used to start the engine while driving. |
vehicleEngine.stopKeyEnabled | false | Registers a dedicated engine-stop keybind. |
vehicleEngine.stopKey | "O" | Default stop key when enabled. |
vehicleEngine.exitKey | "F" | Vehicle exit key monitored for engine-state behavior. |
vehicleEngine.holdExitToKeepState | true | Default player behavior: hold exit to preserve the current engine state; tap to stop it. |
vehicleEngine.autoStartEngine | true | Starts an off engine when an authorized player enters the driver's seat. |
vehicleEngine.blockExitWhenLocked | true | Prevents players from leaving a vehicle while its doors are locked. |
Players can change holdExitToKeepState and autoStartEngine unless they are forced in personalSettings.
#personalSettings
| Setting | Default | Description |
|---|---|---|
personalSettings.command | "keysettings" | Command that opens the personal settings form. |
personalSettings.kvp | "zyke_vehiclekeys:personal_settings" | Local KVP used to save player preferences. |
personalSettings.force.holdExitToKeepState | false | Locks the exit preference to the configured vehicleEngine default. |
personalSettings.force.autoStartEngine | false | Locks auto-start to the configured vehicleEngine default. |
#npcVehicles
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,
},
}
| Setting | Default | Description |
|---|---|---|
npcVehicles.lock | 100 | Percentage chance an eligible NPC vehicle starts locked. |
npcVehicles.requireKey | true | Requires key access to use NPC vehicles. Disabling it bypasses the search prompt and key requirement. |
npcVehicles.allowSearch | true | Master switch for searching eligible NPC vehicles. |
npcVehicles.allowRobbery | true | Master switch for robbing NPC drivers. |
npcVehicles.robbery.gunRob | true | Allows gunpoint robbery. |
npcVehicles.robbery.pickupModels | {"prop_paper_bag_01"} | Models used for dropped key bags. |
npcVehicles.robbery.pickupLifetime | 300 | Seconds a dropped key bag remains available. |
npcVehicles.tempKeys.enabled | true | Enables the temporary-key search flow. |
npcVehicles.tempKeys.chanceForSearch | 100 | Percentage chance a completed search finds keys. |
npcVehicles.tempKeys.automaticSearch | false | Starts the configured search automatically on vehicle entry. |
npcVehicles.tempKeys.automaticGive | false | Skips the search challenge and grants access automatically when eligible. |
npcVehicles.tempKeys.searchKey | "U" | Manual search key. |
npcVehicles.tempKeys.searchDuration | 3 | Search duration in seconds. |
npcVehicles.tempKeys.skillCheck | true | Runs the configured zyke_lib skill check during searches. |
#pedWitnesses
| Setting | Default | Description |
|---|---|---|
pedWitnesses.enabled | true | Enables witness detection for theft and robbery integrations. |
pedWitnesses.debug | false | Enables witness-specific diagnostics. |
pedWitnesses.maxDistance | 75.0 | Maximum witness search distance. |
pedWitnesses.fieldOfView | 60.0 | Field of view in degrees for pedestrians on foot. |
pedWitnesses.vehicleFieldOfView | 120.0 | Field of view in degrees for vehicle-driver witness fallback. |
pedWitnesses.blacklistedModels | See config | Hash or model-name map excluded from witness detection. |
#lockpicking
lualockpicking = {
enabled = true,
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,
},
},
dict = "anim@gangops@facility@servers@",
anim = "hotwire",
skillCheck = true,
}
| Setting | Default | Description |
|---|---|---|
lockpicking.enabled | true | Registers the configured lockpick items and flow. |
lockpicking.itemUsageMode | "durability" | "durability" removes configured durability, "breakOnFail" uses break chance after failure, and "disabled" does not consume the item. |
lockpicking.blockInGarageSections | true | The default client hook blocks lockpicking inside Zyke Garages sections. |
lockpicking.restrictedVehicles.temp | false | Blocks temporary/NPC vehicles when true. |
lockpicking.restrictedVehicles.personal | false | Blocks personal vehicles when true. |
lockpicking.restrictedVehicles.profession | true | Blocks profession vehicles when true. |
lockpicking.timeToLockpick | 10 | Base duration in seconds before the per-item multiplier. |
lockpicking.items[item].timeMultiplier | Per item | Multiplies the base duration. |
lockpicking.items[item].durability.success | Per item | Durability removed after success. |
lockpicking.items[item].durability.failure | Per item | Durability removed after failure. |
lockpicking.items[item].breakChance | Per item | Percentage removal chance in breakOnFail mode. |
lockpicking.items[item].failChance | 0 | Percentage chance to turn an otherwise successful attempt into failure. |
lockpicking.items[item].breakOnChanceFailure | false | Allows a forced chance failure to also roll item breakage. |
lockpicking.dict | "anim@gangops@facility@servers@" | Lockpick animation dictionary. |
lockpicking.anim | "hotwire" | Lockpick animation clip. |
lockpicking.skillCheck | true | Enables the configured zyke_lib skill check. |
The default config also defines veh_advancedlockpick with a faster multiplier, lower durability loss, and lower break chance.
#hotwiring
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 = true,
buttonPress = {
enabled = true,
key = "H",
timeMultiplier = 1.0,
},
}
| Setting | Default | Description |
|---|---|---|
hotwiring.enabled | true | Enables item and optional keybind hotwiring. |
hotwiring.timeToHotwire | 15 | Base duration in seconds. |
hotwiring.restrictedVehicles.temp | false | Blocks temporary/NPC vehicles when true. |
hotwiring.restrictedVehicles.personal | false | Blocks personal vehicles when true. |
hotwiring.restrictedVehicles.profession | true | Blocks profession vehicles when true. |
hotwiring.items[item].timeMultiplier | Per item | Multiplies the base duration for the usable item. |
hotwiring.anim.dict | "anim@gangops@facility@servers@" | Animation dictionary. |
hotwiring.anim.clip | "hotwire" | Animation clip. |
hotwiring.skillCheck | true | Enables the configured zyke_lib skill check. |
hotwiring.buttonPress.enabled | true | Registers hotwiring through a keybind without an item. |
hotwiring.buttonPress.key | "H" | Default hotwire key. |
hotwiring.buttonPress.timeMultiplier | 1.0 | Multiplies the base duration for keybind hotwiring. |