Pterohost docs

Установка ресурспака на сервер Minecraft

Как установить ресурспак на сервер Minecraft: настройка server.properties, хостинг zip-файла, плагины и кастомные модели предметов.

Кратко: Ресурспак на сервере Minecraft настраивается через три параметра в server.properties - resource-pack (URL), resource-pack-sha1 (хеш) и require-resource-pack (обязательность). Zip-файл нужно разместить на хостинге с прямой ссылкой - подходят Dropbox, GitHub Releases или собственный веб-сервер.

Установка ресурспака на сервер Minecraft

Серверный ресурспак позволяет задать единый визуальный стиль для всех игроков без необходимости вручную устанавливать текстуры на каждый клиент. При подключении к серверу Minecraft автоматически предлагает скачать и применить пак - достаточно настроить три строки в server.properties и разместить zip-файл по прямой ссылке. В 2026 году этот механизм работает начиная с Minecraft 1.7.2 и поддерживается на всех современных ядрах: Vanilla, Paper, Purpur, Spigot. Для более гибкого управления - разные паки для разных регионов или игроков - существуют специализированные плагины.

Pterohost - Minecraft хостинг с NVMe-дисками, защитой от DDoS и поддержкой 24/7. Промокод 4START даёт -20% на первый заказ. Заказать Minecraft хостинг

Как работает серверный ресурспак

Когда игрок подключается к серверу, сервер отправляет клиенту пакет Resource Pack Send с URL и хешем файла. Клиент скачивает zip, проверяет SHA-1, распаковывает и применяет пак поверх стандартных текстур. Если игрок уже скачивал этот пак (хеш совпадает), повторной загрузки нет - используется кеш.

Схема работы:

  1. Игрок подключается к серверу.
  2. Сервер отправляет URL и SHA-1 хеш.
  3. Клиент проверяет кеш (~/.minecraft/server-resource-packs/).
  4. Если хеш не совпадает - скачивает zip по URL.
  5. Применяет пак и отображает игру с новыми текстурами.

Параметр require-resource-pack=true добавляет принудительность: игрок, нажавший “Отказаться”, получает кик с сообщением. По умолчанию (false) - загрузка добровольная.

Подготовка zip-файла ресурспака

Ресурспак должен быть запакован в zip-архив с правильной структурой папок. Корень архива содержит файл pack.mcmeta и папку assets.

Минимальная структура:

resourcepack.zip
├── pack.mcmeta
└── assets/
    └── minecraft/
        ├── textures/
        ├── sounds/
        └── models/

Содержимое pack.mcmeta (пример для Minecraft 1.21+):

{
  "pack": {
    "pack_format": 34,
    "description": "Мой серверный ресурспак"
  }
}

Актуальные значения pack_format по версиям Minecraft:

Версия Minecraftpack_format
1.20.422
1.20.632
1.2134
1.21.134
1.21.446

Если сервер поддерживает несколько версий (например, через ViaVersion), указывай pack_format для актуальной версии сервера. Старые клиенты покажут предупреждение, но пак загрузят.

Создание zip из командной строки Linux:

cd resourcepack_folder
zip -r ../resourcepack.zip .

Важно: архивировать нужно содержимое папки, а не саму папку. Иначе Minecraft не найдет pack.mcmeta в корне архива.

Хостинг zip-файла

Minecraft требует прямой HTTP/HTTPS-ссылки на zip-файл - сервер обращается к URL и получает бинарные данные файла без редиректов и HTML-страниц.

Dropbox

  1. Загрузи zip-файл в Dropbox.
  2. Нажми “Поделиться” -> “Скопировать ссылку”.
  3. В полученной ссылке замени ?dl=0 на ?dl=1:
    • Было: https://www.dropbox.com/s/abc123/resourcepack.zip?dl=0
    • Стало: https://www.dropbox.com/s/abc123/resourcepack.zip?dl=1

Параметр dl=1 заставляет Dropbox отдавать файл напрямую, а не открывать страницу просмотра.

GitHub Releases

Оптимальный вариант для больших паков - без ограничений на скачивание и с высокой скоростью CDN.

  1. Создай репозиторий (можно приватный, но тогда прямые ссылки не работают - нужен публичный).
  2. Перейди в Releases -> “Create a new release”.
  3. Прикрепи zip-файл как asset.
  4. Ссылка на файл вида: https://github.com/username/repo/releases/download/v1.0/resourcepack.zip

