How to Use This Tool
- Drop or select two or more resource pack
.zipfiles - Reorder the list so the highest-priority pack sits at the top (it wins on conflicts)
- Set a name and description for the merged pack (optional)
- Click Merge, then download the combined zip
Everything runs in your browser. Your packs are never uploaded.
The #1 Problem: Vanilla Servers Allow Only One Pack URL
server.properties has a single resource-pack= field. If you want to combine a UI pack, a sound pack, and a texture pack for your players, vanilla Minecraft has no way to load them all unless you merge them first.
This tool flattens any number of packs into one zip with a single pack.mcmeta, ready to host and serve from your server.
Don't forget the SHA-1
After uploading the merged zip, use the SHA-1 Hash Generator to recompute the file’s hash and put it in resource-pack-sha1=. If the hash doesn’t match the file at the URL, players will get a “Resource pack failed to load” error.
How Conflicts Are Resolved
When two packs include the same path (for example assets/minecraft/textures/block/dirt.png), the merger keeps the file from the higher pack in the list. This matches Minecraft’s own in-game pack stacking behavior.
| Position in list | Behavior |
|---|---|
| Top of list | Always wins on conflicts |
| Middle | Wins over packs below, loses to packs above |
| Bottom | Acts as the base layer (only used where higher packs are silent) |
The output also reports how many files were overridden so you know how much overlap there was.
What Gets Merged
| File / Folder | Behavior |
|---|---|
assets/** | Merged. Top pack wins on conflicts |
pack.mcmeta | Regenerated. Uses the highest pack_format and your description |
pack.png | Taken from the first pack that has one |
__MACOSX/, .DS_Store | Stripped (macOS noise that breaks pack loading) |
| Single-folder zips | Auto-detected. The wrapper folder is unwrapped so paths stay valid |
Common Use Cases for Server Admins
| Use case | Why it needs a merger |
|---|---|
| Custom UI + texture pack combo | Players can only load one server pack at a time |
| Resource pack + custom sounds for events | Holiday sounds layered on top of your year-round pack |
| Language overrides | Ship a single fixed translation pack on top of a community texture pack |
| Shaders-friendly base | Merge a vanilla-tweaks-style pack with custom block models |
| Modpack server packs | Combine the modpack’s required pack with admin-added overrides |
Pack Format Reference
pack_format must match the Minecraft version your server runs. The merger picks the highest version it finds, but check this table to confirm:
| pack_format | Minecraft version |
|---|---|
| 4 | 1.13 – 1.14.4 |
| 5 | 1.15 – 1.16.1 |
| 6 | 1.16.2 – 1.16.5 |
| 7 | 1.17.x |
| 8 | 1.18.x |
| 9 | 1.19 – 1.19.2 |
| 11 | 1.19.3 |
| 12 | 1.19.4 |
| 13 | 1.20 – 1.20.1 |
| 15 | 1.20.2 |
| 18 | 1.20.3 – 1.20.4 |
| 22 | 1.20.5 – 1.20.6 |
| 32 | 1.21 – 1.21.1 |
| 34 | 1.21.2 – 1.21.3 |
| 46 | 1.21.4 |
| 55 | 1.21.5 |
If a pack ships with an outdated pack_format, players will see “Made for an older version of Minecraft” in the pack selector. The pack still loads, but Mojang doesn’t guarantee compatibility.
Hosting the Merged Pack
Once merged, host the zip somewhere your server can reach over HTTPS. The easiest path is MC-Packs.net since it computes the SHA-1 for you, or use Google Drive / OneDrive if your pack is over 100MB.
# server.properties
resource-pack=https://cdn.example.com/winternode-merged.zip
resource-pack-sha1=2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae
require-resource-pack=true
resource-pack-prompt={"text":"Welcome! Accept to load the server pack."}Need somewhere to host the merged pack?
See the Minecraft Resource Packs help article for step-by-step uploads to MC-Packs, Google Drive, or OneDrive with the right direct-download URL format. Once it’s hosted, use the SHA-1 Hash Generator on the uploaded file to fill in resource-pack-sha1.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| ”Failed to download resource pack” | URL doesn’t serve the zip directly (it redirects, requires auth, or returns HTML) | Use a direct download URL. Test with curl -I — the response should be Content-Type: application/zip |
| ”Server resource pack does not match” | SHA-1 in server.properties is stale | Regenerate the SHA-1 each time you re-upload the merged file |
| Textures look like the wrong pack | Pack order is reversed | Reorder so the pack you want to win sits at the top of the list |
| ”Made for an older version of Minecraft” warning | pack_format is below your server version | Update one of the input packs to a newer pack_format, or override the merged pack_format by editing pack.mcmeta after download |
| Pack icon went missing | None of the input packs included pack.png | Add a 64x64 pack.png to one of the input packs before merging |
Need a Minecraft Server?
If you’re looking for Minecraft hosting that runs Forge, Fabric, Paper, Spigot, and modpacks without the busywork, check out WinterNode’s Minecraft hosting:
- 48-hour free trial on a 6GB plan, plans from $3.98/month
- Instant setup, web-based file manager, automatic daily backups
- Enterprise-grade DDoS protection and 99.9% uptime
- 24/7 support from people who run Minecraft servers themselves
Was this tool helpful?
Frequently Asked Questions
The vanilla server.properties resource-pack and resource-pack-sha1 fields accept a single URL. To ship multiple packs to players from a server, merge them into one zip first. Plugins like ResourcePackHub work around this on Paper/Spigot, but vanilla servers must use a single combined pack.
The pack at the top of the list overrides every pack below it. This matches how Minecraft itself stacks resource packs in the in-game pack selector. Reorder packs with the up and down arrows to control which textures, sounds, or models win.
pack_format tells Minecraft which game version a resource pack targets. The merger uses the highest pack_format from your input packs, but you should confirm it matches your server version. Mismatched formats either fail to load or trigger the 'Outdated pack' / 'Newer pack' warning in-game.
Standard textures, models, sounds, and language files merge cleanly. OptiFine custom features (CTM, CIT, custom entity models) and shaders use file paths Minecraft itself doesn't read, so they only work for players using the matching mod or shader loader. The merger preserves these files as-is.
Upload the merged zip to any direct-download HTTPS URL: a CDN, an S3-style bucket, or a static host. Then set resource-pack=https://example.com/merged.zip and resource-pack-sha1=<sha1 of the file> in server.properties. Minecraft refuses redirects, so the URL must serve the zip directly.
Free forever. No signup required. Just tools that work.





