Pterohost docs

Как сделать свой ресурспак для Minecraft

Пошаговое руководство по созданию ресурспака для Minecraft: структура папок, pack.mcmeta, замена текстур и звуков, кастомные модели, упаковка и тест.

Кратко: Ресурспак - это zip-архив с чёткой структурой папок, файлом pack.mcmeta и ассетами. Создать его можно в любом текстовом редакторе и графическом редакторе без модов. После упаковки достаточно указать ссылку в server.properties - и все игроки сервера получат твои текстуры автоматически.

Как сделать свой ресурспак для Minecraft

Собственный ресурспак даёт серверу уникальный визуальный стиль: замену стандартных текстур блоков и предметов, новые звуки, кастомные 3D-модели через механику CustomModelData - и всё это без единого мода. В 2026 году формат ресурспаков устоялся начиная с Minecraft 1.14, а актуальный pack_format для 1.21+ равен 34. Создание пака доступно любому человеку с Photoshop или даже Paint.NET: никаких специальных знаний Java или Python не требуется. В этой статье разберём полный путь от пустой папки до работающего пака на сервере.

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

Структура папок ресурспака

Ресурспак - это обычная папка (или zip-архив) с жёстко заданной иерархией. Minecraft не читает файлы вне этой структуры. Вот минимальный скелет:

my_resourcepack/
├── pack.mcmeta
├── pack.png          (необязательно, превью 64x64 или 128x128)
└── assets/
    └── minecraft/
        ├── textures/
        │   ├── block/
        │   ├── item/
        │   ├── entity/
        │   └── gui/
        ├── models/
        │   ├── block/
        │   └── item/
        ├── sounds/
        └── sounds.json

Папка assets/minecraft/ - пространство имён (namespace) ванильной игры. Если ты создаёшь контент для стороннего мода или для своей игры поверх ванилли - можно добавить свой namespace, например assets/myserver/. Для чистой замены ванильных ассетов используй только assets/minecraft/.

Правила именования файлов:

  • только строчные буквы a-z, цифры 0-9, символы _, -, .
  • никаких пробелов и кириллицы в именах файлов и папок
  • расширение .png для текстур, .json для моделей, .ogg для звуков

pack.mcmeta и pack_format

Файл pack.mcmeta - обязательный манифест, без него Minecraft не увидит пак. Это JSON-файл:

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

Поле description поддерживает цвета через коды форматирования (§6 и т.д.), но в большинстве случаев достаточно просто текста.

Таблица актуальных значений pack_format по версиям:

Версия Minecraftpack_format
1.21 - 1.21.134
1.20.5 - 1.20.632
1.20.3 - 1.20.426
1.20.222
1.20 - 1.20.122
1.19.413
1.19 - 1.19.312
1.18 - 1.18.28
1.17 - 1.17.17

Если ты хочешь, чтобы пак работал на нескольких версиях, можно указать диапазон через поле supported_formats (появилось в 1.20.2+):

{
  "pack": {
    "pack_format": 34,
    "supported_formats": [22, 34],
    "description": "Совместимый пак"
  }
}

Значение pack_format при этом должно соответствовать старшей поддерживаемой версии.

Замена текстур блоков и предметов

Самое простое - заменить текстуру существующего блока или предмета. Например, хочешь изменить внешний вид камня (stone).

Алгоритм:

  1. Найди оригинал в установленных файлах игры - в папке .minecraft/versions/{версия}/{версия}.jar (это обычный zip, открой архиватором).
  2. Внутри jar найди assets/minecraft/textures/block/stone.png.
  3. Скопируй его в свой пак по тому же пути: assets/minecraft/textures/block/stone.png.
  4. Отредактируй PNG в своём редакторе. Размер должен быть кратным 2 (16x16, 32x32 и т.д.).
  5. Сохрани файл.

Для анимированных текстур (лава, вода, порталы) рядом с PNG кладётся файл .mcmeta. Например, для анимации lava_still.png нужен lava_still.png.mcmeta:

{
  "animation": {
    "frametime": 2,
    "frames": [0, 1, 2, 3, 4, 5, 6, 7]
  }
}

Здесь frametime - количество тиков на кадр (1 тик = 0.05 секунды), frames - порядок кадров. Сами кадры расположены вертикально в одном PNG-файле: если текстура 16x16 и кадров 8, то файл должен быть 16x128.

Замена звуков

