Skip to main content
Configuration is done in the config.lua file located in the revo_hud directory. It is never locked by escrow, so you can edit it freely. Restart the resource after changing it.
config.lua holds the server-wide settings. Each player’s own look (colors, styles, layout and sounds) is picked in the in-game menu, /hud, and saved on their PC. The options are grouped into seven numbered sections:
  1. Framework
  2. Customization, Branding and Presets
  3. Jobs and Vehicle Classes
  4. HUD Elements
  5. Vehicles
  6. Player Status and Effects
  7. Advanced
Most servers only touch a handful of options: your server name and logo (Config.PlayerInfo), the starting look (Config.Customization.defaultPreset), Config.VoiceSystem, Config.DefaultSpeedUnit and Config.Locale.

1. Framework

Framework

Which framework the HUD reads player data from.
  • 'auto': detects it for you (Qbox, then QBCore, then ESX)
  • 'qbox', 'qbcore', 'esx': force a framework
  • 'standalone': no framework
Where the HUD reads from for each framework: If nothing on your server supplies hunger or thirst, feed the bars with exports['revo_hud']:setStatus (see Exports).

Visibility

Controls when the HUD appears after a player joins.
  • waitForCharacter: wait for the framework to load a character before showing the HUD. On a custom framework, set this to false or call exports['revo_hud']:setCharacterLoaded(true) when the character loads.
  • hideDuringScenes: step aside during fades, script cameras and cutscenes.
  • ignoreScriptCameras: set to true if a camera script is always on and the HUD never appears. The HUD may then show over appearance creators.
  • settleMs: milliseconds the screen must stay clear before the HUD comes back.
  • onboardingDelayMs: milliseconds before the first-join setup opens.

Speed Unit

The speed unit new players start with: 'kmh' or 'mph'. Each player can switch in the menu.
Every speed value inside config.lua is always in km/h, whatever unit players see.

Language

The language everyone starts in: 'en', 'es', 'fr', 'de', 'pt-br', 'tr', 'pl', 'nl' or 'it'. Each player can pick their own in /hud > General > Language. See Customization to change a word or add a language.

Debug Mode

Prints what the HUD detects and does to the F8 console (and the server side to the server console), and adds the /revohud_debug command. Leave it off on a live server. See Troubleshooting.

2. Customization, Branding and Presets

Settings Command

  • Config.SettingsCommand: the command that opens the HUD settings menu
  • Config.SettingsAliases: other commands that open it too

Customization

Decides what players may change and what look they start with.
  • allowPlayersToEditLayout: players can open Edit Mode and move elements.
  • allowPlayersToEditSettings: players can change colors, styles and options. When false, /hud does nothing for players.
  • defaultPreset: the look new players start with, and what Reset Defaults restores. See the options below.
  • forcePreset: re-apply defaultPreset on every join, overwriting players’ edits.
  • adminAce: the ACE that marks staff.
  • adminsBypassLocks: staff can still edit while players are locked out.
defaultPreset accepts:
  • A built-in preset id: 'sleek-modern', 'white-blocks', 'aurora-minimal', 'toxic-horizon', 'tactical-chamfered', 'center-console', 'raid-frame', 'radar-dock', 'cockpit', 'halo', 'neon-vice', 'pit-wall', 'skyline', 'night-rack', 'wraparound', 'apex' or 'triple-screen'
  • A name from Config.Presets.custom
  • A REVO1-... share code, copied from the Presets tab in game
  • '' for the plain built-in layout
Staff are found by an ACE. Add it in server.cfg: add_ace group.admin revo_hud.admin allow

Branding

Controls the brand element (server name or logo) in the Player Info panel.
  • lockLogo: players cannot hide, move or resize it.
  • adminsBypassLock: let staff move it anyway.
  • defaultLogoSize: starting scale in percent (10 to 200).

Presets

Controls preset sharing and the presets library.
  • enabled: turn preset sharing and the library on or off.
  • showBundled: show the 17 built-in preset designs.
  • allowPlayerPresets: players can save their own presets.
  • label: the badge label (nil uses your server name).
  • custom: your own presets, added to every player’s list. Each entry is a name and a REVO1-... share code.
See Customization for how to create a share code.

Onboarding

The welcome wizard shown on a first join.
  • enabled: turn the wizard on or off.
  • command: opens it again any time. Use false or '' for no command.
  • skin: 'auto' matches defaultPreset, or force 'standard' or 'aurora'.
  • steps: switch off any question that defaultPreset already answers. With every step off, the wizard is skipped.
    • look: a complete look (colors, styles and layout)
    • theme: accent color
    • shape: minimap, round or square
    • status: status bar style

