---
title: "Create a Minecraft resource pack and serve it"
description: "Pack structure, pack_format by version, what you can replace, how to host the zip and serve it through server.properties without botching the SHA1."
url: "https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack"
type: "page"
language: "en-US"
---

Minecraft · 8 min · Intermediate

Published on Aug 26, 2026 · Updated on Aug 26, 2026

# Create a Minecraft resource pack and serve it on your server

A custom pack changes how your server looks without any plugin on the client. This guide covers the file structure, hosting the zip and the two mistakes that break automatic delivery.

By [Equipe StreetHosting](https://streethosting.com.br/en/autores#equipe-streethosting) · StreetHosting infrastructure and support team

[Getting started](https://streethosting.com.br/en/guides/topics/getting-started)

Summarize with:

[](https://chat.openai.com/?q=Summarize%20the%20key%20points%20of%20this%20StreetHosting%20guide%3A%20https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fminecraft%2Fcreate-minecraft-resource-pack.%20Highlight%20the%20step-by-step%20instructions%2C%20the%20prerequisites%20and%20the%20most%20common%20mistakes. "ChatGPT") [](https://claude.ai/new?q=Summarize%20the%20key%20points%20of%20this%20StreetHosting%20guide%3A%20https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fminecraft%2Fcreate-minecraft-resource-pack.%20Highlight%20the%20step-by-step%20instructions%2C%20the%20prerequisites%20and%20the%20most%20common%20mistakes. "Claude") [](https://www.google.com/search?udm=50&aep=11&q=Summarize%20the%20key%20points%20of%20this%20StreetHosting%20guide%3A%20https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fminecraft%2Fcreate-minecraft-resource-pack.%20Highlight%20the%20step-by-step%20instructions%2C%20the%20prerequisites%20and%20the%20most%20common%20mistakes. "Google AI Mode") [](https://x.com/i/grok?text=Summarize%20the%20key%20points%20of%20this%20StreetHosting%20guide%3A%20https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fminecraft%2Fcreate-minecraft-resource-pack.%20Highlight%20the%20step-by-step%20instructions%2C%20the%20prerequisites%20and%20the%20most%20common%20mistakes. "Grok") [](https://www.perplexity.ai/search/new?q=Summarize%20the%20key%20points%20of%20this%20StreetHosting%20guide%3A%20https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fminecraft%2Fcreate-minecraft-resource-pack.%20Highlight%20the%20step-by-step%20instructions%2C%20the%20prerequisites%20and%20the%20most%20common%20mistakes. "Perplexity")

Share:

[](https://x.com/intent/tweet?text=How%20to%20create%20a%20resource%20pack%20for%20your%20Minecraft%20server&url=https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fminecraft%2Fcreate-minecraft-resource-pack "Share on X") [](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fminecraft%2Fcreate-minecraft-resource-pack "Share on Facebook") [](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fminecraft%2Fcreate-minecraft-resource-pack "Share on LinkedIn") [](https://wa.me/?text=How%20to%20create%20a%20resource%20pack%20for%20your%20Minecraft%20server%20https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fminecraft%2Fcreate-minecraft-resource-pack "Share on WhatsApp")

For agents: Copy as Markdown [.md](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack.md)

In this guide 7 sections

* [The structure of a pack](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#estrutura)
* [pack\_format and the game version](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#pack-format)
* [What you can replace](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#o-que-trocar)
* [Hosting the zip](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#hospedar)
* [Serving it through server.properties](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#servidor)
* [The two mistakes that always bite](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#erros)
* [Pack size and join time](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#peso)

Quick answer

A resource pack is a zip with `pack.mcmeta` and the `assets` folder at the root. For the server to deliver it on its own, just host the zip at a direct download link and fill in `resource-pack` and `resource-pack-sha1` in `server.properties`. To build and edit the pack without installing anything, [resourcelab](https://resourcelab.streethosting.com.br/?utm%5Fsource=streethosting&utm%5Fmedium=site&utm%5Fcampaign=tools&utm%5Fcontent=guia%3Acriar-resource-pack-servidor-minecraft) handles textures, sounds and metadata in the browser and exports the zip already in the right structure.

## The structure of a pack[](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#estrutura)

There is no mystery to a resource pack: it is a partial copy of the game's files. The client loads the originals and, when it finds a file with the same path in the pack, it uses yours instead. Everything depends on matching the names and folders exactly.

| Path inside the zip               | What it holds                               |
| --------------------------------- | ------------------------------------------- |
| pack.mcmeta                       | Pack metadata. Required, always at the root |
| pack.png                          | Icon shown in the pack list. Optional       |
| assets/minecraft/textures/block/  | Block textures                              |
| assets/minecraft/textures/item/   | Item textures                               |
| assets/minecraft/textures/entity/ | Mob and entity textures                     |
| assets/minecraft/textures/gui/    | Interface, inventory, buttons               |
| assets/minecraft/sounds/          | Sound files in ogg                          |
| assets/minecraft/models/          | Models in JSON                              |
| assets/minecraft/font/            | Fonts and custom characters                 |
| assets/minecraft/lang/            | Text and translations                       |

The content of `pack.mcmeta` is a short JSON with two fields: the pack format and the description shown in the list. Nothing else is required for the pack to work.

Zip the **contents** of the folder, not the folder. If you open the zip and see a folder named after the project with `pack.mcmeta` only inside it, the game does not recognize the pack. `pack.mcmeta` has to appear as soon as the zip opens.

## pack\_format and the game version[](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#pack-format)

The `pack_format` field is a number that says which generation of the game the pack was made for. It changes whenever Mojang reorganizes the internal files, which happens often. If the number does not match the client version, the game warns that the pack is too old or too new.

* **Number lower than expected.** The pack shows up marked as made for an older version. It usually works anyway, with some broken textures where the path changed.
* **Number higher than expected.** The client warns that the pack is from a future version. Here the chance of something not loading is higher.
* **Server with several versions behind a proxy.** A single number will not please everyone. Use the format that matches the version most of your players use, or distribute different packs per version.

Whenever you bump the server version, review `pack_format` and test the pack before releasing it. The step-by-step for switching versions is in [updating your server version](https://streethosting.com.br/en/guides/minecraft/update-paper-minecraft-server).

## What you can replace[](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#o-que-trocar)

A resource pack only touches presentation. It does not change game rules, add new blocks or run code. Within that boundary, though, there is plenty of room.

### Textures[](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#trocar-textura)

The most common case. Replace the image file while keeping the original name and the game draws yours instead. It applies to blocks, items, mobs, particles and the whole interface. Higher resolution looks nicer and weighs more, and most servers do fine at the original resolution.

### Sounds and music[](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#trocar-som)

Sounds are in ogg format and mapped by an index file. You can replace a click sound, add your own menu music or silence an annoying effect. Audio is what bloats a pack the most, so pick a few tracks and compress them well.

### Fonts and chat icons[](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#trocar-fonte)

By swapping the font, you can map characters to images. That trick produces the icons you see in chat, in the player tag and in the rank menu on large servers, with no client mod needed.

### Models and CustomModelData[](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#trocar-modelo)

A model can have variants selected by a number stored on the item. The plugin supplies the number, and the pack decides which model to draw. That is how servers create exclusive swords, crate keys and shop items that look new but are still, underneath, an ordinary game item.

If you just want a pack with its own look for the season and have no patience for folder structures, [resourcelab](https://resourcelab.streethosting.com.br/?utm%5Fsource=streethosting&utm%5Fmedium=site&utm%5Fcampaign=tools&utm%5Fcontent=guia%3Acriar-resource-pack-servidor-minecraft) builds and edits everything in the browser and hands you a zip ready to serve. It is listed with the other [free StreetHosting tools](https://streethosting.com.br/en/ferramentas).

## Hosting the zip[](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#hospedar)

The server does not send the file: it sends the client a URL, and the client downloads it on its own. That means the address has to be public, stable and deliver the raw file.

1. Upload the zip somewhere that returns the file directly, with no confirmation screen, no ads and no login.
2. Open the URL in an incognito window. If the browser starts downloading the file right away, it is correct. If it opens any page, it is wrong.
3. Prefer an address you control. A free service that deletes old files takes your server's pack down without warning.
4. Keep the URL stable between updates, or change the value on the server every time you publish a new version of the pack.

If your server runs on a VPS, hosting the zip on the machine itself, with a simple web server, solves both problems at once: a direct link and full control of the address.

## Serving it through server.properties[](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#servidor)

Automatic delivery is built in. Three fields, no plugin.

| Field                 | What it takes                      | Note                                                          |
| --------------------- | ---------------------------------- | ------------------------------------------------------------- |
| resource-pack         | The direct download URL of the zip | Empty turns automatic delivery off                            |
| resource-pack-sha1    | The SHA1 hash of the exact file    | Leaving it empty makes the player download again every time   |
| require-resource-pack | true or false                      | With true, anyone who declines the download gets disconnected |
| resource-pack-prompt  | Message shown in the request       | Useful for explaining why the pack matters                    |

1. Stop the server before editing the file.
2. Paste the URL into `resource-pack`.
3. Generate the SHA1 hash of the zip you just uploaded and paste it into `resource-pack-sha1`.
4. Decide whether the pack is required and set `require-resource-pack`.
5. Start the server and join with a test account.

Players who join get a download prompt. If they accept, the pack is applied only on that server and goes away when they leave, without messing up their personal packs.

Pack and MOTD are usually changed together, at the start of a season. The step-by-step for your visual identity in the server list is in [changing your server's MOTD and icon](https://streethosting.com.br/en/guides/minecraft/change-minecraft-server-motd).

## The two mistakes that always bite[](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#erros)

### Outdated SHA1[](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#erro-sha1)

The hash identifies the file. If you re-edit the pack, generate a new zip and forget to update the field, the client compares what it downloaded with what the server promised, sees they do not match and complains. Depending on the version, it either rejects the pack or downloads the file again on every connection. With `require-resource-pack` on, the result is worse: nobody gets in.

Golden rule: every time the zip changes, the hash changes with it. Treat the two as one thing, and never publish one without the other.

### A link that is not a direct download[](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#erro-link)

The runner-up. You paste the sharing link from your cloud storage, it works perfectly in the browser and fails in the game. The reason: the address returns an HTML preview page, and the client expected a zip. Always test in an incognito window before putting it on the server.

* pack.mcmeta at the root of the zip, not inside a subfolder
* pack\_format matching the server version
* URL tested in an incognito window and downloading immediately
* SHA1 generated from the exact zip that is live
* Join test with an account that has never downloaded the pack

## Pack size and join time[](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#peso)

Every megabyte of the pack turns into waiting time on each player's first connection. And the first connection is exactly the moment you are most likely to lose someone who arrived through your promotion.

* **Replace only what matters.** A branding pack with icons, a font and a few textures stays small. A pack that replaces the whole game in high resolution gets heavy.
* **Watch the audio.** Sound is what bloats a pack the most. Lower the sample rate, trim the silence and avoid long tracks.
* **High resolution costs twice.** It increases the download and the video memory use of anyone playing on a weak machine, which is a good part of the Brazilian audience.
* **The correct SHA1 spares everyone.** With the right hash, only people who never downloaded the pack pay for the download. Without it, every player pays on every join.

If you are putting together the identity of a new season, it is worth combining the pack with the rest of the launch checklist in [preparing your server for a new season](https://streethosting.com.br/en/guides/minecraft/prepare-minecraft-server-new-season). And if the server does not even exist yet, [Minecraft Fácil](https://streethosting.com.br/en/minecraft-facil) spins one up in about a minute, already with access to `server.properties` through the control panel.

In this guide

* [The structure of a pack](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#estrutura)
* [pack\_format and the game version](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#pack-format)
* [What you can replace](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#o-que-trocar)
* [Hosting the zip](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#hospedar)
* [Serving it through server.properties](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#servidor)
* [The two mistakes that always bite](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#erros)
* [Pack size and join time](https://streethosting.com.br/en/guides/minecraft/create-minecraft-resource-pack#peso)

## Frequently asked questions

Do I need a plugin for the server to deliver a resource pack?

No. Minecraft itself delivers the pack from three fields in server.properties. Plugins only come in when you want different packs per world, per rank or per event.

What is resource-pack-sha1 for?

It is the file's hash, and it lets the client tell whether the pack it already has cached is the same one on the server. With the correct hash, players who already downloaded it join right away. With a wrong or empty hash, the player downloads the pack again every time they connect.

Can I force players to use the pack?

Yes. With require-resource-pack set to true, anyone who declines the download gets disconnected. Use it carefully: if the link goes down or the hash gets out of date, nobody can join the server.

My cloud storage link does not work. Why?

Sharing links usually open a preview page instead of delivering the file. Minecraft needs a URL that returns the zip directly. Use the service's direct download variant or host the file somewhere else.

Can I make custom items with just a resource pack?

Yes, using CustomModelData. The plugin gives the item a number in that attribute, and the pack maps that number to a different model. Visually it is a new item, mechanically it is still the base item.

What is the maximum acceptable size for a server pack?

There is no fixed limit, but every megabyte is waiting time at join. Lean packs, in the range of a few megabytes, are barely noticed. Past a few dozen, new players feel it and some give up before getting in.

Next step

Minecraft plans

Compare Minecraft hosting options in Brazil.

[Minecraft plans](https://streethosting.com.br/en/minecraft)

[See Minecraft Pro Managed hosting on Ryzen with modpacks, optimized Paper and technical support.](https://streethosting.com.br/en/minecraft-pro) [Create a Minecraft server Simple plans for beginners, with activation within 60 seconds, Anti-DDoS and support in Portuguese.](https://streethosting.com.br/en/minecraft-facil)

## Related guides

[Minecraft Beginner How to change the MOTD and icon of your Minecraft server The MOTD and the icon are your server's first impression in the game list. Here is how to edit the text, add colors and upload a 64 by 64 pixel image. 3 min Read guide](https://streethosting.com.br/en/guides/minecraft/change-minecraft-server-motd) [Minecraft Intermediate How to update your Minecraft server version safely (Paper and plugins) Upgrading on impulse, with no backup and no plugin check, is a recipe for a corrupted world and an angry community. This guide lays out the sequence Brazilian server operators use to migrate predictably. 5 min Read guide](https://streethosting.com.br/en/guides/minecraft/update-paper-minecraft-server) [Minecraft Intermediate How to prepare a Minecraft server for a new season A new season is more than resetting the world: it involves community expectations, properly sized hardware, updated plugins and a marketing window that converts returning players and referrals. 4 min Read guide](https://streethosting.com.br/en/guides/minecraft/prepare-minecraft-server-new-season)

[← Back to the Guide Center](https://streethosting.com.br/en/guides)
