šļø Racing System
āļø Configuration
Tune configs, server settings, vehicle classes, race generation, and more
Configuration
Evonex Racing uses modular Lua config files in the configs/ folder. All files are readable and editable (not escrowed). Below is an overview of each config and the main options.
Config Files Overview
| File | Purpose |
|---|---|
general.lua | Framework, UI options, waypoints, cinematic, canStartRaces |
race.lua | Phasing, money distribution, buy-in, laps, player limits |
raceGeneration.lua | Scheduled race generation (times, classes, prizes, laps) |
server.lua | MMR settings, item rewards |
vehicleClassDefinitions.lua | Class names (DāS) and scores |
vehicleClasses.lua | Vehicle hash ā class mapping |
checkpoints.lua | Checkpoint zones, starting line, waypoints, join radius |
keybinds.lua | Track Creator key bindings |
logs.lua | Discord webhooks for race events and admin logs |
general.lua
- framework ā
"auto","qbx","qb","esx","standalone", or custom resource name - canStartRaces ā Who can start races. See canStartRaces below.
- showFinishScreen ā Full-screen finish overlay vs small notification
- command ā Enable chat command to open tablet when no inventory item exists
- autoVerifyTracks ā Auto-verify new tracks without staff
- cinematicEnabled ā Play cinematic at race start
- allowedHosts ā Allowed image hosts for racer profile pictures
- defaultSettings ā Default waypoints, missed checkpoint detection, waypoint color
- inAirWaypointSize, inAirWaypointHeightScale, inAirWaypointVerticalOffset ā 3D waypoint tuning
canStartRaces
Control who can start races from the tablet. Set in configs/general.lua.
| Mode | Description |
|---|---|
"everyone" | Anyone can start races (default) |
"admin" | Only players with ace permission admin |
"ace" | Only players with the permission in canStartRacesAce (default: evonex_racing.startRaces) |
"identifiers" | Only players whose identifier matches canStartRacesIdentifiers (e.g. {"license:xxx", "steam:yyy"}) |
Optional: canStartRacesDenyIdentifiers ā List of identifiers that are never allowed, checked first.
Example for ACE permission:
canStartRaces = "ace",
canStartRacesAce = "evonex_racing.startRaces",Example for specific players:
canStartRaces = "identifiers",
canStartRacesIdentifiers = {"license:abc123", "steam:110000xxx"},race.lua
- phasingMode ā
"global"or"forced_race" - raceMoneyDistribution ā
"all"or"top" - minimumPlayersForCalculations ā Min players for MMR/prize logic
- forceMinimumPlayersUnranked / forceMinimumPlayersRanked ā Cancel race if below minimum
- maxBuyIn ā Maximum buy-in amount
- maxLaps ā Maximum laps per race
raceGeneration.lua
Defines when and how races are auto-generated. Times use server time (not local).
- generationTime ā When races are created (
hour,minute) - raceStartTime / raceEndTime ā Window for race start/end
- timeBetweenRaces ā Minutes between consecutive races
- classes ā Enable class restriction, even chances, or weighted class selection
- moneyPrize ā Reward per minute (min/max)
- laps ā Min/max laps per generated race
- phasing ā Enable phasing and duration (0 = whole race)
- trackType ā
"random","circuit", or"sprint" - personalVehiclesOnly ā Only allow owned vehicles in generated races
server.lua
- startingMMR ā Default MMR for new racers
- mmrKFactor ā Speed of MMR change (lower = slower)
- dnfPenalty ā MMR penalty for DNF
- minFirstPlaceGain ā Minimum MMR gain for first place
- winnerBonus ā Multiplier for first-place MMR gains
- itemRewards ā Give items based on position, chance, groups; metadata tokens (
{{position}},{{raceId}}, etc.); fallback to money
vehicleClassDefinitions.lua
- classes ā
{ name, title, score }for each class (DāS) - allowLowerClassesWithHigherClasses ā Let D race in S class races
- mode ā
"auto"or"manual"for unmapped vehicles
vehicleClasses.lua
Maps vehicle spawn names to class numbers:
[`adder`] = 4, -- A Class
[`t20`] = 5, -- S Class
[`blista`] = 1, -- D Classcheckpoints.lua
- checkpointZones ā Mode (
precise/cylinder), dynamic size, multiplier - startingLineDetection ā Remove players who cross start before race begins
- joinRaceInteractionRadius / joinRaceInteractionTime ā Join prompt range and timing
- waypointUnit ā
"m"or"ft" - waypointsBasedOnPlayerCam ā Waypoint orientation (player vs checkpoint heading)
keybinds.lua
Customize Track Creator keys: placeCheckpoint, removeLastCheckpoint, resetWidth, changeWidthUp / changeWidthDown, saveTrack, exitTrackCreator.
logs.lua
- type ā
"ox_lib"or"discord" - discord ā Webhooks for
raceGeneration,raceEnded,admin,itemRewards