Server documentation
EventBooster
ActiveHytale • Version 0.4.1
Руководство по настройке: пресеты, еженедельное расписание, Discord webhook, админ-GUI, команды, конфигурация, интеграции и проверка опыта.
Настройка EventBooster на сервере: пресеты, расписание, Discord webhook, админ-GUI, права, команды, конфиг и интеграции прокачки.
Установка
- Скачайте EventBooster-0.4.1.jar на вкладке Files CurseForge
- Положите JAR в папку mods/ сервера
- Запустите сервер. Конфиг создаётся в plugins/EventBooster/config/config.json
- Выдайте права персоналу (см. Права ниже)
- Выполните /eventboost start 2 10 и /eventboost status для проверки
Рекомендуется: установите RPG Leveling and Stats вместе с EventBooster для стабильного умножения опыта.
Команды
Основная команда: /eventboost (алиасы: /eb, /boost, /eventbooster)
Hytale требует два позиционных аргумента для start (multiplier, minutes). Остальные опции — флаги (--name=value). Полный список в игре: /eventboost start --help.
| Command | Permission | Описание |
|---|---|---|
/eventboost gui | eventbooster.admin.start | Открыть админ-панель (алиасы: /eb gui, /eventboost panel, /eventboost menu) |
/eventboost start <mult> <minutes> [flags] | eventbooster.admin.start | Запустить временный буст опыта |
/eventboost stop [id|all] | eventbooster.admin.stop | Остановить один буст или все |
/eventboost reload | eventbooster.admin.reload | Перезагрузить конфиг |
/eventboost status | eventbooster.status | Список активных бустов |
/eventboost preset list | eventbooster.status или eventbooster.admin.start | Список сохранённых пресетов |
/eventboost preset start <id> | eventbooster.admin.start | Запуск пресета |
/eventboost preset schedules | eventbooster.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 для сохранения пресетов и расписания из панели).
| Screen | Actions |
|---|---|
| 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 schedule | Id расписания, связанный пресет, опциональный 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 | Конец окна (буст останавливается при закрытии) |
Глобальные опции:
| Опция | По умолчанию | Описание |
|---|---|---|
schedulesEnabled | true | Главный переключатель сервиса расписания |
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).
| Опция | По умолчанию | Описание |
|---|---|---|
discordWebhookEnabled | false | Включить отправку в webhook |
discordWebhookUrl | "" | Полный HTTPS URL из настроек канала Discord |
discordNotifyOnStart | true | Уведомлять при ручном/GUI старте |
discordNotifyOnEnd | true | Уведомлять при окончании буста |
discordNotifyOnSchedule | true | Уведомлять при старте по расписанию |
discordUseEmbed | true | Embeds вместо простого текста |
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 в новых установках)
Лимиты буста
| Option | Default | Описание |
|---|---|---|
minMultiplier | 1.0 | Минимальный множитель буста |
maxMultiplier | 10.0 | Максимальный множитель буста |
maxCombinedMultiplier | 10.0 | Потолок при складывании нескольких бустов |
defaultDurationMinutes | 60 | Длительность по умолчанию в админ-GUI; 0 в командах или своём поле GUI = бессрочно |
allowConsoleCommands | false | Разрешить админ-команды из консоли сервера без игрока |
allowPublicHelp | false | Если true, любой игрок может использовать /eventboost help |
defaultMultiplier | 2.0 | Множитель по умолчанию в админ-GUI |
maxDurationMinutes | 10080 | Максимальная длительность события (минуты) |
historySize | 20 | Сколько недавних событий буста хранится для списка Недавняя история на панели (в памяти, текущая сессия) |
Сообщения
| Option | Default | Описание |
|---|---|---|
broadcastOnStart | true | Объявление при старте буста |
broadcastOnEnd | true | Объявление при окончании буста |
notifyPlayerOnJoin | true | Напоминание при входе подходящим игрокам |
reminderIntervalMinutes | 15 | Интервал периодических напоминаний (0 = выкл.) |
reminderBroadcastFormat | (см. конфиг) | Плейсхолдеры: {label}, {remaining}, {target} |
startBroadcastFormat | (см. конфиг) | Плейсхолдеры: {label}, {duration}, {multiplier}, {target} |
endBroadcastFormat | (см. конфиг) | Плейсхолдеры: {label}, {target} |
joinNoticeFormat | (см. конфиг) | Плейсхолдеры: {label}, {remaining}, {target} |
statusLineFormat | (см. конфиг) | Плейсхолдеры: {id}, {label}, {multiplier}, {remaining}, {target} |
partyProHudFormat | BOOST {multiplier}x | Текст PartyPro HUD, когда буст действует на игрока |
Сообщения отправляются только игрокам, подходящим для этого буста.
Интеграции
| Option | Default | Описание |
|---|---|---|
integrationRpgLeveling | true | Хук слушателя опыта RPG Leveling |
integrationHyRpgCore | true | Хук внутреннего xpService HyRPGCore |
integrationVkCraft | true | Хук буста дельты опыта навыков VKCraft |
integrationPartyProHud | true | Текст PartyPro HUD на игрока |
Пресеты и расписание
| Ключ | Описание |
|---|---|
presets[] | Массив BoostEventPreset (см. Пресеты) |
schedules[] | Массив BoostSchedule (см. Еженедельное расписание) |
schedulesEnabled | true |
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 и строки формата.
Опциональные интеграции
| Mod | Role |
|---|---|
| RPG Leveling and Stats | Основной хук опыта (рекомендуется) |
| HyRPGCore | Хук внутреннего xpService через reflection |
| VKCraft | Буст дельты опыта навыков |
| PartyPro | Индикатор HUD для подходящих игроков |
Мод прокачки не обязателен. Без него команды, таймеры и объявления работают, но опыт в игре не изменится.
При старте сервера проверьте лог:
EventBooster started. Active integrations: RPGLeveling, ...
Проверка бустов опыта
- Запустите сервер с EventBooster и модом прокачки (рекомендуется RPG Leveling)
- Глобальный тест:
/eventboost start 10 10. Все игроки должны получать усиленный опыт. - Групповой тест:
/eventboost start 10 10 --target=group --groups=VIP. Буст только у игроков группы VIP. /eventboost status— проверьте[target]в строке/eventboost stopили дождитесь окончания. Подходящие игроки должны увидеть объявление об окончании, когда буст реально завершился.
Публичный API
if (EventBoosterAPI.isAvailable()) {
double multiplier = EventBoosterAPI.get()
.getExperienceMultiplier(playerUuid, worldName);
}
Используйте перегрузку с UUID для корректных результатов при активных групповых бустах.
Заметки
/eventboost reloadперезагружает конфиг и безопасно переподключает интеграции. Перезапустите сервер, если отключили интеграцию в конфиге и нужно полностью снять хуки.
Лицензия
MIT License. Copyright (c) 2026 DurkzPRG