3. Jobs and Vehicle Classes

Nearly every feature in the config takes the same audience list, which decides who gets that feature. An empty list means everyone.
  • jobs / exceptJobs: a job name ('police'), a job type ('leo'), or a group name defined below.
  • classes / exceptClasses: a vehicle class name or id.
  • models / exceptModels: vehicle spawn names, such as 'police3'.
  • onDuty: set to true and the job only counts while the player is clocked on.
Vehicle classes you can use:

Job Groups

  • groups: name a set of jobs once, then use the name in any jobs or exceptJobs list.
  • matchJobType: a job type ('leo', 'ems') matches as well as the job name.
  • onDutyOnly: jobs only count while clocked on. ESX has no duty state.
Example: let responders off the seatbelt rule, and give nitrous only to mechanics and racers:
With Config.Debug = true, run /revohud_debug audience in game to see your job, vehicle class and which features you get.

4. HUD Elements

Components

Switch an element off for everyone. Players can hide more in /hud, but can never bring back what is off here.
  • PlayerHUD: the status bars
  • VehicleHUD: speedometer, speed limit sign, drift counter
  • Minimap, Compass, StreetName, WeaponHUD, Crosshair
  • Health, Armor, Hunger, Thirst, Stamina, Stress, Oxygen, Voice: the single status bars

GTA HUD Components

GTA’s own HUD parts to hide (true means hidden), so they do not double up with this HUD. Set Config.HideGTAComponents = false to leave all of them alone.

Player Info

What the Player Info panel may show.
  • serverName: your server’s name, shown in setup and on the Presets tab.
  • logoType: 'image', or 'text' to use logoText instead.
  • logoPath: a file in revo_hud/html/dist/ (capital letters count), or a full https:// link.
  • logoText: the text logo, and the fallback if the image is missing.
  • showDirtyMoney: shown only while the player carries any.
  • showSociety: the job’s society balance, shown to its boss only.
  • All other show... options toggle that line.

Money

Where cash and bank are read from. These are stock names, so change them only if your server renamed one.
  • esxCashAccount / esxBankAccount: ESX accounts in PlayerData.accounts.
  • qbCashKey / qbBankKey: QBCore and Qbox keys in PlayerData.money.
  • dirtyAccount: the ESX dirty money account.
  • dirtyItem: the QBCore and Qbox dirty money item. 'auto' uses markedbills on QBCore and black_money on Qbox.
  • societyBanking: 'auto' tries each banking resource that is running (Renewed-Banking, qb-banking, qb-management, okokBanking, esx_addonaccount).
  • bossGrades: ESX grades that are shown the society balance. QBCore and Qbox use isboss.

Minimap

  • defaultShape: 'square' or 'circle'. Players can change it.
  • defaultVisibility: 'always', 'vehicle' (only in vehicles) or 'item' (only while carrying requiredItem).
  • requiredItem: the item for 'item' visibility.
  • itemCheckInterval: milliseconds between inventory checks for 'item' visibility.
  • mapStyle: 'stock', 'postal' or 'satellite'. The last two need a map pack, see Minimap styles.
  • zoomLevel: 1000 is stock GTA V, 1100 is for the satellite or postal atlas.
  • sizeScale: minimap size multiplier.

Big Map

An expanded radar. command toggles it, key is an optional keybind (for example 'CAPS'), and hold = true makes the key expand the map only while held instead of toggling it.

Postals

The postal code shown beside the street name.
  • file: the bundled postal grid.
  • resource: read another resource instead, for example 'nearest-postal'.
  • exportName: that resource’s export.
  • updateInterval: milliseconds between updates.

Keybind Hints

The hint panel. key is the default, but players see the key they bound. To show another resource’s keybind, add its command, for example command = 'emotes'.
Cruise control has no key bound by default (Config.VehicleControls.cruiseControl.key = ''), although the hint shows CAPS. Set the cruise key to match, or remove the cruise hint.

Notifications

Style, sound and how many show at once are each player’s choice in /hud.
  • defaultDuration: milliseconds, for a notification that does not set one.
  • overrideESX: show esx:showNotification in the HUD’s style, while esx_notify is not running.
  • overrideQBCore: show QBCore:Notify in the HUD’s style. QBCore and Qbox draw it themselves, so turn this on only after removing theirs.
  • bridgeLegacyEvents: pick up okokNotify, mythic_notify, pNotify and t-notify notifications while that script is not installed.
  • suppressNativeFeed: hide GTA’s own feed above the radar.