Звуки в Minecraft хранятся в .ogg формате. Вот как заменить, например, звук удара по камню:

Шаг 1. Создай папку assets/minecraft/sounds/dig/ в своём паке.

Шаг 2. Положи туда файл stone1.ogg (или stone2.ogg и т.д. - Minecraft случайно выбирает из вариантов).

Шаг 3. Создай или дополни assets/minecraft/sounds.json:

{
  "dig.stone": {
    "sounds": [
      "dig/stone1",
      "dig/stone2"
    ]
  }
}

Пути в sounds.json указываются без расширения .ogg и без assets/minecraft/sounds/. Minecraft сам добавит эти части пути.

Для конвертации аудио в .ogg без потери качества удобно использовать ffmpeg:

ffmpeg -i input.mp3 -c:a libvorbis -q:a 5 output.ogg

Битрейт -q:a 5 даёт качество около 160 кбит/с - оптимальный баланс для игровых звуков. Файлы весом больше 1-2 МБ нежелательны: они замедляют загрузку пака игроками.

Кастомные 3D-модели через CustomModelData

Механика CustomModelData позволяет привязать произвольную 3D-модель к конкретному числовому ключу на предмете. Это стандарт де-факто для серверных кастомных предметов - используют плагины ItemsAdder, Nexo (бывший Oraxen) и ручная реализация.

Создание модели

Модели Minecraft - это JSON-файлы. Простейшая плоская модель предмета (спрайт):

{
  "parent": "item/handheld",
  "textures": {
    "layer0": "item/my_sword"
  }
}

Эту модель кладём в assets/minecraft/models/item/my_sword.json, текстуру - в assets/minecraft/textures/item/my_sword.png.

Для полноценных 3D-моделей (например меч с особой формой рукоятки) удобнее использовать Blockbench - бесплатный редактор моделей Minecraft с экспортом в JSON. Он работает как веб-приложение на blockbench.net и как десктопная программа.

Привязка к предмету

Чтобы Minecraft показывал нашу модель при определённом значении CustomModelData, нужно переопределить модель базового предмета. Например, перегрузим деревянный меч:

Файл assets/minecraft/models/item/wooden_sword.json:

{
  "parent": "item/handheld",
  "textures": {
    "layer0": "item/wooden_sword"
  },
  "overrides": [
    { "predicate": { "custom_model_data": 1001 }, "model": "item/my_sword" },
    { "predicate": { "custom_model_data": 1002 }, "model": "item/my_axe_custom" }
  ]
}

Теперь когда игрок держит деревянный меч с тегом {CustomModelData:1001}, Minecraft покажет модель item/my_sword. Выдать такой предмет можно командой:

/give @p minecraft:wooden_sword{CustomModelData:1001} 1

Важно: числа custom_model_data в overrides должны быть строго в возрастающем порядке, иначе Minecraft не будет читать предикаты корректно.

Примечание о Minecraft 1.21.4+

Начиная с 1.21.4 Mojang ввёл новую систему компонентов предметов, и старый формат тега {CustomModelData:N} был заменён на item_model и custom_model_data как компоненты. В ресурспаках для 1.21.4+ рекомендуется использовать новый синтаксис:

/give @p minecraft:wooden_sword[custom_model_data={floats:[1001]}] 1

Если твой сервер работает на 1.21 или ниже - используй старый формат с фигурными скобками.

Работа с текстурами GUI и шрифтами

Замена элементов интерфейса - один из самых популярных запросов для серверных паков. Текстуры GUI лежат в assets/minecraft/textures/gui/.

Часто меняют:

  • widgets.png - кнопки и полосы прокрутки
  • icons.png - иконки здоровья, голода, опыта
  • container/ - интерфейсы сундука, верстака, печи
  • title/ - фон главного меню

Кастомные шрифты позволяют добавить собственные символы и иконки в чат и книги. Шрифт задаётся в assets/minecraft/font/default.json и ссылается на PNG-спрайт лист. Это продвинутая тема, которую активно используют для создания кастомных HUD без модов.

Упаковка в ZIP-архив

Ресурспак должен быть zip-архивом, в корне которого находятся pack.mcmeta и папка assets/. Важно: архивировать нужно содержимое папки, а не саму папку.

Linux / macOS:

cd my_resourcepack
zip -r ../my_resourcepack.zip .

Windows (PowerShell):

