Быстрый старт: первый мод за 5 минут
Пошаговая инструкция по созданию первого мода: манифест pack.ron, кастомный блок, скрипт на Lua и хот-релоад в игре.
Быстрый старт: ваш первый мод за 5 минут
В этом руководстве мы с нуля создадим мод crystal_magic, добавим светящийся кристальный воксель, настроим команду приветствия и протестируем всё прямо в одиночной игре.
Шаг 1. Создание каталога мода
Перейдите в папку с игрой и найдите директорию datapacks/. Создайте внутри новую папку с идентификатором вашего мода:
datapacks/
└── crystal_magic/
├── pack.ron <-- Манифест мода (обязателен)
├── blocks/ <-- Описания воксельных блоков
├── items/ <-- Описания предметов и инструментов
├── recipes/ <-- Рецепты крафта и плавки
└── scripts/ <-- Lua-скрипты
Идентификаторы и неймспейсы:
Идентификатор папки мода должен содержать только латинские буквы в нижнем регистре, цифры и символ подчеркивания (например, crystal_magic, space_tech).
Все ваши предметы и блоки должны использовать префикс вашего мода: crystal_magic:crystal_block.
Шаг 2. Манифест pack.ron
В корне папки мода создайте файл pack.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:
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:
-- Инициализация мода 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. Запуск и тестирование в игре
- Запустите игру Metron.
- Создайте новый одиночный мир или зайдите в существующий.
- Откройте чат на клавишу T или / и введите команду:В чате появится ответ:
/crystalПривет, Player! Магия кристаллов активна. - Выдайте себе созданный блок:
/give crystal_block 16 - Поставьте блок на землю — вы увидите, как он освещает пространство вокруг себя мягким светом с уровнем освещённости 12!
Шаг 6. Волшебство Hot-Reload
Не закрывая игру:
- Откройте
blocks/crystal_block.ronв любом текстовом редакторе (VS Code, Notepad, Cursor). - Измените
light_emission: 15иname: "Сверхяркий кристалл". - Сохраните файл.
- Вернитесь в игру и нажмите F3 + T.
- В левом верхнем углу промелькнет сообщение о перезагрузке ресурсов, а ваш кристалл станет светить на максимальную дальность!
Поздравляем! Вы только что написали и запустили свой первый мод для Metron.
В следующих главах мы детально разберем каждый элемент: от параметров блоков до сложных Lua-триггеров.