To send the framework’s own notifications to the HUD, change one function in the framework. A framework’s notify function runs inside the framework, so the HUD cannot replace it from outside.
Back up the file first. A framework update puts the original back.
In es_extended/client/functions.lua:
Types are matched for you: QBCore’s primary and Qbox’s inform show as info. Your own scripts can send notifications too, see Exports.

Voice

  • Config.VoiceSystem: 'pma-voice', 'saltychat', 'mumble-voip' or 'none'.
  • mode: 'auto' works out push to talk or open mic from play, or force 'ptt' or 'open'.
  • showKey: for push to talk, show the key to hold beside the mic.
  • key: the key shown if the game does not name it.
  • hideWhenOff: hide the mic while voice chat is off (false shows it crossed out).
  • Config.VoiceRanges: maps each voice range in meters to the bar fill and the label shown.

Cinematic Mode

/cinematic toggles black bars with the HUD hidden. You can also add a key to the table to give it a keybind.

Crosshair

The custom crosshair is switched on by each player in /hud. hideGameReticle hides GTA’s own reticle while it is up.

5. Vehicles

Fuel

The fuel gauge source. 'auto' finds a running fuel script, and 'native' reads the game’s own level. Supported: ox_fuel, LegacyFuel, cdn-fuel, ps-fuel, lj-fuel, okokGasStation, qs-fuelstations and lc_fuel. Any resource with a GetFuel(vehicle) export also works by name.

Seatbelt

  • key: the default key. Players can rebind it.
  • ejectSpeed: km/h above which an unbelted driver can go through the windscreen.
  • warning: remind a driver who is not buckled up.
  • warningInterval: milliseconds between reminders.
  • warningSpeed: km/h, only remind once the car is moving.
  • sound: buckle and unbuckle sound.
  • audience: who has to buckle up.

Harness

Racing harness tiers give a lower chance of ejection and need a higher speed for it.
  • defaultTier: 0 means no harness is fitted.
  • ejectChance: chance of ejection (0 to 1).
  • speedBonus: extra km/h needed before ejection can happen.
Your own scripts can fit a harness with exports['revo_hud']:setHarnessTier(tier).

Crash Impact

What a driver feels when the car hits something. Each crash is graded by how hard and from which side it was: light (a knock), medium (a jolt and dark edges) or heavy (a bad head-on with deep blur, ringing ears, a quiet world and a heartbeat). preset sets how hard a hit must be to count and how strong the effects are: Each entry in effects is true (every crash), false (never), or the lightest crash it appears at: 'light', 'medium' or 'heavy'.
  • cameraShake: the camera jolts on impact.
  • blur: vision blurs and pushes in.
  • darkEdges: the screen darkens from the side that was hit.
  • earRinging: ears ring after a heavy crash.
  • muffle: world sounds go quiet while the ears ring.
  • heartbeat: a heartbeat after a heavy crash.
  • ragdoll: an unbelted driver is thrown about on heavy crashes.
  • ejection: an unbelted driver can go through the windscreen.
Other options:
  • volume: crash sounds (0.0 to 1.0). Each player’s own audio setting applies on top.
  • seatbelt: a belt makes crashes one level lighter, no belt one level heavier.
  • headOnOnly: only head-on crashes can be heavy or eject. Side and rear stay medium at most.

Engine Toggle and Boat Anchor

Default keys to switch the engine on and off, and to drop or raise the anchor on boats. Players can rebind them.

Vehicle Controls

The vehicle control panel. Each control hides itself when the vehicle has no use for it.
  • command and key: the command and default key that open the panel.
  • audience: who can open it. Empty means everyone, for example jobs = { 'mechanic' }.
  • show: which controls it offers. Set any to false to remove that control.
    • doors: doors, hood and trunk
    • roof: convertibles
    • indicators: left, hazards and right
    • seatbelt: belt and harness
    • cruise, limiter, transmission: need their own feature to be enabled
    • landingGear: aircraft
    • anchor: boats
    • seats: move to a free seat
    • lights: headlights off, low or high
    • ambience: the Lights page (underglow, headlight colour, cabin light)
    • extras: vehicle extras such as light bars and racks
    • livery: livery, where the car has more than one
  • seatSwap.maxSpeed: km/h, above this a player stays in their seat.
  • seatSwap.allowDriverSeat: passengers may climb into a free driver’s seat.
  • ambience.requireNeonKit: true means underglow only works on cars that had neon fitted at a tuning shop.
  • ambience.headlightColours: fit xenon for free when a headlight color is picked (false hides the colors).
  • ambience.effects: Breathe, pulse, rainbow and flash effects.
  • extrasMinBodyHealth: toggling an extra repairs the car, so it is refused below this body health (0 to 1000).
  • cruiseControl: minSpeed is the km/h needed to engage, and key is an optional keybind.
  • speedLimiter: the min, max, default and step of the limiter in km/h.

