Ce guide est pour l'instant en anglais.
concept_hud)Use this guide with the product page and the included CHANGELOG.md for your installed version and release history. Requires Concept Bridge.
Clean by default. Fully configurable per server and per player. A React HUD for FiveM that reads every framework through the Concept Bridge (concept_bridge), so it runs on OX, Qbox, QB, ESX or standalone, with no code changes. Configs and locales stay open; Cfx Asset Escrow protects the core logic.
| Resource | Required | Notes |
|---|---|---|
ox_lib |
Yes | Callbacks, cache, locale and scaleform. |
concept_bridge (Concept Bridge) |
Yes | Single integration layer and a hard dependency. Download it from GitHub and use the folder name concept_bridge. It provides the seatbelt, voice and weapons modules and normalized events the HUD consumes. See the installation and API guide. |
oxmysql |
Yes | Required by Concept Bridge; start it before the bridge. |
| OneSync | Yes | Required by Concept Bridge. |
| Server artifact 6116 or newer | Yes | Required by Concept Bridge. |
There is no framework mode to set. The bridge resolves the providers you run:
| Domain | Supported providers |
|---|---|
| Framework | ox_core, qbx_core, qb-core, es_extended; custom frameworks via its module API or the push exports, or no framework at all. Standalone runs on the bridge's built-in default provider, money / job / needs show seed values (see Config.StandaloneNeeds) and are pushable via the exports below |
| Inventory | ox_inventory, qb-inventory, ps-inventory, qs-inventory, codem-inventory, core_inventory, jpr-inventory, one_inventory, origen_inventory, tgiann-inventory |
| Weapons | Current weapon read through the inventory provider (image, label, ammo) |
| Fuel | ox_fuel, legacyfuel, cdn-fuel, ps-fuel, qb-fuel, qs-fuelstations, x-fuel, ti_fuel, lc_fuel, bigDaddy-Fuel, esx-sna-fuel, okokGasStation, renewed-Fuel; native fallback |
| Seatbelt | concept_seatbelt, qbx_seatbelt, qb-smallresources, esx_cruisecontrol |
| Voice | pma-voice; native mumble fallback |
Download the Concept Bridge and place the concept_bridge folder in your resources directory. See the bridge installation guide for dependencies and provider setup.
Place the concept_hud folder in your resources directory. The UI ships prebuilt, so there is no build step.
Add the resources to server.cfg in this order (framework and inventory first, so the bridge can detect them):
ensure oxmysql
ensure ox_lib
ensure qbx_core # your framework: ox_core / qb-core / qbx_core / es_extended
ensure ox_inventory # your inventory
ensure concept_bridge # Concept Bridge
ensure concept_hud
Standalone servers (no framework): skip the framework line. The bridge's built-in default provider backs money / job / needs with seed values until you push real data through the exports.
add_ace group.admin concept_hud.admin allow
add_principal identifier.license:YOUR_LICENSE_HERE group.admin
Prefer a custom ACE name? Set setr concept_hud:adminAce my.custom.ace and grant that instead.
refresh, then ensure concept_hud./hudbridgestatus. It needs the command.hudbridgestatus ACE, so grant that to testers (add_ace group.admin command allow covers it). The command prints what the bridge resolved and whether it detected the required bridge modules, for example fork=true framework=ox_core inventory=ox_inventory weapons=ox_inventory fuel=ox_fuel seatbelt=none voice=pma-voice./hudadmin opens the policy editor (with ACE).If saving fails, the panel reports the failure. Closing offers Retry save or Discard & close; discarding does not save the pending edits. Resetting personal settings also reports write failures.
Each feature can use a mode that fits how it should appear:
| Mode | Behaviour |
|---|---|
always |
Visible whenever the feature is enabled. |
onChange |
Shows when the value changes, then auto-hides. |
onPeek |
Only while peek (Y hold/tap) is active. |
onPeekOrChange |
Peek or value change. |
whenCritical |
Only while the value is in the danger band. |
onPeekOrCritical |
Peek or critical. |
whenMoving |
While the player is moving. |
inVehicle |
Only in a vehicle. |
onFoot |
Only on foot. |
hidden |
Legacy; prefer turning the feature off instead. |
Critical band. Set it in the admin panel under Vitals (default 10%). Health, hunger, thirst, stamina, oxygen and vehicle engine/fuel appear when remaining is at or below the threshold; stress appears when it is at or above 100 − threshold; armor ignores 0 (unequipped).
Typical defaults: money onPeekOrChange; ID and job onPeek; health, hunger and thirst always; stress, stamina and oxygen onPeekOrChange; vehicle chrome + status icons inVehicle (always is coerced to inVehicle).
Open it with the Admin button in the F10 panel, or /hudadmin directly. Access is ACE-gated end-to-end (concept_hud.admin by default, override with setr concept_hud:adminAce); the server re-checks permission on every save.
data/server_policy.json and broadcasts live to all clients.When another admin saves while your draft is open, a conflicting save keeps your draft for review and reports that the server policy changed. Review the current defaults before saving again.
The HUD seeds the live policy file from config.lua on first start and keeps the previous copy as data/server_policy.json.bak. Keep the resource folder writable. Some hosting panels mount resources read-only, which blocks policy saves. Policy layers, from low to high: config.lua → data/server_policy.json → client KVP (only where the server allows).
| Key or command | Action |
|---|---|
F10 or /hud |
Open the player settings panel |
| Y (hold or tap) | Peek: show the server ID, job and money blocks set to On peek |
/hudadmin |
Open the admin policy editor (needs the admin ACE) |
/hudbridgestatus |
Show what Concept Bridge resolved; add json for the raw report (needs command.hudbridgestatus) |
Players rebind F10 and Y under pause menu → Settings → Key Bindings → FiveM.

