Skip to content
jellymods edited this page Oct 2, 2026 · 3 revisions

Welcome to the marionette-lib wiki!

Marionette

A lightweight procedural animation library for Minecraft Forge 1.20.1, featuring a Blockbench plugin for authoring the rigs it animates.

Marionette builds mobs out of chains of Forge part entities, poses them with FABRIK (Forward And Backward Reaching Inverse Kinematics) inverse kinematics, and syncs them visually with corresponding model parts, enabling easy runtime procedural animation: simply give a limb a target in world space and it'll reach for it.

The library is paired with a Blockbench plugin, which allows for visual rigging, simulation, and automatic Java code generation.

Marionette consists of two halves:

  • the runtime Java library
  • the Blockbench plugin, for visual model creation and exporting

Setup Guide

Java library

Marionette is available through the Curse Maven.

Add the following repository and dependency to your build.gradle:

repositories {
    maven {
        url = "https://cursemaven.com"
    }
}

dependencies {
    minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
    implementation fg.deobf("curse.maven:marionette-lib-1361747:9033319")
}

Replace 9033319 with the version's Curse Maven file ID if you are using a different version.

Also don't forget to declare it as a dependency in your META-INF/mods.toml:

[[dependencies.yourmodid]]
    modId="marionette_lib"
    mandatory=true
    versionRange="[1.0.0,)"
    ordering="AFTER"
    side="BOTH"

Blockbench plugin

Requires Blockbench v5.1.6 or newer and Node 18+ to build.

cd marionette-lib/blockbench-plugin
npm install
npm run build        # -> dist/marionette.js

In Blockbench: File → Plugins → Load Plugin from File, and pick dist/marionette.js. A Marionette Rig format then appears on the start screen; the plugin's tools and panels only show up inside that format, so nothing should change for your other projects.

Documented features

Java library

Really not too useful unless you're writing a model from scratch or forking the library. If you're using the Blockbench plugin, the only crucial thing to check out is the last section in Creating an Entity.

Blockbench plugin

Clone this wiki locally