Коротко: выложите .zip пакета по прямой HTTPS-ссылке, впишите её в resource-pack, а SHA-1 архива — в resource-pack-sha1 строчными буквами. Хотите, чтобы без пакета не играли, — require-resource-pack=true. Перезапустите сервер: server.properties читается только при старте. Обновили архив — посчитайте SHA-1 заново.
Ключи server.properties
| Ключ | По умолчанию | Что делает |
|---|---|---|
resource-pack | пусто | Ссылка на ZIP-архив пакета. Пусто — пакета нет. Размер — не больше 250 МиБ |
resource-pack-sha1 | пусто | SHA-1 архива в шестнадцатеричном виде строчными буквами. Необязателен, но рекомендован: по нему проверяется целостность пакета |
require-resource-pack | false | true — отключать игрока, который отказался от пакета |
resource-pack-prompt | пусто | Свой текст в окне запроса пакета; пусто — стандартный. Ожидает формат текстового компонента |
resource-pack-id | пусто | Необязательный UUID, по которому клиент узнаёт пакет (с 1.20.3) |
resource-pack=https://files.example.com/packs/server-pack.zip
resource-pack-sha1=0123456789abcdef0123456789abcdef01234567
require-resource-pack=trueКакая нужна ссылка
- Прямая ссылка на ZIP. Адрес должен отдавать сам архив, а не страницу файлообменника с кнопкой «Скачать». Проверьте: ссылка, открытая в браузере, сразу скачивает
.zip. - HTTP или HTTPS. Пакет скачивает клиент каждого игрока, а не сервер, поэтому хостинг должен быть доступен из интернета и выдерживать загрузки при массовом входе.
- Не больше 250 МиБ. Чем меньше архив, тем быстрее игрок попадёт в игру.
- Архив — сам пакет.
pack.mcmetaдолжен лежать в корне ZIP. Номер формата для вашей версии — в таблице статьи про дата-паки: у ресурспаков та же схемаmin_formatиmax_format.
Как посчитать SHA-1
SHA-1 — 40 шестнадцатеричных символов. По описанию протокола на Minecraft Wiki, если строка не похожа на такой хеш, клиент не сможет сверить файл и, скорее всего, будет зря тратить трафик. Считайте хеш от того же архива, который лежит по ссылке:
sha1sum server-pack.zip
# 0123456789abcdef0123456789abcdef01234567 server-pack.zip(Get-FileHash .\server-pack.zip -Algorithm SHA1).Hash.ToLower()Обновление пакета и старые версии у игроков
- 1
Соберите новый архив
Проверьте его локально в клиенте, прежде чем выкладывать.
- 2
Выложите и скачайте обратно
Скачайте файл по той ссылке, которую увидят игроки, и посчитайте SHA-1 от скачанной копии: так вы убедитесь, что по адресу уже лежит новая версия.
- 3
Обновите server.properties
Впишите новый
resource-pack-sha1(и новую ссылку, если адрес поменялся) и перезапустите сервер. - 4
Проверьте вход
Зайдите сами и убедитесь, что пакет скачался и применился.
Со старым хешем новый файл не пройдёт проверку целостности — поэтому SHA-1 меняют при каждом обновлении. С 1.20.3 клиент хранит скачанные серверные пакеты в папке downloads внутри .minecraft; если у игрока застряла старая копия, её можно удалить оттуда.
Обязательный пакет и текст запроса
С require-resource-pack=true игрок, который нажал «Нет», отключается от сервера. Включайте, если без пакета игра ломается: например, свои предметы и интерфейсы без текстур не понять. Если пакет только украшает, оставьте false: без него игрок всё равно сможет играть.
В resource-pack-prompt объясните, зачем нужен пакет и сколько он весит. Если пакет обязателен, напишите об этом и в правилах сервера.
Несколько пакетов и плагины
server.properties задаёт один пакет. Протокол с 1.20.3 умеет добавлять и убирать несколько пакетов по UUID, и этим пользуются плагины. Например, ForcePack (GPL-3.0, Paper, Spigot, Folia и Velocity) раздаёт пакет со встроенного веб-сервера, сам считает и проверяет SHA-1 и размер, а клиентам 1.20.3+ отправляет несколько пакетов. Он работает и на прокси Velocity — см. Velocity или BungeeCord.
Ресурспаки и античит
Ресурспак меняет только то, как игра выглядит и звучит у игрока. Тем же пользуются читеры: X-Ray-ресурспак делает камень прозрачным, и документация Paper прямо упоминает такие пакеты рядом с X-Ray-модами. Античит их не видит: сервер не получает от них ни одного пакета. Против X-Ray работает anti-xray ядра: сервер просто не отправляет клиенту скрытые руды. Как его включить — в статье защита от X-Ray.
Всё, что игрок делает руками, приходит на сервер пакетами — и это видит античит. DGuard — лучший античит для современного сервера Minecraft — ловит все 47 видов читов из нашего сравнения: в шахте это Nuker, FastBreak и GhostHand, а ещё читы боя, движения, инвентаря и постройки.
Частые вопросы
Как поставить ресурспак на сервер Minecraft?
Выложите ZIP по прямой ссылке, впишите её в resource-pack, а SHA-1 архива — в resource-pack-sha1 в server.properties, и перезапустите сервер.
Почему игроки видят старую версию ресурспака?
Чаще всего не обновлён resource-pack-sha1 или по ссылке всё ещё лежит старый файл. Скачайте архив по той же ссылке, посчитайте SHA-1 заново, впишите его и перезапустите сервер.
Как заставить игроков принять ресурспак?
Поставьте require-resource-pack=true: кто откажется от пакета, будет отключён от сервера. В resource-pack-prompt можно объяснить, зачем он нужен.
Какой максимальный размер ресурспака сервера?
250 МиБ по Minecraft Wiki. Но чем меньше архив, тем быстрее игроки заходят на сервер.
Источники
- Minecraft Wiki: server.properties
- Minecraft Wiki: ресурспак
- Minecraft Wiki: протокол, пакет Add Resource Pack
- Paper: справочник server.properties
- Paper: настройка Anti-Xray
- coreutils: sha1sum(1)
- Microsoft: Get-FileHash
- ForcePack на Modrinth
- DGuard — лучший античит для современного сервера Minecraft: сравнение проверок с GrimAC, Vulcan, Polar, Intave и Matrix
- DGuard: установка, требования и решение проблем
- DGuard: поддерживаемые версии Paper и Leaf