cd my_resourcepack
Compress-Archive -Path * -DestinationPath ..\my_resourcepack.zip

Проверь структуру архива перед публикацией:

unzip -l my_resourcepack.zip | head -20

В выводе первыми строками должны быть pack.mcmeta и assets/, а не my_resourcepack/pack.mcmeta. Если видишь вложенную папку - ты запаковал папку целиком, нужно переупаковать.

Подключение ресурспака к серверу

Загрузи zip-файл на хостинг с прямой ссылкой для скачивания. Подойдут:

  • собственный CDN или веб-сервер (самый надёжный вариант)
  • GitHub Releases (прямая ссылка на asset)
  • Dropbox с ?dl=1 в конце ссылки

Получи SHA-1 хеш файла:

sha1sum my_resourcepack.zip
# или на macOS:
shasum -a 1 my_resourcepack.zip

Пропиши в server.properties:

resource-pack=https://example.com/my_resourcepack.zip
resource-pack-sha1=a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2
resource-pack-prompt=§eУстанови ресурспак для лучшего опыта!
resource-pack-required=false

Если resource-pack-required=true, игроки без принятого пака не смогут зайти на сервер. Это полезно для RPG-проектов, где визуал критичен.

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

Тестирование и отладка

Самый быстрый цикл тестирования - в одиночной игре:

  1. Положи папку пака в .minecraft/resourcepacks/
  2. Зайди в Настройки - Ресурспаки и активируй его
  3. Сделай изменение в файле
  4. Нажми F3+T для перезагрузки ресурспаков без выхода из игры

Для диагностики проблем открой консоль игры (F3 в режиме разработчика) или посмотри latest.log в папке .minecraft/logs/. Типичные ошибки в логах:

Ошибка в логеПричина
Invalid pack_formatНеверное значение в pack.mcmeta
Unable to load modelНеверный путь или синтаксис в JSON-модели
PNG: bad headerПовреждённый или не-PNG файл с расширением .png
missing textureТекстура указана в модели, но файл не найден
sounds.json: unknown sound eventОпечатка в имени события в sounds.json

Для валидации JSON-файлов используй любой онлайн-валидатор или python3 -m json.tool model.json - он покажет синтаксическую ошибку с номером строки.

Частые ошибки при создании ресурспака

Неверная структура архива. Самая распространённая ошибка - внутри zip находится папка my_resourcepack/, а не сразу pack.mcmeta. Minecraft в этом случае просто не видит пак.

Кириллица в именах файлов. Путь textures/блоки/камень.png не будет работать. Используй только ASCII-символы в нижнем регистре.

Неправильный размер текстуры. Размер 24x24 или 48x48 вызовет артефакты рендеринга. Допустимы только степени двойки: 16, 32, 64, 128, 256.

Устаревший pack_format. Пак с pack_format: 8 (для 1.18) на сервере 1.21 вызовет предупреждение и возможные несовместимости. Всегда обновляй значение при смене версии сервера.

Конфликт предикатов CustomModelData. Если два значения не отсортированы по возрастанию в массиве overrides, Minecraft обработает только ту часть массива, что идёт до неупорядоченного элемента.

Отсутствующий SHA-1 на сервере. Без корректного хеша в resource-pack-sha1 Minecraft каждый раз будет заново скачивать пак при входе игрока, даже если файл не менялся. Это увеличивает время входа и нагрузку на хостинг файлов.

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

Если ты настраиваешь сервер с нуля, полезно ознакомиться с руководством по server.properties - там описаны все ключевые параметры, включая resource-pack-*. При проблемах с производительностью после добавления кастомных текстур загляни в гайд по устранению лагов сервера. Для раздачи кастомных предметов игрокам через команды удобно использовать систему прав - читай про настройку LuckPerms.

Заключение

Создание ресурспака для Minecraft - прямолинейный процесс, если понимать структуру: файл pack.mcmeta с правильным pack_format, папка assets/minecraft/ с текстурами в PNG и моделями в JSON. Для базовой замены текстур достаточно 30-60 минут даже без опыта. Кастомные 3D-модели через CustomModelData требуют чуть больше времени, но открывают возможности, недоступные без модов. Главное - тщательно проверять структуру zip-архива перед публикацией и всегда обновлять SHA-1 хеш в server.properties после каждой замены файла. Результат того стоит: сервер с уникальным визуальным стилем выделяется среди тысяч других и удерживает игроков намного эффективнее.

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