Mine Studios
  • Partners
  • Projects
    • All Tools
    • Prefix Designer
    • Resource Pack Converter
    • Server Status
    • Colour Text Generator
    • Hologram Generator
    • All Guides
    • NuVotifier Setup
    • Upload a World
    • MiniMessage Gradients
    • Resource Pack Formats
    • GUI Textures
  • Store
  • Contact
Sign In
Mine Studios

Premium Minecraft development — custom builds, and game experiences crafted for communities that care about quality.

v1032ae1

Build. Create. Own.

Services

  • Plugin Development
  • Staff Management
  • World Design
  • Game Modes
  • Maintenance
  • Tools
  • Guides

Company

  • Projects
  • Contact
  • Discord
  • Store

Legal

  • Terms of Service
  • Privacy Policy
  • Cookie Policy

© 2026 Mine Studios. All rights reserved.

Made with ♥ for the Minecraft community

Home›Guides›GUI Textures

Minecraft GUI Textures (Hotbar, Hearts, Inventory)

Which files draw the HUD, containers, and menus on Java and Bedrock — and how to restyle them into a GUI-only pack without opening a hundred PNGs by hand.

Last updated: 24 August 2026

Contents

  • Overview
  • Java 1.20.2+ sprites
  • Older Java atlases
  • Bedrock UI files
  • Export and install
  • FAQ

Minecraft does not draw the hotbar, hearts, or inventory from one image. Java composites screens from sprite sheets (or, before 1.20.2, from icons.png / widgets.png). Bedrock nine-slices shared panel and slot textures and draws the HUD from textures/ui/. That is why a Dark UI pack can restyle every chest by recoloring a handful of files — and why Bedrock has no inventory.png.

Section 01

Java 1.20.2 and newer — gui/sprites/

From 1.20.2 the HUD and widgets split into individual sprites under assets/minecraft/textures/gui/. Container backgrounds stayed in gui/container/; moving parts (progress arrows, slot ghosts) moved into sprites/container/.

FilesControls
sprites/hud/hotbar.png, hotbar_selection.pngHotbar strip and selected-slot frame
sprites/hud/heart/*.pngEvery heart state (full, half, poison, wither, freeze, absorption, hardcore, mount)
sprites/hud/food_*.png, armor_*.png, air*.pngHunger, armor points, air bubbles
sprites/hud/experience_bar_*.png, crosshair.pngXP bar and crosshair
container/inventory.png, generic_54.png, furnace / anvil / villager sheetsFull container backgrounds (still 256×256)
sprites/widget/button*.pngMenu buttons in idle, hover, and disabled states

Target pack_format 18 or higher if you write sprites. Older clients ignore gui/sprites/ entirely. See resource pack format versions.

Section 02

Java 1.8.9–1.20.1 — the old atlases

Before 1.20.2 the HUD lived in two 256×256 sheets. A GUI editor can keep one source of truth (the modern sprites) and fold edits back into those atlases when you export for 1.20.1 or older.

  • gui/icons.png — crosshair, hearts, hunger, armor, air, XP bar
  • gui/widgets.png — hotbar, selection, buttons
  • gui/bars.png — boss bars (1.9+)
  • gui/container/*.png — same container sheets as today

Section 03

Bedrock — textures/ui/

Bedrock does not read Java’s inventory sheets. Restyle what the current vanilla pack actually draws:

  • hotbar_0.png … hotbar_8.png, start/end caps, selected_hotbar_slot.png
  • textures/gui/icons.png — crosshair cell only (the rest of that atlas is unused on Bedrock)
  • Hearts, hunger, armor, bubbles, XP bar under textures/ui/
  • dialog_background_opaque.png — the panel behind every container (the Dark UI lever)
  • cell_image.png — every inventory slot

Nine-slice .json sidecars define how those panels stretch. Leave nineslice_size and base_size alone unless you intend to change the layout; the editor copies them through unchanged.

Section 04

Export and install

  1. Start from a vanilla pack (or an existing GUI pack) and open the HUD / container files listed above.
  2. Recolor or paint the sprites, keeping each file’s original pixel size so vanilla layout still fits.
  3. Zip the edited files as a GUI-only Java pack (with pack.mcmeta for the version you chose) or a Bedrock .mcpack.
  4. Java: drop the zip into resourcepacks and enable it. Bedrock: open the .mcpack so it imports, then enable it under Global Resources (or the world’s packs).

Need the rest of the pack converted between editions or Java versions? Use the Resource Pack Converter after you finish the GUI.

FAQ

Questions

Where are Minecraft GUI textures stored on Java?

From 1.20.2 they live under assets/minecraft/textures/gui/sprites/. Older versions pack the HUD into icons.png and widgets.png. Container backgrounds such as inventory.png stayed in gui/container/.

Can I edit the Bedrock inventory screen as one PNG?

No. Bedrock composes chests and inventories from nine-sliced panel and slot textures (dialog_background_opaque and cell_image), not a single inventory.png. Restyle those shared files to change every container.

Will a bulk recolor erase pixels I painted by hand?

Not if you keep painted pixels on a separate layer (or in a copy of the file). Vanilla GUI sizes are fixed — if a heart sprite is no longer 9×9, it will sit in the wrong place in-game.

Related guides

  • Resource pack format versions
  • Inventory slot indexes
  • Minecraft item IDs after 1.13