Wat is dit?
Architectuur van Z-hud: NUI, framework-bridge, voertuig en escrow.
Z-hud is één FiveM-resource. De Lua-client verzamelt vitals, needs, geld en voertuigdata. De NUI (html/) tekent ringen, kompas en speedo.
Hij is geen status-script. Honger, dorst en stress komen van ESX esx_status / esx_basicneeds of van QB/Qbox metadata.
Verantwoordelijkheden
- Statusringen (health t/m stress) naast de minimap
- Voice-indicator (pma-voice / SaltyChat / mumble)
- Kompas, straat, tijd, cash/bank
- Voertuig-HUD: snelheid, RPM, brandstof, gordel, cruise
- Radar tonen/verbergen (
always/vehicle/never) - Standaard GTA-HUD-componenten verbergen
- Settings-UI (
/hudsettings) met lokale KVP - Compat-events van
qb-hud/qbx_hud/esx_hud
Wat hij niet doet
- Geen eigen honger/dorst-tick — dat blijft je needs-script
- Geen database, Discord of ranks
- Geen ox_lib / oxmysql
- Geen minimap-styling (alleen DisplayRadar + zoom)
Startvolgorde
Zet hem ná je framework. Start alleen jouw core:
ensure es_extended # of qb-core / qbx_core
ensure Z-hud
Zonder core start hij als standalone: health/stamina/zuurstof werken, needs blijven leeg tot er events binnenkomen.
Dataflow
Elke Config.UpdateInterval ms (default 200):
- Mag de HUD zichtbaar zijn? (pause, inventory, cinematic, geladen character)
- Radar aan/uit volgens
Config.Radar.show - Snapshot: health, armor, needs uit
HudBridge, stamina, oxygen, voice, locatie, geld - In voertuig:
HudVehicle.snapshot(snelheid, fuel, gordel, cruise) - Alleen bij wijziging: NUI
update
Needs zelf komen event-driven binnen (esx_status:onTick, hud:client:UpdateNeeds, statebags). De loop is de fallback-push naar de UI.
Bestandsstructuur
Z-hud/
fxmanifest.lua
config.lua ← open
README.md ← open
shared/framework.lua ← escrow
client/bridge.lua ← escrow (needs + geld)
client/vehicle.lua ← escrow (speedo, gordel, cruise)
client/main.lua ← escrow (NUI, radar, commands)
editable/client.lua ← open
editable/server.lua ← open
html/ ← open (index.html, style.css, app.js)
Framework-detectie
Config.Framework = 'auto' (default):
qbx_core→qboxqb-core→qbes_extended→esx- anders →
standalone
Forceer met 'esx', 'qb' of 'qbox' als auto mis zit. Qbox-servers hebben vaak óók qb-core; qbx_core wint in auto-modus.
Draai niet twee HUDs tegelijk. Zet qb-hud, qbx_hud en esx_hud uit, anders dubbele ringen en vechtende radar.