Skip to content
MC Command Generator

Custom Painting Generator

Beta

Set the painting's size, title and author, choose whether it can show up when players hang a painting, and get the painting variant file with commands to give or place it. The preview hangs it on a wall at its real size.

Describe it — AI writes the command

Type what you want in plain words. The AI fills the form below, so you can see it and change anything. It follows the edition and version you picked.

Checking the AI…

Size and texture
Tooltip
Commands
Summoned painting faces
Painting
Sunset Hills
Alex
32×16 px textureCan come up at random
The painting at its real size (2×1 blocks) with a placeholder picture — yours comes from the texture in your resource pack.

Your command · Java 26.3

124 characters
/give @p painting[painting/variant="my_pack:sunset_hills"]
/summon painting ~ ~ ~ {variant:"my_pack:sunset_hills",facing:0b}
data/my_pack/painting_variant/sunset_hills.json
{
  "asset_id": "my_pack:sunset_hills",
  "author": {
    "text": "Alex",
    "color": "gray"
  },
  "height": 1,
  "title": {
    "text": "Sunset Hills",
    "color": "yellow"
  },
  "width": 2
}
data/minecraft/tags/painting_variant/placeable.json
{
  "values": [
    "my_pack:sunset_hills"
  ]
}
  • The picture comes from a resource pack: a 32×16 PNG (16 pixels per block) at assets/my_pack/textures/painting/sunset_hills.png. Without it the painting shows the missing-texture pattern.
  • The first line gives you the painting item; the second hangs it at your feet on the wall behind it (facing south = the wall is on your north side). A wall too small or blocked by entities makes it drop as an item.
  • It is added to #minecraft:placeable, so it can come up when anyone hangs a plain painting (if the wall has room).
  • Put the file in your data pack (or press Download data pack), drop the pack in your world's datapacks folder, then run /reload.

Raw editor

Read only — this generator writes files, edit them with the form.

How it works

Since Java 1.21 paintings are data: each one is a file in data/<namespace>/painting_variant/ pointing at a texture. Width and height are in blocks, from 1 to 16.

Java 1.21 and 1.21.1

{"asset_id": "my_pack:sunset_hills", "height": 1, "width": 2}

The tooltip text comes from the language keys painting.my_pack.sunset_hills.title and .author in a resource pack.

Java 1.21.2 to 26.3

Title and author go in the file as text, with the vanilla colours (yellow title, gray author):

{"asset_id": "my_pack:sunset_hills",
 "author": {"text": "Alex", "color": "gray"},
 "height": 1,
 "title": {"text": "Sunset Hills", "color": "yellow"},
 "width": 2}

Commands

Up to 1.21.4 the item carries the painting in entity_data; from 1.21.5 it has its own component:

give @p painting[entity_data={id:"minecraft:painting",variant:"my_pack:sunset_hills"}]
give @p painting[painting/variant="my_pack:sunset_hills"]
summon painting ~ ~ ~ {variant:"my_pack:sunset_hills",facing:0b}

facing is 0 south, 1 west, 2 north, 3 east. Tick “Can come up” to add it to #minecraft:placeable, the list the game picks from when you hang a plain painting.

The picture

The image goes in a resource pack at assets/<namespace>/textures/painting/<name>.png, 16 pixels per block (a 2×1 painting is 32×16). Without it you see the missing-texture pattern. Bedrock has no custom paintings, so this generator is Java only.

FAQ

How do I add a custom painting to Minecraft?

Make the painting variant file here (data pack), put your image in a resource pack at assets/<namespace>/textures/painting/<name>.png, load both and run /reload. Then use the /give or /summon line.

What size should the image be?

16 pixels per block: a 1×1 painting is 16×16, a 4×2 is 64×32. Larger images work if the ratio matches, for example 32 pixels per block.

Why can't I get my painting by placing one normally?

Only paintings in the #minecraft:placeable tag come up at random, and only if the wall has room for them. Tick the option, or use the commands.

Why doesn't the summoned painting appear?

A painting needs a solid wall behind it with room for its full size, and no other entities in the way. Summon it in the block in front of the wall, facing away from it.

Does the title work in 1.21?

Not in the file: title and author fields were added in 1.21.2. In 1.21 and 1.21.1 the tooltip uses the painting.<namespace>.<name>.title and .author language keys from a resource pack.