Media Player

The vehicle panel’s Media tab: YouTube playback synced for everyone in and near the car. Needs OneSync.
  • controls: who can change what plays: 'driver', 'front' (driver and front passenger) or 'anyone'.
  • distance: meters the sound carries outside the car.
  • maxVolume: the loudest the car can be set (0 to 100).
  • defaultVolume: the starting volume.
  • closedCarVolume: volume heard from outside with the doors and windows shut (0 to 1).
  • otherCarVolume: volume heard from inside a different vehicle (0 to 1).
  • maxQueue: the maximum queue length.
  • allowStreams: also allow direct https audio links (radio, .mp3). Off by default, because listeners’ games fetch the link, so its host sees their IP addresses.
  • audience: which vehicles have a media player. Empty means all.

Quick Pins

The vehicle panel’s Places tab: one-click GPS waypoints. Players’ own pins stay on their PC. The presets are shared with everyone and cannot be deleted.
  • maxPins: how many pins a player can save.
  • presets: your shared places as { label, x, y }. Leave it empty for none.
Use a road-side spot rather than a building center. The game moves a waypoint it cannot route to.

Manual Transmission

  • defaultOn: new drivers start in manual.
  • command: the command that switches manual on and off.
  • toggleKey: an optional keybind to switch manual on and off.
  • shiftUpKey / shiftDownKey: the default shift keys.
  • gearSpeedLimits: each gear tops out at a realistic speed.
  • autoDownshiftOnStop: drop to 1st gear on a full stop.
  • preventBrakeReverse: holding the brake in a forward gear stops the car without reversing.

Nitrous

Built-in nitrous. A car needs a kit and a bottle, kept by plate across restarts. See Nitrous for the full guide and item setup. Setup
  • fitting: how a car gets a kit.
    • 'item': players fit one with kitItem
    • 'all': every car comes with a kit, no items needed
    • 'export': only your own scripts fit kits
  • refill: how the bottle fills again.
    • 'item': bottleItem swaps in a full one
    • 'recharge': it refills itself after a pause
  • kitItem / bottleItem: the item names.
  • fitTime / refillTime: milliseconds to fit a kit or swap a bottle.
  • driveBoost: set to false if another nitrous script runs the boost and the HUD should only show its gauge (see exports['revo_hud']:setNitro).
Keys (each player can rebind them in FiveM’s key settings)
  • key: hold to boost.
  • purgeKey: hold to purge.
  • flowKey: step the flow through stage 1, 2 and 3 ('' for no key).
  • command: the base name of the key commands.
Behavior
  • drainRate: percent of the bottle used per second while boosting (stage 1).
  • purgeDrain: percent per second while purging.
  • maxBurnTime: milliseconds of continuous boost before it overheats (0 means never).
  • cooldown: milliseconds locked out after overheating.
  • overheatDamage: engine damage when it overheats (engine health is 1000). Use 0 for none.
  • minSpeed: km/h needed to engage.
  • rechargeRate: percent per second ('recharge' only).
  • rechargeDelay: milliseconds after use before it recharges ('recharge' only).
Effects
  • exhaustFlames, lightTrails (tail-light trails), purgeSmoke, purgeColour (for example '#8FD6FF' for an icy blue).
  • screenSpeedFx: the driver’s screen while boosting, made of motionBlur (with motionBlurStrength, 0.1 to 1.0), colorEffect (yellow color grading) and cameraShake (with shakeAmount).
  • nativeAudio (GTA’s boost sound), purgeAudio (blow-off hiss) and exhaustPops.
Other
  • allowElectric: an electric car has no bottle to fit, so it gets no gauge and no boost unless this is true.
  • audience: who may fit and use nitrous.

Drift

  • minAngle: degrees of slide before scoring starts.
  • minSpeed: km/h needed to score.
  • breakTime: milliseconds between slides before the combo is lost.
  • comboStep: milliseconds of drifting per combo step.
  • maxCombo: highest multiplier.
  • scoreRate: points per degree per tick.
  • showBest: show the best run beside the live score.
  • saveBest: keep the best run per character, across restarts and relogs.
  • audience: who scores drifts. Empty means everyone.

