For the complete documentation index, see llms.txt. This page is also available as Markdown.

Configuration

All settings live in config.lua. The file is well-commented, but here's the full breakdown so you know exactly what each option does.

General

Config.Locale = 'en'

Language for all UI text and chat messages. Supported values: 'en', 'tr'. Adding a new language is as simple as creating a new file under locales/ and registering it.

Config.OpenKey = 'F5'

Default keyboard binding for the crosshair menu. Players can rebind this in their FiveM key settings — this is just the initial default.

Config.MenuCommand = 'crosshair'

The chat command that opens the menu. Change this if it conflicts with something else on your server.

Default Crosshair

Config.DefaultCrosshair = {
    crosshairEnabled  = true,
    crosshairStyle    = 4,
    size              = 3,
    thickness         = 1,
    gap               = -3,
    fixedGap          = -25,
    csColor           = 1,
    colorR            = 46,
    colorG            = 250,
    colorB            = 46,
    alpha             = 200,
    useAlpha          = true,
    dotEnabled        = false,
    tStyleEnabled     = false,
    outlineEnabled    = false,
    outlineThickness  = 1,
}

These values kick in when a player joins for the first time and has no saved data yet. Once they save their own settings, this is ignored for that player.

The parameter names match CS2's console variables, so if you already have a crosshair you like, you can read the values from your CS2 config directly.

Visibility

Pretty self-explanatory. The crosshair hides automatically in the listed conditions if the flag is true.

Save Behavior

When true, the crosshair is saved automatically when the player closes the menu without clicking Save. If you want them to explicitly click the Save button every time, set this to false.

Training

Completely disables the training system if set to false. The text UI, commands, and NUI panel are all skipped.

Chat commands for entering and exiting the training area. You can also enter by pressing E when standing near the area.

The center of the training zone. The text UI appears when a player gets within Config.TrainingEntryRadius of this point.

  • TrainingEntryRadius — how close a player needs to be to see the "Enter Training" prompt

  • TrainingBlockRadius — if a player is already inside this radius, the enter command is blocked (prevents them from teleporting back in while already there)

  • TrainingBucketBase — each player gets their own routing bucket calculated as TrainingBucketBase + playerId, which keeps training sessions isolated from each other and from the main world

Misc

Continuously suppresses the player's wanted level. Useful if your server doesn't have a global wanted level system and you don't want occasional 1-star pops.

Registers /testtints and /cleartints — developer commands used when working on new training props. Leave this false on a live server.

Temporary Weapon

Controls how weapons are given and removed during training sessions. The "auto" mode detects whether you're running ox_inventory or qb-core and handles it accordingly.

Mode
Behavior

"auto"

Auto-detects ox_inventory → qb-core → native fallback

"native"

Uses GTA natives only, no framework sync

"ox_inventory"

Forces ox_inventory integration

"qb-inventory"

Forces QBCore integration

"custom"

Use your own give/remove functions defined in the same block

If mode = "custom", fill in the give and remove functions at the bottom of Config.TemporaryWeapon.