TeaHost
Minecraftminecraftресурспакserver.propertiesтекстуры4 мин. чтения

Подключение resource-pack на сервере Minecraft

Как подключить resource-pack на сервере Minecraft: прямая ссылка, SHA-1 хэш, принудительная загрузка, размер файла и решение ошибки загрузки.

Кратко

Ресурспак подключается в server.properties: resource-pack — прямая ссылка на zip, resource-pack-sha1 — хэш файла, require-resource-pack=true — принудительная загрузка с киком отказавшихся. Яндекс.Диск и Google Drive не подходят, нужна прямая ссылка (свой сервер, GitHub Releases, Dropbox с dl=1). После каждого обновления пака пересчитывайте SHA-1 и перезапускайте сервер.

Свои иконки предметов, шрифт с логотипом проекта, кастомные модели оружия — всё это раздаётся игрокам автоматически при входе. Механика подключения resource-pack на сервере Minecraft держится на двух параметрах в server.properties и одном требовании: файл должен лежать на прямой ссылке, доступной снаружи.

Именно на ссылке спотыкается большинство: Яндекс.Диск и Google Drive отдают HTML-страницу вместо архива, и клиент честно сообщает об ошибке.

Куда прописывается resource-pack на сервере Minecraft

код
resource-pack=https://example.ru/packs/mypack.zip
resource-pack-sha1=8f4e2c1a9b3d5e7f0a1b2c3d4e5f60718293a4b5
require-resource-pack=false
resource-pack-prompt=Пак с текстурами нашего сервера

Что делает каждая (полное описание ключей — на Minecraft Wiki):

  • resource-pack — прямая ссылка на zip-архив. Именно на файл, а не на страницу скачивания.
  • resource-pack-sha1 — хэш файла. Клиент кэширует пак по хэшу: если он не менялся, повторная загрузка не происходит. Без хэша пак качается заново при каждом входе.
  • require-resource-pack=true — принудительная загрузка. Отказавшийся игрок получает кик. Появилось в 1.17.
  • resource-pack-prompt — текст в окне подтверждения.

Остальные параметры файла разобраны в настройке server.properties. После правок нужен полный рестарт — /reload эти строки не подхватывает.

Где взять прямую ссылку

Требование одно: по ссылке должен отдаваться сам zip с заголовком Content-Type: application/zip. Проверить просто — вставьте адрес в браузер в режиме инкогнито. Начал скачиваться файл — годится, открылась страница — нет.

Рабочие варианты:

  • Свой сервер. Если рядом крутится веб-сервер, положите пак в статику. Дёшево и предсказуемо.
  • GitHub Releases. Ссылка вида https://github.com/user/repo/releases/download/v1/pack.zip отдаёт файл напрямую. Бесплатно и без лимитов на скачивание.
  • Dropbox. Работает, если заменить ?dl=0 на ?dl=1 в конце ссылки.
  • Специализированные хостинги паков вроде MCPacks — заточены ровно под эту задачу.

Не работают: Яндекс.Диск, Google Drive, Mail-облако, любые файлообменники с капчей и таймером. Они отдают HTML-страницу, клиент видит не zip и пишет Failed to download resource pack.

Как посчитать SHA-1

Linux и macOS:

код
sha1sum mypack.zip
shasum -a 1 mypack.zip

Windows (PowerShell):

код
Get-FileHash mypack.zip -Algorithm SHA1

Хэш вставляется строчными буквами, без пробелов и дефисов. Считать нужно ровно тот файл, который лежит по ссылке — если вы пересобрали архив после подсчёта, хэш перестанет совпадать, и клиент откажется применять пак.

Отсюда золотое правило обновления: изменили пак — пересчитали хэш — обновили server.properties — перезапустили сервер. Пропустите шаг, и игроки будут сидеть на старой версии из кэша, а вы гадать, почему новые текстуры не видны.

Размер и скорость

Клиент качает пак при подключении, до входа в мир. Пятидесятимегабайтный архив на медленном интернете — это минута чёрного экрана и часть игроков, которые решат, что сервер завис.

Ориентиры по объёму:

  • до 5 МБ — незаметно;
  • 5–20 МБ — терпимо, если пак того стоит;
  • больше 50 МБ — заметный отвал игроков на входе.

У клиента есть жёсткий лимит размера серверного пака (в современных версиях — порядка 250 МБ, в старых меньше), но приближаться к нему не стоит.

Чем ужимают: конвертируют текстуры в оптимизированный PNG, выкидывают неиспользуемые файлы, убирают звуки в высоком битрейте (ogg занимает больше всего), не тащат в пак исходники в PSD.

Принудительный пак: когда включать

require-resource-pack=true оправдан, если без пака игра просто не работает — кастомные предметы выглядят палками, а меню магазина превращается в кашу из символов.

Во всех остальных случаях лучше оставить false: часть аудитории играет со своими шейдерами и модами, и жёсткий кик их отпугнёт.

Промежуточный вариант — выдавать пак по желанию, через команду плагина. ItemsAdder, Oraxen и ResourcePackAPI умеют отправлять пак конкретному игроку или группе, а не всем подряд. Это удобно, когда у разных миров под Multiverse разное оформление.

Ресурспак и Bedrock

Bedrock-игроки, зашедшие через Geyser, Java-пак не получат — форматы разные. Для них нужен отдельный .mcpack, который кладётся в plugins/Geyser-Spigot/packs и раздаётся автоматически. Подробности по кроссплею — в статье про Geyser и Floodgate.

Если сервер за прокси, пак удобнее отдавать плагином на Velocity — тогда он грузится один раз при входе в сеть, а не при каждом переходе между бэкендами.

Частые вопросы

Что делать, если игрок видит «Failed to download resource pack»?

По порядку: ссылка не прямая, файл больше лимита, сервер с паком недоступен, битый zip. Проверьте ссылку в инкогнито — это отсекает 80% случаев.

Почему пак применился, но текстуры старые?

Не совпадает SHA-1, клиент взял версию из кэша. Пересчитайте хэш. Игроку помогает удаление папки server-resource-packs в .minecraft.

Можно ли раздать несколько паков сразу?

С 1.20.3 сервер умеет отправлять стек паков, но server.properties поддерживает только один. Несколько — через плагины или объединением в один архив.

Почему пак не грузится только у части игроков?

Обычно это античит-моды или сборки с OptiFine, конфликтующие по формату pack_format. Проверьте, что значение в pack.mcmeta соответствует версии игры: 34 для 1.21, 18 для 1.20.2 и так далее.

Как проверить, что архив собран правильно?

Внутри zip в корне должны лежать pack.mcmeta и папка assets, без лишней вложенной директории. Лишний уровень — пак «не видит» игра.

Коротко

Прямая ссылка → SHA-1 → две строки в server.properties → рестарт. Дальше следите за размером и не забывайте пересчитывать хэш при каждом обновлении пака. Более подробный разбор с вариантами раздачи есть в статье как раздать ресурспак на сервере.

Если нужен сервер с панелью, где server.properties правится в браузере, — тарифы на Minecraft.