← Volver a la documentación

Documentación del servidor

EventBooster

Activo

Hytale • Version 0.4.3

Guía de configuración: presets, horarios semanales, webhook de Discord, GUI de administrador, comandos, configuración, RPG Leveling, VKCraft, PartyPro 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.


Descripción general

EventBooster ejecuta eventos temporales de XP en tu mundo o servidor Hytale. Inicia fines de semana de doble XP, eventos de grupo o boosts de party desde el panel o los comandos, o deja que un horario semanal ejecute un preset guardado.


Instalación

  1. Requiere Hytale 0.7.0+
  2. Descarga EventBooster-0.4.3.jar desde la pestaña Files de CurseForge
  3. Coloca el JAR en la carpeta mods/ del servidor, o en solo Windows en %AppData%\Hytale\UserData\Mods\. Mantén un solo JAR de EventBooster instalado
  4. Inicia el servidor. La configuración se genera en mods/durkz_EventBooster/config/config.json
  5. Otorga permisos de staff (consulta Permisos más abajo)
  6. 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.


Recuperación tras reinicios y edición segura

Con persistActiveBoosts: true, los eventos activos se guardan en mods/durkz_EventBooster/active-boosts.json. Reiniciar conserva el inicio, el plazo original, el público y el filtro de mundo. El tiempo sin conexión cuenta y los eventos vencidos no se restauran. Los eventos sin plazo siguen activos hasta detenerlos. El historial reciente no se guarda entre sesiones.

Si falla el guardado del estado, se rechaza un inicio o una parada manual sin cambiar el evento activo. Una configuración inválida, esquemas incompatibles y recargas rechazadas conservan el archivo original y los últimos ajustes válidos. Corrige el archivo indicado antes de reiniciar un plugin que no puede cargarlo. Las ediciones de presets y horarios se validan y guardan antes de aplicarse. Reabre el editor tras recargar; las páginas antiguas no pueden sobrescribir los datos actuales.

/eventboost status y el panel muestran la salud de las integraciones, tu multiplicador efectivo y errores de persistencia. El aviso de ausencia de hook de XP significa que los temporizadores y avisos pueden funcionar sin cambiar el XP.


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). Las listas largas se desplazan dentro del panel; los botones del pie siguen visibles.
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
  • Valores de una instalación nueva: weekend (2x global) y vip (grupo VIP). Se conservan las entradas válidas existentes y las listas de presets vacías de forma intencional.

Los presets admiten ALL o GROUP. Los objetivos desconocidos y presets PARTY se rechazan en lugar de convertirse en eventos globales; inicia eventos de party con /eventboost start --target=party y los argumentos obligatorios de multiplicador y duración.

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 15 segundos. Las ventanas nocturnas pertenecen al día de inicio, incluso del domingo al lunes, en scheduleTimezone. El evento termina en el plazo exacto de la ventana, sin reiniciarse repetidamente según la duración del preset.

El override, el inicio y la parada usan el mismo ID de boost. Los horarios que comparten un ID se consideran por orden de ID del horario. Un evento manual que ocupa ese ID se conserva y un horario no puede detener su reemplazo manual. Detener el evento manualmente marca esa ventana como atendida, incluso tras reiniciar; no vuelve en la siguiente comprobación. El panel muestra el próximo inicio o el final actual y la zona horaria.


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: mods/durkz_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)
persistActiveBooststrueConservar eventos activos y sus plazos originales tras reinicios
checkForUpdatestrueAvisar al staff de versiones nuevas con un enlace al proyecto de CurseForge

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
integrationRpgLevelingtrueMultiplica XP de RPG Leveling mientras el boost está activo
integrationVkCrafttrueActivar el bridge compatible de VKCraft cuando su API esté disponible
integrationPartyProHudtrueIndicador de PartyPro por jugador; desactivarlo mantiene la resolución de miembros de la party

Presets y horarios

ClavePredeterminadoDescripción
presets[]weekend, vipArray de objetos BoostEventPreset (ver Presets)
schedules[][]Array de objetos BoostSchedule (ver Horarios semanales)
schedulesEnabledtrueActivar servicio automático de horarios
scheduleTimezone""Zona horaria IANA para las ventanas

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 StatsMultiplica XP de RPG Leveling mientras el boost está activo (recomendado)
VKCraftBridge opcional para APIs compatibles de VKCraft; los objetivos disponibles dependen de la API expuesta
PartyProTexto HUD para jugadores elegibles, y --target=party

HyRPGCore no es compatible en este lanzamiento. 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, ...

Integraciones y límites

RPG Leveling and Stats proporciona XP por jugador. PartyPro proporciona los miembros de la party y un indicador HUD opcional; no es un hook de XP. Desactivar integrationPartyProHud mantiene disponible el objetivo por party. VKCraft necesita una API compatible; un hook solo global no puede filtrar por mundo, grupo o party. Los inicios dirigidos se rechazan cuando ese es el único hook de XP activo.

Los eventos de party capturan sus miembros al empezar. Los presets admiten ALL y GROUP, no PARTY. El mundo actual del jugador determina el XP, los avisos, el recuento de elegibles conectados y el indicador de PartyPro.


Recomendado

  • Instala RPG Leveling and Stats junto con EventBooster para multiplicación fiable de XP
  • Concede eventbooster.admin al staff; guardar presets u horarios en la GUI requiere eventbooster.admin.reload
  • El log debe mostrar EventBooster started. Active integrations: ... al arrancar

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 desconecta/reconecta las integraciones sin duplicar listeners de XP de RPG Leveling. Una recarga rechazada conserva los últimos ajustes válidos. Reabre los editores existentes tras una recarga correcta.

Licencia

MIT License. Copyright (c) 2026 DurkzPRG