jasonjgardner/blockbench-mcp-project/blockbench-texturing
Claude Code and agent skill by jasonjgardner/blockbench-mcp-project
- community
Checking that the SKILL.md file is still in the repository.
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.
Install
npx vskill@latest install jasonjgardner/blockbench-mcp-project/blockbench-texturingSKILL.md
Blockbench Texturing
Create and paint textures for 3D models using Blockbench MCP tools.
When the model should use Minecraft's own textures ("vanilla" or "default" textures, or a named block such as bricks or oak planks), use vanilla textures. It downloads Mojang's originals from the CDN before any painting or generation.
For animated texture sheets, use flipbook textures: generate artwork through the GPT Image 2.5 texture skill, convert measured sprite cells to a vertical strip, and configure one-frame UV dimensions and playback metadata.
Plan UVs Before Texture Detail
Carry forward the user's appearance/performance preference. For performance or balanced designs, allocate shared UV tiles for repeated braces/infills, seat ribs, seams, and mounting details before adding geometry. Paint small fasteners onto existing supporting faces; add aligned PBR maps when the target supports them. Reusing UVs alone does not reduce the geometry already present.
Fix texel density before sizing textures. Choose between tiled faces and a unique atlas; for low-poly glTF, collapse face UVs onto a palette atlas. Confirm whether the target accepts non-square or non-power-of-two images: Minecraft does not, while Hytale and Babylon.js do. Minecraft face UVs do not wrap, so repeat a tile by splitting faces. See real-time asset planning sections 7–9.
Inspect the target's box/per-face UV mode and effective UV dimensions before painting. UV units can differ from image pixels; formats with per_texture_uv_size use each face's texture dimensions. Preserve deliberate mirrored/repeated UV overlaps, and allocate unique space for asymmetric detail. Preview a checker or directional mark for stretching, orientation and seams. Match pixel density to the user's style and viewing distance; Minecraft pixel-art rules do not apply to every format. See format and delivery guidance.
Blockbench's native texture-template workflow can lay out UVs, but create_texture creates/imports an image and does not generate that layout. auto_uv_mesh maps faces and does not pack islands. For packed layouts, use a tool actually advertised by the running bundle or the native template/UV workflow; preserve an existing painted atlas before rearranging it.
Preserve UV Proportions and Material Scale
Read UV scale and distortion guidance before applying detailed materials, sharing swatches across different face sizes, or correcting stretched textures. Compute sampled image pixels per model unit along both face directions using the effective texture's frame and logical UV sizes. A shared material normally needs proportionate UV footprints, not the same full rectangle on every face.
Check both local stretching and scale differences between parts with a reversible checker, then inspect the actual grain/pattern. Prefer proportionate subregions, appropriate trim strips, or verified target-supported tiling. A bounded UV rectangle or larger image does not prove correct scale. Keep deliberate stretching for uniform materials or designed effects; a plain albedo with detailed PBR channels still needs the scale check.
Replace Repeated Geometry with a UV Tile
Use a small number of format-supported panels for repeated rail infills or X braces when the chosen viewing distance tolerates flat detail. Map the pattern onto those panels and keep the holes transparent. Reserve opaque regions for solid surfaces and pad atlas islands without filling intentional holes. Check edge-on views, both sides, filtering/mipmaps, and distant views for disappearing bars, halos, or texture bleed before removing the replaced geometry. Test transparent layers for overdraw; one cutout panel per bar defeats the reduction.
Choose the target's alpha-test/culling behavior explicitly; double-sided rendering and translucent blending have costs. Multiple textures are permitted when the format supports them, but importing images does not complete runtime material wiring. For Bedrock custom blocks, follow material-instance and texture delivery; entity bindings use a different workflow.
Generate a Native Texture Template
For a new atlas, enter a supported Edit mode and establish the intended outliner selection, then open the native action without accepting its defaults:
Inspect the returned app screenshot/dialog before using fill_dialog. The current native dialog commonly has name, type="template", resolution (pixel density), rearrange_uv, double_use (reuse matching faces), power, and padding. Send only fields present in that host's dialog. Example after inspecting its defaults:
Choose density, overlap reuse and padding for the target; the template's resolution is not a requested final atlas width. An empty outliner selection may select the whole model, and single-texture formats can process all eligible visible elements even with a partial selection. Check the operation's scope before confirming, especially on painted content. Generation may continue asynchronously: verify list_textures, actual UVs and get_texture after completion before painting. fill_dialog: confirm=false cancels the dialog; it is not a way to fill fields and leave it open. See the native texture generator and official template workflow.
Paint coordinates are image pixels. Pass an explicit texture_id to each paint tool when more than one texture exists. Layers and selections affect native painting; inspect the selected layer and existing selection before painting. layer_name names a new/renamed layer; for most layer actions the tool operates on the currently selected layer rather than resolving an arbitrary layer by name.
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 | |
activate_texture | Select an existing texture | |
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 | |
get_mesh_info | Read mesh face/vertex keys and existing UVs with include_uv=true | |
get_cube_uv | Inspect box/per-face UVs, effective face texture, UV dimensions and bitmap dimensions | |
set_cube_uv | Edit box offset/mirroring or per-face rectangles, rotations and texture references |
Resources
| Resource | URI | Purpose | |
|---|---|---|---|
| textures | textures://{id} | List/read texture info |
Creating Textures
New Blank Texture
Texture with Transparency
Separate UV Dimensions from Bitmap Resolution
In a format with per_texture_uv_size=true, create_texture accepts uv_width and uv_height together as positive numbers. Omit both to preserve the native defaults. The pair also works when importing image data; it sets logical UV dimensions after image decoding without resizing the bitmap.
This static image has four pixels per UV unit on each axis. Multiple textures can have different UV sizes in the same project, so use the face's effective texture dimensions for mapping. list_textures exposes uv_size, bitmap_size, and frame_size in the current bundle. Formats with project-wide UV dimensions reject per-texture overrides; inspect and edit the native project UV-size settings instead. Changing logical dimensions can change existing mapping, so preserve the intended pixel density and verify the result.
Apply to Element
create_texture requires layer_name whenever fill_color is supplied. Texture lookups accept a name or UUID; use the UUID from list_textures when names are ambiguous.
Painting
Basic Brush Stroke
Soft Brush
Fill Area
The native fill API supports exact color matching only; nonzero tolerance is rejected.
Face/element fill modes depend on native geometry/UV context. Texture-pixel coordinates alone do not identify a model face. Use explicit rectangular painting for a known UV rectangle, or establish and verify the native target context before face filling. Inspect the result; a success message alone does not prove that only the intended face changed.
Shapes & Gradients
Draw Rectangle
Draw Hollow Ellipse
Apply Gradient
Erasing
Color Picking
Clone/Copy Brush
Brush Presets
Create Preset
Load Preset
Texture Layers
Create Layer
Set Layer Opacity
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/blockbench-texturing/SKILL.md
Popularity
- Repository stars
- 4
- Repository forks
- 1
- 7-day trend score
- 8
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 22 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/jasonjgardner/blockbench-mcp-project/blockbench-texturing)