jasonjgardner/blockbench-mcp-project

blockbench-pbr-materials

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.

First seen Jan 24, 2026

Installation

$ npx skills add jasonjgardner/blockbench-mcp-project --skill blockbench-pbr-materials

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from jasonjgardner/blockbench-mcp-project.

npx skills add jasonjgardner/blockbench-mcp-project

Browse all from jasonjgardner/blockbench-mcp-project

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 15
License LICENSE
Default branch main
Open issues 0
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 6,140 B
  • docs SUMMARY.md 1,270 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 627 installs

SKILL.md

Blockbench PBR Materials

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

Available Tools

Tool Purpose
createpbrmaterial Create new PBR material with texture channels
configure_material Configure material properties
list_materials List all PBR materials
getmaterialinfo Get detailed material info
importtextureset Import texture_set.json file
assigntexturechannel Assign texture to PBR channel
savematerialconfig Export texture_set.json

PBR Channels

Channel Description Format
color Base color/albedo RGB texture
normal Normal map for surface detail RGB (tangent space)
height Heightmap for parallax/displacement Grayscale
mer Metalness/Emissive/Roughness packed R=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 texture
create_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 textures
create_texture: name="brick_color", width=16, height=16
create_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 material
create_pbr_material: name="brick", textures={
  color: "brick_color",
  normal: "brick_normal",
  mer: "brick_mer"
}

# 4. Configure
configure_material: material_id="brick", config={
  metalness_emissive_roughness: {metalness: 0, emissive: 0, roughness: 0.85}
}

# 5. Export
save_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