How to add a server resource pack

A server resource pack is how custom items, models, sounds and interfaces reach players without asking them to install anything. The server sends a link, the client downloads it, and the hash decides whether it gets cached or fetched again.

Host the file somewhere direct

The client needs a URL that returns the zip itself, not a page about the zip. Dropbox share links, Google Drive links and anything behind a redirect or a consent screen will fail, because the client does not run a browser.

Any static host works: your own web server, an object store, or a GitHub release asset. Serve it over https and keep the URL stable, since changing it forces every player to download again.

Keep the pack small. Every player downloads it on join, and a large pack is a wall between someone clicking your address and seeing your spawn. Compress textures and drop anything unused.

The settings

Stop the server and edit server.properties:

resource-pack=https://example.net/pack.zip
resource-pack-sha1=0a1b2c3d4e5f60718293a4b5c6d7e8f901234567
require-resource-pack=false
resource-pack-prompt=Our pack adds custom items and sounds

require-resource-pack=true disconnects anyone who declines. That is right for a server whose gameplay depends on custom models and wrong for a normal survival server, where it just costs you players who are wary of the prompt.

The prompt line is worth filling in. The default message tells players nothing, and a sentence explaining what the pack does measurably improves how many accept it.

The SHA-1 hash, which is where this goes wrong

The hash is how the client knows whether its cached copy matches the file on your server. Get it wrong and players either download on every single join or keep an old pack forever.

sha1sum pack.zip          # Linux and macOS
certutil -hashfile pack.zip SHA1   # Windows

It must be the lowercase 40 character hex of the exact file being served. Recalculate it every time you change the pack, and update the property in the same edit. Forgetting this is the most common resource pack bug there is, and it presents as "my update did not apply for anyone".

Errors players hit

Failed to download is almost always the URL. Fetch it with curl and confirm you get the zip bytes and a 200, not a redirect or an HTML page.

Pack applies but looks wrong usually means the pack_format number in pack.mcmeta does not match the Minecraft version, so the client loads it in a compatibility mode. Each version has its own number.

Some players see it, others do not is the accept prompt. Anyone who has previously chosen never for your server will not be asked again, and has to clear that in their multiplayer settings.

Per world packs and plugins

The properties file gives you one pack for the whole server. A plugin can send different packs per world, which is how a network runs one look in the hub and another in a themed world. That path also lets you resend a pack without a restart.

If your pack is delivering custom items, remember that Bedrock players joining through a bridge do not receive Java resource packs at all, so anything essential must still be understandable without it. Our crossplay list covers how that split works, and the plugin guide covers what to install.

Frequently asked questions

Do players have to accept the pack?

Only if require-resource-pack is true, which disconnects anyone who declines. Left false, players who decline play with default textures.

Why does the pack download every time someone joins?

The SHA-1 does not match the file being served. The client cannot match its cache and refetches. Recalculate the hash of the exact file at that URL and update the property.

Can I host the pack on Dropbox or Google Drive?

Not reliably. Those serve a web page or a redirect rather than the file itself. Use a host that returns the zip directly over https.

Do Bedrock players get the pack?

Not a Java pack. Bedrock uses its own pack format, so a crossplay server needs a separate Bedrock pack, and anything critical should still work without either.

Next steps

All guides · Free owner tools · List your server