← Back to documentation

Server documentation

EventBooster

Active

Hytale • 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

  1. Descarga EventBooster-0.4.1.jar desde la pestaña Files de CurseForge
  2. Coloca el JAR en la carpeta mods/ de tu servidor
  3. Inicia el servidor. La configuración se genera en plugins/EventBooster/config/config.json
  4. Otorga permisos de staff (consulta Permisos más abajo)
  5. 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.

ComandoPermisoDescripción
/eventboost guieventbooster.admin.startAbrir panel de administrador (alias: /eb gui, /eventboost panel, /eventboost menu)
/eventboost start <mult> <minutes> [flags]eventbooster.admin.startIniciar un boost de XP temporizado
/eventboost stop [id|all]eventbooster.admin.stopDetener un boost o todos
/eventboost reloadeventbooster.admin.reloadRecargar configuración
/eventboost statuseventbooster.statusListar boosts activos
/eventboost preset listeventbooster.status o eventbooster.admin.startListar presets guardados
/eventboost preset start <id>eventbooster.admin.startIniciar un preset
/eventboost preset scheduleseventbooster.status o eventbooster.admin.startListar horarios semanales (respeta schedulesEnabled)
/eventboost helpStaff (ver abajo)Mostrar lista de comandos

Flags de start

FlagDescripción
--target=allTodos los conectados (predeterminado)
--target=groupSolo jugadores que coincidan con --groups
--target=partySolo los miembros de tu party actual (snapshot tomado al inicio; requiere un plugin de party como PartyPro)
--groups=VIP,hytale:AdminNombres 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).

PantallaAcciones
DashboardPresets: 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 boostPresets 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 presetCampos 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 horarioId 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.json directamente
  • Comandos: /eventboost preset list, /eventboost preset start <id>
  • Permisos: eventbooster.admin.start para iniciar; eventbooster.admin.reload para crear, editar o eliminar presets en la GUI
  • Predeterminados al actualizar: weekend (2x para todos) y vip (grupo VIP)

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:

CampoDescripción
idId único del horario
enabledSi es false, se ignora la fila
presetIdPreset al abrir la ventana
boostIdOpcional: sustituye el boost id del preset
dayOfWeekDía ISO: lunes=1 … domingo=7
startHour, startMinuteInicio de ventana (zona del horario)
endHour, endMinuteFin de ventana (el boost se detiene al cerrar)

Opciones globales:

OpciónPredeterminadoDescripción
schedulesEnabledtrueInterruptor 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 schedules lista filas con la zona resuelta
  • Permisos: eventbooster.admin.reload para 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ónPredeterminadoDescripción
discordWebhookEnabledfalseActivar envíos al webhook
discordWebhookUrl""URL HTTPS completa desde la configuración del canal en Discord
discordNotifyOnStarttrueAvisar en inicios manuales o desde la GUI
discordNotifyOnEndtrueAvisar cuando termina un boost
discordNotifyOnScheduletrueAvisar cuando un horario inicia un boost
discordUseEmbedtrueEmbeds en lugar de texto plano
discordMention@everyoneLí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 (o discordapp.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.

PermisoDescripción
eventbooster.admin.startIniciar boosts, iniciar presets y abrir la GUI de administrador
eventbooster.admin.stopDetener eventos de boost (incluido desde la GUI)
eventbooster.admin.reloadRecargar configuración; guardar presets y horarios desde la GUI
eventbooster.adminTodas las acciones de administrador (nodo padre)
eventbooster.statusVer 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ónPredeterminadoDescripción
minMultiplier1.0Multiplicador de boost mínimo permitido
maxMultiplier10.0Multiplicador de boost máximo permitido
maxCombinedMultiplier10.0Tope cuando varios boosts se apilan
defaultDurationMinutes60Duración predeterminada en la GUI de administrador; usa 0 en comandos o campo personalizado de la GUI para permanente
allowConsoleCommandsfalsePermitir que la consola del servidor ejecute comandos de administrador sin jugador
allowPublicHelpfalseSi es true, cualquier jugador puede usar /eventboost help
defaultMultiplier2.0Multiplicador predeterminado en la GUI de administrador
maxDurationMinutes10080Duración máxima del evento (minutos)
historySize20Cantidad de eventos recientes guardados para el Historial reciente del dashboard (en memoria, sesión actual)

Mensajes

OpciónPredeterminadoDescripción
broadcastOnStarttrueTransmitir cuando inicia un boost
broadcastOnEndtrueTransmitir cuando termina un boost
notifyPlayerOnJointrueRecordar a jugadores elegibles al unirse
reminderIntervalMinutes15Intervalo 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}
partyProHudFormatBOOST {multiplier}xTexto HUD de PartyPro cuando el boost aplica a ese jugador

Los mensajes se envían solo a jugadores elegibles para ese boost.

Integraciones

OpciónPredeterminadoDescripción
integrationRpgLevelingtrueHook del listener de XP de RPG Leveling
integrationHyRpgCoretrueHook del xpService interno de HyRPGCore
integrationVkCrafttrueHook del potenciador de delta de XP de habilidades de VKCraft
integrationPartyProHudtrueTexto HUD de PartyPro por jugador

Presets y horarios

ClaveDescripción
presets[]Array de objetos BoostEventPreset (ver Presets)
schedules[]Array de objetos BoostSchedule (ver Horarios semanales)
schedulesEnabledtrue
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

ModRol
RPG Leveling and StatsHook principal de XP (recomendado)
HyRPGCoreHook del xpService interno vía reflexión
VKCraftPotenciador de delta de XP de habilidades
PartyProIndicador 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

  1. Inicia el servidor con EventBooster + un mod de nivelación (RPG Leveling recomendado)
  2. Prueba global: ejecuta /eventboost start 10 10. Todos los jugadores deberían ganar XP potenciada.
  3. Prueba de grupo: ejecuta /eventboost start 10 10 --target=group --groups=VIP. Solo los jugadores del grupo VIP reciben boost.
  4. Ejecuta /eventboost status y confirma [target] en la línea
  5. Ejecuta /eventboost stop o 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 reload recarga 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