Compatibility
Minecraft: Java Edition
1.21.x
1.20.x
1.19.4
Platforms
Creators
Details
Licensed MIT
Published 7 months ago
Updated 22 hours ago
⚡Lightweight BlockBench model engine & entity animation
This plugin implements the fully server-side 3D 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.
Also, you can refer my document to compare both ModelEnigne and BetterModel.
🛞General model/animation
This plugin, of course, implements a Generic BlockBench model with animation.
Network optimization
- Culling by sight-tracke
- Skip sending packet if scale is zero
- Parallel bundling of animation packet
- Keyframe optimization
You can see the report of network optimization in here.
Custom hitbox
This plugin provides custom hitbox both client and server. (tracking animation rotation)
MythicMobs support
Like MEG, This plugin supports MythicMobs, you can use some MEG's mechanics in BetterModel too.
💡Player model/animation
This plugin supports player model with using user's custom skin without textures.
🚀Plugin support
Platform
⚠️Paper is highly recommended.
Version
- Java 21
- Minecraft server 1.20.5-1.21.8
Command
/bettermodel reload — Reloads this plugin.
/bettermodel spawn <model> — Summons this model to husk.
/bettermodel disguise <model> — disguises self.
/bettermodel undisguise [model] — undisguises self
/bettermodel limb <true/false> — Shows/Hides player limb.
/bettermodel play <model> <animation> — Plays player animation.
🔧Build info
Library
- Kotlin stdlib: modern functional programming
- semver4j: semver parser
- CommandAPI: command
- adventure: component
- stable player display: player animation
- expiringmap: concurrent map cache
- DynamicUV: player model-uv
Build
./gradlew build
API
We are using maven central.
repositories {
mavenCentral()
}
dependencies {
compileOnly("io.github.toxicity188:BetterModel:VERSION")
}