Agent skill

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.

Stars 4
Forks 1

Install this agent skill to your Project

npx add-skill https://github.com/jasonjgardner/blockbench-mcp-project/tree/main/skills/blockbench-pbr-materials

SKILL.md

Blockbench PBR Materials

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

Available Tools

Tool Purpose
create_pbr_material Create new PBR material with texture channels
configure_material Configure material properties
list_materials List all PBR materials
get_material_info Get detailed material info
import_texture_set Import texture_set.json file
assign_texture_channel Assign texture to PBR channel
save_material_config 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

Expand your agent's capabilities with these related and highly-rated skills.

jasonjgardner/blockbench-mcp-project

blockbench-hytale

Create Hytale models and animations using Blockbench MCP tools. Use when working with Hytale character/prop formats, creating attachments, setting shading modes, using quads, or animating with visibility keyframes. Requires the Hytale Blockbench plugin to be installed.

4 1
Explore
jasonjgardner/blockbench-mcp-project

blockbench-mcp-overview

Overview of the Blockbench MCP server tools, resources, and prompts. Use to understand the full MCP capability set, learn how tools work together, or when starting a new Blockbench project. Covers all domains (modeling, animation, texturing, PBR, UI, camera) and their MCP interfaces.

4 1
Explore
jasonjgardner/blockbench-mcp-project

blockbench-modeling

Create and edit 3D models in Blockbench using MCP tools. Use when building geometry with cubes, creating meshes, placing spheres/cylinders, editing vertices, extruding faces, or organizing models with groups. Covers both cube-based Minecraft modeling and freeform mesh editing.

4 1
Explore
jasonjgardner/blockbench-mcp-project

blockbench-plugins

Blockbench plugin/extension development for the 3D modeling tool. Use when creating, modifying, or debugging JavaScript plugins for Blockbench including actions, dialogs, panels, menus, toolbars, model manipulation, animation APIs, and custom formats/codecs. Triggers on Blockbench plugin, Blockbench extension, Blockbench API, BBPlugin, model editor plugin, or 3D modeling tool extension.

4 1
Explore
jasonjgardner/blockbench-mcp-project

blockbench-texturing

Create and paint textures in Blockbench using MCP tools. Use when creating textures, painting on models, using brush tools, filling colors, drawing shapes, applying gradients, managing texture layers, or working with UV mapping. Covers pixel art texturing, procedural painting, and UV manipulation.

4 1
Explore
jasonjgardner/blockbench-mcp-project

blockbench-animation

Create and manage animations in Blockbench using MCP tools. Use when animating 3D models, creating keyframes, managing bone rigs, editing animation curves, or working with animation timelines. Covers walk cycles, idle animations, combat animations, and complex multi-bone animations.

4 1
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results