Начало работы

Твой первый мод

Предмет, блок, рецепт, приветствие и команда, уже разложенные по небольшим файлам. Ты тестируешь мод на имитации сервера, не открывая игру.

1. Создай мод

Терминал
crafting new gems
Что создаётсяТекст
gems/
├── main.craft
├── content/
│   ├── items.craft
│   ├── blocks.craft
│   └── recipes.craft
├── events/
│   └── welcome.craft
└── commands/
    └── gem.craft

main.craft только сообщает, что это за мод и из каких частей он состоит. Контент лежит в content/, а поведение — в events/ и commands/. Почему именно так: Как организовать мод. С расширением для VS Code ты видишь ошибки и автодополнение прямо при наборе.

2. Файлы

gems/main.craftCraftScript
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"
gems/content/items.craftCraftScript
item "magic_gem" { rarity: "rare", glint: true }
gems/content/blocks.craftCraftScript
block "magic_block" {
    hardness: 3
    light: 10
    tool: "pickaxe"
    drops: "magic_gem"
}
gems/content/recipes.craftCraftScript
recipe shaped "magic_block" {
    pattern: ["GGG", "GGG", "GGG"]
    keys: { G: "magic_gem" }
    result: "magic_block"
}
gems/events/welcome.craftCraftScript
on join(e) {
    e.player.send("&aДобро пожаловать, {e.player.name}!")
}
gems/commands/gem.craftCraftScript
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
> quit

5. Сыграй

Скопируй папку 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. Полный пример мода — на странице Как организовать мод.