Начало работы
Твой первый мод
Предмет, блок, рецепт, приветствие и команда, уже разложенные по небольшим файлам. Ты тестируешь мод на имитации сервера, не открывая игру.
1. Создай мод
crafting new gemsgems/
├── main.craft
├── content/
│ ├── items.craft
│ ├── blocks.craft
│ └── recipes.craft
├── events/
│ └── welcome.craft
└── commands/
└── gem.craftmain.craft только сообщает, что это за мод и из каких частей он состоит. Контент лежит в content/, а поведение — в events/ и commands/. Почему именно так: Как организовать мод. С расширением для VS Code ты видишь ошибки и автодополнение прямо при наборе.
2. Файлы
mod "gems" { name: "gems", version: "1.0.0", author: "you" }
// Что существует
import "content/items"
import "content/blocks"
import "content/recipes"
// Что происходит
import "events/welcome"
import "commands/gem"item "magic_gem" { rarity: "rare", glint: true }block "magic_block" {
hardness: 3
light: 10
tool: "pickaxe"
drops: "magic_gem"
}recipe shaped "magic_block" {
pattern: ["GGG", "GGG", "GGG"]
keys: { G: "magic_gem" }
result: "magic_block"
}on join(e) {
e.player.send("&aДобро пожаловать, {e.player.name}!")
}command gem(target: player?) requires "gems.gem" {
let p = target ?? player
p.give(item("gems:magic_gem", 1))
return "Магический самоцвет выдан игроку {p.name}"
}3. Проверь его
crafting check gems/main.craftПроверка проходит по импортам. Если что-то не так, она называет файл, строку и то, что ожидалось, например welcome.craft:2: error: Player has no property 'helth'. Did you mean 'health'?.
4. Протестируй без игры
Песочница (sandbox) — это имитация сервера с тем же API, что и в настоящей игре. Она запускается в режиме разработки: сохрани файл, и мод перезагрузится.
mkdir -p test/mods && cp -r gems test/mods/
crafting sandbox test> join Steve
[Steve] Добро пожаловать, Steve!
> op Steve
> as Steve /gem
[Steve] Магический самоцвет выдан игроку Steve
> inv Steve
1x gems:magic_gem
> quit5. Сыграй
Скопируй папку gems в .minecraft/mods/ и открой профиль Crafting 26.3. Текстура предмета кладётся в gems/textures/item/magic_gem.png, а текстура блока — в gems/textures/block/magic_block.png. На сервере мод нужен и на сервере, и на каждом клиенте, потому что он добавляет блоки.
6. Развивай его
Каждой новой идее — своё место: ещё один предмет в content/items.craft, новое игровое правило в новом файле в events/, функция, которой пользуются несколько файлов, в lib/, настройки в settings.craft. Полный пример мода — на странице Как организовать мод.