Server documentation
EventBooster
ActiveHytale • Version 0.4.1
Guía de configuración: presets, horarios semanales, webhook de Discord, GUI de administrador, comandos, configuración, integraciones y verificación de XP.
Cómo configurar EventBooster en el servidor: presets, horarios semanales, webhook de Discord, GUI de admin, permisos, comandos, config e integraciones de leveling.
Instalación
- Descarga EventBooster-0.4.1.jar desde la pestaña Files de CurseForge
- Coloca el JAR en la carpeta mods/ de tu servidor
- Inicia el servidor. La configuración se genera en plugins/EventBooster/config/config.json
- Otorga permisos de staff (consulta Permisos más abajo)
- Ejecuta /eventboost start 2 10 y /eventboost status para verificar
Recomendado: instala RPG Leveling and Stats junto con EventBooster para una multiplicación de XP fiable.
Comandos
Comando principal: /eventboost (alias: /eb, /boost, /eventbooster)
Hytale requiere dos argumentos posicionales para start (multiplier, minutes). Todas las demás opciones usan flags (--name=value). Usa /eventboost start --help en el juego para la lista completa.
| Comando | Permiso | Descripción |
|---|---|---|
/eventboost gui | eventbooster.admin.start | Abrir panel de administrador (alias: /eb gui, /eventboost panel, /eventboost menu) |
/eventboost start <mult> <minutes> [flags] | eventbooster.admin.start | Iniciar un boost de XP temporizado |
/eventboost stop [id|all] | eventbooster.admin.stop | Detener un boost o todos |
/eventboost reload | eventbooster.admin.reload | Recargar configuración |
/eventboost status | eventbooster.status | Listar boosts activos |
/eventboost preset list | eventbooster.status o eventbooster.admin.start | Listar presets guardados |
/eventboost preset start <id> | eventbooster.admin.start | Iniciar un preset |
/eventboost preset schedules | eventbooster.status o eventbooster.admin.start | Listar horarios semanales (respeta schedulesEnabled) |
/eventboost help | Staff (ver abajo) | Mostrar lista de comandos |
Flags de start
| Flag | Descripción |
|---|---|
--target=all | Todos los conectados (predeterminado) |
--target=group | Solo jugadores que coincidan con --groups |
--target=party | Solo los miembros de tu party actual (snapshot tomado al inicio; requiere un plugin de party como PartyPro) |
--groups=VIP,hytale:Admin | Nombres de grupo o nodos de permiso separados por comas |
--label=... | Nombre mostrado en transmisiones y estado |
--world=... | Aplicar boost solo en ese mundo (nombre o cadena uuid) |
--id=... | Id del boost para stop/status (predeterminado: global) |
Ejemplos
/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 de administrador
Ejecuta /eventboost gui (requiere eventbooster.admin.start para abrir, crear boosts e iniciar presets; eventbooster.admin.stop para detener boosts; eventbooster.admin.reload para guardar presets y horarios desde el panel).
| Pantalla | Acciones |
|---|---|
| Dashboard | Presets: New preset, por fila Start (un clic), Edit, Del. Horarios: New schedule, por fila On/Off, Edit, Del. Boosts activos: New boost, Refresh, Stop all, Close; por fila Edit, Stop. Historial reciente: lista de solo lectura de los últimos boosts iniciados, detenidos y expirados (en memoria, sesión actual). |
| Formulario nuevo / editar boost | Presets de multiplicador (1.5x, 2x, 3x, 5x) o personalizado; presets de duración (permanente, 30m, 1h, 2h) o personalizado (0 = permanente). Objetivo: todos conectados o lista de grupo/permiso. Etiqueta, id de boost (solo nuevo) y filtro de mundo opcionales. Save usa las mismas reglas que /eventboost start. Edit reemplaza el boost seleccionado (mismo id). |
| Formulario nuevo / editar preset | Campos de plantilla: id, nombre visible, multiplicador, duración (0 = permanente), boost id, etiqueta, filtro de mundo, modo de objetivo (ALL / GROUP), grupos. Save escribe en presets[] (requiere permiso de reload). |
| Formulario nuevo / editar horario | Id del horario, preset vinculado, boost id opcional, día de la semana (lunes=1 … domingo=7), hora/minuto inicio y fin, enabled. Save escribe en schedules[] (requiere permiso de reload). |
Los valores predeterminados del formulario de la GUI para nuevos boosts provienen de defaultMultiplier y defaultDurationMinutes en la configuración.
Presets
Los presets son plantillas de evento guardadas en presets[] dentro de config.json: multiplicador, duración, etiqueta, boost id, modo de objetivo, grupos y filtro de mundo opcional.
- GUI: sección Presets en el panel, o edita
config.jsondirectamente - Comandos:
/eventboost preset list,/eventboost preset start <id> - Permisos:
eventbooster.admin.startpara iniciar;eventbooster.admin.reloadpara crear, editar o eliminar presets en la GUI - Predeterminados al actualizar:
weekend(2x para todos) yvip(grupoVIP)
Iniciar un preset usa la misma validación, transmisiones, apilamiento e integraciones que /eventboost start.
Horarios semanales
Los horarios inician y detienen boosts automáticamente en ventanas semanales. Cada entrada en schedules[] referencia un presetId:
| Campo | Descripción |
|---|---|
id | Id único del horario |
enabled | Si es false, se ignora la fila |
presetId | Preset al abrir la ventana |
boostId | Opcional: sustituye el boost id del preset |
dayOfWeek | Día ISO: lunes=1 … domingo=7 |
startHour, startMinute | Inicio de ventana (zona del horario) |
endHour, endMinute | Fin de ventana (el boost se detiene al cerrar) |
Opciones globales:
| Opción | Predeterminado | Descripción |
|---|---|---|
schedulesEnabled | true | Interruptor general del servicio de horarios |
scheduleTimezone | "" | Id IANA (p. ej. Europe/Lisbon). Vacío = zona predeterminada de la JVM |
- GUI: sección Schedules en el panel; On/Off alterna
enabled - Comando:
/eventboost preset scheduleslista filas con la zona resuelta - Permisos:
eventbooster.admin.reloadpara crear, editar, eliminar o alternar horarios en la GUI
El servicio comprueba cada minuto. Al abrir la ventana, inicia el preset; al cerrar, detiene el boost id.
Webhook de Discord (opcional)
Publica avisos de inicio y fin de boost en un webhook de canal de Discord. Configura solo en config.json (la URL es secreta y no aparece en la GUI de administrador).
| Opción | Predeterminado | Descripción |
|---|---|---|
discordWebhookEnabled | false | Activar envíos al webhook |
discordWebhookUrl | "" | URL HTTPS completa desde la configuración del canal en Discord |
discordNotifyOnStart | true | Avisar en inicios manuales o desde la GUI |
discordNotifyOnEnd | true | Avisar cuando termina un boost |
discordNotifyOnSchedule | true | Avisar cuando un horario inicia un boost |
discordUseEmbed | true | Embeds en lugar de texto plano |
discordMention | @everyone | Línea de ping en cada mensaje |
discordStartFormat | (ver config) | Placeholders: {label}, {duration}, {multiplier}, {target}, {staff} |
discordEndFormat | (ver config) | Placeholders: {label}, {target} |
discordScheduleStartFormat | (ver config) | Placeholders: {schedule}, {label}, {duration}, {multiplier}, {target} |
Valores de discordMention: @everyone, @here, <@&ROLE_ID> (rol), <@USER_ID> (usuario) o none para desactivar pings.
Requisitos:
- La URL debe usar HTTPS y apuntar a
discord.com(odiscordapp.com) - Guardar presets u horarios desde la GUI no borra una URL de webhook existente en disco si la copia en memoria está vacía
Objetivo del boost
EventBooster usa los permisos existentes de Hytale de tu servidor. No requiere un plugin de rangos separado.
Un jugador recibe un boost de grupo si:
- Está en un grupo listado (
PermissionsModule/permissions.json), o - Tiene un nodo de permiso listado
Si --groups está definido sin --target=group, el mod lo trata automáticamente como boost de grupo.
Objetivo por party (--target=party) da boost a los miembros de la party actual de quien ejecuta el comando. Los miembros se resuelven una vez, al inicio, desde un plugin de party instalado (PartyPro) y se guardan como lista fija; quien entra o sale de la party después no se añade ni se quita del boost activo. Si ningún plugin de party expone sus miembros, el comando avisa de que el objetivo por party no está disponible.
El filtro por mundo (--world=...) puede combinarse con boosts globales, de grupo o de party: solo los jugadores en ese nombre de mundo obtienen el multiplicador.
Permisos
Solo el staff con los nodos correctos puede iniciar, detener o recargar boosts. Los jugadores no necesitan permisos para recibir XP de un boost activo.
| Permiso | Descripción |
|---|---|
eventbooster.admin.start | Iniciar boosts, iniciar presets y abrir la GUI de administrador |
eventbooster.admin.stop | Detener eventos de boost (incluido desde la GUI) |
eventbooster.admin.reload | Recargar configuración; guardar presets y horarios desde la GUI |
eventbooster.admin | Todas las acciones de administrador (nodo padre) |
eventbooster.status | Ver boosts activos |
/eventboost help es solo para staff: los jugadores necesitan eventbooster.status, eventbooster.admin o cualquier nodo eventbooster.admin.*. Los jugadores normales sin esos permisos no pueden ejecutar /eb help ni /eventboost help.
Para permitir que todos lean la ayuda (opcional), establece "allowPublicHelp": true en config.json.
Configuración rápida con Hytale /perm
/perm group add OP eventbooster.admin
O nodos individuales:
/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
Ejemplo permissions.json
{
"groups": {
"OP": {
"permissions": [
"eventbooster.admin"
]
},
"VIP": {
"permissions": []
}
}
}
Coloca a los jugadores VIP en el grupo VIP en los permisos de usuario de tu guardado, luego ejecuta:
/eventboost start 2 120 --target=group --groups=VIP
Configuración
Archivo de configuración: plugins/EventBooster/config/config.json (configVersion 4 en instalaciones nuevas)
Límites de boost
| Opción | Predeterminado | Descripción |
|---|---|---|
minMultiplier | 1.0 | Multiplicador de boost mínimo permitido |
maxMultiplier | 10.0 | Multiplicador de boost máximo permitido |
maxCombinedMultiplier | 10.0 | Tope cuando varios boosts se apilan |
defaultDurationMinutes | 60 | Duración predeterminada en la GUI de administrador; usa 0 en comandos o campo personalizado de la GUI para permanente |
allowConsoleCommands | false | Permitir que la consola del servidor ejecute comandos de administrador sin jugador |
allowPublicHelp | false | Si es true, cualquier jugador puede usar /eventboost help |
defaultMultiplier | 2.0 | Multiplicador predeterminado en la GUI de administrador |
maxDurationMinutes | 10080 | Duración máxima del evento (minutos) |
historySize | 20 | Cantidad de eventos recientes guardados para el Historial reciente del dashboard (en memoria, sesión actual) |
Mensajes
| Opción | Predeterminado | Descripción |
|---|---|---|
broadcastOnStart | true | Transmitir cuando inicia un boost |
broadcastOnEnd | true | Transmitir cuando termina un boost |
notifyPlayerOnJoin | true | Recordar a jugadores elegibles al unirse |
reminderIntervalMinutes | 15 | Intervalo de recordatorio periódico (0 = desactivado) |
reminderBroadcastFormat | (ver config) | Marcadores: {label}, {remaining}, {target} |
startBroadcastFormat | (ver config) | Marcadores: {label}, {duration}, {multiplier}, {target} |
endBroadcastFormat | (ver config) | Marcadores: {label}, {target} |
joinNoticeFormat | (ver config) | Marcadores: {label}, {remaining}, {target} |
statusLineFormat | (ver config) | Marcadores: {id}, {label}, {multiplier}, {remaining}, {target} |
partyProHudFormat | BOOST {multiplier}x | Texto HUD de PartyPro cuando el boost aplica a ese jugador |
Los mensajes se envían solo a jugadores elegibles para ese boost.
Integraciones
| Opción | Predeterminado | Descripción |
|---|---|---|
integrationRpgLeveling | true | Hook del listener de XP de RPG Leveling |
integrationHyRpgCore | true | Hook del xpService interno de HyRPGCore |
integrationVkCraft | true | Hook del potenciador de delta de XP de habilidades de VKCraft |
integrationPartyProHud | true | Texto HUD de PartyPro por jugador |
Presets y horarios
| Clave | Descripción |
|---|---|
presets[] | Array de objetos BoostEventPreset (ver Presets) |
schedules[] | Array de objetos BoostSchedule (ver Horarios semanales) |
schedulesEnabled | true |
scheduleTimezone | "" |
Ejemplo de preset:
{
"id": "weekend",
"displayName": "Weekend 2x",
"multiplier": 2.0,
"durationMinutes": 120,
"boostId": "weekend",
"label": "Weekend XP",
"targetMode": "ALL",
"targetGroups": []
}
Webhook de Discord
Consulta Webhook de Discord arriba para discordWebhookEnabled, discordWebhookUrl, toggles de aviso, discordMention, embed y cadenas de formato.
Integraciones opcionales
| Mod | Rol |
|---|---|
| RPG Leveling and Stats | Hook principal de XP (recomendado) |
| HyRPGCore | Hook del xpService interno vía reflexión |
| VKCraft | Potenciador de delta de XP de habilidades |
| PartyPro | Indicador HUD por jugador elegible |
Ningún mod de nivelación es obligatorio. Sin uno, los comandos, temporizadores y transmisiones siguen funcionando, pero la XP en el juego no cambiará.
Comprueba el log del servidor al iniciar:
EventBooster started. Active integrations: RPGLeveling, ...
Verificar boosts de XP
- Inicia el servidor con EventBooster + un mod de nivelación (RPG Leveling recomendado)
- Prueba global: ejecuta
/eventboost start 10 10. Todos los jugadores deberían ganar XP potenciada. - Prueba de grupo: ejecuta
/eventboost start 10 10 --target=group --groups=VIP. Solo los jugadores del grupo VIP reciben boost. - Ejecuta
/eventboost statusy confirma[target]en la línea - Ejecuta
/eventboost stopo espera a que expire. Los jugadores elegibles deberían ver la transmisión de fin cuando el boost termina realmente.
API pública
if (EventBoosterAPI.isAvailable()) {
double multiplier = EventBoosterAPI.get()
.getExperienceMultiplier(playerUuid, worldName);
}
Usa la sobrecarga con UUID para resultados correctos cuando hay boosts de grupo activos.
Notas
/eventboost reloadrecarga la configuración y reconecta integraciones de forma segura. Reinicia el servidor si desactivas una integración en la configuración y necesitas eliminar los hooks por completo.
Licencia
MIT License. Copyright (c) 2026 DurkzPRG