BroadcastSystem
A lightweight Hytale plugin that sends configurable automatic and manual chat and title announcements, plus join messages, with legacy & color codes and placeholders.
Описание
1.1 будет окончательной версией. Я предпочитаю иметь надежный плагин без ошибок, чем плагин с несколькими методами и ошибками или задержками..
Ищете простой способ отображения советов сервера, правил, ссылок Discord или объявлений? Система вещания обеспечивает Две независимые системы автовещания (Чат + Заголовок), плюс сообщения, ручные команды, и Цвета, заполнители и чистая конфигурация JSON.
Особенности:
- ✅ Чат-трансляция (многоуровневая поддержка)
- ✅ Титульные передачи (Заголовок события / «большой заголовок» в середине экрана)
Он также включает:
- ✅ Ручное вещание команд
- ✅ Присоединяйтесь к сообщениям (частное сообщение для всех + публичное сообщение для всех)
- Minecraft-стиль
иЦветные коды - ✅ Помещики как
% игроков %и%joiner% - ✅ простой Конфигурация JSON ()
config.json)
Особенности
1) Две независимые системы вещания
Каждая система имеет свои настройки:
- включенный/отключенный
- интервал в секундах
- режим перетасовки (случайный) или кругло-робиновый порядок
Вы можете бегать:
- Чат каждый 120с
- Название каждого 300с
- Или полностью отключить.
2) Общий пул объявлений с целевыми показателями на вход
Вы определяете объявления один раз в "объявления" Выберите, куда они идут, используя:
"цели": ["ЧАТ"]"цели": [титул]
Каждое объявление может содержать:
"чат"Контент (многолинейный блок)"заголовок"содержание"подзаголовок"Содержание (факультативно)
3) Присоединяйтесь к сообщениям (факультативно)
Два выделенных раздела сообщений о присоединении:
- присоединитьсяОтправлено только вступающему игроку
- присоединятьсяТрансляция для всех онлайн-игроков
Обе поддержки:
- Цели чата и/или заголовка
- многолинейные блоки
- держатели
- опциональное отключение сообщения Vanilla join
4) Форматирование текста
Наследие цветовых кодов
Поддерживает Minecraft-подобные коды:
- Цвета:
0тои 9,ито&f - Форматирование:
ил(смелый),и(итальянский),&r(перезагрузка) - Работает с обоими
ии§
Многолинейные блоки
Для сообщений чата (и присоединиться к чату) вы можете использовать:
"чат": "----nLine 1\nLine 2\n---"Или просто использовать n Новые линии.
5) Держатели помещений
% игроков %
Заменить его на Имя игрока-получателя (игрок, который получает сообщение).%joiner%
Заменить его на Имя игрока (только для обмена сообщениями).% мирового %
Заменить его на Текущий мир игрока-получателя (наилучшие усилия: имя/id/uuid в зависимости от наличия API)% игроков_online %
Заменить его на Количество игроков в настоящее время онлайн.%online %(Алии)% игроков_online %)
Как и выше, более короткое название.%server_uptime %
Заменить его на Сервер / плагин Uptime (время после загрузки плагина), отформатированный как:12м 05с,3h 12m 09s,2d 04h 01m 33s% % % %
текущий сервер местное время:HH:mm:ss
Пример:21:43:10% Дата %
текущий Местная дата сервера:yyyy-MM-dd
Пример:2026-01-15% дата-время %
текущий Местная дата сервера + время:yyyy-MM-dd HH:mm:ss
Пример:2026-01-15 21:43:10% дневной %
текущий день недели (вверху):Понедельник,Вторники т.д.% таймзон %
текущий серверная система timezone id (пример:Европа/Париж)
Случайное целое число
%random_int:min:max%
генерирует a случайное целое число междумин.имакс(включительно).
Примеры:
%random_int:1:100%?42%random_int:-5:5%?-1%random_int:10:10%?1010
Случайный выбор
%random_choice: a | b | c %
Случайный выбор Один вариант из одного!Разделенный список.
Примеры:
%random_choice: Присоединяйся к раздору / Join Discord Пользование/помощь%%random_choice: Привет. Здравствуйте, %
✅ Поддержка заполнителей внутри опцийНапример:
%random_choice:Online: %online% | World: %world% | Time: %time%%
командование
Главное командование: /hb
/bs скачать
Перезарядка config.json и перезапускает расписание вещания.
/bs статус
Показывает текущий статус:
- Включены ли системы чата/титула
- интервалы
- размеры бассейна
- Путь конфигурирования файлов
/b/s Теперь [chat |title |оба]
Мгновенно отправляет трансляцию из настроенного пула.
Примеры:
/bs сейчас/bs теперь чат/bs название
/bs start [chat |title | оба]
Начинает вещание.
Примеры:
/bs начало/bs начать чат
/bs stop [chat |title |both]
Прекратить вещание.
Примеры:
/bs остановкаЗаголовок остановки
/bs send chat <сообщение...>
Отправляет объявление в чат всем игрокам.
Пример:
/bs send chat &aHello world!
/bs send title <message...>
Отправляет ручное объявление заголовка всем игрокам.
Поддержка n Чтобы заставить многострочный титул.
Пример:
/bs send title &eServer Restart\n&7 За 5 минут
Разрешения
Разрешение администратора (полный контроль)
Broadcast_system.admin
Позволяет:
- перезаряжать
- статус
- старт/стоп
- теперь
Отправка разрешений (только для ручного вещания)
- broadcast_system.send
Позволяет:
/hb Отправить чат/hb Отправить Заголовок
резервный оператор
Если ваш сервер использует ролевые разрешения, плагин также позволяет:
Роль.оператор
конфигурация
Плагин создает:
mods/Yanisssch_BroadcastSystem/config.json
Ключевые разделы:
болтатьтитулприсоединитьсяприсоединятьсяобъявления
Важные заметки
- Если
"ShowSubtitle": ложныйСубтитры будут скрыты, даже если они предоставлены. - Если подзаголовок пуст,
title.defaultSubtitleИспользуется (при включении). - Если
Скачать DefaultJoinMessageЭто верно для конфигураций присоединения, ванильная передача присоединения отключена. - Не используйте цвета для заголовка, это не работает.
- Не используйте обе цели для объявления (в настоящее время устранение проблемы с этой целью).
- Будьте осторожны при создании конфигурации, сохраняйте резервную копию в случае, если ваши ошибки, «» и «» очень важны и не используют «в чате или заголовке он может сломать сам конфигурацию ;
- Потратьте время, чтобы протестировать плагин и прочитать весь файл конфигурации
- И этот плагин является первым, который я сделал для Hytale, я все еще изучаю api, поэтому, если вы видите некоторые ошибки, не стесняйтесь сказать мне на диссонансе «Yanisssch_Sori».
Пример конфигурирования
{
"_comment": "BroadcastSystem config.json - примеры". Цвета (только для чата - не заголовки!): &a, &6, &l, &r... Владельцы мест: % игрок = получатель, % участник = присоединившийся игрок. Блоки n позволяют многострочный текст только для чата, а не заголовков!
"_help_targets": "targets for JoinSelf and JoinServer can be: [\"CHAT\", [\"TITLE\"], and for announcement can be [\"BOTH\"] (или [\"CHAT\",\"TITLE\")). ,
"чат": {
«_comment»: «Автоматические объявления в чате».
"Включено": правда,
"Интервал Вторые": 120,
"перетасовка": ложная,
"префикс": "&6&l [INFO]&r"
?
"название": {
«_comment»: «Автоматические объявления в качестве центрального названия (EventTitle)».
"Включено": правда,
"Интервал Вторые": 300,
"перетасовка": ложная,
"ShowSubtitle": правда,
"defaultSubtitle": "&eAnnouncement",
«Одушевленный»: правда
?
"Присоединяйся": {
"_комментарий": "Сообщение отправлено ТОЛЬКО присоединяющемуся игроку (частному)".
"Включено": правда,
"disableDefaultJoinMessage": правда,
"цели": ["обе"],
"Чат": "-----" Привет &f%player%&a!\n&7Добро пожаловать! Пожалуйста, прочтите &f/rules&7 :)\n----",
«Приветствуем % игроков % в ServerName!»
"подзаголовок": "Развлекайтесь";)
"_example_title": {
"_комментарий": "АЛЬТЕРНАТИВНЫЙ ПРИМЕР: покажите заголовок вместо чата",
"включено": ложное,
"disableDefaultJoinMessage": правда,
"цели": [титул],
"титул": "Добро пожаловать",
"подзаголовок": "&7Правила: &f/Правила"
?
"_example_chat":
"_комментарий": "АЛЬТЕРНАТИВНЫЙ ПРИМЕР: покажите чат вместо названия",
"включено": ложное,
"disableDefaultJoinMessage": правда,
"цели": ["ЧАТ"],
"Чат": "-----" Привет &f%player%&a!\n&7Добро пожаловать! Пожалуйста, прочтите &f/rules&7 :)\n---"
?
?
"Сервис": {
"_comment": "Сообщение, отправленное каждому, когда кто-то присоединяется".
"Включено": правда,
"disableDefaultJoinMessage": правда,
"цели": ["ЧАТ"],
«chat»: «-----------------&r &e%joiner% &ahas присоединился к серверу!» ,
"_example_both": {
"_comment": "ALTERNATIVE EXAMPLE: send both CHAT + TITLE at same time".
"включено": ложное,
"disableDefaultJoinMessage": правда,
"цели": ["обе"],
«chat»: «-----------------&r &e%joiner% &ahas присоединился к серверу!» ,
Оригинальное название: "&aNew Player!"
"подзаголовок": "&e%joiner%"
?
?
"_комментарий": "Для объявления нет ОБО для цели (в настоящее время устранение проблемы с этой частью)",
"объявления":
{
"_comment": "Пример 1: CHAT multi-line announcement (с ----n block)". ,
"цели": ["ЧАТ"],
"чат": "-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
?
{
"_comment": "Пример 2: Заголовок сообщения".
"цели": [титул],
"титул": "Добро пожаловать",
"подзаголовок": "Повеселись!"
?
{
"_comment": "Пример 3: Наименование без субтитров". ,
"цели": [титул],
«Заголовок»: «Нужна помощь?»
"подзаголовок": ""
?
{
"_комментарий": "Пример 4: ЧАТ Объявление о разладе".
"цели": ["ЧАТ"],
"чат": "----------------------------------------------------------------------------------------------------------------------------------------------------------------
?
]
?
Случаи использования
- Советы сервера / Напоминания правил
- Вращение диссонансных связей
- Объявления о событиях
- Приветственные сообщения
установка
- Скачать .jar
- Поместите его в папку модов в файлах вашего сервера
- Перезагрузить сервер
- Проверьте файл конфигурации в /mods/Yanisssch_BroadcastSystem
- Перезагрузить сервер или сделать /hbs перезагрузку
- Проверьте результат
- И вуаля;)
поддержка
Вы можете связаться со мной только по причине разногласий: Yanisssch_Sori (я могу ответить от 6 до 12 часов)
Показать оригинальное описание (English)
The 1.1 will be a final version for now. I prefer to have a reliable plugin without errors than a plugin with multiple methods and errors or lags.
Looking for an easy way to display server tips, rules, Discord links, or announcements? BroadcastSystem provides two independent auto-broadcast systems (Chat + Title), plus join messages, manual commands, & colors, placeholders, and a clean JSON configuration.
Features:
- ✅ Chat broadcasts (multi-line supported)
- ✅ Title broadcasts (Event Title / “big title” in the middle of the screen)
It also includes:
- ✅ Manual broadcast commands
- ✅ Join messages (private message to joiner + public message to everyone)
- ✅ Minecraft-style
&color codes - ✅ Placeholders like
%player%and%joiner% - ✅ Simple JSON configuration (
config.json)
Features
1) Two independent broadcast systems
Each system has its own settings:
- enabled/disabled
- interval in seconds
- shuffle mode (random) or round-robin order
So you can run:
- Chat every 120s
- Title every 300s
- Or disable one entirely.
2) Shared announcement pool with per-entry targets
You define announcements once in "announcements" and choose where they go using:
"targets": ["CHAT"]"targets": ["TITLE"]
Each announcement can contain:
"chat"content (multi-line block)"title"content"subtitle"content (optional)
3) Join messages (optional)
Two dedicated join message sections:
- joinSelf: only sent to the joining player
- joinServer: broadcast to all online players
Both support:
- chat and/or title targets
- multi-line blocks
- placeholders
- optional disabling of vanilla join message
4) Text formatting
Legacy color codes
Supports Minecraft-like codes:
- Colors:
&0to&9,&ato&f - Formatting:
&l(bold),&o(italic),&r(reset) - Works with both
&and§
Multi-line blocks
For chat messages (and join chat), you can use:
"chat": "----\nLine 1\nLine 2\n----"Or simply use \n newlines.
5) Placeholders
%player%
Replaced with the recipient player name (the player who receives the message).%joiner%
Replaced with the joining player name (only meaningful for join messages).%world%
Replaced with the recipient player’s current world (best-effort: name/id/uuid depending on API availability).%players_online%
Replaced with the number of players currently online.%online%(alias of%players_online%)
Same as above, shorter name.%server_uptime%
Replaced with the server/plugin uptime (time since plugin boot), formatted like:12m 05s,3h 12m 09s,2d 04h 01m 33s%time%
Current server local time:HH:mm:ss
Example:21:43:10%date%
Current server local date:yyyy-MM-dd
Example:2026-01-15%datetime%
Current server local date + time:yyyy-MM-dd HH:mm:ss
Example:2026-01-15 21:43:10%day%
Current day of week (uppercase):MONDAY,TUESDAY, etc.%timezone%
Current server system timezone id (example:Europe/Paris)
Random integer
%random_int:min:max%
Generates a random integer betweenminandmax(inclusive).
Examples:
%random_int:1:100%→42%random_int:-5:5%→-1%random_int:10:10%→10
Random choice
%random_choice:a|b|c%
Randomly picks ONE option from a|separated list.
Examples:
%random_choice:Read /rules|Join Discord|Use /help%%random_choice:Hello|Hi|Hey%
✅ Supports placeholders inside options, for example:
%random_choice:Online: %online%|World: %world%|Time: %time%%
Commands
Main command: /hb
/bs reload
Reloads config.json and restarts the broadcast schedulers.
/bs status
Shows current status:
- whether chat/title systems are enabled
- intervals
- pool sizes
- config file path
/bs now [chat|title|both]
Instantly sends a broadcast from the configured pool.
Examples:
/bs now/bs now chat/bs now title
/bs start [chat|title|both]
Starts broadcasting.
Examples:
/bs start/bs start chat
/bs stop [chat|title|both]
Stops broadcasting.
Examples:
/bs stop/bs stop title
/bs send chat <message...>
Sends a manual chat announcement to all players.
Example:
/bs send chat &aHello world!
/bs send title <message...>
Sends a manual title announcement to all players.
Supports \n to force multi-line title.
Example:
/bs send title &eServer Restart\n&7In 5 minutes
Permissions
Admin permission (full control)
- broadcast_system.admin
Allows:
- reload
- status
- start/stop
- now
Send permission (manual broadcasts only)
- broadcast_system.send
Allows:
/hb send chat .../hb send title ...
Operator fallback
If your server uses role permissions, the plugin also allows:
role.operator
Configuration
The plugin creates:
mods/Yanisssch_BroadcastSystem/config.json
Key sections:
chattitlejoinSelfjoinServerannouncements
Important notes
- If
"showSubtitle": false, subtitles will be hidden even if provided. - If subtitle is empty,
title.defaultSubtitleis used (when enabled). - If
disableDefaultJoinMessageis true for join configs, vanilla join broadcast is disabled. - Do not use colors for Title, this not work….
- Do not use BOTH target for announcement (currently fixing an issue with this target)
- Be careful when making the config, keep backup in case your making errors, the "," and "{}" are very important and do not use " in the chat or title it can break the config itself ;)
- Take time to test the plugin and read all the config file
- And, this plugin is the first i made for Hytale, i'm still learning the api so if you see some bugs do not hesitate to tell me on discord "Yanisssch_Sori"
Example Config
{
"_comment": "BroadcastSystem config.json - examples. Colors(only for the chat - not the titles!): &a, &6, &l, &r… Placeholders: %player% = recipient, %joiner% = joining player. '\n' blocks allow multi-line text only for chat, not titles!",
"_help_targets": "targets for JoinSelf and JoinServer can be: [\"CHAT\"], [\"TITLE\"], and for announcement can be [\"BOTH\"] (or [\"CHAT\",\"TITLE\"]).",
"chat": {
"_comment": "Automatic announcements in chat.",
"enabled": true,
"intervalSeconds": 120,
"shuffle": false,
"prefix": "&6&l[INFO]&r "
},
"title": {
"_comment": "Automatic announcements as center title (EventTitle).",
"enabled": true,
"intervalSeconds": 300,
"shuffle": false,
"showSubtitle": true,
"defaultSubtitle": "&eAnnouncement",
"animate": true
},
"joinSelf": {
"_comment": "Message sent ONLY to the joining player (private).",
"enabled": true,
"disableDefaultJoinMessage": true,
"targets": ["BOTH"],
"chat": "----\n&aHi &f%player%&a!\n&7Welcome! Please read &f/rules&7 :)\n----",
"title": "Welcome %player% to ServerName!",
"subtitle": "Have fun ;)",
"_example_title": {
"_comment": "ALTERNATIVE EXAMPLE: show a Title instead of chat",
"enabled": false,
"disableDefaultJoinMessage": true,
"targets": ["TITLE"],
"title": "WELCOME",
"subtitle": "&7Rules: &f/rules"
},
"_example_chat": {
"_comment": "ALTERNATIVE EXAMPLE: show a Chat instead of title",
"enabled": false,
"disableDefaultJoinMessage": true,
"targets": ["CHAT"],
"chat": "----\n&aHi &f%player%&a!\n&7Welcome! Please read &f/rules&7 :)\n----"
}
},
"joinServer": {
"_comment": "Message sent to EVERYONE when someone joins.",
"enabled": true,
"disableDefaultJoinMessage": true,
"targets": ["CHAT"],
"chat": "----\n&6&l[JOIN]&r &e%joiner% &ahas joined the server!\n----",
"_example_both": {
"_comment": "ALTERNATIVE EXAMPLE: send both CHAT + TITLE at the same time.",
"enabled": false,
"disableDefaultJoinMessage": true,
"targets": ["BOTH"],
"chat": "----\n&6&l[JOIN]&r &e%joiner% &ahas joined the server!\n----",
"title": "&aNew player!",
"subtitle": "&e%joiner%"
}
},
"_comment": "For the announcement, no BOTH for the target (Currently fixing an issue with this part)",
"announcements": [
{
"_comment": "EXAMPLE 1: CHAT multi-line announcement (with ----\n block).",
"targets": ["CHAT"],
"chat": "----\n&bWelcome &f%player%&b!\n&7Make sure to read &f/rules&7 :)\n----"
},
{
"_comment": "EXAMPLE 2: TITLE announcement.",
"targets": ["TITLE"],
"title": "WELCOME",
"subtitle": "Have fun!"
},
{
"_comment": "EXAMPLE 3: TITLE without subtitle).",
"targets": ["TITLE"],
"title": "Need help?",
"subtitle": ""
},
{
"_comment": "EXAMPLE 4: CHAT Discord announcement.",
"targets": ["CHAT"],
"chat": "----\n&bDiscord: &ddiscord.gg/....\n&7Come say hi!\n----"
}
]
}
Use cases
- Server tips / rules reminders
- Discord link rotations
- Event announcements
- Welcome messages
Installation
- Download the .jar
- Put it in the mods folder in your server files
- Restart the server
- Check the config file at /mods/Yanisssch_BroadcastSystem
- Restart the server or do /hbs reload
- And check the result
- And voila ;)
SUPPORT
You can contact me on discord only: Yanisssch_Sori (i can take 6 to 12hours to respond)
Информация
Авторы:
Категории:
Версии игры:
Создан: 15.01.2026