⚙️ Конфигурация config.yml¶
Это главный файл, где ты описываешь всю логику: какое событие (trigger) на каком объекте (target) вызывает какие эффекты (effects).
Общая структура¶
rules:
- trigger: <ТРИГГЕР>
target: <ЦЕЛЬ>
effects:
- type: <ТИП_ЭФФЕКТА>
# параметры эффекта
Файл состоит из списка правил (rules). Каждое правило — это одно "если → то":
trigger— какое событие отслеживаем (см. полный список триггеров)target— на что именно реагируем: конкретный блок, предмет, мир и т.д. (зависит от триггера, см. таргеты)effects— список из одного или нескольких эффектов, которые сработают (см. полный список эффектов)
Правил может быть сколько угодно
Просто добавляй новые блоки через - 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):
FLAME— вокруг игрока/блока разлетаются 50 частиц огняFIREWORK— запускается салют в форме звезды (STAR), с мерцанием (flicker: true) и дымным следом (trail: true), цвета — золотой (FFD700) и белый (FFFFFF)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: значение
См. также: