Configuration

All HUD configuration lives in a single file:

  • config.lua — defines the Config and profile tables that drive every aspect of the HUD

The default configuration is auto-detect-everything; most servers don't need to edit this file at all. Below is the full reference.

Integrations

Config.Integrations

Config.Integrations = {
    Framework = 'auto',
    Inventory = 'auto',
    Notify    = 'auto',
    Fuel      = 'auto',
    Voice     = 'auto',
    Medical   = 'auto',
}

Description: Each entry is either 'auto' (the bridge picks based on GetResourceState) or a literal resource name to pin explicitly.

PropertyTypeAccepted values
Frameworkstring'auto', 'esx', 'qb', 'qbox', 'standalone'
Inventorystring'auto', 'ox_inventory', 'qs-inventory', 'codem-inventory', 'origen_inventory', 'tgiann-inventory', 'qb-inventory', 'ps-inventory', 'native'
Notifystring'auto', 'ox_lib', 'okokNotify', 't-notify', 'mythic_notify', 'motion_notify', 'qb', 'esx', 'native'
Fuelstring'auto', 'ox_fuel', 'LegacyFuel', 'ps-fuel', 'cdn-fuel', 'lj-fuel', 'ND_Fuel', 'native'
Voicestring'auto', 'pma-voice', 'saltychat', 'mumble-voip'
Medicalstring'auto', 'qb-ambulancejob', 'qbx_medical', 'qbx_ambulancejob', 'wasabi_ambulance', 'codem-ambulance', 'ps-medical', 'esx_ambulancejob', 'standalone'

Pin a value when your server runs a fork that the auto-detection misidentifies, or when two compatible resources are both running and you want to choose one explicitly.


Units

profile.units

profile.units = {
    speed = 'metric',  -- 'metric' (km/h) or 'imperial' (mph)
}
PropertyTypeDescription
speedstringSpeed display unit. 'metric' for km/h, 'imperial' for mph

Toggles

profile.toggles

profile.toggles = {
    minimapVehicleOnly = false,
    stressMeter        = true,
    restraintSystem    = true,
    preferencesPanel   = true,
}
PropertyTypeDescription
minimapVehicleOnlybooleanHide the minimap when on foot; show it only inside vehicles
stressMeterbooleanEnable the stress vital and meter
restraintSystembooleanEnable the physics-based seatbelt and ejection logic
preferencesPanelbooleanAllow players to open the in-game preferences panel

Armor

profile.armor

profile.armor = {
    maxValue = 56,
}
PropertyTypeDescription
maxValuenumberScaler for the armor bar — set to your server's max armor stat (default 56 to match a common shield-bar tuning)

Keybinds

profile.binds

profile.binds = {
    prefs      = 'I',
    restraint  = 'B',
    widescreen = nil,
}
PropertyTypeDescription
prefsstringKey that opens the in-game preferences panel
restraintstringKey that toggles the seatbelt
widescreenstring | nilOptional key to toggle cinematic widescreen bars

All keybinds register via RegisterKeyMapping, so players can also rebind them at runtime from the FiveM keybinds menu.


Tick Rates

profile.tickRates

profile.tickRates = {
    vitals  = 100,
    vehicle = 100,
}
PropertyTypeDescription
vitalsnumberMilliseconds between vitals updates (health, armor, hunger, thirst, stress, oxygen)
vehiclenumberMilliseconds between vehicle telemetry updates (speed, RPM, gear, fuel, engine)
⚠️

Lowering tick rates below 50 ms will not visibly improve HUD smoothness but will increase CPU usage. The defaults (100 ms) are tuned for flat-zero idle resmon.


Finance Widget

profile.finance

profile.finance = {
    enabled         = true,
    cashItem        = 'money',
    thousandsSep    = ',',
    currencySymbol  = '$',
}
PropertyTypeDescription
enabledbooleanShow the cash / bank widget
cashItemstringInventory item name used to read cash balance (set this to your server's cash item name)
thousandsSepstringThousands separator character (, or .)
currencySymbolstringCurrency prefix ($, , £, etc.)

Voice Steps

profile.voiceSteps

profile.voiceSteps = { 35, 65, 100 }

Description: Three radii in metres for the three voice tiers — whisper, normal, shout — in that order. The HUD displays the active tier and reflects radio transmission status separately.

IndexTierDefault radius
1Whisper35 m
2Normal65 m
3Shout100 m

Restraint Messages

profile.messages.restraint

profile.messages.restraint = {
    fastened = 'Seatbelt fastened.',
    released = 'Seatbelt released.',
    blocked  = 'You cannot use a seatbelt in this vehicle.',
}
PropertyTypeDescription
fastenedstringNotification shown when the seatbelt is engaged
releasedstringNotification shown when the seatbelt is released
blockedstringNotification shown when the player tries to belt in an exempt vehicle

Vehicle Restraint Tuning

profile.vehicle

profile.vehicle = {
    exemptClasses = { [8] = true, [13] = true, [14] = true, [15] = true, [16] = true },
    exclusions    = {
        -- ['stockade'] = { restraint = false },
    },
}
PropertyTypeDescription
exemptClassestableGTA V vehicle class IDs excluded from the restraint system. Defaults: 8 (motorcycles), 13 (cycles), 14 (boats), 15 (helicopters), 16 (planes)
exclusionstablePer-model overrides keyed by model name. Each entry can disable restraint, override speed display units, or block the seatbelt entirely for that model

GTA V vehicle class reference: 0 Compacts, 1 Sedans, 2 SUVs, 3 Coupes, 4 Muscle, 5 Sports Classics, 6 Sports, 7 Super, 8 Motorcycles, 9 Off-road, 10 Industrial, 11 Utility, 12 Vans, 13 Cycles, 14 Boats, 15 Helicopters, 16 Planes, 17 Service, 18 Emergency, 19 Military, 20 Commercial, 21 Trains.


Preferences Panel — What Players Can Change Live

When profile.toggles.preferencesPanel = true, players can open the panel with their prefs keybind (default I) and adjust:

  • Per-bar colors — voice, health, armor, speed, info, custom
  • Icon shapes — circle, square, hexagon, heart, star, percent
  • Display toggles — minimap, cash, bank, job, ID, compass, street info, cinematic bars
  • Speedometer style — advanced (full telemetry) or minimal (speed only)
  • Tilt effect — for both the UI and minimap

Settings persist via KVP, so they survive disconnects.


Legends Store - Premium FiveM Scripts