Speed Limits

The speed limit sign.
  • signStyle: 'US', 'EU', 'AU' or 'Minimal'. Players can change it.
  • default: the limit in km/h where no zone below matches.
  • flashOver: km/h over the limit before the sign warns.
  • zones: the limit in km/h for each GTA zone name. The default config already lists many city and rural zones, so add or change entries to suit your server.

Electric Vehicles

Vehicles shown with a battery gauge instead of fuel, for builds where the game cannot tell. Add the spawn names of your own electric cars here.

Trains

The train speedometer’s dial scale in km/h, by model (a train has no top speed of its own). A train script can send its own values, see Exports.

6. Player Status and Effects

Stress

Stress builds in trouble and eases off once the player is calm. Amounts are points out of 100, varied by plus or minus 50 percent. An amount of 0 turns that source off. preset scales every number: What adds stress
  • speeding: added every 10 seconds above minSpeedUnbuckled (without a seatbelt) or minSpeedBuckled (with one), in km/h.
  • shooting: added per shot, with shootingChance of happening.
  • gettingHurt: each time the player is hurt (at most every 3 seconds).
  • killing: each person the player kills.
  • crashMedium / crashHeavy: medium and heavy crashes (see Config.CrashImpact).
  • exceptWeapons: firing these weapons never adds stress.
How it eases Once the player has gained no stress for calmAfter seconds, stress drops every reliefEvery seconds by an amount that depends on what they are doing.
  • reliefResting: standing still, sitting, a passenger, or parked.
  • reliefDriving: driving.
  • reliefWalking: walking unarmed (running gives none).
  • reliefFood / reliefDrink: a serving that puts back at least mealMin points of food or water.
Other scripts can relieve stress with QBCore’s hud:server:RelieveStress event or exports['revo_hud']:RelieveStress(amount). Who gains stress
  • audience: by default, emergency services on the job do not gain stress, and the vehicle classes only stop speeding and crash stress.
  • jobMultipliers: less stress for jobs that still gain it (name, type or group).
What the player sees (each player can switch these off in /hud)
  • vignetteAt: a soft dark edge starts at this stress level.
  • blurAt: short blurs, every 60 seconds here and every 15 seconds at 100.
  • shakeAt: the camera shakes through each blur.
  • collapseAt: on foot, the player stumbles to the ground and blacks out.

Status Effects

What the player feels as their needs run low and when they get hurt.
  • audioMode: 'hybrid' (GTA’s own voice lines plus HUD sounds), 'native' (GTA’s voice lines only) or 'dsp' (HUD sounds only).
  • hunger: below threshold percent food, a stomach rumble and a slight sway. repeatInterval and dizzyDuration are in milliseconds.
  • thirst: below threshold percent water, a dry cough and heat shimmer.
  • oxygen: below threshold percent air left underwater, suffocation effects start.
  • injury:
    • healthThreshold: below this health percent the player limps.
    • detectLimbHits: also limp after being shot in the legs.
    • painInterval: milliseconds between pain sounds while hurt.
    • bloodOnHit: blood on the screen when hit, from the side it came from.
    • lowHealthVision: below 25 percent health, the edges dim with the heartbeat and blood gathers on the lens.

Alerts

Notifications when a value runs low.
  • sounds: alert sounds.
  • rearm: percent a value must recover before it can alert again.
  • Each alert in list has enabled, threshold, repeatInterval (milliseconds, 0 for once), type (the notification style, such as 'error' or 'warning') and message.
  • inverted: alert when the value rises above the threshold instead of below.
  • vehicleOnly: alert only while in a vehicle.

7. Advanced

The defaults suit almost every server.
  • Config.StatusSource: where hunger, thirst and stress come from: 'auto', 'esx_status' or 'metadata' (QBCore and Qbox player metadata).
  • Config.StaminaSource: where stamina comes from: 'auto' (sprint stamina), 'esx_status', 'metadata' or 'native'.
  • Config.HideUnfedStatuses: hide the hunger and thirst bars when nothing on the server supplies them. Set to false to show them anyway.
  • Config.UpdateInterval: how often the status and vehicle readings update, in milliseconds. Lower is more responsive and costs more CPU. 200 is smooth and light, and 100 is the most responsive. The gauges animate between updates, so values up to about 250 stay smooth.
  • Config.SlowInterval: how often the street name, compass, time and weather update, in milliseconds.
Do not rename config keys or remove sections when you update. Always start from the new config.lua and copy your values into it. See How to Update.