Host a Server Resource Pack

Send players your textures, sounds and models automatically when they join, with the right URL, checksum and prompt

Minecraft

5 min readIntermediateLast updated Oct 29, 2026

A server resource pack is downloaded by every player when they join, so everyone sees your custom textures, item models, sounds and fonts without installing anything. Minecraft only needs three things in server.properties: where the pack is, its checksum, and whether it's required.

1

Build and check the pack

  1. Your pack must be a single .zip with pack.mcmeta and the assets folder at the top level of the zip, not inside another folder. Opening the zip should show pack.mcmeta straight away.

  2. Set pack_format in pack.mcmeta to match your server's Minecraft version. The number changes most releases; the current values are listed on the Minecraft Wiki pack format page.

    {
      "pack": {
        "pack_format": 46,
        "description": "§aDragon SMP §7textures"
      }
    }
    
  3. Test it first: put the zip in your own .minecraft/resourcepacks folder, enable it in Options → Resource Packs and check that nothing is missing (pink-and-black textures mean a wrong path).

  4. Keep it small. Players download it on every change, and big packs stall slow connections. Remove unused files, and compress PNGs and sounds (OGG). Minecraft refuses packs over 250 MB, but aim for under 50 MB.

2

Host the zip somewhere players can download it

The URL must download the zip directly: pasting it in a browser should start the download, not open a web page.

Host Notes
GitHub releases Free, fast and reliable. Create a release in a repository and attach the zip; use the asset's download link. A new release gives a new URL, which also forces players to re-download.
mc-packs.net Free host built for server packs; it shows the SHA-1 for you.
Your own web host Any HTTPS link to the file works. Make sure it's served as a download with no login.
Dropbox Works if the link ends in ?dl=1.
Google Drive, OneDrive share pages Usually don't work: they open a preview page instead of the file.
3

Get the SHA-1 checksum

The checksum lets players' games check they got the right file and re-use their cached copy instead of downloading again on every join.

  • Windows (PowerShell): Get-FileHash .\MyPack.zip -Algorithm SHA1
  • Mac / Linux: shasum -a 1 MyPack.zip
  • mc-packs.net shows it after upload.

Copy the 40-character value (lower case is fine).

4

Set it in server.properties

Stop the server, open server.properties in Files, and set:

resource-pack=https://github.com/you/dragon-pack/releases/download/v3/DragonPack.zip
resource-pack-sha1=4f1b2c3d4e5f60718293a4b5c6d7e8f901234567
require-resource-pack=true
resource-pack-prompt={"text":"Our textures make the custom items work. Accept to play!","color":"green"}
resource-pack-id=
Setting What it does
resource-pack The direct download URL. Characters like : don't need escaping in recent versions.
resource-pack-sha1 The checksum from step 3. Must be updated every time the zip changes.
require-resource-pack true kicks players who decline it. Use it when the pack is needed for custom items or GUIs; use false for optional cosmetic packs.
resource-pack-prompt The message shown with the accept/decline screen (JSON text).
resource-pack-id Optional UUID for the pack (1.20.3+). Leave blank and Minecraft makes one from the URL.

Start the server and join. You'll see the download prompt, then the pack applies.

Updating the pack

  1. Upload the new zip under a new URL (new release, or a new file name). Re-using the same URL can leave players on a cached old copy.
  2. Put the new URL and new SHA-1 in server.properties.
  3. Restart. Players download the new version when they next join.

Behind a Velocity network

Each back-end server sends its own pack, so players get the right one as they move between servers (a pack per game mode works well). To use one pack everywhere, set the same URL and SHA-1 on every back-end.

Plugins and mods that build packs for you

Custom-item plugins such as ItemsAdder, Nexo and Oraxen generate the pack from their configs and can host it themselves (they open their own HTTP port — ask us for an extra allocation). On Fabric, Polymer's auto-host module does the same for mods that add server-side items. If you use one of these, merge your other packs into theirs instead of setting resource-pack by hand: see Combine resource packs.

Troubleshooting

Problem Fix
Failed to download resource pack The URL opens a web page or needs a login. Test it in a private browser window: it must download the zip immediately.
Players re-download it on every join resource-pack-sha1 is missing or wrong. Re-calculate it from the exact file you uploaded.
Pack downloads but textures are missing pack.mcmeta isn't at the top of the zip, or the paths inside assets/ are wrong.
Resource pack is incompatible warning pack_format doesn't match the server version. Update it (the pack may still work, but check).
Bedrock players don't get it Java packs don't work on Bedrock. Geyser can convert some packs; see Bedrock crossplay.