{"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\/de\/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\">Ein leichtes, modernes ESX-HUD, das dem Spieler anzeigt <strong data-start=\"176\" data-end=\"186\">Status<\/strong>, <strong data-start=\"188\" data-end=\"196\">Jobs<\/strong>, <strong data-start=\"198\" data-end=\"207\">Geld<\/strong>und ein <strong data-start=\"215\" data-end=\"232\">Sprachkommunikation<\/strong> Cue \u00fcber NUI. Entwickelt f\u00fcr hohe Leistung und einfache Integration in bestehende ESX-Server.<\/p>\n<h2 data-start=\"311\" data-end=\"322\">Merkmale<\/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\">Statusleisten<\/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\">Hunger<\/strong> Und <strong data-start=\"363\" data-end=\"373\">Durst<\/strong> mit animierter F\u00fcllung und Prozentangaben.<\/p>\n<\/li>\n<li data-start=\"418\" data-end=\"474\">\n<p data-start=\"420\" data-end=\"474\">Verbraucht standardm\u00e4\u00dfige ESX-Statusereignisse (siehe 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\">Stellenanzeige<\/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\u00e4r <strong data-start=\"508\" data-end=\"515\">Arbeit<\/strong> und optional <strong data-start=\"529\" data-end=\"543\">Zweitjob<\/strong> (Unterrichtsstufe unterst\u00fctzt).<\/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\">Geldanzeige<\/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\">Kasse<\/strong> (fl\u00fcssig) und <strong data-start=\"612\" data-end=\"627\">Schwarzgeld<\/strong> mit eindeutigen Etiketten.<\/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\">Sprachanzeige<\/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\">Das Mikrofonsymbol erscheint. <strong data-start=\"700\" data-end=\"736\">nur w\u00e4hrend der Spieler spricht<\/strong> (<code data-start=\"738\" data-end=\"762\">NetzwerkIstSpielerSprechend<\/code>).<\/p>\n<\/li>\n<li data-start=\"767\" data-end=\"875\">\n<p data-start=\"769\" data-end=\"875\">Optionale Proximity-Klassen sind in der Benutzeroberfl\u00e4che integriert und k\u00f6nnen umgeschaltet werden, wenn Sie eine Integration mit Ihrem Sprachsystem vornehmen.<\/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\">Ein- und ausschaltbare Abschnitte<\/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\">HUD-Bl\u00f6cke (Job, Job2, Geld, Schwarzgeld, Mikro) \u00fcber die Konfiguration aktivieren\/deaktivieren.<\/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-Versionskompatibel<\/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\">Funktioniert mit ESX v1 final und \u201eLegacy\u201c-Styles; unterst\u00fctzt den Abruf von ESX \u00fcber exportierte Funktionen oder Legacy-Ereignisse.<\/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 zuerst<\/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\">Saubere Benutzeroberfl\u00e4che (HTML\/CSS\/JS); alle Daten flie\u00dfen durch <code data-start=\"1204\" data-end=\"1220\">SendNUIMeage<\/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\/de\/wp-json\/wp\/v2\/product\/201245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fivemx.com\/de\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/fivemx.com\/de\/wp-json\/wp\/v2\/types\/product"}],"replies":[{"embeddable":true,"href":"https:\/\/fivemx.com\/de\/wp-json\/wp\/v2\/comments?post=201245"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fivemx.com\/de\/wp-json\/wp\/v2\/media\/201247"}],"wp:attachment":[{"href":"https:\/\/fivemx.com\/de\/wp-json\/wp\/v2\/media?parent=201245"}],"wp:term":[{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/fivemx.com\/de\/wp-json\/wp\/v2\/product_brand?post=201245"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/fivemx.com\/de\/wp-json\/wp\/v2\/product_cat?post=201245"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/fivemx.com\/de\/wp-json\/wp\/v2\/product_tag?post=201245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}