Skip to Content
TC KeysConfiguration

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", false

Options:

  • 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 end

You 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.

Last updated on