Skip to main content

BetterModel

Server-side 3D model rendering and animation engine for Minecraft Java Edition. Import BlockBench models, play animations, and create custom entities with zero client-side mods.

What is BetterModel?

BetterModel is a powerful server-side engine that brings fully animated 3D models to Minecraft Java Edition without requiring any client-side modifications. Using item display entities and packet manipulation, it enables you to create custom NPCs, bosses, cosmetics, and interactive entities with BlockBench models.

Server-Side Rendering

No client mods required. All rendering happens server-side using item display entities and packets.

BlockBench Integration

Import .bbmodel files directly. Auto-generates resource packs for seamless integration.

Advanced Animations

Play complex animations with per-player support, including 12-limb player model animations.

Performance First

Optimized for high-traffic servers with asynchronous design and efficient packet handling.

Key Features

Render fully 3D BlockBench models using item display entity packets. No resource pack downloads or client-side mods required for core functionality.
Play complex animations at runtime with support for looping, speed control, and per-player animations. Each player can see different animations simultaneously.
Create custom hitboxes for bones with interaction callbacks. Perfect for boss mechanics, interactive NPCs, and multi-part entities.
Animate player models with full 12-limb support, including individual finger control and advanced body movements.
Automatically generates optimized resource packs from your .bbmodel files, handling all texture and model data transformations.
Works across Bukkit, Spigot, Paper, Purpur, Folia, and Fabric. Single API for all platforms.

Quick Example

Here’s how easy it is to spawn an animated model:
Basic Entity Model
// Get the model renderer
EntityTracker tracker = BetterModel.model("demon_knight")
    .map(renderer -> renderer.getOrCreate(BukkitAdapter.adapt(entity)))
    .orElse(null);

// Play an animation
if (tracker != null) {
    tracker.animate("attack", AnimationModifier.DEFAULT);
}

Get Started

Follow our quickstart guide to create your first animated model

API Reference

Explore the complete API documentation

Examples

See real-world examples and use cases

GitHub

View the source code and contribute

Why Choose BetterModel?

1

Stability First

Conservative approach to feature expansion ensures a stable API and operational safety for production servers.
2

Performance Optimized

Minimized runtime computation, memory footprint, and network overhead through asynchronous design.
3

Built for Scale

Essential features designed specifically for high-population servers and MMORPG content creation.

Community & Support

Discord Community

Join our Discord server for support, discussions, and community showcase

Report Issues

Found a bug? Report it on GitHub Issues
BetterModel is optimized for Minecraft 1.21+. Check the Installation guide for supported versions and platforms.

Build docs developers (and LLMs) love