Guide

Importing Brikk models into ModelEngine

Brikk exports a Blockbench .bbmodel with the geometry, the embedded texture, a hitbox, and your keyframe animations all in one file — which is exactly what ModelEngine reads. This walks you from an export to a fully animated, correctly-facing custom mob.

Before you start

  • ModelEngine installed on a Paper/Spigot server (R4 / 4.0+ recommended).
  • MythicMobs (optional) if you want to drive states from spells, spawns, or skills.
  • A Brikk export with Blockbench (.bbmodel) selected and the animations you want ticked in the export panel.
1

Export the model from Brikk

In the studio, open the Export panel, choose Blockbench (.bbmodel), and under Include animations tick every clip you want in-game (they are stored inside the .bbmodel — the Java/Bedrock formats do not carry animations). The texture is embedded automatically, so there is no separate PNG to manage.

You'll get a single file, e.g. frost_wyvern.bbmodel. The filename becomes the model's id in ModelEngine, so keep it lowercase with underscores and no spaces.

2

Drop it into the blueprints folder

Copy the file into your server at:

plugins/ModelEngine/blueprints/<anything>/frost_wyvern.bbmodel

You can nest it in any sub-folder — ModelEngine scans them all. Then reload:

/meg reload

Watch the console. A clean import prints the model id and no errors. If you see a warning about a missing hitbox, you're on an older Brikk export — re-export; current Brikk always writes an invisible hitbox bone.

3

Put the model on a mob

The quickest test — spawn a bare model entity:

/meg spawn frost_wyvern

For a real mob, apply it through MythicMobs. Attach the model and set a default looping state so it breathes/hovers instead of standing frozen:

# MythicMobs mob config — representative; check the ModelEngine
# wiki for the exact mechanic syntax on your version.
FrostWyvern:
  Type: PHANTOM              # base entity (hidden by the model)
  Options:
    MovementSpeed: 0.25
  Skills:
    - model{mid=frost_wyvern} @self ~onSpawn
    - state{mid=frost_wyvern;s=idle;li=true} @self ~onSpawn

The base entity type is up to you (a phantom flies, a zombie walks, a horse can be ridden). Give it Options: Invisible: trueif your version doesn't auto-hide it.

4

Fix the facing (the #1 gotcha)

Brikk builds every model with the front toward +Z(the eyes, chest, and any held item all face +Z). ModelEngine points a model down the mob's -Z / north axis, so a fresh import will look like it's walking and flying backwards. Two ways to fix it, pick one:

  • Rotate before importing (recommended, universal). Open the .bbmodel in Blockbench, select the top root group (or Edit → Select All), set its rotation to Y = 180 (or use Animate → rotate the root bone 180° and apply), then re-export/save. Now -Z is the front and it faces the way it travels.
  • Offset in your plugin.If a plugin controls the mob's yaw (as with a custom rideable-mount system), add a 180° model-yaw offset for that model instead of editing geometry.

Either way, sanity-check in-game: press forward and the head should lead. If it leads with the tail, you applied the flip to the wrong one — do the other.

5

Play the animations

Every clip you exported is a ModelEngine state, named exactly as it was in Brikk — idle, walk, fly, attack, and so on. Loop vs. play-once is baked in per clip. Drive them from MythicMobs skills:

# play a one-shot attack, then let idle resume
Skills:
  - state{mid=frost_wyvern;s=attack;li=false} @self ~onAttack
  - state{mid=frost_wyvern;s=walk;li=true}   @self ~onMove   # if you gate it
  - state{mid=frost_wyvern;s=idle;li=true}   @self ~onSpawn

Tips that keep animations reliable:

  • Name locomotion clips idle / walk / flyso they map cleanly to the states you'll trigger on move/flight.
  • Brikk animates real bones (each limb/part the animation targets becomes its own bone with a proper joint pivot), so rotations bend at the shoulder/hip/neck — not around the world origin. Nothing to configure.
  • If a state does nothing, the clip name in the mechanic doesn't match the clip name in the file. They are case-sensitive.

Troubleshooting

SymptomFix
Model invisible / mob shows as vanillaRun /meg reload; confirm the id (filename) matches your mid=; check the console for import errors.
Mob walks / flies backwardRotate the root 180° on Y and re-import, or add a 180° yaw offset (Step 4).
Model shows but never animatesExport with the animation ticked; trigger the state with the exact clip name; set li=true for looping idles.
Model too big / too smallScale it in the ModelEngine blueprint or on the model mechanic — don't rescale the geometry.
"Missing hitbox" on loadRe-export from Brikk; current exports always include an invisible hitbox bone.
Texture looks stretchedThe atlas is embedded at the model's real resolution — don't resize the PNG or change box_uv; re-export if you edited it.
Mechanic syntax differs slightly between ModelEngine versions. When in doubt, the official ModelEngine documentation has the current model and state mechanic reference. The Brikk side — geometry, bones, pivots, hitbox, embedded texture, and named animation clips — is always written the way ModelEngine expects.

Ready to make one? Generate a model and export it as .bbmodel.