Serving a resource pack to everyone who joins

Getting Started Reviewed September 6, 2026 2 min read

A server resource pack is downloaded by every player when they connect, so your textures, sounds and fonts are the same for everyone. Minecraft does not host it for you — you point at a URL and it fetches it.

What to do

  1. Host the zip somewhere with a direct link

    The URL has to return the file itself, not a download page. If opening it in a browser shows a preview or an ad, it will not work.

  2. Get the SHA-1 hash of the file

    Any SHA-1 tool will do. Minecraft uses it to know whether a player's cached copy is current — without it, players re-download the pack on every single join.

  3. Set both lines in server.properties

    resource-pack= with the URL, resource-pack-sha1= with the hash. Restart afterwards.

  4. Decide whether it is required

    require-resource-pack=true disconnects anyone who declines. Useful when your build depends on custom models; unfriendly on a public server.

Re-uploading the pack means re-generating the hash

If you update the zip and leave the old hash, clients compare it, decide their cached copy matches, and keep using the old pack. Nothing errors. You will change a texture and swear it did not apply — this is why.

Where packs go wrong

SymptomCause
Nobody is prompted at allThe URL is unreachable or is an HTML page, not a zip.
Prompt appears, download failsFile too large, or the host is rate-limiting.
Old textures persistThe hash was not updated.
Works for you, not for othersYou have it applied locally as well, masking the failure.
Keep it small

Every player downloads it before they can play. A 200 MB pack is a wall between someone and your server, and most of that is usually textures at a resolution nobody can see at normal distance.

How to confirm it worked

Join from a client that has never seen the pack. The prompt appears, the download completes, and the custom textures are visible.