Собственный веб-сервер

Если у тебя есть VPS или выделенный сервер, размести файл в публичной папке nginx/apache:

# Скопируй файл в папку nginx
cp resourcepack.zip /var/www/html/packs/

# Ссылка будет вида:
# https://yourserver.com/packs/resourcepack.zip

Nginx-конфиг для корректных заголовков:

location /packs/ {
    add_header Content-Type application/zip;
    add_header Access-Control-Allow-Origin *;
}

Что НЕ работает

  • Google Drive - отдаёт страницу подтверждения загрузки, а не файл.
  • OneDrive с обычными ссылками - аналогичная проблема.
  • Ссылки с капчей или авторизацией.
  • HTTP без HTTPS на серверах 1.20+ (требуется HTTPS).

Настройка server.properties

После размещения файла открой server.properties в корне сервера и добавь или измени три параметра:

# URL к zip-файлу ресурспака (обязателен HTTPS с Minecraft 1.20+)
resource-pack=https://www.dropbox.com/s/abc123/resourcepack.zip?dl=1

# SHA-1 хеш файла (рекомендуется, но не обязателен)
resource-pack-sha1=7a5b2c1d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b

# Обязать игроков принять ресурспак
require-resource-pack=false

# Сообщение при отказе (только при require-resource-pack=true)
resource-pack-prompt={"text":"Для игры необходим ресурспак сервера","color":"red"}

Получение SHA-1 хеша

Linux/macOS:

sha1sum resourcepack.zip
# Вывод: 7a5b2c1d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b  resourcepack.zip

Windows PowerShell:

Get-FileHash resourcepack.zip -Algorithm SHA1
# Вывод: Algorithm  Hash                                     Path
#         SHA1       7A5B2C1D3E4F5A6B7C8D9E0F1A2B3C4D5E6F7A8B  resourcepack.zip

Хеш в server.properties нужно указывать строчными буквами. SHA-1 используется для кеширования на стороне клиента: если хеш не изменился, клиент не будет перекачивать пак.

После изменения server.properties перезагрузи сервер - параметры resource-pack не применяются через /reload.

Плагины для управления ресурспаками

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

ResourcePackManager (Paper/Spigot)

Плагин позволяет назначать разные ресурспаки для разных миров и игроков. Конфиг /plugins/ResourcePackManager/config.yml:

default:
  url: "https://example.com/packs/default.zip"
  sha1: "aabbccdd..."
  required: false

worlds:
  nether:
    url: "https://example.com/packs/nether.zip"
    sha1: "11223344..."
    required: true

MultiResourcePack / PacketEventsAPI

Для серверов 1.20.3+ появилась возможность отправлять несколько ресурспаков одновременно (через новый пакет Resource Pack Push). Плагины на базе PacketEvents используют эту функцию для стекинга паков.

CustomModelData и Item Model Override

Начиная с Minecraft 1.14, в ресурспаке можно переопределять модели предметов через CustomModelData. Это позволяет создавать сотни кастомных предметов без модов, используя стандартные ID предметов как “держатели”.

Пример файла модели assets/minecraft/models/item/diamond.json:

{
  "parent": "item/handheld",
  "textures": {
    "layer0": "item/diamond"
  },
  "overrides": [
    {"predicate": {"custom_model_data": 1001}, "model": "custom/sword_fire"},
    {"predicate": {"custom_model_data": 1002}, "model": "custom/sword_ice"},
    {"predicate": {"custom_model_data": 1003}, "model": "custom/wand_magic"}
  ]
}

Соответствующие модели кладутся в assets/minecraft/models/custom/. Игроку выдаётся алмаз с NBT-тегом {CustomModelData:1001} - и он видит огненный меч.

Начиная с Minecraft 1.21.4 появился новый компонент minecraft:item_model, который заменяет систему CustomModelData и позволяет назначать произвольные модели напрямую. Старый механизм через overrides продолжает работать для обратной совместимости.

Отладка и типичные ошибки

Ресурспак не загружается

