Перейти к содержанию

⚙️ Конфигурация config.yml

Это главный файл, где ты описываешь всю логику: какое событие (trigger) на каком объекте (target) вызывает какие эффекты (effects).

Общая структура

rules:
  - trigger: <ТРИГГЕР>
    target: <ЦЕЛЬ>
    effects:
      - type: <ТИП_ЭФФЕКТА>
        # параметры эффекта

Файл состоит из списка правил (rules). Каждое правило — это одно "если → то":

Правил может быть сколько угодно

Просто добавляй новые блоки через - trigger: на том же уровне отступа — они выполняются независимо друг от друга.


Разбор примера №1 — простое правило

rules:
  - trigger: BLOCK_PLACE
    target: DIAMOND_BLOCK
    effects:
      - type: FLAME
        amount: 50
        speed: 0.05
        offset:
          x: 0.5
          y: 0.5
          z: 0.5

Построчно:

Строка Что значит
trigger: BLOCK_PLACE Слушаем событие "игрок поставил блок"
target: DIAMOND_BLOCK Реагируем только если это был именно алмазный блок (регистр важен!)
effects: Начало списка эффектов для этого правила
type: FLAME Тип эффекта — обычная частица (PARTICLE), в данном случае огонёк
amount: 50 Заспавнится 50 частиц за раз
speed: 0.05 Частицы разлетаются медленно
offset.x/y/z: 0.5 Частицы появляются в радиусе 0.5 блока вокруг точки события

Итог: когда игрок ставит DIAMOND_BLOCK — вокруг блока появляется 50 частиц огня, разлетающихся с небольшой скоростью в радиусе 0.5 блока.


Разбор примера №2 — комбо-эффекты

  - trigger: CRAFT_ITEM
    target: CRAFTING_TABLE
    effects:
      - type: FLAME
        amount: 50
        speed: 0.05
        offset:
          x: 0.5
          y: 0.5
          z: 0.5

      - type: FIREWORK
        shape: STAR
        flicker: true
        trail: true
        power: 1
        colors:
          - "FFD700"
          - "FFFFFF"

      - type: TITLE
        title: "<gradient:gold:yellow>Первый верстак!</gradient>"
        subtitle: "<white>Начало великого пути</white>"
        fadeIn: 20
        stay: 60
        fadeOut: 20

Главная фишка — комбо

На один триггер можно повесить неограниченное количество эффектов. Все они сработают одновременно, один за другим в списке effects:.

Что произойдёт при крафте верстака (CRAFTING_TABLE):

  1. FLAME — вокруг игрока/блока разлетаются 50 частиц огня
  2. FIREWORK — запускается салют в форме звезды (STAR), с мерцанием (flicker: true) и дымным следом (trail: true), цвета — золотой (FFD700) и белый (FFFFFF)
  3. TITLE — на экран игроку на 3 секунды (stay: 60 тиков) выводится крупный текст "Первый верстак!" с градиентом золото→жёлтый, и подзаголовок "Начало великого пути"

Все три эффекта происходят одновременно в момент события — так делаются "ивенты" вроде "первый крафт", "первая смерть", "первый алмаз" и т.д.


Правила отступов (YAML)

YAML очень чувствителен к отступам — это частая причина ошибок:

  • Каждый уровень вложенности = 2 пробела (не Tab!)
  • trigger, target, effects должны быть на одном уровне отступа
  • Каждый эффект в списке начинается с - type:
  • Между правилами (- trigger:) рекомендуется оставлять пустую строку — так читаемее, но не обязательно
rules:
  - trigger: ...      # уровень 1: начало правила
    target: ...        # тот же уровень, что и trigger
    effects:            # тот же уровень
      - type: ...        # уровень 2: начало эффекта
        amount: ...        # тот же уровень, что type

Частая ошибка

Если сдвинуть target: или effects: хоть на один пробел не туда — конфиг может либо не загрузиться, либо (что хуже) молча не сработать. Используй онлайн YAML-валидатор, если что-то не работает.


Как собрать своё правило — шаблон

rules:
  - trigger: ТВОЙ_ТРИГГЕР          # см. guides/triggers.md
    target: ТВОЙ_TARGET              # см. guides/targets.md
    effects:
      - type: ТВОЙ_ЭФФЕКТ_1          # см. guides/effects.md
        параметр1: значение
        параметр2: значение

      - type: ТВОЙ_ЭФФЕКТ_2           # можно добавить ещё эффект
        параметр1: значение

См. также: