iHUD v2
iHUD v2 - A lightweight, modern ESX HUD that shows player status , jobs , money , and a voice-talking cue via NUI. Compatible with ESX framework for FiveM serve
Aperçu vidéo
Click to load video from YouTube. By watching, you agree to their privacy policy.
Files & manifest
fxmanifest.luaui_page NUI/index.html- Loads CSS/JS/assets from
NUI/src/* shared_script config.luaclient_script client/*.lua
- Main client logic:
client/main.lua - Configuration:
config.lua - NUI:
NUI/index.html,NUI/src/css/*,NUI/src/js/{config.js,index.js,events.js},NUI/src/images/micro.png
Configuration (config.lua)
Config = {
DEBUG = false,
-- How to get ESX:
ESX_method = function, -- function (export) or event
eventNameESX = esx:getSharedObject,
extendedName = extended, -- e.g. es_extended / extended
VERSION_ESX = final, -- legacy or final (informational)
-- Status source (list of {name, percent}):
statusEventName = esx_customui:updateStatus,
ACTIVED = {
JOB = true,
JOB2 = true,
MONEY = true,
BLACK_MONEY = true,
MICRO = true
}
}
Notes
- If you use an alternative status tick (e.g.
sigma_hud:onTick), the client listens onConfig.statusEventNameor falls back tosigma_hud:onTick.
Client events & data flow
- Initialization
esx:playerLoaded→ HUD initializes with ESX player data.- On init the HUD is shown and NUI receives:
SendNUIMessage({ type = init, config = Config.ACTIVED })
- Status updates (Hunger/Thirst)
- Listen to
Config.statusEventName(defaultesx_customui:updateStatus) and emit a list like:TriggerEvent(esx_customui:updateStatus, { { name = hunger, percent = 48.0 }, { name = thirst, percent = 72.0 } }) - HUD maps those to the two status bars.
- Listen to
- Job / Second Job
esx:setJobandesx:setJob2are handled automatically. NUI receives:SendNUIMessage({ type = updateJob, jobs = { { label = job.label, grade = job.grade_label }, { label = job2.label, grade = job2.grade_label } }})
- Money
esx:setAccountMoneyupdates cash and black money:SendNUIMessage({ type = updateMoney, moneys = { { label = Liquide, value = cash.money }, { label = black.label, value = black.money } }})
- Voice (Talk indicator)
- Polls
NetworkIsPlayerTalking(PlayerId()); shows/hides mic icon with:SendNUIMessage({ type = toogleMicro, show = true/false }) - A helper to change proximity classes exists in NUI (
type = changeMicro), so you can hook it into your voice resource if desired.
- Polls
- Show/Hide HUD (custom)
- Trigger from anywhere client-side:
TriggerEvent(iHud-V2::show, true) -- show TriggerEvent(iHud-V2::show, false) -- hide
- Trigger from anywhere client-side:
Installation
- Drop the folder into your
resources(e.g.resources/[ui]/iHud-V2). - Ensure the resource:
ensure iHud-V2 - Configure ESX access method, status event name, and toggle sections in
config.lua. - Confirm your status script emits
{ name = hunger/thirst, percent = <0-100> }arrays toConfig.statusEventName.
Compatibility & tips
- ESX retrieval
functionmode expects:ESX = exports[Config.extendedName]:getSharedObject()eventmode expects:TriggerEvent(Config.eventNameESX, function(obj) ESX = obj end)
- Voice proximity
- The HUD ships with a talking indicator out-of-the-box. To show proximity levels (whisper/normal/shout), have your voice resource send a NUI message with
type=changeMicroand your chosen CSS class.
- The HUD ships with a talking indicator out-of-the-box. To show proximity levels (whisper/normal/shout), have your voice resource send a NUI message with
- Styling
- Fonts & icons loaded from CDNs; UI is responsive and kept minimal for RP servers.
If you want, I can tailor the text above to your exact server naming and include a short “Server Requirements / Dependencies” block (e.g., your status/voice resource names) or add screenshots.




