← Back to documentation

Server documentation

EventBooster

Active

Hytale • Version 0.4.1

Руководство по настройке: пресеты, еженедельное расписание, Discord webhook, админ-GUI, команды, конфигурация, интеграции и проверка опыта.

Настройка EventBooster на сервере: пресеты, расписание, Discord webhook, админ-GUI, права, команды, конфиг и интеграции прокачки.


Установка

  1. Скачайте EventBooster-0.4.1.jar на вкладке Files CurseForge
  2. Положите JAR в папку mods/ сервера
  3. Запустите сервер. Конфиг создаётся в plugins/EventBooster/config/config.json
  4. Выдайте права персоналу (см. Права ниже)
  5. Выполните /eventboost start 2 10 и /eventboost status для проверки

Рекомендуется: установите RPG Leveling and Stats вместе с EventBooster для стабильного умножения опыта.


Команды

Основная команда: /eventboost (алиасы: /eb, /boost, /eventbooster)

Hytale требует два позиционных аргумента для start (multiplier, minutes). Остальные опции — флаги (--name=value). Полный список в игре: /eventboost start --help.

CommandPermissionОписание
/eventboost guieventbooster.admin.startОткрыть админ-панель (алиасы: /eb gui, /eventboost panel, /eventboost menu)
/eventboost start <mult> <minutes> [flags]eventbooster.admin.startЗапустить временный буст опыта
/eventboost stop [id|all]eventbooster.admin.stopОстановить один буст или все
/eventboost reloadeventbooster.admin.reloadПерезагрузить конфиг
/eventboost statuseventbooster.statusСписок активных бустов
/eventboost preset listeventbooster.status или eventbooster.admin.startСписок сохранённых пресетов
/eventboost preset start <id>eventbooster.admin.startЗапуск пресета
/eventboost preset scheduleseventbooster.status или eventbooster.admin.startСписок еженедельных окон (учитывает schedulesEnabled)
/eventboost helpПерсонал (см. ниже)Показать список команд

Флаги start

FlagОписание
--target=allВсе онлайн (по умолчанию)
--target=groupТолько игроки из --groups
--target=partyТолько участники вашей текущей пати (снимок берётся при запуске; нужен party-плагин, например PartyPro)
--groups=VIP,hytale:AdminИмена групп или узлы прав через запятую
--label=...Отображаемое имя в объявлениях и статусе
--world=...Буст только в этом мире (имя или uuid)
--id=...Id буста для stop/status (по умолчанию: global)

Примеры

/eventboost start 2 0
/eventboost start 2 120
/eventboost start 2 120 --target=all --label="Server-wide 2x"
/eventboost start 2 120 --target=group --groups=VIP --label="VIP Happy Hour"
/eventboost start 2 120 --target=group --groups=hytale:Admin
/eventboost start 1.5 60 --id=mining --world=world_mine --label="Mining Boost"
/eventboost stop mining
/eventboost stop all
/eventboost status
/eventboost gui
/eventboost preset list
/eventboost preset start weekend
/eventboost preset schedules

Админ-GUI

Запустите /eventboost gui (нужен eventbooster.admin.start для открытия, создания бустов и запуска пресетов; eventbooster.admin.stop для остановки; eventbooster.admin.reload для сохранения пресетов и расписания из панели).

ScreenActions
DashboardПресеты: New preset, в строке Start (один клик), Edit, Del. Расписание: New schedule, в строке On/Off, Edit, Del. Активные бусты: New boost, Refresh, Stop all, Close; в строке Edit, Stop. Недавняя история: список только для чтения последних запущенных, остановленных и истёкших бустов (в памяти, текущая сессия).
New / edit boostПресеты множителя (1.5x, 2x, 3x, 5x) или свой; длительность (бессрочно, 30m, 1h, 2h) или своя (0 = бессрочно). Цель: все онлайн или группа/права. Опционально label, id буста (только новый), фильтр мира. Save — те же правила, что у /eventboost start. Edit заменяет выбранный буст (тот же id).
New / edit presetПоля шаблона: id, отображаемое имя, множитель, длительность (0 = бессрочно), boost id, label, фильтр мира, режим цели (ALL / GROUP), группы. Save пишет в presets[] (нужно право reload).
New / edit scheduleId расписания, связанный пресет, опциональный boost id, день недели (понедельник=1 … воскресенье=7), час/минута начала и конца, enabled. Save пишет в schedules[] (нужно право reload).

Значения по умолчанию для новых бустов в GUI: defaultMultiplier и defaultDurationMinutes в конфиге.


Пресеты

