RX HUD V2 Configuration

RX HUD V2 keeps its behaviour in config.lua. Every element can be switched off individually, so start from the defaults and disable only the parts your server already handles elsewhere.

Restart the resource after changing the configuration so every connected client receives the same values.

Performance

Update intervals decide how often the HUD reads player and vehicle state. Player stats change slowly and can be polled less often; vehicle values drive animated gauges and need a shorter interval.

SettingDefaultBehaviour
updateInterval200How often player stats such as health, armor, hunger, and thirst update, in milliseconds.
vehicleUpdateInterval50How often the vehicle HUD updates, in milliseconds.
lowPerformanceModetrueEnables the built-in performance optimizations.
maxFPS60Upper bound used for HUD rendering.
Config.Performance = {
    updateInterval = 200,
    vehicleUpdateInterval = 50,
    lowPerformanceMode = true,
    maxFPS = 60
}

The shipped config.lua declares Config.Performance twice. Lua replaces the whole table on the second declaration, so the first block never applies and vehicleUpdateInterval ends up unset. Keep a single merged table like the one above.

Raising updateInterval lowers CPU cost but makes status bars react later. Lowering vehicleUpdateInterval makes the speedometer smoother at the cost of more frequent updates.

Framework

auto detects the running framework and is correct for almost every server. Set the framework explicitly only when detection picks the wrong one.

ValueBehaviour
'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 V2, otherwise detection runs before the framework object exists.

Player HUD

Config.HUD controls the player-side interface: where it sits, how large it is, and which status bars are drawn.

SettingDefaultBehaviour
enabledtrueEnables the player HUD.
position'bottom-left'Corner used for the player HUD.
scale1.0Overall size, from 0.5 to 2.0.
opacity0.9Overall opacity, from 0.1 to 1.0.
Config.HUD = {
    enabled = true,
    position = 'bottom-left', -- 'bottom-left', 'bottom-right', 'top-left', 'top-right'
    scale = 1.0,
    opacity = 0.9
}

Keep the player HUD and vehicle HUD in different corners. The defaults place them bottom-left and bottom-right so neither overlaps the chat or the minimap.

Animations

SettingDefaultBehaviour
enabledtrueEnables transitions when a bar appears, hides, or changes value.
duration300Transition length in milliseconds.
easing'ease-out'CSS easing function used for the transition.
Config.HUD.animations = {
    enabled = true,
    duration = 300,
    easing = 'ease-out'
}

easing accepts any valid CSS easing value. Disable animations entirely if you prefer the bars to snap to their new value.

Status bars

Health, armor, hunger, and thirst share the same option shape. showWhenFull and showWhenEmpty decide whether a bar stays on screen when it carries no useful information.

BarVisibility defaultBehaviour
healthshowWhenFull = trueAlways visible, including at full health.
armorshowWhenEmpty = falseHidden while the player has no armor.
hungershowWhenFull = falseHidden while hunger is full.
thirstshowWhenFull = falseHidden while thirst is full.
Config.HUD.health = {
    enabled = true,
    showWhenFull = true,
    color = '',
    icon = 'health.svg'
}

Config.HUD.armor = {
    enabled = true,
    showWhenEmpty = false,
    color = '',
    icon = 'armor.svg'
}

Config.HUD.hunger = {
    enabled = true,
    showWhenFull = false,
    color = '',
    icon = 'hunger.svg'
}

Config.HUD.thirst = {
    enabled = true,
    showWhenFull = false,
    color = '',
    icon = 'thirst.svg'
}

An empty color means the bar uses the gradient defined in style.css. Set a hex value here for a flat colour, or leave it empty and edit the matching .health-bar { background: linear-gradient(...) } rule to keep the gradient. icon refers to a file shipped with the resource; replace the file itself rather than pointing the option at an external path.

Stress

Stress is drawn like the other bars but also drives optional screen effects and its own gain and loss logic.

SettingDefaultBehaviour
enabledtrueEnables the stress bar.
showWhenEmptyfalseHides the bar while stress is at zero.
color'#eb4d4b'Bar colour.
icon'stress.svg'Icon used for the bar.
Config.HUD.stress = {
    enabled = true,
    showWhenEmpty = false,
    color = '#eb4d4b',
    icon = 'stress.svg'
}

Stress effects

Effects only start once stress passes minStressForEffect, so a low background level never disturbs normal play.

SettingDefaultBehaviour
shaketrueShakes the camera at high stress.
shakeInterval10000Time between shakes in milliseconds.
shakeIntensity0.5Shake strength, from 0.1 to 1.5.
fallingtrueAllows the player to stumble while running at high stress.
fallChance5Chance of a stumble as a percentage from 1 to 100.
screenEffecttrueEnables the blur and flash screen effect.
minStressForEffect50Stress 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 bar 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 bar.

