{"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":"2025-12-24T07:30:02","modified_gmt":"2025-12-24T06:30:02","slug":"ihud-v2","status":"publish","type":"product","link":"https:\/\/fivemx.com\/pt\/ihud-v2\/","title":{"rendered":"iHUD v2"},"content":{"rendered":"<p><iframe title=\"ADN&#039;S | iHud-V2 | NUI | Beautiful animations | FiveM Scripts\" width=\"1290\" height=\"726\" src=\"https:\/\/www.youtube.com\/embed\/PmOURGKitL0?feature=oembed\" loading=\"lazy\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<h2>Files &amp; manifest<\/h2>\n<ul>\n<li><code>fxmanifest.lua<\/code>\n<ul>\n<li><code>ui_page \"NUI\/index.html\"<\/code><\/li>\n<li>Loads CSS\/JS\/assets from <code>NUI\/src\/*<\/code><\/li>\n<li><code>shared_script \"config.lua\"<\/code><\/li>\n<li><code>client_script \"client\/*.lua\"<\/code><\/li>\n<\/ul>\n<\/li>\n<li>Main client logic: <code>client\/main.lua<\/code><\/li>\n<li>Configuration: <code>config.lua<\/code><\/li>\n<li>NUI: <code>NUI\/index.html<\/code>, <code>NUI\/src\/css\/*<\/code>, <code>NUI\/src\/js\/{config.js,index.js,events.js}<\/code>, <code>NUI\/src\/images\/micro.png<\/code><\/li>\n<\/ul>\n<h2>Configuration (config.lua)<\/h2>\n<pre><code 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>sigma_hud:onTick<\/code>), the client listens on <code>Config.statusEventName<\/code> <strong>or<\/strong> falls back to <code>\"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>esx:playerLoaded<\/code> \u2192 HUD initializes with ESX player data.<\/li>\n<li>On init the HUD is shown and NUI receives:\n<pre><code 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>Config.statusEventName<\/code> (default <code>esx_customui:updateStatus<\/code>) and emit a list like:\n<pre><code 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>esx:setJob<\/code> and <code>esx:setJob2<\/code> are handled automatically. NUI receives:\n<pre><code 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>esx:setAccountMoney<\/code> updates cash and black money:\n<pre><code 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>NetworkIsPlayerTalking(PlayerId())<\/code>; shows\/hides mic icon with:\n<pre><code 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>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><code 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>resources<\/code> (e.g. <code>resources\/[ui]\/iHud-V2<\/code>).<\/li>\n<li>Ensure the resource:\n<pre><code>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>config.lua<\/code>.<\/li>\n<li>Confirm your status script emits <code>{ name = \"hunger\"\/\"thirst\", percent = &lt;0-100&gt; }<\/code> arrays to <code>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>function<\/code> mode expects: <code>ESX = exports[Config.extendedName]:getSharedObject()<\/code><\/li>\n<li><code>event<\/code> mode expects: <code>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>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","protected":false},"excerpt":{"rendered":"<p data-start=\"128\" data-end=\"309\">Um HUD ESX leve e moderno que mostra ao jogador <strong data-start=\"176\" data-end=\"186\">status<\/strong>, <strong data-start=\"188\" data-end=\"196\">empregos<\/strong>, <strong data-start=\"198\" data-end=\"207\">dinheiro<\/strong>e um <strong data-start=\"215\" data-end=\"232\">voz falando<\/strong> Controle via NUI. Projetado para alto desempenho e f\u00e1cil integra\u00e7\u00e3o com servidores ESX existentes.<\/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\">Barras de status<\/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\">Fome<\/strong> e <strong data-start=\"363\" data-end=\"373\">Sede<\/strong> Com preenchimento animado e r\u00f3tulos de porcentagem.<\/p>\n<\/li>\n<li data-start=\"418\" data-end=\"474\">\n<p data-start=\"420\" data-end=\"474\">Consome eventos de status padr\u00e3o do ESX (consulte Integra\u00e7\u00e3o).<\/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\">An\u00fancio de emprego<\/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\">Prim\u00e1rio <strong data-start=\"508\" data-end=\"515\">Trabalho<\/strong> e opcional <strong data-start=\"529\" data-end=\"543\">Segundo emprego<\/strong> (n\u00edvel de dificuldade suportado).<\/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\">Exibi\u00e7\u00e3o de dinheiro<\/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\">Dinheiro<\/strong> (l\u00edquido) e <strong data-start=\"612\" data-end=\"627\">Dinheiro sujo<\/strong> Com r\u00f3tulos claros.<\/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\">Indicador de voz<\/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\">O \u00edcone do microfone aparece. <strong data-start=\"700\" data-end=\"736\">somente enquanto o jogador estiver falando<\/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\">As classes de proximidade opcionais est\u00e3o configuradas na interface do usu\u00e1rio e podem ser ativadas ou desativadas se voc\u00ea integrar com seu sistema de voz.<\/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\">Se\u00e7\u00f5es altern\u00e1veis<\/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\">Ativar\/desativar blocos HUD (Trabalho, Trabalho 2, Dinheiro, Dinheiro Negro, Micro) atrav\u00e9s da configura\u00e7\u00e3o.<\/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\">Compat\u00edvel com a vers\u00e3o ESX<\/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\">Funciona com os estilos ESX v1 final e &quot;legado&quot;; suporta a recupera\u00e7\u00e3o do ESX por meio de fun\u00e7\u00e3o exportada ou evento legado.<\/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 primeiro<\/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\">Interface de usu\u00e1rio limpa (HTML\/CSS\/JS); todos os dados fluem atrav\u00e9s dela. <code data-start=\"1204\" data-end=\"1220\">Enviar mensagem NUIM<\/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\/pt\/wp-json\/wp\/v2\/product\/201245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fivemx.com\/pt\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/fivemx.com\/pt\/wp-json\/wp\/v2\/types\/product"}],"replies":[{"embeddable":true,"href":"https:\/\/fivemx.com\/pt\/wp-json\/wp\/v2\/comments?post=201245"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fivemx.com\/pt\/wp-json\/wp\/v2\/media\/201247"}],"wp:attachment":[{"href":"https:\/\/fivemx.com\/pt\/wp-json\/wp\/v2\/media?parent=201245"}],"wp:term":[{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/fivemx.com\/pt\/wp-json\/wp\/v2\/product_brand?post=201245"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/fivemx.com\/pt\/wp-json\/wp\/v2\/product_cat?post=201245"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/fivemx.com\/pt\/wp-json\/wp\/v2\/product_tag?post=201245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}