Пресеты — сохранённые шаблоны событий в presets[] файла config.json: множитель, длительность, label, boost id, режим цели, группы и опциональный фильтр мира.

  • GUI: раздел Presets на панели или правка config.json напрямую
  • Команды: /eventboost preset list, /eventboost preset start <id>
  • Права: eventbooster.admin.start для запуска; eventbooster.admin.reload для создания, правки и удаления пресетов в GUI
  • По умолчанию при миграции: weekend (2x для всех) и vip (группа VIP)

Запуск пресета использует те же проверки, объявления, стек и интеграции, что и /eventboost start.


Еженедельное расписание

Расписание автоматически запускает и останавливает бусты в еженедельных окнах. Каждая запись в schedules[] ссылается на presetId:

ПолеОписание
idУникальный id расписания
enabledПри false строка игнорируется
presetIdПресет при открытии окна
boostIdОпционально: переопределяет boost id пресета
dayOfWeekДень ISO: понедельник=1 … воскресенье=7
startHour, startMinuteНачало окна (часовой пояс расписания)
endHour, endMinuteКонец окна (буст останавливается при закрытии)

Глобальные опции:

ОпцияПо умолчаниюОписание
schedulesEnabledtrueГлавный переключатель сервиса расписания
scheduleTimezone""IANA (напр. Europe/Lisbon). Пусто = часовой пояс JVM
  • GUI: раздел Schedules; On/Off переключает enabled
  • Команда: /eventboost preset schedules выводит строки с выбранным поясом
  • Права: eventbooster.admin.reload для создания, правки, удаления и переключения расписания в GUI

Сервис проверяет каждую минуту. При открытии окна запускает пресет; при закрытии останавливает boost id.


Discord webhook (опционально)

Отправка уведомлений о старте и остановке буста в webhook канала Discord. Настраивается только в config.json (URL секретен и не показывается в админ-GUI).

ОпцияПо умолчаниюОписание
discordWebhookEnabledfalseВключить отправку в webhook
discordWebhookUrl""Полный HTTPS URL из настроек канала Discord
discordNotifyOnStarttrueУведомлять при ручном/GUI старте
discordNotifyOnEndtrueУведомлять при окончании буста
discordNotifyOnScheduletrueУведомлять при старте по расписанию
discordUseEmbedtrueEmbeds вместо простого текста
discordMention@everyoneСтрока пинга в каждом сообщении
discordStartFormat(см. конфиг)Плейсхолдеры: {label}, {duration}, {multiplier}, {target}, {staff}
discordEndFormat(см. конфиг)Плейсхолдеры: {label}, {target}
discordScheduleStartFormat(см. конфиг)Плейсхолдеры: {schedule}, {label}, {duration}, {multiplier}, {target}

Значения discordMention: @everyone, @here, <@&ROLE_ID> (роль), <@USER_ID> (пользователь) или none без пинга.

Требования:

  • URL должен быть HTTPS и вести на discord.com (или discordapp.com)
  • Сохранение пресетов или расписания из GUI не стирает существующий URL webhook на диске, если в памяти он пустой

Нацеливание буста

EventBooster использует существующие права Hytale на сервере. Отдельный плагин рангов не нужен.

Игрок получает групповой буст, если:

  • Он в указанной группе (PermissionsModule / permissions.json), или
  • У него есть указанный узел права

Если задан --groups без --target=group, мод автоматически считает это групповым бустом.

Party-цель (--target=party) бустит участников текущей пати того, кто запустил команду. Участники определяются один раз, при запуске, из установленного party-плагина (PartyPro) и сохраняются как фиксированный список; кто входит или выходит из пати позже, не добавляется и не удаляется из активного буста. Если ни один party-плагин не предоставляет своих участников, команда сообщает, что party-цель недоступна.

Фильтр мира (--world=...) можно сочетать с глобальным, групповым или party-бустом: множитель только у игроков в этом мире.


Права

Запускать, останавливать и перезагружать могут только персонал с нужными узлами. Игрокам не нужны права, чтобы получать опыт от активного буста.

PermissionОписание
eventbooster.admin.startЗапуск бустов и пресетов, открытие админ-GUI
eventbooster.admin.stopОстановка бустов (в т.ч. из GUI)
eventbooster.admin.reloadПерезагрузка конфига; сохранение пресетов и расписания из GUI
eventbooster.adminВсе админ-действия (родительский узел)
eventbooster.statusПросмотр активных бустов

/eventboost help только для персонала: нужен eventbooster.status, eventbooster.admin или любой узел eventbooster.admin.*. Обычные игроки без этих прав не могут выполнить /eb help или /eventboost help.

Чтобы help был доступен всем (опционально), в config.json: "allowPublicHelp": true.

Быстрая настройка через Hytale /perm

/perm group add OP eventbooster.admin

Или отдельные узлы:

/perm group add OP eventbooster.admin.start
/perm group add OP eventbooster.admin.stop
/perm group add OP eventbooster.admin.reload
/perm group add OP eventbooster.status

