Overview
BetterModel is available as a Fabric mod, bringing server-side 3D model rendering to Fabric-based servers. The Fabric implementation uses mixins and access wideners for deep integration with Minecraft’s internals.The Fabric port was contributed by Kouvali and is maintained alongside the Bukkit versions.
Server-Side
Runs on Fabric servers with no client-side requirements
Polymer Integration
Uses Polymer Resource Pack for automatic resource distribution
Mixin-Based
Deep Minecraft integration via Fabric mixins
Quilt Compatible
Works on both Fabric Loader and Quilt
Installation
Install Fabric Loader
Ensure you have Fabric Loader installed. BetterModel requires:
- Minecraft: 1.21.11
- Fabric Loader: Any version
- Fabric API: Required (see dependencies below)
Download BetterModel
Get the Fabric version from Modrinth:
Note the version format:
VERSION+MINECRAFT_VERSION-fabric.jarInstall Dependencies
BetterModel requires these Fabric mods (auto-installed by most launchers):Required Fabric API Modules:
fabric-api-basefabric-command-api-v2fabric-data-attachment-api-v1fabric-entity-events-v1fabric-events-interaction-v0fabric-lifecycle-events-v1fabric-networking-api-v1fabric-transitive-access-wideners-v1
adventure-platform-fabric- Text componentscloud- Command frameworkpolymer-resource-pack- Automatic pack distributionfabric-language-kotlin- Kotlin runtime
Architecture Differences
Polymer Resource Pack Integration
Unlike Bukkit versions, Fabric uses Polymer for automatic resource pack distribution:Polymer Integration
- Injects BetterModel assets into Polymer’s resource pack
- Handles pack versioning and format detection
- Sends the pack to connecting players
Mixin-Based Entity Management
The Fabric version uses mixins for entity tracking:Entity Mixin
- EntityMixin: Tracks entity lifecycle and ticking
- LivingEntityMixin: Handles living entity events
- ServerLevelEntityCallbacksMixin: Entity spawn/removal events
- DisplayAccessor: Access to display entity internals
Access Wideners
BetterModel uses access wideners for deeper integration:bettermodel.accesswidener
Fabric-Specific API
Platform Access
Fabric Platform
Entity Adapters
Fabric Adapters
Data Attachments
Fabric version uses Fabric’s Data Attachment API for storing model data:Data Attachments
Gradle Integration
To depend on BetterModel Fabric in your mod:build.gradle.kts
Fabric Mod JSON
Include BetterModel as a dependency:fabric.mod.json
Performance Characteristics
Bundle Packet Optimization
The Fabric version implements custom bundle packet handling:Bundle Packets
Async Resource Generation
Polymer integration allows async resource pack generation:Async Generation
Differences from Bukkit Version
Resource Pack Distribution
Resource Pack Distribution
Bukkit: Manual distribution via server.properties or pluginsFabric: Automatic via Polymer Resource Pack APIPolymer automatically:
- Merges resource packs from multiple mods
- Handles pack format versions and overlays
- Serves packs directly from server memory
Entity Management
Entity Management
Bukkit: Event-based with Bukkit APIFabric: Mixin-based injection into Minecraft’s tick loopMixins provide:
- Lower overhead (no event bus)
- Direct access to entity internals
- Earlier hook points in entity lifecycle
Configuration Location
Configuration Location
Bukkit:
plugins/BetterModel/Fabric: config/bettermodel/Follows Fabric’s standard config directory convention.Command System
Command System
Bukkit: Bukkit command APIFabric: Fabric Command API v2Same Cloud command framework, different registration:
Fabric Commands
Scheduler API
Scheduler API
Bukkit: BukkitScheduler or Paper’s async schedulerFabric: Minecraft’s server task queue
Fabric Scheduler
Compatibility
Quilt Support
BetterModel works on Quilt Loader without modification. The mod loader is detected at runtime and both are fully supported.
Mod Compatibility
Compatible with most Fabric mods. Known working integrations:- Polymer mods: Full compatibility via Polymer API
- Fabric API: Required dependency
- Adventure Platform Fabric: Used for text components
What’s NOT Supported
The Fabric version does not include:- MythicMobs integration (Bukkit only)
- Citizens integration (Bukkit only)
- Bukkit plugin hooks
Troubleshooting
Missing dependencies
Missing dependencies
Error: “Mod requires fabric-api-base”Solution: Install Fabric API. Most launchers include this, but you may need to manually download it from Modrinth.Required mods:
- Fabric API (includes all required modules)
- Fabric Language Kotlin
- Adventure Platform Fabric
- Cloud Command Framework
- Polymer Resource Pack
Mixin conflicts
Mixin conflicts
Error: “Mixin application failed”Solution: Check for conflicting mods that mixin into Entity, Display, or packet classes. Enable mixin debug logging:
Resource pack not applying
Resource pack not applying
Symptom: Models appear as regular itemsChecks:
- Verify Polymer Resource Pack is installed
- Check client received the pack (F3 + T to reload)
- Look for Polymer messages in server console
Access widener errors
Access widener errors
Error: “IllegalAccessError”Solution: Ensure you have
fabric-transitive-access-wideners-v1 installed. This Fabric API module is required for access wideners to work properly.Example: Fabric Mod Integration
Using BetterModel in Your Fabric Mod
Next Steps
Bukkit Platforms
Compare with Bukkit/Spigot/Paper implementation
API Reference
Explore the complete API documentation
Creating Models
Learn how to create BlockBench models
Examples
See complete usage examples
