{"id":201245,"date":"2025-11-03T15:15:59","date_gmt":"2025-11-03T14:15:59","guid":{"rendered":"https:\/\/fivemx.com\/?post_type=product&#038;p=201245"},"modified":"2026-08-06T12:43:59","modified_gmt":"2026-08-06T10:43:59","slug":"ihud-v2","status":"publish","type":"product","link":"https:\/\/fivemx.com\/es\/ihud-v2\/","title":{"rendered":"iHUD v2"},"content":{"rendered":"<div class=\"video-container\"><iframe title=\"ADN&amp;apos;S | iHud-V2 | NUI | Beautiful animations | FiveM Scripts\" width=\"1170\" height=\"658\" src=\"https:\/\/www.youtube.com\/embed\/PmOURGKitL0?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<h2>Files &amp; manifest<\/h2>\n<ul>\n<li><code data-no-translation=\"\">fxmanifest.lua<\/code>\n<ul>\n<li><code data-no-translation=\"\">ui_page \"NUI\/index.html\"<\/code><\/li>\n<li>Loads CSS\/JS\/assets from <code data-no-translation=\"\">NUI\/src\/*<\/code><\/li>\n<li><code data-no-translation=\"\">shared_script \"config.lua\"<\/code><\/li>\n<li><code data-no-translation=\"\">client_script \"client\/*.lua\"<\/code><\/li>\n<\/ul>\n<\/li>\n<li>Main client logic: <code data-no-translation=\"\">client\/main.lua<\/code><\/li>\n<li>Configuration: <code data-no-translation=\"\">config.lua<\/code><\/li>\n<li>NUI: <code data-no-translation=\"\">NUI\/index.html<\/code>, <code data-no-translation=\"\">NUI\/src\/css\/*<\/code>, <code data-no-translation=\"\">NUI\/src\/js\/{config.js,index.js,events.js}<\/code>, <code data-no-translation=\"\">NUI\/src\/images\/micro.png<\/code><\/li>\n<\/ul>\n<h2>Configuration (config.lua)<\/h2>\n<pre data-no-translation=\"\"><code data-no-translation=\"\" class=\"language-lua\">Config = {\r\n  DEBUG = false,\r\n\r\n  -- How to get ESX:\r\n  ESX_method   = \"function\",         -- \"function\" (export) or \"event\"\r\n  eventNameESX = \"esx:getSharedObject\",\r\n  extendedName = \"extended\",         -- e.g. \"es_extended\" \/ \"extended\"\r\n  VERSION_ESX  = \"final\",            -- \"legacy\" or \"final\" (informational)\r\n\r\n  -- Status source (list of {name, percent}):\r\n  statusEventName = \"esx_customui:updateStatus\",\r\n\r\n  ACTIVED = {\r\n    JOB         = true,\r\n    JOB2        = true,\r\n    MONEY       = true,\r\n    BLACK_MONEY = true,\r\n    MICRO       = true\r\n  }\r\n}\r\n<\/code><\/pre>\n<h3>Notes<\/h3>\n<ul>\n<li>If you use an alternative status tick (e.g. <code data-no-translation=\"\">sigma_hud:onTick<\/code>), the client listens on <code data-no-translation=\"\">Config.statusEventName<\/code> <strong>or<\/strong> falls back to <code data-no-translation=\"\">\"sigma_hud:onTick\"<\/code>.<\/li>\n<\/ul>\n<h2>Client events &amp; data flow<\/h2>\n<ul>\n<li><strong>Initialization<\/strong>\n<ul>\n<li><code data-no-translation=\"\">esx:playerLoaded<\/code> \u2192 HUD initializes with ESX player data.<\/li>\n<li>On init the HUD is shown and NUI receives:\n<pre data-no-translation=\"\"><code data-no-translation=\"\" class=\"language-lua\">SendNUIMessage({ type = \"init\", config = Config.ACTIVED })\r\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<li><strong>Status updates<\/strong> (Hunger\/Thirst)\n<ul>\n<li>Listen to <code data-no-translation=\"\">Config.statusEventName<\/code> (default <code data-no-translation=\"\">esx_customui:updateStatus<\/code>) and emit a list like:\n<pre data-no-translation=\"\"><code data-no-translation=\"\" class=\"language-lua\">TriggerEvent(\"esx_customui:updateStatus\", {\r\n  { name = \"hunger\", percent = 48.0 },\r\n  { name = \"thirst\", percent = 72.0 }\r\n})\r\n<\/code><\/pre>\n<\/li>\n<li>HUD maps those to the two status bars.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Job \/ Second Job<\/strong>\n<ul>\n<li><code data-no-translation=\"\">esx:setJob<\/code> and <code data-no-translation=\"\">esx:setJob2<\/code> are handled automatically. NUI receives:\n<pre data-no-translation=\"\"><code data-no-translation=\"\" class=\"language-lua\">SendNUIMessage({ type = \"updateJob\", jobs = {\r\n  { label = job.label, grade = job.grade_label },\r\n  { label = job2.label, grade = job2.grade_label }\r\n}})\r\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<li><strong>Money<\/strong>\n<ul>\n<li><code data-no-translation=\"\">esx:setAccountMoney<\/code> updates cash and black money:\n<pre data-no-translation=\"\"><code data-no-translation=\"\" class=\"language-lua\">SendNUIMessage({ type = \"updateMoney\", moneys = {\r\n  { label = \"Liquide\", value = cash.money },\r\n  { label = black.label, value = black.money }\r\n}})\r\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<li><strong>Voice (Talk indicator)<\/strong>\n<ul>\n<li>Polls <code data-no-translation=\"\">NetworkIsPlayerTalking(PlayerId())<\/code>; shows\/hides mic icon with:\n<pre data-no-translation=\"\"><code data-no-translation=\"\" class=\"language-lua\">SendNUIMessage({ type = \"toogleMicro\", show = true\/false })\r\n<\/code><\/pre>\n<\/li>\n<li>A helper to change proximity classes exists in NUI (<code data-no-translation=\"\">type = \"changeMicro\"<\/code>), so you can hook it into your voice resource if desired.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Show\/Hide HUD (custom)<\/strong>\n<ul>\n<li>Trigger from anywhere client-side:\n<pre data-no-translation=\"\"><code data-no-translation=\"\" class=\"language-lua\">TriggerEvent(\"iHud-V2::show\", true)  -- show\r\nTriggerEvent(\"iHud-V2::show\", false) -- hide\r\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>Installation<\/h2>\n<ol>\n<li>Drop the folder into your <code data-no-translation=\"\">resources<\/code> (e.g. <code data-no-translation=\"\">resources\/[ui]\/iHud-V2<\/code>).<\/li>\n<li>Ensure the resource:\n<pre data-no-translation=\"\"><code data-no-translation=\"\">ensure iHud-V2\r\n<\/code><\/pre>\n<\/li>\n<li>Configure <strong>ESX access method<\/strong>, <strong>status event name<\/strong>, and toggle sections in <code data-no-translation=\"\">config.lua<\/code>.<\/li>\n<li>Confirm your status script emits <code data-no-translation=\"\">{ name = \"hunger\"\/\"thirst\", percent = &lt;0-100&gt; }<\/code> arrays to <code data-no-translation=\"\">Config.statusEventName<\/code>.<\/li>\n<\/ol>\n<h2>Compatibility &amp; tips<\/h2>\n<ul>\n<li><strong>ESX retrieval<\/strong>\n<ul>\n<li><code data-no-translation=\"\">function<\/code> mode expects: <code data-no-translation=\"\">ESX = exports[Config.extendedName]:getSharedObject()<\/code><\/li>\n<li><code data-no-translation=\"\">event<\/code> mode expects: <code data-no-translation=\"\">TriggerEvent(Config.eventNameESX, function(obj) ESX = obj end)<\/code><\/li>\n<\/ul>\n<\/li>\n<li><strong>Voice proximity<\/strong>\n<ul>\n<li>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 <code data-no-translation=\"\">type=\"changeMicro\"<\/code> and your chosen CSS class.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Styling<\/strong>\n<ul>\n<li>Fonts &amp; icons loaded from CDNs; UI is responsive and kept minimal for RP servers.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<hr \/>\n<p>If you want, I can tailor the text above to your exact server naming and include a short \u201cServer Requirements \/ Dependencies\u201d block (e.g., your status\/voice resource names) or add screenshots.<\/p>\n<div class=\"video-container\"><iframe title=\"ADN&amp;apos;S | iHud-V2 | NUI | Beautiful animations | FiveM Scripts\" width=\"1170\" height=\"658\" src=\"https:\/\/www.youtube.com\/embed\/PmOURGKitL0?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n","protected":false},"excerpt":{"rendered":"<p data-start=\"128\" data-end=\"309\">A lightweight, modern ESX HUD that shows player <strong data-start=\"176\" data-end=\"186\">estado<\/strong>, <strong data-start=\"188\" data-end=\"196\">empleos<\/strong>, <strong data-start=\"198\" data-end=\"207\">dinero<\/strong>, y una <strong data-start=\"215\" data-end=\"232\">voice-talking<\/strong> cue via NUI. Built for performance and easy plug-in to existing ESX servers.<\/p>\n<h2 data-start=\"311\" data-end=\"322\">Caracter\u00edsticas<\/h2>\n<ul data-start=\"324\" data-end=\"1221\">\n<li data-start=\"324\" data-end=\"474\">\n<p data-start=\"326\" data-end=\"343\"><strong data-start=\"326\" data-end=\"341\">Status bars<\/strong><\/p>\n<ul data-start=\"346\" data-end=\"474\">\n<li data-start=\"346\" data-end=\"415\">\n<p data-start=\"348\" data-end=\"415\"><strong data-start=\"348\" data-end=\"358\">Hambre<\/strong> y <strong data-start=\"363\" data-end=\"373\">Sed<\/strong> with animated fill and percentage labels.<\/p>\n<\/li>\n<li data-start=\"418\" data-end=\"474\">\n<p data-start=\"420\" data-end=\"474\">Consumes standard ESX status events (see Integration).<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-start=\"476\" data-end=\"562\">\n<p data-start=\"478\" data-end=\"495\"><strong data-start=\"478\" data-end=\"493\">Job display<\/strong><\/p>\n<ul data-start=\"498\" data-end=\"562\">\n<li data-start=\"498\" data-end=\"562\">\n<p data-start=\"500\" data-end=\"562\">Primario <strong data-start=\"508\" data-end=\"515\">Trabajo<\/strong> and optional <strong data-start=\"529\" data-end=\"543\">Second Job<\/strong> (grade supported).<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-start=\"564\" data-end=\"646\">\n<p data-start=\"566\" data-end=\"585\"><strong data-start=\"566\" data-end=\"583\">Money display<\/strong><\/p>\n<ul data-start=\"588\" data-end=\"646\">\n<li data-start=\"588\" data-end=\"646\">\n<p data-start=\"590\" data-end=\"646\"><strong data-start=\"590\" data-end=\"598\">Dinero<\/strong> (liquid) and <strong data-start=\"612\" data-end=\"627\">Black Money<\/strong> with clear labels.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-start=\"648\" data-end=\"875\">\n<p data-start=\"650\" data-end=\"671\"><strong data-start=\"650\" data-end=\"669\">Voice indicator<\/strong><\/p>\n<ul data-start=\"674\" data-end=\"875\">\n<li data-start=\"674\" data-end=\"764\">\n<p data-start=\"676\" data-end=\"764\">Microphone icon appears <strong data-start=\"700\" data-end=\"736\">only while the player is talking<\/strong> (<code data-start=\"738\" data-end=\"762\">NetworkIsPlayerTalking<\/code>).<\/p>\n<\/li>\n<li data-start=\"767\" data-end=\"875\">\n<p data-start=\"769\" data-end=\"875\">Optional proximity classes are wired in the UI and can be toggled if you integrate with your voice system.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-start=\"877\" data-end=\"985\">\n<p data-start=\"879\" data-end=\"904\"><strong data-start=\"879\" data-end=\"902\">Toggleable sections<\/strong><\/p>\n<ul data-start=\"907\" data-end=\"985\">\n<li data-start=\"907\" data-end=\"985\">\n<p data-start=\"909\" data-end=\"985\">Enable\/disable HUD blocks (Job, Job2, Money, Black Money, Micro) via config.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-start=\"987\" data-end=\"1127\">\n<p data-start=\"989\" data-end=\"1015\"><strong data-start=\"989\" data-end=\"1013\">ESX-version friendly<\/strong><\/p>\n<ul data-start=\"1018\" data-end=\"1127\">\n<li data-start=\"1018\" data-end=\"1127\">\n<p data-start=\"1020\" data-end=\"1127\">Works with ESX v1 final and \u201clegacy\u201d styles; supports retrieving ESX via exported function or legacy event.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-start=\"1129\" data-end=\"1221\">\n<p data-start=\"1131\" data-end=\"1146\"><strong data-start=\"1131\" data-end=\"1144\">NUI first<\/strong><\/p>\n<ul data-start=\"1149\" data-end=\"1221\">\n<li data-start=\"1149\" data-end=\"1221\">\n<p data-start=\"1151\" data-end=\"1221\">Clean Inter UI (HTML\/CSS\/JS); all data flows through <code data-start=\"1204\" data-end=\"1220\">SendNUIMessage<\/code>.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 data-start=\"1223\" data-end=\"1242\"><\/h2>","protected":false},"featured_media":201247,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"product_brand":[],"product_cat":[1893,96],"product_tag":[],"class_list":["post-201245","product","type-product","status-publish","has-post-thumbnail","product_cat-fivem-hud","product_cat-esx-scripts","first","instock","sale","downloadable","virtual","taxable","purchasable","product-type-simple"],"_links":{"self":[{"href":"https:\/\/fivemx.com\/es\/wp-json\/wp\/v2\/product\/201245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fivemx.com\/es\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/fivemx.com\/es\/wp-json\/wp\/v2\/types\/product"}],"replies":[{"embeddable":true,"href":"https:\/\/fivemx.com\/es\/wp-json\/wp\/v2\/comments?post=201245"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fivemx.com\/es\/wp-json\/wp\/v2\/media\/201247"}],"wp:attachment":[{"href":"https:\/\/fivemx.com\/es\/wp-json\/wp\/v2\/media?parent=201245"}],"wp:term":[{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/fivemx.com\/es\/wp-json\/wp\/v2\/product_brand?post=201245"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/fivemx.com\/es\/wp-json\/wp\/v2\/product_cat?post=201245"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/fivemx.com\/es\/wp-json\/wp\/v2\/product_tag?post=201245"}],"curies":[{"name":"gracias","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}