Пример permissions.json

{
  "groups": {
    "OP": {
      "permissions": [
        "eventbooster.admin"
      ]
    },
    "VIP": {
      "permissions": []
    }
  }
}

Добавьте VIP-игроков в группу VIP в правах сохранения, затем:

/eventboost start 2 120 --target=group --groups=VIP

Конфигурация

Файл конфига: plugins/EventBooster/config/config.json (configVersion 4 в новых установках)

Лимиты буста

OptionDefaultОписание
minMultiplier1.0Минимальный множитель буста
maxMultiplier10.0Максимальный множитель буста
maxCombinedMultiplier10.0Потолок при складывании нескольких бустов
defaultDurationMinutes60Длительность по умолчанию в админ-GUI; 0 в командах или своём поле GUI = бессрочно
allowConsoleCommandsfalseРазрешить админ-команды из консоли сервера без игрока
allowPublicHelpfalseЕсли true, любой игрок может использовать /eventboost help
defaultMultiplier2.0Множитель по умолчанию в админ-GUI
maxDurationMinutes10080Максимальная длительность события (минуты)
historySize20Сколько недавних событий буста хранится для списка Недавняя история на панели (в памяти, текущая сессия)

Сообщения

OptionDefaultОписание
broadcastOnStarttrueОбъявление при старте буста
broadcastOnEndtrueОбъявление при окончании буста
notifyPlayerOnJointrueНапоминание при входе подходящим игрокам
reminderIntervalMinutes15Интервал периодических напоминаний (0 = выкл.)
reminderBroadcastFormat(см. конфиг)Плейсхолдеры: {label}, {remaining}, {target}
startBroadcastFormat(см. конфиг)Плейсхолдеры: {label}, {duration}, {multiplier}, {target}
endBroadcastFormat(см. конфиг)Плейсхолдеры: {label}, {target}
joinNoticeFormat(см. конфиг)Плейсхолдеры: {label}, {remaining}, {target}
statusLineFormat(см. конфиг)Плейсхолдеры: {id}, {label}, {multiplier}, {remaining}, {target}
partyProHudFormatBOOST {multiplier}xТекст PartyPro HUD, когда буст действует на игрока

Сообщения отправляются только игрокам, подходящим для этого буста.

Интеграции

OptionDefaultОписание
integrationRpgLevelingtrueХук слушателя опыта RPG Leveling
integrationHyRpgCoretrueХук внутреннего xpService HyRPGCore
integrationVkCrafttrueХук буста дельты опыта навыков VKCraft
integrationPartyProHudtrueТекст PartyPro HUD на игрока

Пресеты и расписание

КлючОписание
presets[]Массив BoostEventPreset (см. Пресеты)
schedules[]Массив BoostSchedule (см. Еженедельное расписание)
schedulesEnabledtrue
scheduleTimezone""

Пример пресета:

{
  "id": "weekend",
  "displayName": "Weekend 2x",
  "multiplier": 2.0,
  "durationMinutes": 120,
  "boostId": "weekend",
  "label": "Weekend XP",
  "targetMode": "ALL",
  "targetGroups": []
}

Discord webhook

См. Discord webhook выше: discordWebhookEnabled, discordWebhookUrl, переключатели уведомлений, discordMention, embed и строки формата.


Опциональные интеграции

ModRole
RPG Leveling and StatsОсновной хук опыта (рекомендуется)
HyRPGCoreХук внутреннего xpService через reflection
VKCraftБуст дельты опыта навыков
PartyProИндикатор HUD для подходящих игроков

Мод прокачки не обязателен. Без него команды, таймеры и объявления работают, но опыт в игре не изменится.

При старте сервера проверьте лог:

EventBooster started. Active integrations: RPGLeveling, ...

Проверка бустов опыта

  1. Запустите сервер с EventBooster и модом прокачки (рекомендуется RPG Leveling)
  2. Глобальный тест: /eventboost start 10 10. Все игроки должны получать усиленный опыт.
  3. Групповой тест: /eventboost start 10 10 --target=group --groups=VIP. Буст только у игроков группы VIP.
  4. /eventboost status — проверьте [target] в строке
  5. /eventboost stop или дождитесь окончания. Подходящие игроки должны увидеть объявление об окончании, когда буст реально завершился.

Публичный API

if (EventBoosterAPI.isAvailable()) {
    double multiplier = EventBoosterAPI.get()
            .getExperienceMultiplier(playerUuid, worldName);
}

Используйте перегрузку с UUID для корректных результатов при активных групповых бустах.


Заметки

  • /eventboost reload перезагружает конфиг и безопасно переподключает интеграции. Перезапустите сервер, если отключили интеграцию в конфиге и нужно полностью снять хуки.

Лицензия

MIT License. Copyright (c) 2026 DurkzPRG