resourcepack.ai
DOCS

Building

Blocks

A block texture is a PNG that replaces a vanilla block you pick. That's the whole mechanism, and it's why there's no such thing as adding a block: a Resource Pack can change how stone looks, but it cannot give the game a seventeenth kind of stone.

Making one#

Normally you describe it and generate it. That's the fast way to a draft worth editing, and most of this page is what you do to it afterwards.

Generating with AI

How to write a prompt that gives you something worth finishing.

The same Add flow also takes an upload of existing art, or gives you an empty transparent grid to draw on. All three land in the same editor, and all three ask which vanilla block you're replacing.

Textures that only exist to skin a custom model are made from inside the model editor instead, and replace nothing.

In the editor#

The pixel editor opens full-screen from a block, and from the model editor when you want to paint a face properly rather than dab at it in 3D.

Tools#

The rail on the left, with its hotkeys:

ToolKeyNotes
PencilBThe default. Paints the active colour
EraserEPaints transparency, not white
FillFFlood-fills contiguous same-coloured pixels
Pick colourISamples a pixel into the active colour
LineLClick-drag from one point to another
RectangleRFilled or outline
EllipseFilled or outline
SelectSMarquee for moving or clearing a region

Undo and redo are Ctrl+Z / Ctrl+Y and cover the whole stack, layers included.

The eraser producing transparency rather than white matters more than it sounds. A block texture with white where it should be see-through renders as a solid white block in game, not a hole.

Brush options#

  • Brush size: any tool that paints uses it, including line and rectangle, so you can draw a 2px outline in one pass.
  • Mirror X / Mirror Y: paints the mirrored counterpart of every stroke. Both at once gives you four-way symmetry, which is how most tileable textures and nearly all radially symmetric icons should be drawn.

Layers#

Textures are layered, topmost first, and flattened on save. Layers can be renamed (double-click), reordered, hidden and deleted.

The workflow this is for: keep the AI's draft on a bottom layer, paint your corrections above it, and delete the draft when you no longer need it. You never lose the original by painting over it.

Resolution#

You choose it when you add the texture: 16×16, 32×32, 64×64, or a custom square up to 256. The editor then works at that native size, so a 64×64 texture really is 64 pixels of paintable detail.

  • 16×16 is what vanilla Minecraft uses. Pick it when you want your work to sit next to vanilla blocks without looking sharper than they do.
  • 32 and up is the "HD pack" end. More room for detail, and more work: four times the pixels at 32, sixteen times at 64.

Generation draws at your resolution

A generated texture is drawn as pixel art at the size you picked, not upscaled from something smaller, so a 64×64 draft really uses its 64 pixels. The higher you go, the more of it you'll want to finish by hand; pixel art at 16 forgives roughness that 64 shows plainly.

Per-face textures#

A texture that replaces a full-cube vanilla block (stone, planks, wool, concrete, ores…) doesn't have to look the same on every side. On the block's page, the Faces card shows all six faces, and each one can have its own texture: generate it from a prompt, open it in this editor to finish by hand, or remove it to fall back to the base texture. This is exactly how vanilla builds its own multi-face blocks (grass, furnaces, crafting tables).

Editing a block opens the block editor: a tab bar with the block in 3D ("Block") plus one tab per face. On the Block tab you paint directly on the cube (left-drag strokes, drag empty space to orbit) with the same brush, fill, line and picker tools as the model editor's paint mode. Double-click a face (or click its tab) to open it in the 2D pixel editor. Everything autosaves. A face that doesn't have its own texture yet gets one on the spot, seeded from what it currently looks like in game, and Apply to all faces copies the open face's texture onto the whole block.

Faces are a full-cube, Java-side thing

Blocks that are already multi-textured in vanilla (logs, sandstone, bookshelves) or aren't simple cubes don't offer the Faces card; retexture their individual vanilla textures instead. And a Bedrock export currently carries only the base texture; the per-face split is Java-only for now.

Some blocks randomly rotate when placed

A few natural blocks (stone, dirt, sand, netherrack and friends) get a random rotation each time they're placed, to break up repetition. Their top/bottom faces are safe, but a distinct north/south/east/west face will point a different way on each placed block. Building blocks (planks, wool, concrete, bricks) don't rotate and keep all six faces exactly where you put them.

Seeing it in game#

Sync the pack to a linked player and every copy of that block in the world changes at once. There's no command and nothing to place: you replaced a block the game already has, so it's already everywhere it was.

That makes blocks the easiest thing to judge in game and the one most worth judging there. A texture that reads beautifully at 8× zoom in the editor can turn to noise in a wall of itself.

On our test server, /floor <block>, /time and /weather change what your texture is sitting against. Judging it on white concrete, then grass, then at night takes half a minute and tells you more than any amount of staring at the editor.

Exporting#

In the exported .zip, a block texture is an ordinary PNG at assets/minecraft/textures/block/<name>.png, named after the vanilla block it replaces. Nothing else is needed: the game already looks in that exact place, which is why a plain texture pack has no JSON in it at all.

Two things ride along when they apply:

  • Per-face blocks also get a block model under assets/minecraft/models/block/, which is what maps each face to its own texture. You don't manage that file; it's written from what the Faces card shows.
  • See-through blocks carry a render type, so glass stays glass rather than rendering as an opaque block with a strange outline.

The resolution you worked at is the resolution in the file, and a 64×64 pack installs exactly like a 16×16 one. Nothing in the pack records which you chose.

On Bedrock#

Block reskins convert. Java's textures/block/<name>.png becomes Bedrock's textures/blocks/<name>.png in the .mcpack, so a pack of reskins works on both editions from one export.

Per-face blocks currently carry only their base texture across.