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#
Config.HideInVehicle = false
Config.HideWhenDead = true
Config.HideInCutscene = true
Pretty self-explanatory. The crosshair hides automatically in the listed conditions if the flag is true.
Save Behavior#
Config.AutoSaveOnClose = true
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#
Config.EnableTraining = true
Completely disables the training system if set to false. The text UI, commands, and NUI panel are all skipped.
Config.TrainingCommand = "aimtrain"
Config.ExitTrainingCommand = "aimexit"
Chat commands for entering and exiting the training area. You can also enter by pressing E when standing near the area.
Config.TrainingCoordinates = vector4(2421.7571, 13053.7695, 28.1916, 296.1206)
The center of the training zone. The text UI appears when a player gets within Config.TrainingEntryRadius of this point.
Config.TrainingEntryRadius = 5.0
Config.TrainingBlockRadius = 30.0
Config.TrainingBucketBase = 1000
TrainingEntryRadius— how close a player needs to be to see the "Enter Training" promptTrainingBlockRadius— 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 asTrainingBucketBase + playerId, which keeps training sessions isolated from each other and from the main world
Misc#
Config.DisableWantedLevel = true
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.
Config.EnableDebugCommands = false
Registers /testtints and /cleartints — developer commands used when working on new training props. Leave this false on a live server.
Temporary Weapon#
Config.TemporaryWeapon = {
mode = "auto",
...
}
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.