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

  1. Place the BigDaddy-MinimalVanillaHud folder in your server's resources directory.
  2. Add your product key from your Big Daddy Scripts account to settings.ini:

    ini [licensing] key1=YOUR_PRODUCT_KEY

  3. Configure config.lua for your framework, seatbelt resource, speed unit, and money provider.

  4. Make sure ox_lib starts before the HUD, then add the following to server.cfg:

    cfg ensure ox_lib ensure BigDaddy-MinimalVanillaHud

  5. 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-MinimalVanillaHud for 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:

  1. ox_fuel
  2. cdn-fuel
  3. LegacyFuel
  4. rcore_fuel
  5. okokGasStation
  6. BigDaddy-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_lib starts before the HUD.
  • Confirm the product key is present under [licensing] in settings.ini.
  • Check the server console and the client F8 console for errors.

The HUD never appears

  • If ManualStart = true, call the StartHud export or event after the player has selected a character.
  • Confirm framework matches the running framework.
  • On QB and QBX, confirm player data contains a citizenid after character selection.
  • Temporarily set debug = true and 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 standalone mode.
  • 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.lua returns numeric values from 0 through 100.

Cash and bank balances show zero

  • Run /debugmoneyhud and 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 = nil so the configured exports do not take priority.
  • Remember that money provider exports must be available on the client.

Seatbelt status does not change

  • Confirm seatbelt matches the seatbelt resource you use.
  • With custom, set LocalPlayer.state.seatbelt or trigger the SetSeatbelt client event whenever the belt state changes.
  • With default, verify that the player is in a vehicle and use /seatbelt or the registered B keybind.