Add a Java server resource pack and fix download errors

This guide covers a Minecraft Java server resource pack through server.properties. A pack changes client assets such as textures and sounds. It does not install server plugins or mods. Bedrock packs use a different format; a Java ZIP does not automatically become a Bedrock pack for Geyser players.

Prepare and host the ZIP

Use a pack compatible with the client Minecraft versions you support and confirm you have permission to distribute it. Test it locally in that Minecraft version before troubleshooting the server download. Keep a copy of the previous working ZIP and its configuration. In a Java pack ZIP, put pack.mcmeta at the archive root, rather than inside an extra enclosing folder.

Host the ZIP at a stable HTTPS address that downloads the file without a login, preview page or browser challenge. Open the address in a private browser window and download it. Check that the result is the intended archive rather than an HTML error saved with a ZIP name. Temporary sharing links can expire even after an initial successful test. Use a versioned filename for each release so caches can distinguish it from the old archive.

Putting a ZIP in the server's Files area does not itself provide a public download address. Do not expose SFTP credentials, private storage links or the whole server directory to make the pack available. Ask support if you need help choosing an appropriate hosting location.

Calculate the file hash

Download the published ZIP again and calculate SHA-1 from that exact downloaded file. On your own computer, use one of these examples; replace the filename with yours:

# Linux
sha1sum CloudExaPack.zip

# macOS
shasum -a 1 CloudExaPack.zip

In Windows PowerShell, use:

Get-FileHash .\CloudExaPack.zip -Algorithm SHA1

Copy only the 40-character hexadecimal hash, without the filename or command output labels. Calculate it again after rebuilding the ZIP. SHA-1 here identifies the expected archive; it does not certify that an unknown pack author is trustworthy.

Update the server configuration

  1. Schedule a brief restart and stop the server through Console. Save a copy of server.properties.
  2. Open that file in Files. Set resource-pack to the public HTTPS ZIP address and resource-pack-sha1 to its hash.
  3. Keep require-resource-pack=false during the first test so a failed download does not prevent everyone from joining.
  4. Save, start the server and read any pack-related startup warning.
  5. Join from a test client with server resource packs enabled or set to prompt. Accept the prompt and check the expected textures or sounds.

If you later require the pack, confirm that supported clients can download it first. A player who rejects a required pack cannot join. When updating the archive, publish the new file and matching hash together, then repeat the test.

If it fails

Check the URL from the affected player's network, HTTPS certificate validity and any hosting size or access restrictions. Compare a fresh download's hash with the configured value. If the download succeeds but assets fail, check the pack's compatibility and ZIP structure against its author's instructions. Read the client's log for the first relevant error rather than changing unrelated server authentication settings.

Send support the server ID, Minecraft version, timestamp and redacted error. Do not publish signed links that grant private access. Further reading: Paper resource-pack settings and Microsoft's separate Bedrock pack format. See also Java and Bedrock crossplay.


Revision #2
Created 2026-11-08 21:03:24 UTC by CloudExa Hosting Admin
Updated 2026-11-08 21:03:24 UTC by CloudExa Hosting Admin