Початок роботи

Твій перший мод

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

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