Skip to main content

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:
  1. Scans models: Reads all .bbmodel files from models/ and players/
  2. Extracts assets: Pulls textures, geometries, and animations
  3. Generates pack: Creates a complete resource pack structure
  4. Builds pack file: Zips everything into a .zip file
  5. 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

The pack.mcmeta file is automatically generated:
The pack format is automatically adjusted based on your Minecraft version.

Pack Distribution

Built-in Server

BetterModel includes a built-in HTTP server to distribute packs:
Players automatically download the pack when joining.

External Hosting

For production servers, host the pack externally:
If using a public file host, ensure the direct download link is used, not a preview page.

Pack Builder API

Understanding PackBuilder

The PackBuilder 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 custom pack.png:

Custom Pack Metadata

Modify pack.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
Large resource packs (>50MB) can cause:
  • Long download times
  • Client lag during loading
  • Memory issues on low-end clients

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:
  1. Check server logs for pack generation errors
  2. Verify pack file exists: plugins/BetterModel/pack/
  3. Test pack download URL manually
  4. Check firewall settings for HTTP server
  5. Verify server.properties settings

Textures Missing

Symptoms: Models appear with missing textures Solutions:
  1. Ensure textures are in the same directory as .bbmodel
  2. Check texture paths in BlockBench
  3. Verify texture files are valid PNG format
  4. Reload the plugin to regenerate pack

Pack Size Too Large

Symptoms: Slow downloads, client lag Solutions:
  1. Reduce texture resolution
  2. Optimize model complexity
  3. Remove unused animations
  4. Use external hosting with CDN
  5. Split models across multiple plugins

Version Mismatch

Symptoms: “Incompatible pack” error Solutions:
  1. Check Minecraft version compatibility
  2. Verify pack_format in pack.mcmeta
  3. Update BetterModel to latest version
  4. Use pack overlays for multi-version support

Manual Pack Management

Extracting the Pack

Modifying the Pack

  1. Extract the pack
  2. Make changes to files
  3. Re-zip the pack
  4. 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

  1. Create model in BlockBench
  2. Export to plugins/BetterModel/models/
  3. Run /bettermodel reload
  4. Test in-game
  5. Iterate on model/textures
  6. Export final pack for production

Version Control

Next Steps

API Reference

Explore the complete API

Installation

Install and configure BetterModel