Configuration Steps
Getting Started
Using your text editor of choice, open the config.lua in tc_keys
resources/
├── [ticker]/
│ └── tc_keys/
│ └── config.lua <-- Open this!Language Configuration
tc_keys uses tc_lib’s locale system. The language is automatically inherited from tc_lib:
Config = {}
Config.Locale = exports.tc_lib:getLocale()💭 Note: To change the language, configure it in tc_lib’s config.lua. The change will apply to all Ticker Scripts. Some language might not be shipped with tc_keys, but all are addable through our locale system.
Want to add another language?
Add your language file to the locales folder:
├── [tc]/
│ └── tc_keys/
│ └── locales/
│ ├── en.json
│ └── YourLanguage.json -- Add your translation here!Bridge Configuration
tc_keys can bridge with popular vehicle key systems:
Config.EnableBridge = false -- "qbx_vehiclekeys", "qb_vehiclekeys", "qs_vehiclekeys", "wasabi_carlock", falseOptions:
false- Standalone mode (recommended)"qbx_vehiclekeys"- Bridge with qbx_vehiclekeys"qb_vehiclekeys"- Bridge with qb-vehiclekeys"qs_vehiclekeys"- Bridge with qs-vehiclekeys"wasabi_carlock"- Bridge with wasabi_carlock
✅ Tip: Standalone mode is recommended for best performance and full feature support.
Item Configuration
Configure which items are used for different functions:
--- Item name for lockpick
Config.LockpickItem = "lockpick"
--- Item name for hotwiring
Config.HotwireKitItem = "hotwire_kit"
--- Item names for door keys
Config.DoorKeyItem = "door_key"
--- Master key for job-based access
Config.JobKeyItem = "job_door_key"⚠️ Important: Make sure these item names match your inventory configuration.
Animation & Prop Configuration
Customize the animations and props used:
Config.KeyFob = joaat("lr_prop_carkey_fob")
Config.KeyFobAnim = {
dict = 'anim@mp_player_intmenu@key_fob@',
name = 'fob_click_fp'
}
Config.Key = joaat("h4_prop_h4_key_desk_01")
Config.KeyAnim = {dict = 'anim@heists@keycard@', name = 'enter'}
Config.KeypadModel = joaat("h4_prop_h4_ld_keypad_01b")
Config.FingerPrintModel = joaat("h4_prop_h4_fingerkeypad_01a")Door Auto-Lock Configuration
Set how long doors stay unlocked after keypad/fingerprint access:
--- Time in milliseconds the door stays unlocked before auto-locking
Config.DoorAutoLockDelayMs = 5000 -- 5 seconds (ms = seconds*1000)Police Dispatch Configuration
Configure police alerts for illegal activities:
Config.AlertPolice = true
Config.PoliceAlertsChances = {
hotwireFail = 0.5, -- 50% chance on failed hotwire
lockpickFail = 0.5, -- 50% chance on failed lockpick
lockpickSuccess = 0.2, -- 20% chance on successful lockpick
hotwireSuccess = 0.2 -- 20% chance on successful hotwire
}💭 Note: Dispatch system is configured in tc_lib. Make sure your dispatch system is set up correctly.
Hotwire Difficulty Configuration
Control the difficulty of the hotwire minigame:
Config.HotWireDifficulty = "auto" -- "auto": based on vehicle speed, "easy", "medium", "hard"Options:
"auto"- Automatically determines difficulty based on vehicle top speed"easy"- Always use easy difficulty"medium"- Always use medium difficulty"hard"- Always use hard difficulty
Auto Difficulty Function
When using "auto" mode, difficulty is determined by vehicle class:
Config.GetVehicleClass = function(speed, vehicleName)
if speed >= 160.0 then
return "S" -- Super cars (Hard)
elseif speed >= 140.0 then
return "A" -- Sports cars (Hard)
elseif speed >= 120.0 then
return "B" -- Performance cars (Medium)
else
return "C" -- Regular cars (Easy)
end
endYou can customize this function to use different logic, such as vehicle class, vehicle name patterns, or custom vehicle lists.
Debug Mode
Enable debug mode for troubleshooting:
Config.Debug = exports.tc_lib:getDebug()💭 Note: Debug mode is controlled by tc_lib. Set it in tc_lib’s config.lua.