Blockbench Pbr Materials

jasonjgardner/blockbench-mcp-project/.claude/skills/blockbench-pbr-materials

by jasonjgardnere9c29a93e54bdd9aaa8a308196dfd4147e47d88cNo licenseListed Oct 9, 2026Updated Oct 9, 2026

Create and manage PBR (Physically Based Rendering) materials in Blockbench using MCP tools. Use when working with texture_set.json files, creating normal/height/MER maps, configuring material properties for Minecraft Bedrock RTX, or setting up multi-channel texture workflows.

Instructions onlyDesign & Creative
AI-generated overview

Guides creating and configuring PBR materials in Blockbench via MCP tools for Minecraft Bedrock RTX texture sets.

What it does
This skill documents a set of MCP tools for creating, configuring, querying, importing and exporting PBR materials in Blockbench. It explains the color, normal, height and MER texture channels, material properties such as metalness, emissive and roughness, and subsurface scattering. It also provides worked examples for common material types like stone, metal, glass and glowing blocks, and a full block-material workflow ending in a texture_set.json export.
When to use it
Use it when working with texture_set.json files, building normal, height or MER maps, or configuring material properties for Minecraft Bedrock RTX. It also fits setting up multi-channel texture workflows in Blockbench.
Requirements
Requires Blockbench with the referenced MCP tools available (create_pbr_material, configure_material, list_materials, get_material_info, import_texture_set, assign_texture_channel, save_material_config, plus texture and brush tools). File paths are used for import and export. No scripts ship with the skill; it is instructions only.

Blockbench PBR Materials

Create and manage PBR materials for Minecraft Bedrock RTX and other PBR workflows.

Available Tools

ToolPurpose
create_pbr_materialCreate new PBR material with texture channels
configure_materialConfigure material properties
list_materialsList all PBR materials
get_material_infoGet detailed material info
import_texture_setImport texture_set.json file
assign_texture_channelAssign texture to PBR channel
save_material_configExport texture_set.json

PBR Channels

ChannelDescriptionFormat
colorBase color/albedoRGB texture
normalNormal map for surface detailRGB (tangent space)
heightHeightmap for parallax/displacementGrayscale
merMetalness/Emissive/Roughness packedR=Metal, G=Emissive, B=Roughness

Quick Start

Create Basic PBR Material

create_pbr_material: name="stone_pbr", textures={  color: "stone_color",  normal: "stone_normal"}

Create Full Material

create_pbr_material: name="gold_block", textures={  color: "gold_color",  normal: "gold_normal",  height: "gold_height",  mer: "gold_mer"}

Material Configuration

Set Material Properties

configure_material: material_id="stone_pbr", config={  metalness_emissive_roughness: {    metalness: 0.0,    emissive: 0.0,    roughness: 0.8  }}

Metallic Material

configure_material: material_id="gold_block", config={  metalness_emissive_roughness: {    metalness: 1.0,    emissive: 0.0,    roughness: 0.3  }}

Emissive Material (Glowing)

configure_material: material_id="glowstone", config={  metalness_emissive_roughness: {    metalness: 0.0,    emissive: 1.0,    roughness: 0.9  }}

Texture Assignment

Assign Individual Channel

assign_texture_channel: material_id="stone_pbr", channel="height",  texture_id="stone_heightmap"

Replace Channel

assign_texture_channel: material_id="stone_pbr", channel="normal",  texture_id="stone_normal_v2"

Import/Export

Import texture_set.json

import_texture_set: file_path="C:/packs/stone_texture_set.json"

Export texture_set.json

save_material_config: material_id="stone_pbr",  output_path="C:/packs/textures/stone_texture_set.json"

Querying Materials

List All Materials

list_materials# Returns: [{uuid, name, textureCount, hasColor, hasNormal, hasHeight, hasMER}]

Get Material Details

get_material_info: material_id="stone_pbr"# Returns full channel assignments and config

MER Texture Format

The MER channel packs three properties into RGB:

  • R (Red): Metalness (0=dielectric, 1=metal)
  • G (Green): Emissive intensity (0=none, 1=full glow)
  • B (Blue): Roughness (0=smooth/shiny, 1=rough/matte)

Creating MER Texture

# Create blank MER texturecreate_texture: name="block_mer", width=16, height=16,  fill_color=[0, 0, 204, 255]  # Non-metal, no glow, 80% rough
# Paint metallic areas (R channel)paint_with_brush: texture_id="block_mer", coordinates=[{x: 8, y: 8}],  brush_settings={color: "#FF0000", size: 4}  # Metallic spot
# Paint glowing areas (G channel)paint_with_brush: texture_id="block_mer", coordinates=[{x: 4, y: 4}],  brush_settings={color: "#00FF00", size: 2, blend_mode: "add"}

Common Material Types

Stone/Rock

create_pbr_material: name="stone", textures={color: "stone_color", normal: "stone_normal"}configure_material: material_id="stone", config={  metalness_emissive_roughness: {metalness: 0, emissive: 0, roughness: 0.9}}

Metal (Gold, Iron)

create_pbr_material: name="gold", textures={color: "gold_color", normal: "gold_normal", mer: "gold_mer"}configure_material: material_id="gold", config={  metalness_emissive_roughness: {metalness: 1.0, emissive: 0, roughness: 0.25}}

Glass/Crystal

create_pbr_material: name="glass", textures={color: "glass_color"}configure_material: material_id="glass", config={  metalness_emissive_roughness: {metalness: 0, emissive: 0, roughness: 0.05}}

Glowing Block

create_pbr_material: name="lamp", textures={color: "lamp_color", mer: "lamp_mer"}configure_material: material_id="lamp", config={  metalness_emissive_roughness: {metalness: 0, emissive: 1.0, roughness: 0.8}}

Subsurface Scattering (Bedrock 1.21.30+)

configure_material: material_id="leaves", config={  subsurface_scattering: {    red: 0.3,    green: 0.8,    blue: 0.2  }}

Workflow Example

Complete Block Material

# 1. Create base texturescreate_texture: name="brick_color", width=16, height=16create_texture: name="brick_normal", width=16, height=16, fill_color="#8080FF"create_texture: name="brick_mer", width=16, height=16, fill_color=[0, 0, 200, 255]
# 2. Paint textures (color, normal, mer)paint_with_brush: texture_id="brick_color", ...paint_with_brush: texture_id="brick_normal", ...
# 3. Create materialcreate_pbr_material: name="brick", textures={  color: "brick_color",  normal: "brick_normal",  mer: "brick_mer"}
# 4. Configureconfigure_material: material_id="brick", config={  metalness_emissive_roughness: {metalness: 0, emissive: 0, roughness: 0.85}}
# 5. Exportsave_material_config: material_id="brick", output_path="./textures/brick_texture_set.json"

Tips

  • Normal maps use tangent space (blue-ish color, RGB where B is up)
  • Height maps are grayscale (white=high, black=low)
  • MER channels can be painted separately or as a combined texture
  • Use list_materials to see what's available
  • Always test in-game with RTX enabled for accurate preview
  • Roughness 0 = mirror-like, Roughness 1 = completely diffuse

Source and attribution

Source:jasonjgardner/blockbench-mcp-projectin.claude/skills/blockbench-pbr-materialsat commite9c29a9

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal