name: blockbench-use description: "MANDATORY prerequisite — invoke BEFORE any mcp__blockbench__* tool call that creates, modifies, or exports Blockbench content. Orchestrates the other blockbench-* skills (modeling, texturing, animation, PBR, Hytale, MCP overview). Trigger on: 3D model/texture/animation creation or edits in Blockbench; calls to mcp__blockbench__* tools; phrases like 'build a Minecraft model', 'paint a texture', 'animate this rig', 'export the model'. Dispatches to the right sub-skill(s), enforces pre-flight checks (project open, format, outline), wraps risky work in checkpoints, and ensures exports close the loop."
Blockbench Use
Orchestrator for Blockbench MCP work. Load this before touching the 3D scene so the right sub-skills load and the right pre-flight checks run.
Rule
Any request that will call an mcp__blockbench__* tool to create or modify content must go through this skill first.
Steps, in order:
- Classify the request → pick one or more sub-skills (table below).
- Pre-flight → confirm a project is open and the format is correct (see "Pre-flight checks").
- Load the sub-skill(s) via the Skill tool.
- Checkpoint before risk → call
save_checkpointfor multi-step edits that might need rollback. - Execute the sub-skill's workflow.
- Close the loop → screenshot, validate (Hytale), or export if the user asked for a deliverable.
Skill routing table
Pick by primary intent. When the task spans domains, load all relevant skills before starting.
| User intent | Primary skill | Also load when… |
|---|---|---|
| Build cubes, meshes, groups, hierarchy | blockbench-modeling |
needs texture → blockbench-texturing |
| Paint, fill, draw, brush, layers, UV | blockbench-texturing |
channel-aware (normal/MER) → blockbench-pbr-materials |
| Keyframes, bone rigs, walk/idle/attack | blockbench-animation |
bones need geometry first → blockbench-modeling |
.texture_set.json, normal/height/MER |
blockbench-pbr-materials |
textures not yet drawn → blockbench-texturing |
.blockymodel, .blockyanim, attachments, quads, stretch, shading modes |
blockbench-hytale |
modeling/animation parts → those skills |
| "What tools are available?" / unclear scope | blockbench-mcp-overview |
— |
| Write a Blockbench JS plugin (not use MCP) | blockbench-plugins (from blockbench-development/) |
— |
Skip this skill for pure research questions (API docs, "how does Blockbench work?"). Go straight to blockbench-mcp-overview.
Pre-flight checks
Run before any mutation. One round of list_outline + list_textures is usually enough.
- Is a project open? If no project, call
create_projectfirst (format from the routing table below). - Is the format correct for the task?
- Cube modeling (Minecraft) →
bedrock_block,java_block,bedrock - Mesh/freeform →
free,modded_entity,optifine_entity - Hytale character →
hytale_character(64px) - Hytale prop →
hytale_prop(32px) - Generic →
genericorfree
- Cube modeling (Minecraft) →
- What's already there? Use
list_outline(structure) +list_textures(materials). Preferfind_elements_by_criteria/filter_by_materialover dumping the whole outline for large projects. - Hytale project? Run
hytale_validate_modelat the end; never silently exceed 255 nodes.
Multi-skill workflow compositions
"Create a Minecraft character with a walk cycle"
blockbench-modeling → bones + cubes
blockbench-texturing → skin texture
blockbench-animation → walk cycle keyframes
# finally:
capture_screenshot → preview
export_model: codec_id="project" → save .bbmodel
"Make a Bedrock RTX block"
blockbench-modeling → single cube
blockbench-texturing → color map
blockbench-pbr-materials → normal + MER + texture_set.json
# finally:
hytale_validate_model → (skip — not Hytale)
capture_screenshot
"Build a Hytale character with attachments"
blockbench-hytale → read first: format, node limits, pieces
blockbench-modeling → geometry in character format
blockbench-animation → optional keyframes (60 FPS)
# separately per attachment collection:
blockbench-hytale → hytale_set_attachment_piece on bones
# finally:
hytale_validate_model → node count, stretch, shading
export_model: codec_id="blockymodel"
"Retexture an existing model"
# Pre-flight: find everything that uses the old texture
filter_by_material: texture="old_skin"
# Load:
blockbench-texturing → paint/create replacement
# Swap references:
apply_texture per match (from filter_by_material results)
Safety & efficiency rules (apply in every session)
- Checkpoint before risk. For any workflow of 3+ mutations, call
save_checkpoint: name="<descriptive>"first. If the result is wrong,undo: steps=Nback. - Filter, don't dump. Prefer
find_elements_by_criteria,filter_by_material, orselect_all_of_typeoverlist_outlinewhen you know the shape of what you want. Large outlines blow context. - Respect the format. Don't call Hytale tools on a non-Hytale project — they will error. Check
Format.idviarisky_evalorhytale_get_format_infoif unsure. - Screenshot after meaningful changes.
capture_screenshotconfirms the model looks right. Do it at milestones, not every edit. - Export only when the user asks for a deliverable. Use
list_export_formatsfirst to pick the right codec, thenexport_modelwith apath(or content-only if the user just wants to see it). - Never call
trigger_action: action="undo"or"redo". Use the dedicatedundo/redotools — they return which actions were traversed. - Name everything. Descriptive names make
find_elements_by_criteriaand filtering work later.
When to load blockbench-mcp-overview
Load it instead of a specialized skill when:
- The user's intent is ambiguous ("help me with this model")
- The tool call count will be small (<5) and spans multiple domains
- The user is asking about capabilities, not executing
Otherwise prefer the specialized skills — they have concrete examples and return shapes.
What this skill does NOT cover
- Blockbench plugin development (writing
.jsplugins) →blockbench-plugins - MCP server development (adding tools to this repo) → not in this skill set
- General 3D theory / THREE.js / rendering internals → out of scope