RX HUD V3 Configuration
RX HUD V3 keeps its server-side behaviour in config.lua. The values here are the defaults every player starts from; layout, units, colours, and most visibility rules can then be adjusted by each player from the in-game settings interface and are saved per player.
Restart the resource after changing the configuration so every connected client receives the same defaults.
Because personal settings persist, a config change only affects players who have not overridden that option themselves.
Framework
auto detects the running framework and is correct for almost every server. Set the framework explicitly only when detection picks the wrong one.
| Value | Behaviour |
|---|---|
'auto' | Detects the framework from the started resources. |
'esx' | Forces the ESX integration. |
'qbcore' | Forces the QBCore integration. |
'qbox' | Forces the Qbox integration. |
Config.Framework = 'auto' The framework resource must start before RX HUD V3, otherwise detection runs before the framework object exists.
Player HUD
Config.HUD sets the default size, opacity, and visual style of the player interface. Position is not configured here: every element is placed by the player from the settings interface.
| Setting | Default | Behaviour |
|---|---|---|
enabled | true | Enables the player HUD. |
scale | 1.0 | Overall size, from 0.5 to 2.0. |
opacity | 0.9 | Overall opacity, from 0.1 to 1.0. |
playerStyle | 'icon' | Default player HUD style: 'icon', 'classic', or 'modern'. |
Config.HUD = {
enabled = true,
scale = 1.0,
opacity = 0.9,
playerStyle = 'icon'
} Each style keeps its own saved colour profile, so switching styles does not carry colours over from the previous one. Pick the default that suits your server and let players change it if they prefer another.
Stamina
| Setting | Default | Behaviour |
|---|---|---|
enabled | true | Shows the stamina indicator. |
showWhenFull | false | Keeps the indicator on screen even when the player is rested. |
Config.HUD.stamina = {
enabled = true,
showWhenFull = false
} With showWhenFull disabled, the indicator only appears while the player is sprinting or recovering. That keeps the screen clear during normal movement, which is the usual choice.
Stress
Stress is drawn like the other indicators but also drives optional screen effects and its own gain and loss logic.
| Setting | Default | Behaviour |
|---|---|---|
enabled | true | Enables the stress indicator. |
showWhenEmpty | false | Hides the indicator while stress is at zero. |
Config.HUD.stress = {
enabled = true,
showWhenEmpty = false
} Stress effects
Effects only start once stress passes minStressForEffect, so a low background level never disturbs normal play.
| Setting | Default | Behaviour |
|---|---|---|
shake | true | Shakes the camera at high stress. |
shakeInterval | 10000 | Time between shakes in milliseconds. |
shakeIntensity | 0.5 | Shake strength, from 0.1 to 1.5. |
falling | true | Allows the player to stumble while running at high stress. |
fallChance | 5 | Chance of a stumble as a percentage from 1 to 100. |
screenEffect | true | Enables the blur and flash screen effect. |
minStressForEffect | 50 | Stress level required before any effect starts. |
Config.HUD.stress.effects = {
shake = true,
shakeInterval = 10000,
shakeIntensity = 0.5,
falling = true,
fallChance = 5,
screenEffect = true,
minStressForEffect = 50
} Keep shakeIntensity low. Values near 1.5 are strong enough to interfere with aiming and driving, which players usually read as a bug rather than a stress effect.
Built-in stress logic
autoLogic lets the HUD manage stress on its own, so the indicator still works without a separate stress resource.
Config.HUD.stress.autoLogic = {
enabled = true
} Disable autoLogic if another resource already writes stress values. Leaving both active means two systems raise and lower the same value.
Gain factors add stress from combat, driving, and sprinting:
| Setting | Default | Behaviour |
|---|---|---|
onShooting | 0.2 | Stress gained per shot fired. |
onCrash | 10.0 | Stress gained on a vehicle crash. |
minCrashDamage | 5.0 | Minimum engine or body damage drop that counts as a crash. |
onFastDriving.enabled | true | Enables stress gain while speeding. |
onFastDriving.minSpeed | 160.0 | Speed threshold in km/h, converted automatically when the speed unit is mph. |
onFastDriving.amount | 0.05 | Stress gained per second above the threshold. |
onSprinting.enabled | true | Enables stress gain while sprinting. |
onSprinting.amount | 0.35 | Stress gained per second while sprinting. |
Config.HUD.stress.autoLogic.gain = {
onShooting = 0.2,
onCrash = 10.0,
minCrashDamage = 5.0,
onFastDriving = {
enabled = true,
minSpeed = 160.0,
amount = 0.05
},
onSprinting = {
enabled = true,
amount = 0.35
}
} Loss factors remove stress over time and reward resting, swimming, eating, and drinking:
| Setting | Default | Behaviour |
|---|---|---|
passive | 0.10 | Stress lost per second under normal conditions. |
whileSitting | 0.1 | Stress lost per second while sitting or resting. |
whileSwimming | 0.30 | Stress lost per second while swimming. |
onEating | 0.5 | Multiplier applied to stress loss when hunger increases. |
onDrinking | 0.5 | Multiplier applied to stress loss when thirst increases. |
Config.HUD.stress.autoLogic.loss = {
passive = 0.10,
whileSitting = 0.1,
whileSwimming = 0.30,
onEating = 0.5,
onDrinking = 0.5
} Balance gain against passive loss. If sprinting adds 0.35 per second while passive loss removes 0.10, a player who runs constantly reaches the effect threshold in well under a minute, which is usually too fast for a roleplay server.
Player information
| Setting | Default | Behaviour |
|---|---|---|
enabled | true | Shows the job and gang panel. |
showJob | true | Displays the player’s job and grade. |
showGang | true | Displays the player’s gang and grade. |
Config.HUD.playerInfo = {
enabled = true,
showJob = true,
showGang = true
} Turn showGang off on servers without gang systems. ESX servers without a gang table should also leave it disabled, or supply the data through Config.CustomFunctions.GetGang.
Vehicle HUD
Config.VehicleHUD draws while the player is in a vehicle. Like the player HUD, its position is set by the player rather than in the config.
| Setting | Default | Behaviour |
|---|---|---|
enabled | true | Enables the vehicle HUD. |
scale | 1.0 | Overall size. |
opacity | 0.9 | Overall opacity. |
style | 'sleek' | Default vehicle HUD style: 'sleek', 'compact', or 'street'. |
Config.VehicleHUD = {
enabled = true,
scale = 1.0,
opacity = 0.9,
style = 'sleek'
} Fuel, engine condition, gear, lights, locks, handbrake, seatbelt, and turn signals are part of the vehicle styles and do not need individual config entries. Players control which of them stay visible from the settings interface.
Speed
| Setting | Default | Behaviour |
|---|---|---|
enabled | true | Shows the speedometer. |
unit | 'kmh' | Default speed unit: 'kmh' or 'mph'. |
showDigital | true | Shows the numeric readout next to the gauge. |
maxspeed | 200 | Value at which the speedometer reads full, always defined in km/h. |
Config.VehicleHUD.speed = {
enabled = true,
unit = 'kmh',
showDigital = true,
maxspeed = 200
} maxspeed stays in km/h even when unit is 'mph'; only the displayed value is converted. Set it slightly above the top speed of your fastest common vehicle so the needle rarely pins.
Odometer
| Setting | Default | Behaviour |
|---|---|---|
enabled | true | Shows vehicle mileage. |
useJGMileage | false | Reads mileage from jg-vehiclemileage exports instead of the built-in odometer. |
Config.VehicleHUD.odometer = {
enabled = true,
useJGMileage = false
} Enable useJGMileage only if jg-vehiclemileage is installed and started before RX HUD V3. Otherwise keep the built-in odometer, which persists mileage on its own.
Minimap
| Setting | Default | Behaviour |
|---|---|---|
enabled | true | Enables minimap handling. |
onlyInVehicle | true | Shows the minimap only while the player is in a vehicle. |
Bigmode | false | Allows the expanded minimap toggle bound to Z. |
zoom | 1.3 | Linear zoom level, from 0.5 to 2.0. |
Config.Minimap = {
enabled = true,
onlyInVehicle = true,
Bigmode = false,
zoom = 1.3
} onlyInVehicle is the usual choice for roleplay servers because it keeps the map out of the way on foot. Turn it off if your server relies on the minimap for navigation while walking.
Custom minimap resources
| Setting | Default | Behaviour |
|---|---|---|
UseCustomMinimap | true | Tells the HUD that a separate minimap resource is providing the map. |
MapBigBypass | false | Bypasses the HUD’s own expanded-map handling. |
Config.UseCustomMinimap = true
Config.MapBigBypass = false These two flags only matter when another resource already replaces the minimap. Enable MapBigBypass when that resource handles the expanded map itself and the two implementations fight over the same state.
Notifications
| Setting | Default | Behaviour |
|---|---|---|
enabled | true | Enables HUD notifications. |
position | 'top-right' | Corner used for notifications. |
duration | 3000 | Time a notification stays visible, in milliseconds. |
maxVisible | 5 | Maximum notifications shown at once. |
Config.Notifications = {
enabled = true,
position = 'top-right',
duration = 3000,
maxVisible = 5
} Lower maxVisible if notifications from other resources are already competing for the same corner.
Weather labels
Config.WeatherLabels maps each GTA weather type to the text shown on the HUD. Change the values to translate them or to match your server’s tone.
Config.WeatherLabels = {
EXTRASUNNY = 'Sunny',
CLEAR = 'Clear',
CLOUDS = 'Cloudy',
OVERCAST = 'Overcast',
RAIN = 'Rainy',
THUNDER = 'Thunderstorm',
CLEARING = 'Clearing',
SMOG = 'Smog',
FOGGY = 'Foggy',
NEUTRAL = 'Neutral',
XMAS = 'Snowy',
BLIZZARD = 'Blizzard',
SNOWLIGHT = 'Light Snow',
SNOW = 'Snow'
} Keep the keys exactly as they are: they are the weather type names the game reports. Only edit the labels on the right, and keep them short so they fit the HUD at smaller resolutions.
Custom job and gang functions
Config.CustomFunctions overrides how the HUD reads job and gang data. Use it for custom frameworks or non-standard ESX and QBCore setups.
| Function | Expected return |
|---|---|
GetJob | { name = 'job_name', label = 'Job Label', grade = 0 } |
GetGang | { name = 'gang_name', label = 'Gang Label', grade = 0 } |
Config.CustomFunctions = {
GetJob = function()
-- local jobData = exports['my_custom_framework']:GetPlayerJob()
-- return { name = jobData.name, label = jobData.label, grade = jobData.grade }
return nil
end,
GetGang = function()
-- local gangData = exports['my_custom_framework']:GetPlayerGang()
-- return { name = gangData.name, label = gangData.label, grade = gangData.grade }
return nil
end
} Returning nil falls back to the default framework logic, which is what both functions do out of the box. Override only the one you need; leaving GetGang at nil while replacing GetJob is perfectly valid.
Debug mode
Config.Debug = false Keep debug disabled in production. Enable it temporarily while diagnosing framework detection, missing job or gang data, or a status value that never updates, then turn it off again to keep console output useful.