Cash, bank and dirty money with a count-up animation that scales with the amount, a gain/spend color pulse, a floating +/- delta and a ring that tracks the count. Rows slide instead of jumping when one appears or hides, and the dirty row hides at $0 unless you turn that off.

Server ID with job title and grade (peek by default). The voice badge shows whisper, normal and shouting range and brightens while you talk. Voice and server ID have independent display settings: voice set to Always stays visible when the ID is set to On peek or disabled. Voice's On change modes react to talking and range changes.

Health (with armor beside it when worn), hunger | thirst, stamina, oxygen and stress. The stack is fully reorderable, and each bar can hide until it changes or goes critical.

The equipped weapon and ammo (clip / reserve) show only while something is in hand. The money stack moves down to make room automatically.

An enter card with make and model, a compact speed + RPM readout, and engine / fuel / seatbelt icons that flash when something drops or the belt is off.
The native GTA radar in a rounded frame that lines up at every resolution, with street names and a district pill that waits until you have settled in a new area (no spam on borders). Vehicle-only by default; set an item such as gps to unlock it on foot.
Player panel (F10): toggle features, pick display modes, reorder vitals and money, move each HUD block with anchors and pixel offsets, and choose km/h or mph. Everything previews live and autosaves.

Admin panel (/hudadmin): server-wide defaults for every feature, what players may change, accent color, critical band, map and vehicle behaviour. Saving applies to every player instantly.

