Paint and materials
This page covers three things.
- Paint: Paint the textures of custom block and prop models directly in 3D. Includes layers, selection and symmetry.
- Custom blocks from textures: Make a new block
np:<id>from a texture or your own PNG, along with variant blocks such as slabs and stairs. - Materials (LabPBR): Apply material values such as smoothness, metal, emission and normals to custom block textures. For people who use shaders.
How to open
Section titled “How to open”| What you want | Where to open |
|---|---|
| Paint a model | Right-click a custom block or prop in the Content Browser › Paint |
| Paint tab ↔ World tab | Ctrl+Tab (Tools › Switch Paint tab / World tab) |
| Paint mode | Paint in the mode row of the main toolbar |
| Texture list | Window › Texture (bottom area panel) |
| Custom block from textures | Choose a texture in the Texture panel and press Create custom block |
| Materials (LabPBR) | Material… in the custom block window, or the console command texblock material <id> |
Pressing Open in main window’s Paint tab in the Paint tab of the Asset Editor opens the same Paint tab.
Quick start
Section titled “Quick start”Painting a model
Section titled “Painting a model”- Right-click a custom block or prop in the Content Browser and choose Paint.
- The center area switches to the Paint tab. The 3D model is on the left, the 2D texture in the middle and the Tools panel on the right.
- Press B (Brush) and choose a color.
- Drag over the model in the 3D view. The 2D window is painted at the same time.
- Save the layers with Ctrl+S. The world is saved too.
- Return to the World tab with Ctrl+Tab.
The painted result is applied every 0.25 seconds (and when you return to the World tab) to blocks and props placed in the world and to open UV windows. The original model file is not changed.
Making a custom block from textures
Section titled “Making a custom block from textures”- Open the Texture panel with Window › Texture.
- Choose a texture and press Create custom block. The Create a custom block from textures window appears.
- Choose the face mode: Top · side · bottom or 6 faces separately.
- For each face, add an image with Selected (the texture chosen in the Texture panel) or PNG…. To all faces puts the chosen texture on all 6 faces.
- Set Name, id, Light and Collision.
- If you need variants, turn on Also create variants and choose the shapes.
- Press Create. The block is added to the project registry.
From then on, the same window becomes Update (np:
Paint tools
Section titled “Paint tools”| Tool | Key | What it does |
|---|---|---|
| Pencil | P | Paints pixel by pixel. |
| Brush | B | A round brush with hardness and opacity. |
| Eraser | E | Erases the current layer. |
| Fill | G | Fills at once according to Mode. |
| Eyedropper | I | Picks a painted color (Alt+left click in the 3D view does the same). |
| Rectangle select · Lasso | M · L | Selects the area to paint in the 2D window. Clicking in the 3D view selects the UV island of that face. |
| Move | V | Moves the selected area. Arrow keys move 1 pixel, Shift 8; hold Alt to copy. |
While selecting, Shift = add, Alt = subtract, Shift+Alt = intersect.
Fill has three modes.
| Mode | What it fills |
|---|---|
| Entire UV island | The whole UV island you clicked |
| Contiguous same color (within island) | Connected same color within the island |
| Same color across texture | The same color across the whole texture |
Layers · texture
Section titled “Layers · texture”- In the Layers section, add, duplicate, delete, move up, move down, merge down and flatten all, and set visibility and opacity per layer.
- In the Texture section, choose the texture to paint and change its size. Stretch scales the image up or down to keep the 3D look. Canvas only extends or crops from the top-left.
- Save layers saves a new version to
assets/<id>/layers/. Export PNG writes the flattened image to a new_vNfile.
When a texture is changed in several places, the priority is paint layers > registry texture replacement > original.
Custom blocks · variant blocks
Section titled “Custom blocks · variant blocks”Face images
Section titled “Face images”PNGs are 16, 32 or 64px wide. A square image is a single image; a tall strip is an animation.
- Vanilla texture faces do not store an image; they only refer to it by id.
- Custom textures and your own PNGs are saved in the project.
Animation
Section titled “Animation”When you add a vertical strip PNG, the animation row appears. If there is a .png.mcmeta next to the PNG, the values are filled in automatically.
| Field | Description |
|---|---|
| Ticks per frame | Duration of one frame. 20 ticks = 1 second. |
| Interpolate | Blends smoothly between frames. |
| Order | Playback order. If empty, frames play in sequence. Example: 0 1 2:5 3 — index:ticks gives only that frame a different duration. |
| Per-frame time | Change the duration of each frame directly in the cells below the order. |
If the order contains an index beyond the frame count, Create is disabled and the reason appears in the status bar.
Variant blocks
Section titled “Variant blocks”When Also create variants is on, the chosen shapes are registered together with the same texture.
| Shape | id | Default |
|---|---|---|
| Slab | <id>_slab | On |
| Stairs | <id>_stairs | On |
| Wall | <id>_wall | On |
| Fence | <id>_fence | Off |
| Fence gate | <id>_fence_gate | Off |
| Door | <id>_door | Off |
Use the shape list below the preview to see how the variants will look first. This does not affect the registry. Clicking a variant shape cell also switches the preview to that shape.
Materials (LabPBR)
Section titled “Materials (LabPBR)”Materials are extra values for people who use shaders (Iris · OptiFine). The base resource pack image stays the same; materials are saved separately as _n and _s images next to the texture. Playing without shaders is not affected.
- Press Material… in the custom block window. The Texture block material (LabPBR) window appears.
- In Texture slot, choose the face image to apply the material to.
- Choose a Preset (Stone · Wood · Metal (iron) · Metal (gold) · Metal (copper) · Glass · Cloth · Glowstone · Leaves · Plain (no material)).
- Adjust with the Values sliders.
- Press Auto-generate to estimate height, normals, emission candidates, smoothness and crevice AO from brightness.
- Touch up only where needed with Channel paint.
- Check in the sphere preview on the right by changing Sun direction and Sun height.
- Press Save material. It is saved as a new version and does not overwrite.
When Same material for variants is on (default on), the material is also saved to the same slot of the slab, stairs and wall variants.
| Value | Description |
|---|---|
| Smoothness | How glossy the surface is. |
| F0 (non-metal reflectance) | Base reflectance of non-metals. |
| Metal · Metal type | Metalness and type (iron · gold · aluminum · chrome · copper · lead · platinum · silver · base-color metal). |
| Emission | How much it glows by itself. |
| Porosity | How much it gets wet in rain. |
| SSS (subsurface scattering) | How much light seeps inside, as with leaves and cloth. |
| AO | Shading in crevices. |
| Height (uniform) · POM depth | Surface relief height and parallax depth. |
| Normal strength · Normal blur · Flip normal Y | Strength and shape of the normal map. |
| Wrap edges | Calculates with the edges wrapped, like a block. |
| Dark = high · Emission threshold | Height direction for Auto-generate and the brightness threshold treated as emission. |
| No shader | Draws the preview without materials for comparison. |
In channel paint, only the brightness (gray) of the color is used as the value. Brighter means a larger value. The eraser returns to the uniform value.
Options
Section titled “Options”Options of the Paint panel.
| Option | Range | Description |
|---|---|---|
| Size | 1 – 32px | Brush size. |
| Hardness | 0 – 100% | Hardness of the brush edge. |
| Opacity | 1 – 100% | Coverage per stroke. |
| Symmetry › Axis | — | Paints symmetrically relative to the model. |
| Clip to face | On/Off | Keeps paint from bleeding outside the face. |
| Sphere brush (O) | On/Off | Paints within a 3D distance around the hit point in 3D. Continues across UV boundaries and face edges. |
| Tolerance | — | Difference treated as the same color when filling. |
| Sample merged | On/Off | Fill and eyedropper look at the merged image. When off, only the current layer. |
| Pixel art | On/Off | Draws without filtering and shows a grid. |
Properties of the custom block window.
| Option | Range | Description |
|---|---|---|
| Name | Text | Name shown in the Content Browser. |
| id | Lowercase letters · digits · _ | The id after np:. |
| Light | 0 – 15 | Light emitted by the block. 0 = no light. |
| Collision | On/Off | When on, the whole cell is solid (doors: the bottom cell only). |
Shortcuts
Section titled “Shortcuts”While the Paint tab is visible, world tool keys are blocked and the keys below work.
| Key | Action |
|---|---|
| Ctrl+Tab | Paint tab ↔ World tab |
| P · B · E · G · I | Pencil · Brush · Eraser · Fill · Eyedropper |
| M · L · V | Rectangle select · Lasso · Move |
| O | Toggle sphere brush |
| [ · ] | Brush size −1 · +1 |
| Ctrl+A · Ctrl+D · Ctrl+Shift+I | Select all · deselect · invert selection |
| Delete | Clear inside the selection |
| Esc | Deselect |
| Ctrl+Z · Ctrl+Y | Paint undo · redo (separate from the world history) |
| Ctrl+S | Save layers (and materials) + save the world |
| F · numpad 1 · 3 · 7 | Fit to model · front · side · top |
| 3D view: left · Alt+left · right-drag · middle-drag · mouse wheel | Paint · eyedropper · orbit · pan · zoom |
Console commands.
| Command | What it does |
|---|---|
texblock list | List of blocks made from textures |
texblock new [texture id] | Open a new custom block window |
texblock edit <id> | Open the window for editing that block |
texblock material <id> | Open the material window for that block |
texblock preview <shape> | Change the preview shape (cube · slab · stairs · wall · fence · fence_gate · door) |
texfind <query> | Find textures (by name or using block) |
texuse <texture id> [pick] | List of blocks using that texture. pick = set a representative block as the brush |
Tips / cautions
Section titled “Tips / cautions”- Paint, materials and biome painting each have their own undo history, separate from the world.
- When you change UVs in the UV editor, the painted image moves along with the faces.
- Vanilla textures are read-only on screen. They are not copied to the project folder, and no materials are made for vanilla faces.
- If even one variant id already exists, nothing is created and the error shows the name.
- Variant shapes have a single form (the inventory shape). There are no stair corners, wall/fence neighbor connections or opening doors.
- Doors are two-block-tall models. Leave the cell above empty when placing.
- Custom block files are saved in
<project>/assets/blocks/<id>/. - Double-click a texture in the Texture panel to choose a block that uses it as the brush.