Features
What is shown
The client polls the selected weapon every 100 ms while a block is visible (250 ms otherwise) and sends an update to the NUI only when the icon or the numbers changed.
| Weapon | Block content |
|---|---|
| Firearm with a magazine | Clip count (GetAmmoInClip) and reserve (GetAmmoInPedWeapon minus the clip, never below 0), side by side, then the icon |
Throwables (GROUP_THROWN) and weapons whose max clip is 0, such as the petrol can or fire extinguisher | One number: the total ammo |
| Melee, unarmed, parachute and stun-gun groups | Icon only |
WEAPON_UNARMED or a hash listed in Config.Hidden | Nothing; the block hides |
Weapon not in Config.Icons | Numbers without an icon |
An empty clip (or a count of 0) turns the number red. Numbers are formatted with thousands separators (1,200).
Native HUD
With Config.HideNative = true the game's weapon component (HUD component 2) is hidden every frame, so there is no second counter. The weapon wheel itself is untouched.
Pause menu
A 250 ms loop watches IsPauseMenuActive() and hides the whole layer while the pause menu is open.
Look
One unit is 1/1080 of the screen height.
| Element | Value |
|---|---|
| Font | Pricedown Bl (fonts.cdnfonts.com), weight 900, #f7f7f7, fallback Impact |
| Clip and reserve | 32 u each, 14 u apart, reserve at 42% opacity |
| Ammo row | Squashed to 85% height from the bottom-right corner, 1 u black outline at 65%, soft drop shadow |
| Icon | 52 u high, at most 156 u wide, right-aligned, drop shadow |
| Motion | 150 ms fade when the block appears and when the icon changes; numbers update instantly |
The design matches the weapon block inside gta6_hud one to one, so a server can switch between the two without a visual change.