EvonexEvonex
šŸŽļø 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

FilePurpose
general.luaFramework, UI options, waypoints, cinematic, canStartRaces
race.luaPhasing, money distribution, buy-in, laps, player limits
raceGeneration.luaScheduled race generation (times, classes, prizes, laps)
server.luaMMR settings, item rewards
vehicleClassDefinitions.luaClass names (D–S) and scores
vehicleClasses.luaVehicle hash → class mapping
checkpoints.luaCheckpoint zones, starting line, waypoints, join radius
keybinds.luaTrack Creator key bindings
logs.luaDiscord 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.

ModeDescription
"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 Class

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