Installation
gta6_hud is one HUD resource for three frameworks. The core reads health, armour, stamina, speed, fuel, weapon, compass and zone data straight from game natives. The framework only provides what the game does not know: hunger, thirst, stress, cash and bank, seatbelt and cruise-control state, and the notification function.
Requirements
| Requirement | Details |
|---|---|
| Framework | QBCore, QBox (qbx_core) or ESX Legacy (es_extended), detected at start |
| FiveM Server | Any recent build. Lua 5.4 is enabled in the manifest |
| Internet on the client | The NUI loads the Inter font from Google Fonts and Pricedown from fonts.cdnfonts.com. Montserrat is bundled |
| Database | None |
Optional resources
| Resource | What it adds |
|---|---|
pma-voice | Voice range ring and the radio / talking colours on the microphone chip. Read from LocalPlayer.state.proximity, LocalPlayer.state.radioChannel and the pma-voice:radioActive event |
LegacyFuel, or any resource with provide 'LegacyFuel' (for example qb-fuel) | Fuel level through exports['LegacyFuel']:GetFuel(vehicle). Without it the HUD falls back to the GetVehicleFuelLevel native |
interact-sound | Menu open, close, toggle and restart sounds. Without it the HUD is silent |
gta6_notify | Notifications in the same visual style. See the framework notes below for how HUD notifications reach it |
Step by Step
1. Folder structure
Copy the gta6_hud folder into resources. A [gta6] category keeps the collection together:
resources/
[gta6]/
gta6_hud/
client/
core.lua
adapter_qb.lua
adapter_qbx.lua
adapter_esx.lua
stress.lua
minimap.lua
player.lua
compass.lua
voice.lua
weapon.lua
html/
index.html
app.js
style.css
fonts/
weapons/ (101 weapon icons)
locales/
en.lua
pl.lua
... (12 languages)
server/
main.lua
shared/
locale.lua
stream/
gta6_graphics.ytd
minimap.gfx
minimap.ytd
config.lua
fxmanifest.lua
2. Server config
Start the resource after your framework and replace the official HUD instead of running both.
- QBCore
- QBox
- ESX
ensure qb-core
ensure gta6_hud # instead of ensure qb-hud
Stop qb-hud (remove or comment out its ensure line). gta6_hud listens to the same hud:client:* and seatbelt:client:* events qb-hud used, so qb-smallresources, qb-ambulancejob, seatbelt and nitro scripts keep working without changes.
ensure qbx_core
ensure gta6_hud # instead of ensure qbx_hud
Stop qbx_hud. On QBox the HUD reads the player state bags hunger, thirst, stress, seatbelt and harness (set by qbx_core and qbx_smallresources), the seatbelt:client:ToggleCruise event from qbx_cruise and money changes from hud:client:OnMoneyChange. Nothing else needs to be configured. This resource does not need ox_lib.
ensure [core]
ensure [gta6] # or ensure gta6_hud
Then:
- Stop
esx_hud. - In
esx_status/config.luasetConfig.Display = falseso esx_status stops drawing its own bars. gta6_hud still receives the values through theesx_status:onTickevent. - In
esx_cruisecontrol/config.luasetHudResource = 'gta6_hud'. The cruise-control script calls theSeatbeltStateandCruiseControlStateexports on that resource, and gta6_hud implements both.
Detection happens once at start, in this order: qbx_core, then qb-core, then es_extended. QBox is checked first on purpose, because qbx_core declares provide 'qb-core' and would otherwise be mistaken for QBCore. If none of the three is started, the HUD still draws everything that comes from natives, but hunger, thirst, stress and money stay at their defaults and notifications go only to gta6_notify (if it is running).
3. Do not run these next to gta6_hud
| Resource | Why |
|---|---|
gta6_minimap | gta6_hud streams the same minimap.gfx, minimap.ytd and gta6_graphics.ytd and sets up the minimap itself. With two copies of the same stream files the last resource to start wins |
gta6_weaponhud | gta6_hud has the same weapon block built in (Config.CustomWeaponHud). Two blocks would draw on top of each other in the top-right corner |
qb-hud, qbx_hud, esx_hud | They draw their own bars and radar and fight over DisplayRadar |
4. First start
Restart the server or ensure gta6_hud. As soon as the NUI page has loaded it reports itself ready, and the HUD applies its settings and fires the hud:client:LoadMap event, which swaps the radar mask. The same happens again two seconds after the player loads. In-game:
- Press
I(default; rebindable in FiveM Settings → Key Bindings → FiveM under "HUD: ustawienia") or type/hudmenuto open the settings menu. - Type
/cashor/bank(QBCore and QBox only) to flash the money block. - Get into a vehicle: the speed readout, vehicle tile, zone pill and compass should appear.
Next steps
- Configuration — every key in
config.lua - Features — what each HUD element shows and when it hides
- HUD Menu — the in-game settings panel
- Framework Compatibility — what each adapter reads
- Events & Exports — integration points for other scripts
- NUI & Assets — fonts, icons, stream files and credits
- Troubleshooting