config.lua carries first-install basics; you tune everything else live in the admin panel. The most useful keys:
| Key | Purpose |
|---|---|
Config.Enabled |
Master switch for the whole HUD. |
Config.Show.* |
Feature toggles (money, vitals, weapon, map, vehicle, zone, street, …). |
Config.HideOnPause / Config.HideWhenDead |
Auto-hide behaviour. |
Config.Accent |
Accent colour (admin panel overrides). |
Config.CriticalBelow |
Danger band percentage. |
Config.Money.* |
Account names, dirty items, seed values. |
Config.Vehicle.* |
Metric/imperial, fuel, seatbelt, status icons. |
Config.VehicleCard / Config.ZoneCard |
Card timings (duration, fades, settle, cooldown). |
Config.PeekHud.* / Config.SettingsHud |
Keys and peek timing. |
Config.Stress.* |
Stress source flags. clientGain and acceptCompatEvents are off by default. |
Config.HudRegions |
Pixel anchors for topRight (money/ID), weapon and vitals. |
Config.VitalsOrder / Config.MoneyOrder |
Stack order, plus the matching *PlayerEditable flags. |
Config.StandaloneNeeds |
Seed values shown until a bridge read or a push provides data. |
Poll rates and the deep minimap geometry are fixed, tuned internals in shared/config_defaults.lua. Explicit opt-ins such as Config.Minimap.Blips and Config.Minimap.allowBigmap can be set in config.lua to override those defaults.
Config.Money = {
cashAccount = 'cash',
cashAccountFallback = 'money',
bankAccount = 'bank',
dirtyAccount = 'black_money',
dirtyAccountFallback = 'dirty_money',
dirtyItems = {
{ item = 'markedbills', mode = 'worth', meta = 'worth' },
{ item = 'black_money', mode = 'count' },
},
dirtyShowWhenZero = false,
}
cashItems / bankItems let the HUD read balances from inventory items before falling back to account reads. Configure these against your selected framework/inventory.
Client resources should call the exports; raw concept_hud:client:set* triggers from other resources are ignored (they are reserved for server relays).
Hiding the HUD through SetBlocked or SetVisible also hides the minimap. Showing the HUD again still respects its vehicle, item and other minimap visibility restrictions.
| Client export | Signature | Purpose |
|---|---|---|
SetBlocked |
(blocked, reason?) |
Stacked full-HUD block (multichar, clothing, cutscenes). Clears with the same reason; blocks stack per resource. |
IsBlocked |
() |
Any external block active. |
GetBlockedReasons |
() |
Active block reasons. |
SetVisible |
(visible) |
Legacy single flag; prefer SetBlocked. |
SetMoney |
(cash?, bank?, dirty?) |
Display override until a bridge read replaces it. |
SetNeeds |
(hunger?, thirst?, stress?) |
Same idea for needs (0–100). |
SetJob |
(jobLabel?, gradeLabel?, grade?) |
Display override for job. |
Refresh |
() |
Force a full UI push. |
exports.concept_hud:SetBlocked(true) -- or SetBlocked(true, 'multichar')
exports.concept_hud:SetBlocked(false) -- or SetBlocked(false, 'multichar')
exports.concept_hud:SetMoney(250, 1200, 0)
exports.concept_hud:SetNeeds(80, 65, 10)
exports.concept_hud:SetJob('Mechanic', 'Senior', 3)
Server code can relay display values with TriggerClientEvent('concept_hud:client:setMoney', src, cash, bank, dirty) and the corresponding concept_hud:client:setNeeds or concept_hud:client:setJob events. It can apply stress with:
| Server export | Signature | Purpose |
|---|---|---|
AddStress |
(src, amount) |
Trusted server-side stress change (respects config and job whitelist). |
RelieveStress |
(src, amount) |
Negative direction. |
exports.concept_hud:AddStress(playerSrc, 5)
exports.concept_hud:RelieveStress(playerSrc, 10)
concept_bridge)The HUD reads all framework, inventory, weapon, fuel, seatbelt and voice data through the Concept Bridge (concept_bridge) and never talks to provider resources directly. See the bridge installation and API guide. /hudbridgestatus reports fork=true when the required bridge modules are present and warns when they are missing.
If the bridge is stopped at runtime, the HUD keeps rendering with explicit degradation:
| Domain | With the bridge stopped |
|---|---|
| Money / job / needs | Seed values plus anything you push (SetMoney / SetNeeds / SetJob). |
| Inventory items | No item counts or dirty items; pushes still work. |
| Weapon | No weapon image/ammo extras. |
| Fuel | Native GetVehicleFuelLevel. |
| Seatbelt | Unknown. The icon is hidden. |
| Voice | Native mumble proximity (no mode names). |
| Notify | lib.notify fallback. |
The HUD listens to the bridge's normalized events (OnPlayerLoaded, OnPlayerUnload, OnPlayerJobUpdate, OnNeedsUpdate, OnInventoryUpdate, OnInventoryOpenChange, OnWeaponUpdate, OnVoiceUpdate, OnSeatbeltUpdate, OnAccountUpdate).
The HUD refreshes cached data when the bridge changes providers. Consumer integrations that keep their own bridge references should follow the provider restart contract.
Custom frameworks. Either push values with the exports above, or register a module for live polling: exports.concept_bridge:RegisterModule('Framework', { ... }). See the bridge documentation for the module shape.
/hudadmin and every savePolicy call re-check permission on the server; drafts are sanitized and capped before they are saved and broadcast.concept_hud itself or server relays. There is no client-to-server-to-client relay, so players cannot spoof values onto other clients.hud:server:GainStress / RelieveStress) are off by default and bounded when enabled. Trusted server code should use AddStress / RelieveStress instead.Display overrides change presentation, not authoritative inventory or account balances. Validate gameplay rewards and permissions in your own server code.
The Tebex build is CFX escrow protected:
config.lua, locales/*.json, data/server_policy.example.json.client/, server/ and shared/.web/dist). Never put secrets in it.Use an entitled server license for the escrowed asset. THIRD_PARTY_LICENSES.md inside the resource documents the bundled fonts and third-party components; the commercial terms are on the /terms page.
| You changed | Do this |
|---|---|
config.lua, client/*.lua, server/*.lua, shared/*.lua, locales/*.json |
ensure concept_hud in console (no server restart). |
data/server_policy.json by hand |
ensure concept_hud (or use the F10 admin panel, which applies live). |
server.cfg (order, ACE, convars) |
Full server restart. |
| Framework / inventory / fuel / seatbelt / voice resources | Provider starts, stops and restarts refresh automatically. Use /hudbridgestatus to inspect the selected providers. |
/hudbridgestatus and check fork=true / framework= / inventory=./hudbridgestatus reports fork=false in that case.pma-voice must be running (/hudbridgestatus shows voice=pma-voice).concept_hud.admin ACE (or whatever ACE you set via the concept_hud:adminAce convar) and restart the resource.data/server_policy.json writes.data/server_policy.json.bak on the next start; only reach for a manual restore if the backup is gone too (and keep your own backups when editing by hand).Config.Show.mapOnFootItem or disable mapOnlyInVehicle.ensure concept_hud; CEF caches the old UI aggressively.Config.Money.dirtyItems / dirtyAccount against your framework's item or account names.Updates ship to the same Keymaster asset, so you don't need to buy it again. Your tuned data/server_policy.json is per-server: back it up when syncing a new build, or use the admin panel to reconfigure.
We aim to reply on Discord within 24 hours on business days.
Besoin d'aide pour l'installation ? Rejoindre le Discord ou support@conceptstudio.store.