Быстрый старт: первый мод за 5 минут

Пошаговая инструкция по созданию первого мода: манифест pack.ron, кастомный блок, скрипт на Lua и хот-релоад в игре.

Быстрый старт: ваш первый мод за 5 минут

В этом руководстве мы с нуля создадим мод crystal_magic, добавим светящийся кристальный воксель, настроим команду приветствия и протестируем всё прямо в одиночной игре.


Шаг 1. Создание каталога мода

Перейдите в папку с игрой и найдите директорию datapacks/. Создайте внутри новую папку с идентификатором вашего мода:

TEXT
datapacks/
└── crystal_magic/
    ├── pack.ron            <-- Манифест мода (обязателен)
    ├── blocks/             <-- Описания воксельных блоков
    ├── items/              <-- Описания предметов и инструментов
    ├── recipes/            <-- Рецепты крафта и плавки
    └── scripts/            <-- Lua-скрипты
Важно

Идентификаторы и неймспейсы:
Идентификатор папки мода должен содержать только латинские буквы в нижнем регистре, цифры и символ подчеркивания (например, crystal_magic, space_tech).
Все ваши предметы и блоки должны использовать префикс вашего мода: crystal_magic:crystal_block.


Шаг 2. Манифест pack.ron

В корне папки мода создайте файл pack.ron:

RON
(
    id: "crystal_magic",
    name: "Crystal Magic",
    version: "0.1.0",
    author: "Ваш Никнейм",
    description: "Магические кристаллы, сияющие воксели и полезные заклинания.",
)

Поля манифеста:

  • id: уникальный строковый идентификатор мода
  • name: красивое отображаемое имя (для логов и будущего меню модов)
  • version: версия по SemVer (0.1.0)
  • author: автор или команда
  • description: краткое описание

Шаг 3. Добавляем новый блок (blocks/crystal_block.ron)

Создайте подпапку blocks/ и положите туда файл crystal_block.ron:

RON
BlockDef(
    id: "crystal_magic:crystal_block",
    name: "Сияющий кристалл",
    textures: Some(BlockTextures(
        // Для примера используем текстуру алмазной руды из базового атласа
        all: Some("textures/blocks/diamond_ore.png"),
    )),
    solid: true,
    translucent: false,
    hardness: 1.5,
    light_emission: 12,       // Излучает яркий свет (уровень 12 из 15)
    preferred_tool: Some("pickaxe"),
    requires_tool: true,
    harvest_level: 1,         // Добывается каменной киркой или выше
    drop: Some("self"),       // При поломке выпадает сам блок
)
Совет

Текстуры без мороки:
Чтобы не рисовать новую текстуру на этапе прототипирования, вы можете сослаться на любой существующий ключ текстуры в базовом атласе (например stone, iron_ore, obsidian, emerald_block). О создании собственного ресурспака мы подробно расскажем в главе 3D-модели и Ресурспаки.


Шаг 4. Добавляем первый Lua-скрипт (scripts/main.lua)

Создайте подпапку scripts/ и добавьте файл main.lua:

LUA
-- Инициализация мода Crystal Magic
print("[Crystal Magic] Мод успешно загружен в движок Metron!")

-- Регистрируем команду чата: /crystal
commands:register("crystal", function(sender, args)
    return string.format("Привет, %s! Магия кристаллов активна.", tostring(sender))
end)

-- Реагируем на поломку блоков в мире
function on_block_break(x, y, z, block_id)
    -- Проверим, сломали ли блок
    print(string.format("[Crystal Magic] Игрок сломал блок #%d на координатах (%d, %d, %d)", block_id, x, y, z))
end

Шаг 5. Запуск и тестирование в игре

  1. Запустите игру Metron.
  2. Создайте новый одиночный мир или зайдите в существующий.
  3. Откройте чат на клавишу T или / и введите команду:
    TEXT
    /crystal
    В чате появится ответ: Привет, Player! Магия кристаллов активна.
  4. Выдайте себе созданный блок:
    TEXT
    /give crystal_block 16
  5. Поставьте блок на землю — вы увидите, как он освещает пространство вокруг себя мягким светом с уровнем освещённости 12!

Шаг 6. Волшебство Hot-Reload

Не закрывая игру:

  1. Откройте blocks/crystal_block.ron в любом текстовом редакторе (VS Code, Notepad, Cursor).
  2. Измените light_emission: 15 и name: "Сверхяркий кристалл".
  3. Сохраните файл.
  4. Вернитесь в игру и нажмите F3 + T.
  5. В левом верхнем углу промелькнет сообщение о перезагрузке ресурсов, а ваш кристалл станет светить на максимальную дальность!

Поздравляем! Вы только что написали и запустили свой первый мод для Metron.
В следующих главах мы детально разберем каждый элемент: от параметров блоков до сложных Lua-триггеров.