Lightweight BlockBench model engine & entity animation
This plugin implements the server-side model by using an item-display packet.
- Importing Generic BlockBench model (.bbmodel)
- Auto-generating resource pack
- Playing animation
- Syncing with base entity
- Custom hit box
- Supports 12-limb player animation
Why do I create BetterModel even though ModelEngine already exists?
The main reason I created it is:
- To reduce traffic usage—MEG’s traffic optimization is outdated and insufficient for modern servers.
- To enable faster updates—We can’t afford to wait for MEG’s slow update cycle anymore.
- To provide a more flexible API—MEG is closed-source with a very limited API, which makes extending or integrating difficult.
- To restore vanilla behavior-MEG breaks several vanilla entity features and physics, which this project aims to fix.
Summary
This plugin, of course, implements generic block bench model with animation.
Network optimization
This plugin can optimize network by sight-trace. don't send some packet when player not look this.
Multiple hit-box
This plugin provides multiple hit-box both client and server. (tracking animation rotation)
MythicMobs support (experimental)
Like MEG, This plugin implements simple MythicMobs support.
Code (Text):
model
state
defaultstate
partvisibility
changepart
tint
brightness
glow
enchant
bindhitbox
mountmodel
dismountmodel
dismountallmodel
Player animation
This plugin supports player animation.
Version
- Spigot, Paper or a fork (e.g., Folia)
- Java 21
- Minecraft 1.20.2-1.21.5
Dependency
No
Command
Code (Text):
/bettermodel reload - Reloads this plugin.
/bettermodel spawn - Summons this model to husk.
/bettermodel disguise - disguises self.
/bettermodel undisguise - undisguises self
/bettermodel limb <true/false> - Shows/Hides player limb.
/bettermodel play - Plays player animation.
Permission
Code (Text):
bettermodel - Accesses to command.
Build
Code (Text):
./gradlew build
API
We are using maven central.
Code (Kotlin):
repositories
{
mavenCentral
(
)
}
dependencies
{
compileOnly
(
"io.github.toxicity188:BetterModel:VERSION"
)
}