Minimal Vanilla HUD
Minimal Vanilla HUD is a clean, compact display for player status and vehicle information. It includes health, armor, stamina, oxygen, hunger, thirst, stress, server ID, game time, a square minimap, street and direction information, speed, RPM, fuel, engine health, seatbelt status, and optional cash and bank balances.
The resource supports ESX, ox_core, QBCore, QBX, standalone servers, and custom framework bridges.
Installation
- Place the
BigDaddy-MinimalVanillaHudfolder in your server's resources directory. -
Add your product key from your Big Daddy Scripts account to
settings.ini:ini [licensing] key1=YOUR_PRODUCT_KEY -
Configure
config.luafor your framework, seatbelt resource, speed unit, and money provider. -
Make sure
ox_libstarts before the HUD, then add the following toserver.cfg:cfg ensure ox_lib ensure BigDaddy-MinimalVanillaHud -
If you use the built-in seatbelt, add this to
server.cfg:cfg setr game_enableFlyThroughWindscreen true
Do not rename the resource folder. It must remain
BigDaddy-MinimalVanillaHudfor licensing, exports, and integrations to work correctly.
{:is-danger}
Configuration
All normal configuration is in config.lua.
| Setting | Default | Description |
|---|---|---|
debug |
false |
Enables limited diagnostic output in the client console. |
ManualStart |
false |
Prevents the HUD from starting automatically. Another resource must call the StartHud export or event. |
framework |
standalone |
Framework bridge to use: esx, ox, qb, qbx, standalone, or custom. |
seatbelt |
custom |
Seatbelt integration to use: default, esx, qbx, qb, or custom. |
speedunit |
mph |
Vehicle speed unit. Use mph or kph. |
ShouldHudHide |
true |
Hides the HUD while the pause menu, big map, or a supported inventory is open. |
DisableExitWithBelt |
false |
Prevents the normal vehicle-exit controls while the seatbelt is fastened. |
HideOnScreenFade |
true |
Hides the NUI during screen fades so it does not remain visible over a black screen. |
RemoveHudComponents |
See config.lua |
Controls which native GTA HUD components are removed. |
command |
togglehud |
Command players use to show or hide the HUD. Do not include /. |
Native HUD components
RemoveHudComponents is indexed by GTA HUD component ID. Set an entry to true to remove that component or false to leave it unchanged. The supplied configuration removes the vehicle name, area name, vehicle class, and native street name.
RemoveHudComponents = {
[6] = true, -- Vehicle name
[7] = true, -- Area name
[8] = true, -- Vehicle class
[9] = true -- Street name
}
The complete table in config.lua contains IDs 1 through 22. Keep every required numeric entry in the table because the resource iterates over it in order.
Framework setup
Set framework to the bridge that matches your server.
| Value | Integration | Status information |
|---|---|---|
standalone |
No framework dependency | Hunger, thirst, and stress are disabled. |
qb |
qb-core |
Reads hunger, thirst, stress, cash, and bank data from QBCore player data. |
qbx |
qbx_core |
Reads hunger, thirst, stress, cash, and bank data from QBX player data. |
esx |
es_extended and esx_status |
Reads hunger, thirst, and stress from esx_status; reads balances from ESX player data. |
ox |
ox_core and compatible status events |
Reads hunger, thirst, and stress from ox:statusTick; attempts to read balances from ox_core. |
custom |
A bridge supplied by you | Requires modules/bridge/custom.lua; see below. |
Start the selected framework and its status resource before BigDaddy-MinimalVanillaHud.
Custom framework bridge
When framework = 'custom', create modules/bridge/custom.lua. It must return a table containing these two functions:
local framework = {}
function framework.getPlayerStatus()
return {
hunger = 100,
thirst = 100,
stress = 0
}
end
function framework.isPlayerLoaded()
return true
end
return framework
Replace the example values with data from your framework. Status values should be numbers from 0 through 100.
Seatbelt setup
The HUD can display seatbelt state from its built-in system or a supported external resource.
| Value | Behavior |
|---|---|
default |
Enables the included /seatbelt command and the default B keybind. |
qb |
Reads seatbelt and harness state from qb-smallresources. |
qbx |
Reads LocalPlayer.state.seatbelt and LocalPlayer.state.harness. |
esx |
Reads seatbelt state from the isSeatbeltOn export in esx_cruisecontrol. |
custom |
Reads LocalPlayer.state.seatbelt, which your seatbelt resource can update directly or through the event below. |
For a custom seatbelt resource, update the HUD from client-side code:
TriggerEvent('BigDaddy-MinimalVanillaHud:client:SetSeatbelt', true) -- Fastened
TriggerEvent('BigDaddy-MinimalVanillaHud:client:SetSeatbelt', false) -- Unfastened
The event also accepts { buckled = true } or { buckled = false }.
Money display
The money display appears when cash or bank balances change. Players can also hold the money-display keybind to show it on demand.
| Setting | Default | Description |
|---|---|---|
money.enabled |
true |
Enables balance polling and the money display. |
money.pollMs |
1000 |
Time in milliseconds between balance checks. |
money.showMs |
5000 |
How long changed balances remain visible. |
money.showInVehicle |
true |
Reserved setting. The current deployed version does not read this value, so money can still appear in a vehicle. |
money.exports |
Configured example | Optional client exports used to retrieve cash and bank balances before framework lookup. |
The included configuration uses BigDaddy-Money:
exports = {
cash = {
resource = 'BigDaddy-Money',
name = 'GetAccountTotal',
args = { 'cash' }
},
bank = {
resource = 'BigDaddy-Money',
name = 'GetAccountTotal',
args = { 'bank' }
}
}
To use automatic framework balance lookup instead, remove or comment out that exports table and set exports = nil. Explicit exports take priority whenever either export returns a value.
Each export definition supports these fields:
| Field | Required | Description |
|---|---|---|
resource |
Yes | Name of the resource that provides the client export. |
name |
Yes | Export function name. |
args |
No | A single argument or an array of arguments passed to the export. |
field |
No | Field to read when the export returns a table. |
The returned value may be a number, a formatted numeric string, or a table containing a common balance field such as amount, total, balance, money, value, cash, or bank.
Commands
| Command | Description |
|---|---|
/togglehud |
Shows or hides the HUD. The command name is configurable with command. |
/toggleminimap |
Toggles the minimap and compass while on foot. The choice is saved for that player. |
/speedleft |
Moves the vehicle speedometer to the left and saves the choice. |
/speedcenter |
Moves the vehicle speedometer to the center and saves the choice. |
/speedright |
Moves the vehicle speedometer to the right and saves the choice. |
/seatbelt |
Toggles the seatbelt when seatbelt = 'default'. |
/debugmoneyhud |
Prints the detected balances and displays them for money-integration testing. |
Keybinds
| Default key | Description | Availability |
|---|---|---|
Z |
Shows cash and bank balances temporarily. | When money.enabled = true. |
B |
Fastens or unfastens the seatbelt. | Only when seatbelt = 'default'. |
Players can change registered keybinds in FiveM's key binding settings.
Client exports
StartHud
Starts and applies the HUD. Use this when ManualStart = true.
exports['BigDaddy-MinimalVanillaHud']:StartHud()
ToggleHud
Toggle the current HUD state by omitting the argument, or pass a boolean to set it explicitly.
exports['BigDaddy-MinimalVanillaHud']:ToggleHud()
exports['BigDaddy-MinimalVanillaHud']:ToggleHud(false)
exports['BigDaddy-MinimalVanillaHud']:ToggleHud(true)
SetHudSuspended
Temporarily hides or restores the HUD without changing the player's own toggle choice. This is useful for character selectors, custom menus, cutscenes, and other full-screen interfaces.
exports['BigDaddy-MinimalVanillaHud']:SetHudSuspended(true)
exports['BigDaddy-MinimalVanillaHud']:SetHudSuspended(false)
isPlayerReady
Returns whether the local player is ready for the HUD. Pass true for the stricter check, which also verifies framework login and player-data readiness where supported.
local ready = exports['BigDaddy-MinimalVanillaHud']:isPlayerReady()
local strictlyReady = exports['BigDaddy-MinimalVanillaHud']:isPlayerReady(true)
toggleHud
Legacy toggle-only export. It reverses the current HUD state and does not accept a forced state.
exports['BigDaddy-MinimalVanillaHud']:toggleHud()
Export names are case-sensitive. ToggleHud and toggleHud are separate exports with different behavior.
Client events
Events can be triggered from another client resource. StartHud can also be sent to a player with TriggerClientEvent from server-side code.
-- Start a manually started HUD
TriggerEvent('BigDaddy-MinimalVanillaHud:client:StartHud')
-- Toggle or explicitly set HUD visibility
TriggerEvent('BigDaddy-MinimalVanillaHud:client:ToggleHud')
TriggerEvent('BigDaddy-MinimalVanillaHud:client:ToggleHud', false)
-- Temporarily suspend or resume the HUD
TriggerEvent('BigDaddy-MinimalVanillaHud:SetHudSuspended', true)
TriggerEvent('BigDaddy-MinimalVanillaHud:SetHudSuspended', false)
-- Update a custom seatbelt state
TriggerEvent('BigDaddy-MinimalVanillaHud:client:SetSeatbelt', true)
Fuel compatibility
The HUD automatically checks for these fuel resources in order and uses the first one that is running:
ox_fuelcdn-fuelLegacyFuelrcore_fuelokokGasStationBigDaddy-Fuel
If none is running, the HUD uses GTA's native vehicle fuel level.
Troubleshooting
The resource does not start
- Confirm the folder is named exactly
BigDaddy-MinimalVanillaHud. - Confirm
ox_libstarts before the HUD. - Confirm the product key is present under
[licensing]insettings.ini. - Check the server console and the client F8 console for errors.
The HUD never appears
- If
ManualStart = true, call theStartHudexport or event after the player has selected a character. - Confirm
frameworkmatches the running framework. - On QB and QBX, confirm player data contains a
citizenidafter character selection. - Temporarily set
debug = trueand check the client F8 console for the reason application is being delayed.
Hunger, thirst, or stress stays at zero
- These values are intentionally disabled in
standalonemode. - Confirm the required status resource is running before the HUD.
- Confirm the configured framework value is correct and lowercase.
- For a custom framework, verify that
modules/bridge/custom.luareturns numeric values from 0 through 100.
Cash and bank balances show zero
- Run
/debugmoneyhudand inspect the client F8 console. - If using explicit exports, confirm the resource name, export name, arguments, and optional return field.
- If using framework lookup, set
money.exports = nilso the configured exports do not take priority. - Remember that money provider exports must be available on the client.
Seatbelt status does not change
- Confirm
seatbeltmatches the seatbelt resource you use. - With
custom, setLocalPlayer.state.seatbeltor trigger theSetSeatbeltclient event whenever the belt state changes. - With
default, verify that the player is in a vehicle and use/seatbeltor the registeredBkeybind.