A resource pack on a Minecraft server is a .zip that the server tells every player to download when they join. Upload the pack somewhere that gives a direct download link, paste that link in resource-pack= in server.properties, add its SHA-1 hash in resource-pack-sha1=, and restart. Players see a prompt and the pack loads on their side. This guide shows each step, how to force the pack, and how to fix it when it fails to download.
This is for Java Edition servers (Vanilla, Paper, Purpur, Fabric, Forge). A resource pack only changes what players see and hear: textures, models, sounds, fonts and language. If you want to change recipes, loot or world generation, that is a data pack, which goes in the world/datapacks folder instead.
What you need before you start
- The pack as a .zip file. The
pack.mcmetafile must sit at the root of the zip, not inside an extra folder. A common mistake is zipping the folder that contains the pack instead of its contents. - A direct download link. The server does not host the file; it only sends players a URL. The link must download the .zip directly, with no web page, login or "click to download" button in between. Your server's Files tab is not a public web link, so the pack has to live somewhere players' game clients can reach.
- The SHA-1 hash of the zip. It is optional, but it lets the game check the file and cache it properly.
The Minecraft Wiki lists 250 MiB as the maximum pack size. Keep it far smaller: every player downloads the whole file when they join or when it changes.
Getting a direct link
Public file hosts work as long as the link ends in the file itself. Release assets on a GitHub repository give a direct link. Many cloud drives give a preview page by default; some let you turn the share link into a direct one (for example by changing dl=0 to dl=1 at the end of the URL). Paste the link into a browser: if the .zip starts downloading immediately, it will work.
Add a resource pack to a Minecraft server, step by step
- Upload the .zip and copy its direct download link.
- Get the SHA-1 of the exact same file. On Windows run
certutil -hashfile pack.zip SHA1; on macOSshasum -a 1 pack.zip; on Linuxsha1sum pack.zip. Copy the 40-character code in lowercase. - In the TheGameHosting panel, open Files and click
server.properties. - Paste the link after
resource-pack=and the hash afterresource-pack-sha1=. - Set
require-resource-pack=trueif players must accept the pack to stay on the server. - Save and restart the server from the panel.
- Join the server. You should see the resource pack prompt; accept it and check that the textures change.
resource-pack=https://example.com/packs/mypack.zip
resource-pack-sha1=0123456789abcdef0123456789abcdef01234567
require-resource-pack=true
After the server saves the file you may see the link written as https\://.... That backslash is normal in a .properties file and does not break the link.
The resource pack settings in server.properties
| Setting | Default | What it does |
|---|---|---|
resource-pack | blank | Download URL of the pack |
resource-pack-sha1 | blank | SHA-1 of the zip, lowercase hex; lets the game verify and cache it |
resource-pack-id | blank | Optional UUID that identifies the pack to clients |
require-resource-pack | false | When true, players who decline the pack are disconnected |
resource-pack-prompt | blank | Custom message on the prompt shown when the pack is required |
How to update the pack
The game caches packs by their hash. When you change the pack, upload the new .zip, calculate its new SHA-1, paste the new hash in server.properties and restart. If you keep the old hash, players keep the cached old version, or the download fails the check. Changing the file name in the URL (for example mypack-v2.zip) avoids any cache in between.
Take a backup from Backups before large changes to the server folder. It is quick and saves you if you edit the wrong file.
Resource pack not loading? Common fixes
- "Failed to download resource pack". The link is not direct. Open it in a private browser window; if you see a web page instead of a download, fix the link.
- The download starts and then fails. The SHA-1 does not match the file. Calculate it again on the exact file you uploaded and paste it in lowercase.
- No prompt appears. The player set Server Resource Packs to Disabled in the server list. Tell them to select the server, click Edit and set it to Prompt or Enabled. With
require-resource-pack=truethey will be disconnected instead, which at least shows the cause. - The pack loads but textures look wrong. The pack was made for another game version. Players may see an "incompatible" warning; update the
pack_formator use a version of the pack for your server version. If you recently updated the server, see how to update a Minecraft server. - Join takes a long time. The pack is too big. Compress textures, remove unused sounds and keep the zip small.
- Changes in server.properties did nothing. The server reads the file at startup. Restart after you save.
Bedrock players through Geyser
Bedrock players who join a Java server through Geyser do not use Java packs. Geyser loads Bedrock packs (.mcpack or .zip) placed in its packs folder. If you have not set up crossplay yet, read let Bedrock players join your Java server with Geyser.
A custom look on a server that is always online
A resource pack makes your server feel like its own world, but only while the server is up. On TheGameHosting it runs on our hardware in Dallas or Amsterdam, on AMD 9950X or 7950X3D CPUs with NVMe storage and a 10 Gbps network, so players load in quickly and the world stays online when your PC is off. You edit server.properties in Files, restart from the panel and watch the join in Console, with no FTP client. DDoS protection is included on every plan, and there is no charge per player.
Java plans start at 2 GB for $1.90 USD per month, ready about 60 seconds after payment. Compare plans on Pricing or see what our Minecraft server hosting includes.
FAQ
How do I add a resource pack to my Minecraft server?
Upload the .zip somewhere with a direct download link, paste the link in resource-pack= in server.properties, add the file's SHA-1 in resource-pack-sha1= and restart the server.
How do I force players to use the server resource pack?
Set require-resource-pack=true in server.properties. Players who decline the pack are disconnected from the server.
Why does my server resource pack fail to download?
Usually the link opens a web page instead of the file, or the SHA-1 does not match the uploaded zip. Test the link in a browser and recalculate the hash.
Can I put the resource pack in the server files?
Not for players to download it. The server only sends a URL, so the zip must be on a public direct link. Data packs, which change gameplay, do go in world/datapacks.
Hosting for this game
Written by TheGameHosting Team, the people who run our servers in Dallas and Amsterdam and answer your tickets.
All posts
TheGameHosting Team
