Zerix Development

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):

  1. Mag de HUD zichtbaar zijn? (pause, inventory, cinematic, geladen character)
  2. Radar aan/uit volgens Config.Radar.show
  3. Snapshot: health, armor, needs uit HudBridge, stamina, oxygen, voice, locatie, geld
  4. In voertuig: HudVehicle.snapshot (snelheid, fuel, gordel, cruise)
  5. 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):

  1. qbx_core → qbox
  2. qb-core → qb
  3. es_extended → esx
  4. 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.