Overview
BetterModel automatically generates resource packs from your BlockBench models, including all necessary textures, model files, and metadata. This guide explains how the system works and how to customize it.Automatic Generation
How It Works
When BetterModel loads:- Scans models: Reads all
.bbmodelfiles frommodels/andplayers/ - Extracts assets: Pulls textures, geometries, and animations
- Generates pack: Creates a complete resource pack structure
- Builds pack file: Zips everything into a
.zipfile - Serves pack: Hosts the pack for players to download
The resource pack is regenerated on every plugin reload or server restart. Changes to models require a reload to take effect.
Pack Structure
BetterModel generates a standard Minecraft resource pack:Pack Metadata
Thepack.mcmeta file is automatically generated:
Pack Distribution
Built-in Server
BetterModel includes a built-in HTTP server to distribute packs:External Hosting
For production servers, host the pack externally:Pack Builder API
Understanding PackBuilder
ThePackBuilder class lets you add custom resources:
Adding Custom Resources
Add custom files to the pack:Pack Path Resolution
Navigate pack paths:Resource Obfuscation
BetterModel includes name obfuscation to prevent conflicts:Obfuscation prevents namespace conflicts when multiple plugins add resources to the pack.
Pack Events
Pack Build Events
Listen for pack generation:Advanced Customization
Custom Pack Icon
Add a custompack.png:
Custom Pack Metadata
Modifypack.mcmeta:
Multiple Namespaces
Organize resources under multiple namespaces:Pack Overlays
BetterModel supports version-specific overlays:Performance Optimization
Pack Size
Keep pack size reasonable:- Texture resolution: Use 512x512 or lower
- Model complexity: Optimize polygon count
- Animation data: Remove unused keyframes
- Compression: BetterModel automatically compresses
Pack Caching
BetterModel caches pack data:- Pack hash: Generated once per reload
- Resource data: Loaded on-demand
- Texture processing: Cached after first access
Async Pack Building
Pack generation is asynchronous:Pack Configuration
Server Configuration
Client-Side Requirements
Players must have:- Resource packs enabled
- Sufficient memory (for large packs)
- Network connection to download
Troubleshooting
Pack Not Loading
Symptoms: Players don’t see models Solutions:- Check server logs for pack generation errors
- Verify pack file exists:
plugins/BetterModel/pack/ - Test pack download URL manually
- Check firewall settings for HTTP server
- Verify
server.propertiessettings
Textures Missing
Symptoms: Models appear with missing textures Solutions:- Ensure textures are in the same directory as
.bbmodel - Check texture paths in BlockBench
- Verify texture files are valid PNG format
- Reload the plugin to regenerate pack
Pack Size Too Large
Symptoms: Slow downloads, client lag Solutions:- Reduce texture resolution
- Optimize model complexity
- Remove unused animations
- Use external hosting with CDN
- Split models across multiple plugins
Version Mismatch
Symptoms: “Incompatible pack” error Solutions:- Check Minecraft version compatibility
- Verify
pack_formatinpack.mcmeta - Update BetterModel to latest version
- Use pack overlays for multi-version support
Manual Pack Management
Extracting the Pack
Modifying the Pack
- Extract the pack
- Make changes to files
- Re-zip the pack
- Update server.properties with new URL/hash
Testing Pack Changes
Best Practices
Production Recommendations:
- Host packs externally for better performance
- Use CDN for global distribution
- Version your pack files
- Keep pack size under 20MB when possible
- Test packs on different client versions
- Monitor pack download success rate
Development Workflow
- Create model in BlockBench
- Export to
plugins/BetterModel/models/ - Run
/bettermodel reload - Test in-game
- Iterate on model/textures
- Export final pack for production
Version Control
Next Steps
API Reference
Explore the complete API
Installation
Install and configure BetterModel
