Resource Pack Manager (RSPM)
Resource Pack Manager (RSPM) is a plugin designed to simplify how Minecraft servers handle resource packs. It automatically merges, hosts, and distributes resource packs, ensuring players always have the correct pack with minimal setup.
What Does It Do?
RSPM detects resource packs from supported plugins like EliteMobs, FreeMinecraftModels, ModelEngine, and others, then merges them together into a single resource pack. This merged pack is automatically hosted and delivered to players when they join your server.
You can also manually add your own resource packs by placing them in the plugins/ResourcePackManager/mixer/ folder. You can add either ZIP files or unzipped resource pack directories. Reference the filename (including .zip extension for zipped packs) in the priorityOrder section. The plugin merges these based on the order you define.
This means you no longer need to mess with manually merging zip files or uploading packs to third-party sites. Just configure your priorities and RSPM handles the rest.
Setup Guide
- Download and drop
ResourcePackManager.jarinto your server’spluginsfolder. - Restart your server.
- (Optional) Add any custom resource packs to the
mixerfolder. - (Optional) Edit
config.ymlto adjust priority or disable auto-hosting. - Run
/rspm reloadif you make changes.
Configuration Example
priorityOrder:
- ResourcePackManager
- EliteMobs
- FreeMinecraftModels
- ModelEngine
- Nova
- ItemsAdder
- Oraxen
- BetterHUD
- ValhallaMMO
- MMOInventory
- vane-core
- RealisticSurvival
autoHost: true
forceResourcePack: false
resourcePackPrompt: Use recommended resource pack?
resourcePackRerouting: ''
- priorityOrder: Controls which pack wins when there’s a conflict.
- autoHost: Uploads the merged pack to Magma’s hosting service.
- forceResourcePack: Forces clients to accept the pack. When enabled, players must accept the resource pack to join the server. When disabled (default), players can decline and still play.
- resourcePackPrompt: Sets the message shown when prompting players. Supports color codes using § or &. Character limit is approximately 100 characters.
- resourcePackRerouting: Custom directory path for the merged resource pack output. Use this if you're hosting the pack with an alternative plugin or manual hosting solution. Leave empty to use the default location or auto-hosting.
Supported Plugins
RSPM is compatible with most major plugins that generate their own resource packs:
- BackpackPlus
- BetterHUD
- EliteMobs
- FreeMinecraftModels
- InfiniteVehicles
- ItemsAdder (encryption must be disabled)
- MegaBlockSurvivors
- MMOInventory
- ModelEngine
- Nova
- Oraxen
- RealisticSurvival
- ValhallaMMO
- vane-core
If your plugin isn't listed, you can still add its pack manually by placing the zip in the mixer folder and referencing its filename (including .zip) in the priorityOrder.
Minecraft Version Compatibility
ResourcePackManager's behavior varies depending on your Minecraft server version:
Minecraft 1.20.3 and Newer
RSPM uses the modern addResourcePack() API, which allows multiple resource packs to coexist on the client. This means RSPM can work alongside other plugins that provide their own resource packs without conflicts.
The merged resource pack is assigned a consistent UUID, ensuring it's properly recognized and updated when changes occur.
Minecraft 1.20.2 and Older
On older versions, RSPM uses the legacy setResourcePack() API, which replaces any previously loaded resource pack. This means:
- If another plugin sends a resource pack after RSPM, RSPM's pack will be replaced
- If RSPM sends after another plugin, it will replace that plugin's pack
- You cannot have multiple resource pack plugins active simultaneously
Recommendation: For the best experience and compatibility with multiple resource pack providers, use Minecraft 1.20.3 or newer.
Auto-Hosting
By default, RSPM uses a free auto-hosting service maintained by the plugin developer. This removes the need to configure your own hosting solution. If you prefer to host it yourself, simply disable autoHost in the config.
Note: The auto-hosting is supported through community contributions and may not be available forever.
Automatic Update Notifications
ResourcePackManager automatically checks for updates when your server starts. When a newer version is available on SpigotMC, players with the elitemobs.versionnotification permission receive a notification when they join the server.
The notification includes a direct link to download the latest version.
Note: Snapshot versions are not listed on SpigotMC. If you're running a snapshot build, players will be directed to join the Discord server for updates instead.
Privacy: The version check is a simple API request to SpigotMC and does not transmit any server or player information.
Configuration Files
ResourcePackManager uses two configuration files:
config.yml
Contains all user-configurable settings:
priorityOrder: Resource pack merge priorityautoHost: Enable/disable automatic hostingforceResourcePack: Force clients to use the packresourcePackPrompt: Custom prompt messageresourcePackRerouting: Alternative output directory
data.yml
Automatically managed by the plugin. Do not edit manually.
- Stores the UUID of your server's hosted resource pack
- Used by the auto-hosting service to identify your pack
- Automatically regenerated if deleted or corrupted
- Deleting this file will force a re-upload of your resource pack
Note: If you're experiencing issues with auto-hosting, deleting data.yml and running /rspm reload will force the plugin to re-register with the hosting service.
Automatic Resource Pack Updates
ResourcePackManager continuously monitors resource pack files from supported plugins and automatically detects changes. This means you don't always need to run /rspm reload manually.
How Automatic Updates Work
-
File Monitoring: Every second, RSPM checks if any resource pack files have changed by comparing SHA1 hashes.
-
Stability Detection: When a change is detected, RSPM waits 10 seconds to ensure the files are stable. This prevents re-merging while plugins are still generating their resource packs.
-
Automatic Re-Merge: After 10 seconds of stability, RSPM automatically:
- Re-merges all resource packs
- Uploads the new pack to auto-hosting (if enabled)
- Makes the updated pack available to players
-
Player Distribution: New players will receive the updated pack automatically. Existing players may need to reconnect or manually reload their resource pack (F3 + T in Minecraft).
When to Use /rspm reload
Manual reloading is still useful for:
- Forcing an immediate re-merge without waiting for stability
- Reloading after changing RSPM's own configuration
- Troubleshooting when automatic updates don't seem to trigger
- Testing new resource pack additions
Customizing Your Resource Pack
ResourcePackManager allows you to customize the icon and metadata of your merged resource pack using the blueprint folder.
Blueprint Folder Location
plugins/ResourcePackManager/blueprint/
This folder is automatically created on first run and contains two files:
pack.png
The icon displayed for your resource pack in the Minecraft client.
- Default: Standard Minecraft resource pack icon
- Recommended Size: 128x128 pixels (can be larger, but may not display correctly)
- Format: PNG with transparency support
To customize:
- Replace
blueprint/pack.pngwith your custom image - Run
/rspm reload - Your custom icon will appear in the merged resource pack
pack.mcmeta
Metadata file that controls pack format and description.
- pack_format: Must match your Minecraft version (DO NOT CHANGE)
- description: Text shown in the resource pack menu
Example pack.mcmeta:
{
"pack": {
"pack_format": 15,
"description": "My Server's Custom Resources"
}
}
To customize:
- Edit
blueprint/pack.mcmeta - Change the description to your server name or custom message
- Run
/rspm reload
Warning: Do not modify pack_format unless you know what you're doing. Using the wrong format number will cause the pack to fail loading.
blueprint.zip
This is automatically generated by RSPM. Do not modify this file directly. Always edit pack.png and pack.mcmeta, then reload the plugin.
Resolving Resource Pack Conflicts
While Resource Pack Manager (RSPM) streamlines the merging and distribution of resource packs, it is not designed to resolve all possible conflicts between them.
RSPM merges packs based on the priorityOrder defined in the configuration. If two packs contain the same file (e.g., the same model ID or GUI element), the one listed higher in the priority list will take precedence. However, this does not eliminate all compatibility issues. Common examples of unresolved conflicts include:
- Overlapping custom model data (CMD) IDs
- Conflicting texture paths
- Duplicate or clashing Unicode characters (used in custom GUIs)
- Incompatible overrides or model selectors
To manage these conflicts effectively:
- Adjust the
priorityOrderso that your most important plugin appears at the top. - Manually resolve overlaps by editing the packs directly, if necessary.
- Double-check that all packs are correctly generated and placed in their appropriate plugin directories or the
mixerfolder.
Note: Many issues reported with RSPM are not bugs in the plugin, but rather the result of conflicting files between resource packs. RSPM cannot automatically fix these — it simply merges and serves them based on your configuration.
If you’re still encountering problems after adjusting priorities and checking for conflicts, you may need to manually intervene or reach out to the developers of the conflicting plugins for guidance.
Technical Details
Resource Pack Size Limit
The auto-hosting service has a maximum resource pack size of 50MB. If your merged pack exceeds this limit, you'll need to either reduce the number of plugins or use custom hosting with resourcePackRerouting.
Data Retention and Keep-Alive Mechanism
ResourcePackManager sends periodic "keep-alive" pings to the auto-host server every 6 hours to prevent session expiration. If the server is offline for more than 24 hours, the hosted resource pack is automatically deleted.
How It Works:
- Keep-alive pings are sent every 6 hours automatically
- Confirms the server is still active and using the hosted pack
- If keep-alive fails, UUID is cleared and pack is re-uploaded on next merge
- 24-hour retention policy: packs deleted if no keep-alive for 24 hours
What Happens If Your Server Is Offline:
Short Downtime (Under 24 Hours): No impact. Keep-alive pings resume when your server restarts.
Extended Downtime (Over 24 Hours):
- Your resource pack is deleted from the hosting service
- The session UUID in data.yml becomes invalid
- When your server restarts, RSPM automatically detects the invalid session
- The pack is re-uploaded and a new session UUID is generated
- Players will receive the pack normally
Permissions
Command Permissions:
resourcepackmanager.*— Required to execute all RSPM commands. Grant this to administrators who need to reload or request data compliance information.
Update Notifications:
elitemobs.versionnotification— Players with this permission receive notifications when a new version of ResourcePackManager is available. This permission is inherited from EliteMobs but applies to RSPM update checks.
JSON Merging
When multiple resource packs contain the same JSON file, RSPM recursively merges them rather than overwriting. Arrays are concatenated, and objects are merged with higher-priority values winning conflicts. Non-JSON files follow the standard priority override system.
Commands
/rspm reload— Reloads the plugin and re-merges all packs./rspm data_compliance_request— Optional. Downloads hosted resource pack data.
Summary
RSPM helps server owners streamline resource pack management. It automates the merging process, handles hosting, and distributes the final pack to players — all with minimal setup. However, it's still your responsibility to manage plugin conflicts through the config or by editing the packs if needed.
If you need help or run into issues, the official Discord is a good place to ask questions and get support.