Gain factors add stress from combat, driving, and sprinting:

SettingDefaultBehaviour
onShooting0.2Stress gained per shot fired.
onCrash10.0Stress gained on a vehicle crash.
minCrashDamage5.0Minimum engine or body damage drop that counts as a crash.
onFastDriving.enabledtrueEnables stress gain while speeding.
onFastDriving.minSpeed160.0Speed threshold in km/h, converted automatically when the speed unit is mph.
onFastDriving.amount0.05Stress gained per second above the threshold.
onSprinting.enabledtrueEnables stress gain while sprinting.
onSprinting.amount0.35Stress 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:

SettingDefaultBehaviour
passive0.10Stress lost per second under normal conditions.
whileSitting0.1Stress lost per second while sitting or resting.
whileSwimming0.30Stress lost per second while swimming.
onEating0.5Multiplier applied to stress loss when hunger increases.
onDrinking0.5Multiplier 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

SettingDefaultBehaviour
enabledtrueShows the job and gang panel.
showJobtrueDisplays the player’s job and grade.
showGangtrueDisplays 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 and follows the same position, scale, and opacity model as the player HUD.

SettingDefaultBehaviour
enabledtrueEnables the vehicle HUD.
position'bottom-right'Corner used for the vehicle HUD.
scale1.0Overall size.
opacity0.9Overall opacity.
style'circular'Gauge style: 'circular' or 'linear'.
Config.VehicleHUD = {
    enabled = true,
    position = 'bottom-right',
    scale = 1.0,
    opacity = 0.9,
    style = 'circular'
}

circular uses dial gauges and suits the default bottom-right placement. linear uses bars and fits better when the vehicle HUD sits along the bottom edge next to other interfaces.

Fuel

SettingDefaultBehaviour
enabledtrueShows the fuel gauge.
showWhenFullfalseHides the gauge while the tank is full.
color'#ffa502'Gauge colour.
icon'fuel.svg'Icon used for the gauge.
warningLevel20Warning threshold as a percentage.
Config.VehicleHUD.fuel = {
    enabled = true,
    showWhenFull = false,
    color = '#ffa502',
    icon = 'fuel.svg',
    warningLevel = 20
}

Set warningLevel above the point where your fuel stations become hard to reach. A warning at 20 gives most players enough range to divert.

Speed

SettingDefaultBehaviour
enabledtrueShows the speedometer.
unit'kmh'Speed unit: 'kmh' or 'mph'.
showDigitaltrueShows the numeric readout next to the gauge.
maxspeed200Value 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.

Engine

SettingDefaultBehaviour
enabledtrueShows engine information.
showHealthtrueDisplays engine health.
showTemperaturefalseDisplays engine temperature.
warningLevel300Warning threshold for engine health.
Config.VehicleHUD.engine = {
    enabled = true,
    showHealth = true,
    showTemperature = false,
    warningLevel = 300
}

Engine health runs from 0 to 1000, so the default warns the player once the engine is well into its damaged range but before it fails.

Lock status

SettingDefaultBehaviour
enabledtrueShows the vehicle lock state.
showIcontrueDisplays the lock icon.
icon'vehiclelock.svg'Icon used for the lock state.
Config.VehicleHUD.lock = {
    enabled = true,
    showIcon = true,
    icon = 'vehiclelock.svg'
}

Odometer

SettingDefaultBehaviour
enabledtrueShows vehicle mileage.
useJGMileagefalseReads 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 V2. Otherwise keep the built-in odometer so mileage keeps tracking.

Minimap

SettingDefaultBehaviour
enabledtrueEnables minimap handling.
onlyInVehicletrueShows the minimap only while the player is in a vehicle.
BigmodetrueAllows the expanded minimap toggle bound to Z.
zoom1.3Linear zoom level, from 0.5 to 2.0.
Config.Minimap = {
    enabled = true,
    onlyInVehicle = true,
    Bigmode = true,
    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

SettingDefaultBehaviour
UseCustomMinimaptrueTells the HUD that a separate minimap resource is providing the map.
MapBigBypassfalseBypasses 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

SettingDefaultBehaviour
enabledtrueEnables HUD notifications.
position'top-right'Corner used for notifications.
duration3000Time a notification stays visible, in milliseconds.
maxVisible5Maximum notifications shown at once.
Config.Notifications = {
    enabled = true,
    position = 'top-right',
    duration = 3000,
    maxVisible = 5
}

Keep the notification corner clear of the player and vehicle HUD positions. 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.

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