smithery.ai

blockbench-export

Export a finished Blockbench model and integrate it into the Fabrica mod. Saves model and textures to correct locations and updates block/item definitions.

First seen Apr 8, 2026

Installation

$ npx skills add https://smithery.ai

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 smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

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

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,782 B
  • docs SUMMARY.md 180 B

History

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

SKILL.md

Export Blockbench Model to Mod

Take a finished model from Blockbench and integrate it into the Fabrica codebase.

Prerequisites

  • Blockbench is open with the finished model
  • Model geometry is complete
  • Textures are applied and look correct

Steps

Phase 1: Gather Information

  1. Get project info from Blockbench using mcpblockbenchrisky_eval:

``javascript ({ name: Project.name, format: Project.format.id }) ``

  1. Get texture list using mcpblockbenchlist_textures
  1. Ask user for block/item name using AskUserQuestion:

- Question: "What should this block/item be named in the mod?" - Suggest: Convert project name to ItemName format (e.g., electricgenerator → Electric_Generator) - Options: Suggested name, or let user type custom name

  1. Ask if this is a new item or updating existing using AskUserQuestion:

- Options: "New block/item", "Update existing"

Phase 2: Export Model (Human-in-the-Loop)

  1. Trigger export dialog using mcpblockbenchtrigger_action:

`` action: "export_blockymodel" confirmDialog: false ``

  1. Tell user to save the file:

``` HUMAN ACTION REQUIRED:

A save dialog should be open in Blockbench.

Save the file as: {item_name}.blockymodel Location: Your Documents folder is fine (I'll copy it to the right place)

Reply "done" when you've saved it. ```

  1. Wait for user confirmation before proceeding.

Phase 3: Save Textures

  1. Check texture paths using mcpblockbenchrisky_eval:

``javascript Texture.all.map(t => ({ name: t.name, path: t.path, saved: t.saved })) ``

  1. If textures are not saved, trigger save:

`` mcpblockbenchtriggeraction({ action: "savetextures", confirmDialog: false }) ``

Then tell user: ``` HUMAN ACTION REQUIRED:

Save each texture when prompted. Location: Your Documents folder is fine.

Reply "done" when all textures are saved. ```

  1. Wait for user confirmation before proceeding.

Phase 4: Copy Files to Codebase

  1. Find the exported model file:

``bash find ~/Documents -maxdepth 3 -name "*.blockymodel" -newer /tmp/skill_start -type f `` Or search for the expected filename.

  1. Create model directory:

`` src/main/resources/Common/Models/Blocks/{Item_Name}/ ``

  1. Copy model file:

``bash cp "{sourcepath}" "src/main/resources/Common/Models/Blocks/{ItemName}/model.blockymodel" ``

  1. Copy texture files to src/main/resources/Common/BlockTextures/:

``bash cp ~/Documents/{texture}.png src/main/resources/Common/BlockTextures/ ``

Phase 5: Update Block/Item Definition

  1. If new item: Create Server/Item/Items/{Item_Name}.json:

``json { "TranslationProperties": { "Name": "server.{ItemName}.name", "Description": "server.{ItemName}.description" }, "MaxStack": 1, "Icon": "Icons/ItemsGenerated/{Item_Name}.png", "Categories": ["Blocks.Machines"], "PlayerAnimationsId": "Block", "BlockType": { "Material": "Solid", "DrawType": "Model", "HitboxType": "Full", "BlockSoundSetId": "Metal", "ParticleColor": "#4a4a4a" } } ``

  1. If updating existing: Change DrawType from "Cube" to "Model" and remove Textures array.
  1. Add translation to Server/Languages/en-US/server.lang:

`` {ItemName}.name = {Display Name} {ItemName}.description = {Description} ``

Phase 6: Verify

  1. List created/modified files:

`` src/main/resources/ ├── Common/ │ ├── Models/Blocks/{ItemName}/ │ │ └── model.blockymodel │ └── BlockTextures/ │ └── {textures}.png └── Server/ └── Item/Items/{ItemName}.json ``

  1. Report success with:

- Model location - Textures copied - JSON created/updated - Reminder: "Run /deploy-plugin to build and test"

File Naming Conventions

Source Destination
my_model.blockymodel Common/Models/Blocks/My_Model/model.blockymodel
steel.png Common/BlockTextures/steel.png
Project name Converted to Title_Case for item name

Notes

  • Model path is auto-detected by Hytale when DrawType: "Model" is set
  • Textures referenced in the model must exist in BlockTextures/
  • The item name in the JSON filename must match the model folder name