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 an 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 needs hunger visible. A PvP player keeps hunger full anyway and would rather hide the bar. Their optimal layouts differ.
(3) Raw visibility: tweaked heart colors, brighter experience bars, a clearer hotbar selection frame. Same information, more contrast, easier read.
HUD elements you can hide or restyle with a resource pack
Here's what JSON UI overrides reach in practice:
・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)
The PackAnvil builder's HUD editor exposes all of these as toggles or preset pickers. You don't hand-write any 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 — the 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 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", and so on. PvP clean hides the item name popup and hunger bar, then 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 — a separate category, but you'll usually configure it 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 dead-end 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 needs the engine to expose a slot index to JSON UI, and 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. Put an animated vertical strip texture on a vanilla path, and the loading screen shows it as a smashed striped image. PackAnvil sidesteps this. It writes animated strips under textures/animated_ui/hud/ and keeps vanilla paths as static frames.
・Chat / scoreboard / boss bars — engine-rendered, hands-off.
The addressable surface is narrow. But it covers what matters for PvP — clearing the view, optimizing the crosshair, and tuning heart / XP visibility. All three sit inside PackAnvil's range.