Проверь по порядку:

  1. URL доступен по HTTPS (в 2024-2026 HTTP заблокирован на новых клиентах).
  2. Открой URL в браузере - он должен начать скачивание, а не открывать страницу.
  3. SHA-1 хеш правильный (регистр не важен, но длина должна быть 40 символов).
  4. Размер файла не превышает допустимый лимит хостинга.

Лог сервера при успешной отправке:

[INFO]: Sending resource pack to player PlayerName

Сервер логирует ошибку “Invalid SHA1”

Значит хеш в server.properties не совпадает с реальным хешем файла. Пересчитай и обнови. Частая причина - пересохранил zip-файл, но забыл обновить хеш.

Клиент говорит “Failed to download”

Проблема на стороне клиента или хостинга:

  • Проверь, что URL не требует авторизации.
  • Проверь ограничения по скорости на хостинге файла.
  • Некоторые CDN блокируют User-Agent Minecraft - нужно настроить разрешение.

Текстуры применяются, но не все

Скорее всего несоответствие pack_format версии клиента. Клиент покажет предупреждение, но попробует применить пак - некоторые форматы текстур/моделей из новых версий не поддерживаются старыми клиентами.

Ресурспак с кастомными звуками

Помимо текстур, серверный ресурспак может включать кастомные звуки. Файлы размещаются в assets/minecraft/sounds/ в формате OGG Vorbis.

Регистрация звука в assets/minecraft/sounds.json:

{
  "custom.ambient.forest": {
    "sounds": [
      {
        "name": "custom/forest_ambient",
        "volume": 0.8,
        "pitch": 1.0,
        "stream": true
      }
    ]
  }
}

Плагин на сервере вызывает звук командой:

/playsound minecraft:custom.ambient.forest ambient @a ~ ~ ~ 1 1

Или через Paper API:

player.playSound(player.getLocation(), "custom.ambient.forest", SoundCategory.AMBIENT, 1.0f, 1.0f);

Оптимизация размера ресурспака

Большой ресурспак = долгая загрузка для игроков. Несколько советов по уменьшению размера:

Текстуры:

  • Используй PNG с оптимизацией (optipng, pngquant).
  • Не увеличивай разрешение выше 64x64 для стандартных блоков без необходимости - 256x256 в 16 раз тяжелее.
  • Убирай EXIF-данные из изображений.

Звуки:

  • OGG с битрейтом 96-128 kbps достаточно для большинства игровых звуков.
  • Стриминг ("stream": true) для длинных треков (фоновая музыка).

Инструменты:

# Оптимизация PNG
pngquant --quality=80-95 assets/minecraft/textures/block/*.png

# Конвертация wav в ogg
ffmpeg -i sound.wav -codec:a libvorbis -qscale:a 4 sound.ogg

Целевой размер для комфортной загрузки:

Размер пакаВремя загрузки (50 Mbit/s)Рекомендация
до 10 МБ~2 секундыОтлично
10-50 МБ2-8 секундПриемлемо
50-150 МБ8-25 секундС предупреждением
более 150 МБболее 25 секундНежелательно

Связанные материалы

Настройка ресурспака - часть общей конфигурации сервера. Подробнее о защите территорий и управлении регионами читай в статье WorldGuard: регионы и защита. О выборе ядра сервера для оптимальной производительности - в Ядра Minecraft серверов. Если сервер тормозит при загрузке паков или большом числе игроков - Оптимизация Minecraft сервера покрывает настройки aikar-flags, chunk-loading и view-distance.

Заключение

Установка ресурспака на сервер Minecraft сводится к четырём шагам: подготовь корректный zip с файлом pack.mcmeta, разместив его по прямой HTTPS-ссылке (Dropbox, GitHub Releases или собственный сервер), вычисли SHA-1 хеш и пропиши параметры в server.properties. Для продвинутых сценариев - кастомные модели через CustomModelData, кастомные звуки, разные паки для разных миров - используй плагины и пакет Assets Override. Ключевые моменты: прямая ссылка без редиректов, корректный SHA-1, HTTPS обязателен с Minecraft 1.20+, и pack_format должен соответствовать версии сервера.

Pterohost - надёжный хостинг для Minecraft с поддержкой 24/7, NVMe и DDoS-защитой - идеально для серверов с кастомными ресурспаками и большим числом игроков. Промокод 4START даёт -20% на первый заказ. Заказать Minecraft хостинг