Why PvP players edit the HUD
(1) Center-view clarity: PvP is mostly about reading the center of your screen — the crosshair, the enemy's silhouette, your hit registration. An item-name popup or experience-bar flash right there slows your reaction by exactly the wrong fraction of a second.
(2) Information priority: hearts, armor, hunger, XP, hotbar — each player ranks these differently. A survival player who needs hunger visible has different optimal layout from a PvP player who keeps hunger full anyway and would rather hide the bar.
(3) Raw visibility: tweaked heart colors, brighter experience bars, a more visible hotbar selection frame — same information, more contrast, easier read.
HUD elements you can hide or restyle with a resource pack
Practical scope for JSON UI overrides:
・Item name popup (the floating text that appears when you switch hotbar slots) — can be fully hidden
・Hunger bar — show / hide, texture swap
・Armor row — same as hunger
・Experience bar — texture swap, animation, color, plus level number color or visibility
・Crosshair — full replacement: dots, crosses, custom shapes
・Hotbar / selection frame — texture swap
・Hearts (health) — single texture swap (color, gradient, alternate styles)
All of these are exposed as toggles or preset pickers in the PackAnvil builder's HUD editor — you don't need to hand-write JSON UI.
HUD elements resource packs can't touch
Some HUD pieces are engine-rendered and ignore resource pack overrides:
・Chat panel — font is swappable, structure isn't
・Scoreboard — position and colors are engine-defined
・Boss bar — the top-of-screen bar for Ender Dragon / Wither fights
・Coordinates display — toggled in settings only, look is fixed
・Subtitles / actionbar text — text content comes from the server, position is engine-fixed
・Per-slot rainbow hearts — engine doesn't expose a slot index binding to JSON UI. Verified non-functional through 2026 / Bedrock 1.21.
To modify anything in this list you need addons (JavaScript) or server-side resource pack delivery — a plain resource pack alone won't reach them.
Building it in PackAnvil
Open the PackAnvil builder and pick the "HUD" category in the left sidebar. You'll see:
(1) HUD presets — "PvP clean", "Survival standard", etc. Picking PvP clean hides the item name popup and hunger bar, and bumps heart / armor contrast.
(2) Heart style — standard, ring, gradient, rainbow (within a single heart sprite).
(3) Hunger / armor toggles — hide, show, or recolor.
(4) Experience bar — texture preset (gradient / solid / rainbow), animation on / off, and number color.
(5) Crosshair — separate category but typically configured alongside HUD. Choose from green cross, cyan dot, Valorant-style brackets, magenta plus, and others.
When you're happy, hit Download to export the
.mcpack. No JSON UI editing required.Things that look possible but aren't
A few areas look open from the outside but are dead ends in practice. Worth knowing before you spend an evening on them.
・Ten hearts in ten different colors — you can draw a gradient within a single heart sprite (texture swap). But per-slot color requires the engine to expose a slot index to JSON UI, which it doesn't. Public packs that claim "rainbow hearts" all turn out to be single-sprite recolors, not actual per-slot coloring.
・The loading-screen HUD — Bedrock's world-loading screen samples
textures/ui/*.png directly and ignores your hud_screen.json overrides. If you put an animated vertical strip texture on a vanilla path, the loading screen will display it as a smashed striped image. PackAnvil sidesteps this by writing animated strips under textures/animated_ui/hud/ and keeping vanilla paths as static frames.
・Chat / scoreboard / boss bars — engine-rendered, hands-off.
The addressable surface is narrow, but it covers what actually matters for PvP — clearing the view, optimizing the crosshair, and tuning heart / XP visibility. All three are inside PackAnvil's range.