← Все статьи

Генератор боссбаров: что делает каждая команда /bossbar

Генератор превращает несколько полей в семь команд: одна создаёт шкалу, шесть настраивают её. Здесь разобрана каждая строка, где её запускать и на чём шкала чаще всего ломается или зависает: повторный ID, игроки, зашедшие позже, и шкалы, которые переживают перезапуск сервера.

Проверено на версиях: Java Edition 1.13–26.3. В Bedrock Edition команды /bossbar нет.

Что выдаёт генератор

Для пресета Ritual charge получается так:

/bossbar add cube:ritual_charge {"text":"Ritual charge","color":"white"}
/bossbar set cube:ritual_charge color purple
/bossbar set cube:ritual_charge style notched_10
/bossbar set cube:ritual_charge max 100
/bossbar set cube:ritual_charge value 65
/bossbar set cube:ritual_charge players @a
/bossbar set cube:ritual_charge visible true
СтрокаЧто делаетНа что обратить внимание
add <id> <name>Создаёт шкалу и сохраняет её в мире.Не сработает, если шкала с таким ID уже есть. ID пишется строчными: буквы, цифры, _ - . / и пространство имён вроде cube:.
colorblue, green, pink, purple, red, white или yellow.Цвет шкалы окрашивает и заголовок, но только если у названия нет своего цвета. Генератор пишет в название "color":"white", поэтому заголовок остаётся белым.
styleprogress (сплошная полоса) или notched_6, notched_10, notched_12, notched_20.Деления только рисуются поверх: заполнение по-прежнему равно value ÷ max.
maxЗначение полной шкалы, от 1 до 2147483647.Единица та же, что у value: секунды, тики, фазы или здоровье.
valueТекущее заполнение, от 0.Генератор не даёт превысить max; большее значение просто показывает полную шкалу.
playersЗадаёт, кто видит шкалу.Селектор вычисляется один раз, в момент выполнения. Игрок, зашедший позже, ничего не увидит, пока строку не запустят снова.
visibletrue или false.Прячет шкалу у всех, не теряя список игроков и значения.

Как выбрать max, value и стиль

Боссбар показывает только долю, поэтому сначала решите, что значит одна единица. Для таймера max — длительность события в том, что считает ваш цикл обновления: секундах, если он срабатывает раз в секунду, или тиках, если каждый тик. Для ритуала, который наполняется подношениями, max — число подношений. Для рейда по этапам — число этапов.

Стили с делениями полезны, когда игрокам нужно считать. Выбирайте стиль, у которого число делений делится на ваш max без остатка: при четырёх фазах notched_12 даёт каждой фазе по три деления, а при notched_6 границы фаз попадают между засечками. Для обратного отсчёта и всего непрерывного лучше всего читается progress.

Четыре пресета — заготовки: Ritual charge (65 из 100), Raid phase II (фаза 2 из 4), Evacuation: 3 minutes (осталось 180 из 300 секунд) и Phase break incoming (8 из 12). Перед использованием смените ID, чтобы два события никогда не делили одну шкалу.

Чат, командные блоки или файл функции

Как менять шкалу по ходу события

Когда шкала уже создана, запускайте только ту строку, которая меняется:

/bossbar set cube:ritual_charge value 80
/bossbar set cube:ritual_charge name {"text":"The circle is complete","color":"gold"}
/bossbar set cube:ritual_charge color yellow

Чтобы шкала следовала за реальным числом, копируйте его из scoreboard каждый тик или каждую секунду:

execute store result bossbar cube:ritual_charge value run scoreboard players get #offerings ritual

Готовый обратный отсчёт на этом приёме разобран в статье про боссбары для событий. Для игроков, которые подключились посреди сцены, снова выполните /bossbar set cube:ritual_charge players @a, например в том же цикле. Если новых игроков нет, команда сообщит о неудаче — это безвредно.

Как убрать шкалу

Свои боссбары хранятся в мире (в level.dat), поэтому забытая шкала останется и после перезапуска сервера. Когда сцена закончилась:

/bossbar remove cube:ritual_charge
/bossbar list

list показывает все оставшиеся шкалы — запускайте после события, чтобы ничего не забыть. Если та же шкала понадобится завтра, visible false спрячет её и сохранит настройки.

Текст заголовка в разных версиях

Генератор пишет название как {"text":"…","color":"white"}. До 1.21.4 игра читает это как JSON. С 1.21.5 текстовые компоненты в командах записываются в SNBT, и такая запись остаётся верной, потому что SNBT допускает ключи в кавычках, — одна и та же строка работает по обе стороны изменения. Короткая форма {text:"…"} без кавычек работает только с 1.21.5. Если форматирование не нужно, подойдёт и обычная строка в кавычках, например "Ritual charge", — в любой версии.

Частые вопросы

Боссбар сам отсчитывает время?

Нет. Он показывает последнее значение, которое ему дали. Обновлять его должен повторяющийся командный блок или функция по расписанию — см. рецепт обратного отсчёта.

Можно показать разным игрокам разные шкалы?

Да. Создайте по шкале на группу и дайте каждой свой селектор, например @a[team=red] и @a[team=blue].

Почему шкалу не видно?

Обычно строка players не выполнялась, выполнилась до того, как игроки зашли, или visible стоит в false. /bossbar get cube:ritual_charge players покажет, сколько игроков видят шкалу сейчас.

Это работает в Bedrock?

Нет. /bossbar есть только в Java Edition.