1. Wiki
  2. /Textures & Models
  3. /Pixel textures

Pixel textures

How Minecraft Bedrock textures work: 16x16 PNGs, where they go, short names, transparency, animated blocks and tips for good pixel art.

Every item, block and mob in Minecraft is painted with small pixel images. Good textures make an add-on feel like it belongs in the game. This guide explains where texture files go, how the game finds them, and how to paint pixel art that looks right next to vanilla.

The quick way: GodCraft

GodCraft has a pixel editor built in, and it saves every texture to the right place with the right short name.

  1. Open the Workshop and open any item, block or mob.
  2. Tap the texture to open the pixel editor.
  3. Start from a vanilla texture and recolor it, or draw from scratch.
  4. Save. When you export, the PNG files and the texture lists are written for you.

Starting from a vanilla texture is a great trick: you get Minecraft's shading style for free and only change the colors and shape.

By hand

The basics: 16x16 PNG

Minecraft's textures are PNG images. Items and blocks are usually 16x16 pixels. That is tiny, so every single pixel matters.

  • Use a pixel art program, not a normal photo editor that blurs edges. Turn off anti-aliasing and use a 1-pixel pencil.
  • Save as PNG with transparency (RGBA). JPG does not keep transparent pixels and adds blurry noise.
  • File names should be lowercase with underscores, like ruby_sword.png.

Where textures go

Textures live in your resource pack (RP):

KindFolderExample
ItemsRP/textures/items/ruby.png
BlocksRP/textures/blocks/ruby_block.png
Mob skinsRP/textures/entity/critter.png

Mob skins are not 16x16: their size matches the texture_width and texture_height of the model, such as 64x32. See Your first custom mob.

Short names: item_texture.json and terrain_texture.json

Items and blocks do not point at a PNG directly. They use a short name, and two list files turn short names into paths. Note that the paths have no .png at the end.

For items:

RP/textures/item_texture.json
{
  "resource_pack_name": "myname",
  "texture_name": "atlas.items",
  "texture_data": {
    "ruby": {
      "textures": "textures/items/ruby"
    }
  }
}

The item then uses the short name ruby in its icon component. See Your first custom item.

For blocks:

RP/textures/terrain_texture.json
{
  "resource_pack_name": "myname",
  "texture_name": "atlas.terrain",
  "texture_data": {
    "ruby_block": {
      "textures": "textures/blocks/ruby_block"
    }
  }
}

The block then uses ruby_block in minecraft:material_instances. See Your first custom block.

One file, many textures

You only ever have one item_texture.json and one terrain_texture.json per pack. Add every new texture as another entry inside texture_data.

Transparency

Fully transparent pixels (alpha 0) are how you make shapes that are not squares, like swords, flowers and glass panes.

  • Items: the empty space around the item should be fully transparent. Partly see-through pixels work too.
  • Blocks: what you see depends on the block's render_method in material_instances:
    • opaque: no transparency at all. Transparent pixels show up as solid color. Best for stone, ores and planks.
    • alpha_test: each pixel is either fully shown or fully hidden. Good for leaves, flowers and plain glass.
    • blend: allows half see-through pixels, like stained glass.
  • Mobs: use the entity_alphatest material in the client entity to let fully transparent pixels disappear.

Higher resolutions

You can use 32x32, 64x64 or bigger textures. Keep these rules in mind:

  • Keep the image square for items and blocks, and use a power of two (16, 32, 64, 128).
  • Keep the same size across a whole set so things look consistent. A 64x64 sword next to 16x16 vanilla swords can look out of place.
  • Bigger textures use more memory, especially on phones. 16x16 is the classic Minecraft look and the safest choice.

Animated block textures (flipbooks)

Blocks like sea lanterns, magma and lava are animated. They use a flipbook: one tall image with all the frames stacked on top of each other.

  1. Make a PNG 16 pixels wide and 16 times the frame count tall. Four frames means 16x64.
  2. Add it to terrain_texture.json like a normal block texture, for example as glowing_ore.
  3. Create flipbook_textures.json to tell the game it is animated:
RP/textures/flipbook_textures.json
[
  {
    "flipbook_texture": "textures/blocks/glowing_ore",
    "atlas_tile": "glowing_ore",
    "ticks_per_frame": 8
  }
]
  • flipbook_texture is the path to the tall PNG, without .png.
  • atlas_tile is the short name from terrain_texture.json.
  • ticks_per_frame is how long each frame stays. There are 20 ticks in a second, so 8 means each frame shows for 0.4 seconds.
  • Optional frames is a list of frame numbers to play in a custom order, starting from 0. Vanilla prismarine uses it to show some frames longer than others.
  • Optional blend_frames set to false makes frames switch sharply instead of fading into each other.

Note

Flipbooks are for blocks. Item icons do not use flipbook_textures.json.

Tips for good pixel art

Use a small palette

Pick 3 to 5 shades of one color, from dark to light, and stick to them. Too many colors make 16x16 art look noisy. Vanilla textures often use only a handful of colors per material.

  • Make dark shades a bit more saturated or shift them slightly toward blue or purple. Make light shades shift toward yellow. This "hue shifting" looks far more alive than adding plain black or white.
  • Borrow palettes from vanilla textures so your add-on matches the game.

Light comes from the top-left

Minecraft items and many blocks are shaded as if light shines from the top-left:

  1. Fill the shape with your middle shade.
  2. Put the lightest shade along the top and left edges.
  3. Put the darkest shade along the bottom and right edges.
  4. Add a few brightest pixels as a highlight, like the shine on a gem.

Outlines and readability

  • Item icons usually have a darker outline so they stand out on any inventory background.
  • Avoid single lonely pixels of a random color: they read as noise at small sizes.
  • Zoom out often. Your texture will be seen tiny on screen, so check it at 100% size.

Blocks must tile

Block textures repeat next to each other. Make sure the left edge flows into the right edge and the top into the bottom, or you will see a grid pattern on big walls. Avoid a strong border on every side unless you want a tile look, like bricks.

Troubleshooting textures

Purple and black checkerboard

The game could not find the texture. Check the short name is spelled the same everywhere, and the path in the texture list matches the real file without .png.

  • Texture looks blurry. The PNG was resized with smoothing. Redraw at the real size or resize with "nearest neighbor".
  • Transparent parts show as black or white on a block. Change the block's render_method to alpha_test or blend.
  • Changes do not show up. Make sure you exported the new version and reloaded the world. See Troubleshooting.

We use cookies to improve your experience and analyse site traffic. Learn more