Community listing page, reviews may not be monitored by the author.
Strut
No reviews yet
A server and client side animation engine based off of geckolib 4 for 1.21.1 Fabric. Adding features like mesh and armetoure support, Asset syncing from the server to each client and being optimized to use the GPUs fully.
Community voices
Reviews
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
Resources
External Links
About
Description
Strut
Strut is a library mod for animated models in Minecraft: Java Edition, for Fabric on 1.21.1. Players only need it when another mod requires it: place it in the mods folder.
For mod developers, it is an animation and model engine, forked from GeckoLib.
Origin
Strut is a hard fork of GeckoLib 4.9.3. It keeps the parts of GeckoLib that already work well: bones, Molang, easings and animation controllers. Everything around them has been rebuilt. The code lives in its own com.sandymandy.strut package, so it does not conflict with GeckoLib. It supports only Fabric and Minecraft 1.21.1.
Additions
- Server-owned animation. Code on the server says which animation to play, and every client derives the same pose from a shared clock. Late joiners, lag and reconnects need no extra handling.
- Events that run once. Keyframes can run gameplay code on the server and sounds or particles on clients, without duplicates or skips.
- Meshes and skeletons. Models are not limited to cubes. Meshes with armatures, skinning and deformation are supported, in a compact binary format (
.strutmodeland.strutanim). - A Blockbench plugin for authoring those models, with a physics tab, armour setup and event markers on the timeline.
- Physics. Jiggle bones, hair, cloth, flesh and ragdolls, with collision against the world, other models and players.
- Player bodies. A player can be drawn as a Strut model without a second entity, with armour and held items.
- Armour as a separate model per slot, bound to the wearer by bone name.
- Scenes. Several entities animated together, for cutscenes and paired animations.
- Asset sync. A server can send its models, textures and sounds to players on join, without a resource pack.
- A GPU renderer that works with Iris shader packs, including shadows, with per-model shading styles and lighting from the sun, the moon and nearby light sources.
- Render hooks. Other mods can add their own shader code, coloured lights and per-model values.
- Minimal boilerplate. An entity is a class with no body and a single registration line.
For developers
Add the Modrinth Maven repository and the dependency to build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "" rel="noopener nofollow" target="_blank">https://api.modrinth.com/maven"
}
}
filter {
includeGroup "maven.modrinth"
}
}
}
dependencies {
modImplementation "maven.modrinth:strut:1.0.0"
}
Then declare it in fabric.mod.json:
"depends": {
"strut": "*"
}
Getting started goes from nothing to an animated entity, and the migration guide lists every renamed class and what can be deleted when moving from GeckoLib. One change affects ported mods: animation decisions move to the server, which changes how a GeckoLib mod behaves.
Requirements
Minecraft 1.21.1, Fabric Loader 0.17 or newer, Fabric API and Java 21. The GPU renderer needs OpenGL 4.3, so macOS is not supported. Iris is optional.
Links
- Source: https://github.com/sandyymandy/Strut
- Documentation: https://sandyymandy.github.io/Strut/
- Blockbench plugin: https://github.com/sandyymandy/Strut-BlockBench-Plugin
- Issues: https://github.com/sandyymandy/Strut/issues
Status
The project is in early development. The API may still change, and some rough edges are to be expected. Bug reports are welcome.
Some of the code in this project was written with the help of AI tools. The design and direction are the author's, and the build runs a large test suite.
Licensed under MIT. Strut contains GeckoLib code, which is under its own MIT license.
Screenshots
Gallery
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Get it on
Available Platforms
On ModDex
Community snapshot
By the numbers
Statistics
Resources