jasonjgardner

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.

jasonjgardner 6 2 Updated 4mo ago
GitHub

Install

npx skillscat add jasonjgardner/blockbench-mcp-project/blockbench-texturing

Install via the SkillsCat registry.

SKILL.md

Blockbench Texturing

Create and paint textures for 3D models using Blockbench MCP tools.

Available Tools

Texture Management

Tool Purpose
create_texture Create new texture with size and fill color
list_textures List all project textures
get_texture Get texture image data
apply_texture Apply texture to element

Paint Tools

Tool Purpose
paint_with_brush Paint with customizable brush
paint_fill_tool Bucket fill areas
draw_shape_tool Draw rectangles/ellipses
gradient_tool Apply gradients
eraser_tool Erase with brush settings
color_picker_tool Pick colors from texture
copy_brush_tool Clone/copy texture areas

Brush Management

Tool Purpose
create_brush_preset Save brush settings
load_brush_preset Load saved brush
paint_settings Configure paint mode

Layers & Selection

Tool Purpose
texture_layer_management Manage texture layers
texture_selection Create/modify selections

UV Tools

Tool Purpose
set_mesh_uv Set UV coordinates
auto_uv_mesh Auto-generate UVs
rotate_mesh_uv Rotate UV mapping

Resources

Resource URI Purpose
textures textures://{id} List/read texture info

Creating Textures

New Blank Texture

create_texture: name="skin", width=64, height=64, fill_color="#808080"

Texture with Transparency

create_texture: name="overlay", width=32, height=32, fill_color=[0, 0, 0, 0]

Apply to Element

apply_texture: id="body", texture="skin", applyTo="all"

Painting

Basic Brush Stroke

paint_with_brush: texture_id="skin", coordinates=[
  {x: 10, y: 10},
  {x: 15, y: 12},
  {x: 20, y: 10}
], brush_settings={color: "#FF0000", size: 3, shape: "circle"}

Soft Brush

paint_with_brush: texture_id="skin", coordinates=[{x: 32, y: 32}],
  brush_settings={color: "#FFFFFF", size: 10, softness: 50, opacity: 128}

Fill Area

paint_fill_tool: texture_id="skin", x=16, y=16, color="#3366FF",
  fill_mode="color_connected", tolerance=10

Fill Entire Face

paint_fill_tool: texture_id="skin", x=0, y=0, color="#228B22",
  fill_mode="face"

Shapes & Gradients

Draw Rectangle

draw_shape_tool: texture_id="skin", shape="rectangle",
  start={x: 0, y: 0}, end={x: 16, y: 16}, color="#FFCC00"

Draw Hollow Ellipse

draw_shape_tool: texture_id="skin", shape="ellipse_h",
  start={x: 8, y: 8}, end={x: 24, y: 24}, color="#000000", line_width=2

Apply Gradient

gradient_tool: texture_id="skin",
  start={x: 0, y: 0}, end={x: 0, y: 32},
  start_color="#87CEEB", end_color="#1E90FF"

Erasing

eraser_tool: texture_id="skin", coordinates=[{x: 10, y: 10}, {x: 12, y: 12}],
  brush_size=5, shape="circle", opacity=255

Color Picking

color_picker_tool: texture_id="skin", x=16, y=16
# Returns picked color, sets as active

Clone/Copy Brush

copy_brush_tool: texture_id="skin",
  source={x: 0, y: 0}, target={x: 32, y: 0},
  brush_size=8, mode="copy"

Brush Presets

Create Preset

create_brush_preset: name="soft_round", size=8, shape="circle",
  softness=30, opacity=200, color="#FFFFFF"

Load Preset

load_brush_preset: preset_name="soft_round"

Texture Layers

Create Layer

texture_layer_management: texture_id="skin", action="create_layer",
  layer_name="details"

Set Layer Opacity

texture_layer_management: texture_id="skin", action="set_opacity",
  layer_name="details", opacity=75

Merge Down

texture_layer_management: texture_id="skin", action="merge_down",
  layer_name="details"

Selections

Rectangle Selection

texture_selection: texture_id="skin", action="select_rectangle",
  coordinates={x1: 0, y1: 0, x2: 16, y2: 16}

Add to Selection

texture_selection: texture_id="skin", action="select_ellipse",
  coordinates={x1: 8, y1: 8, x2: 24, y2: 24}, mode="add"

Invert Selection

texture_selection: texture_id="skin", action="invert_selection"

Feather Edges

texture_selection: texture_id="skin", action="feather_selection", radius=2

UV Mapping

Auto UV for Mesh

auto_uv_mesh: mesh_id="sphere", mode="project"  # project, unwrap, cylinder, sphere

Set Custom UV

set_mesh_uv: mesh_id="cube", face_key="north",
  uv_mapping={"v1": [0, 0], "v2": [16, 0], "v3": [16, 16], "v4": [0, 16]}

Rotate UV

rotate_mesh_uv: mesh_id="cube", angle="90"

Paint Settings

paint_settings: pixel_perfect=true, mirror_painting={enabled: true, axis: ["x"]},
  lock_alpha=true

Common Workflows

Skin Texture

# Create texture
create_texture: name="player_skin", width=64, height=64, fill_color="#C4A484"

# Base colors
paint_fill_tool: x=8, y=8, color="#C4A484", fill_mode="face"  # Face
paint_fill_tool: x=20, y=20, color="#3366CC", fill_mode="face"  # Body

# Details with brush
paint_with_brush: coordinates=[{x: 10, y: 10}, {x: 12, y: 10}],
  brush_settings={color: "#000000", size: 1}  # Eyes

# Apply
apply_texture: id="head", texture="player_skin"

Procedural Pattern

# Create base
create_texture: name="pattern", width=32, height=32, fill_color="#FFFFFF"

# Draw grid
draw_shape_tool: shape="rectangle_h", start={x: 0, y: 0}, end={x: 32, y: 32},
  color="#CCCCCC", line_width=1
draw_shape_tool: shape="rectangle_h", start={x: 8, y: 8}, end={x: 24, y: 24},
  color="#999999", line_width=1

Tips

  • Use pixel_perfect=true in paint_settings for clean pixel art
  • Enable mirror_painting for symmetrical textures
  • Use layers for non-destructive editing
  • lock_alpha prevents painting outside existing pixels
  • Use fill_mode="color_connected" to fill only touching same-color pixels
  • Create brush presets for frequently used settings