← Back to documentation

Server documentation

EventBooster

Active

Hytale • Version 0.4.1

Guia de configuração: presets, agendas semanais, webhook Discord, GUI de admin, comandos, configuração, integrações e verificação de XP.

Como configurar o EventBooster no servidor: presets, agendas, webhook Discord, GUI de admin, permissões, comandos, config e integrações de leveling.


Instalação

  1. Baixe EventBooster-0.4.1.jar na aba Files do CurseForge
  2. Coloque o JAR na pasta mods/ do servidor
  3. Inicie o servidor. A config é gerada em plugins/EventBooster/config/config.json
  4. Conceda permissões de staff (veja Permissões abaixo)
  5. Execute /eventboost start 2 10 e /eventboost status para verificar

Recomendado: instale RPG Leveling and Stats junto com o EventBooster para multiplicação confiável de XP.


Comandos

Comando principal: /eventboost (aliases: /eb, /boost, /eventbooster)

O Hytale exige dois argumentos posicionais para start (multiplier, minutes). Todas as outras opções usam flags (--name=value). Use /eventboost start --help no jogo para a lista completa.

ComandoPermissãoDescrição
/eventboost guieventbooster.admin.startAbrir painel de admin (aliases: /eb gui, /eventboost panel, /eventboost menu)
/eventboost start <mult> <minutes> [flags]eventbooster.admin.startIniciar um boost de XP temporizado
/eventboost stop [id|all]eventbooster.admin.stopParar um boost ou todos
/eventboost reloadeventbooster.admin.reloadRecarregar config
/eventboost statuseventbooster.statusListar boosts ativos
/eventboost preset listeventbooster.status ou eventbooster.admin.startListar presets salvos
/eventboost preset start <id>eventbooster.admin.startIniciar um preset
/eventboost preset scheduleseventbooster.status ou eventbooster.admin.startListar agendas semanais (respeita schedulesEnabled)
/eventboost helpStaff (veja abaixo)Mostrar lista de comandos

Flags de start

FlagDescrição
--target=allTodos online (padrão)
--target=groupApenas jogadores que correspondem a --groups
--target=partyApenas os membros da sua party atual (snapshot tirado no início; exige um plugin de party como o PartyPro)
--groups=VIP,hytale:AdminNomes de grupo ou nós de permissão separados por vírgula
--label=...Nome de exibição em broadcasts e status
--world=...Aplicar boost apenas nesse mundo (nome ou string uuid)
--id=...Id do boost para stop/status (padrão: global)

Exemplos

/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 admin

Execute /eventboost gui (requer eventbooster.admin.start para abrir, criar boosts e iniciar presets; eventbooster.admin.stop para parar boosts; eventbooster.admin.reload para salvar presets e agendas no painel).

TelaAções
DashboardPresets: New preset, por linha Start (um clique), Edit, Del. Agendas: New schedule, por linha On/Off, Edit, Del. Boosts ativos: New boost, Refresh, Stop all, Close; por linha Edit, Stop. Histórico recente: lista somente leitura dos últimos boosts iniciados, parados e expirados (em memória, sessão atual).
New / edit boostPresets de multiplicador (1.5x, 2x, 3x, 5x) ou personalizado; presets de duração (permanente, 30m, 1h, 2h) ou personalizado (0 = permanente). Alvo: todos online ou lista de grupo/permissão. Label, id do boost (apenas novo) e filtro de mundo opcionais. Save usa as mesmas regras que /eventboost start. Edit substitui o boost selecionado (mesmo id).
New / edit presetCampos do modelo: id, nome de exibição, multiplicador, duração (0 = permanente), boost id, label, filtro de mundo, modo de alvo (ALL / GROUP), grupos. Save grava em presets[] (exige permissão de reload).
New / edit scheduleId da agenda, preset ligado, boost id opcional, dia da semana (segunda=1 … domingo=7), hora/minuto início e fim, enabled. Save grava em schedules[] (exige permissão de reload).

Padrões do formulário da GUI para novos boosts vêm de defaultMultiplier e defaultDurationMinutes na config.


Presets

Presets são modelos de evento salvos em presets[] no config.json: multiplicador, duração, label, boost id, modo de alvo, grupos e filtro de mundo opcional.

  • GUI: secção Presets no dashboard, ou edite config.json diretamente
  • Comandos: /eventboost preset list, /eventboost preset start <id>
  • Permissões: eventbooster.admin.start para iniciar; eventbooster.admin.reload para criar, editar ou excluir presets na GUI
  • Padrões na migração: weekend (2x para todos) e vip (grupo VIP)

Iniciar um preset usa a mesma validação, broadcasts, empilhamento e integrações que /eventboost start.


Agendas semanais

As agendas iniciam e param boosts automaticamente em janelas semanais. Cada entrada em schedules[] referencia um presetId:

CampoDescrição
idId único da agenda
enabledSe false, a linha é ignorada
presetIdPreset lançado ao abrir a janela
boostIdOpcional: substitui o boost id do preset
dayOfWeekDia ISO: segunda=1 … domingo=7
startHour, startMinuteInício da janela (fuso da agenda)
endHour, endMinuteFim da janela (o boost para ao fechar)

Opções globais:

OpçãoPadrãoDescrição
schedulesEnabledtrueInterruptor geral do serviço de agendas
scheduleTimezone""Id IANA (ex. Europe/Lisbon). Vazio = fuso padrão da JVM
  • GUI: secção Schedules no dashboard; On/Off alterna enabled
  • Comando: /eventboost preset schedules lista as linhas com o fuso resolvido
  • Permissões: eventbooster.admin.reload para criar, editar, excluir ou alternar agendas na GUI

O serviço verifica a cada minuto. Ao abrir a janela, inicia o preset; ao fechar, para o boost id.


Webhook Discord (opcional)

Envie avisos de início e fim de boost para um webhook de canal Discord. Configure apenas em config.json (a URL é segredo e não aparece na GUI de admin).

OpçãoPadrãoDescrição
discordWebhookEnabledfalseAtivar posts para o webhook
discordWebhookUrl""URL HTTPS completa das configurações do canal no Discord
discordNotifyOnStarttrueAvisar em starts manuais ou pela GUI
discordNotifyOnEndtrueAvisar quando um boost termina
discordNotifyOnScheduletrueAvisar quando uma agenda inicia um boost
discordUseEmbedtrueEmbeds em vez de texto simples
discordMention@everyoneLinha de ping em cada mensagem
discordStartFormat(veja a config)Placeholders: {label}, {duration}, {multiplier}, {target}, {staff}
discordEndFormat(veja a config)Placeholders: {label}, {target}
discordScheduleStartFormat(veja a config)Placeholders: {schedule}, {label}, {duration}, {multiplier}, {target}

Valores de discordMention: @everyone, @here, <@&ROLE_ID> (cargo), <@USER_ID> (usuário) ou none para desativar pings.

Requisitos:

  • A URL deve usar HTTPS e apontar para discord.com (ou discordapp.com)
  • Salvar presets ou agendas pela GUI não apaga uma URL de webhook existente no disco se a cópia em memória estiver vazia

Direcionamento de boost

O EventBooster usa as permissões existentes do Hytale no seu servidor. Sem plugin de rank separado.

Um jogador recebe um boost de grupo se:

  • Estiver em um grupo listado (PermissionsModule / permissions.json), ou
  • Tiver um nó de permissão listado

Se --groups estiver definido sem --target=group, o mod trata automaticamente como boost de grupo.

Alvo por party (--target=party) dá boost nos membros da party atual de quem rodou o comando. Os membros são resolvidos uma vez, no início, a partir de um plugin de party instalado (PartyPro) e guardados como lista fixa; quem entra ou sai da party depois não é adicionado nem removido do boost ativo. Se nenhum plugin de party expõe seus membros, o comando avisa que o alvo por party está indisponível.

Filtro de mundo (--world=...) pode ser combinado com boosts globais, de grupo ou de party: apenas jogadores nesse nome de mundo recebem o multiplicador.


Permissões

Apenas staff com os nós corretos pode iniciar, parar ou recarregar boosts. Jogadores não precisam de permissões para receber XP de um boost ativo.

PermissãoDescrição
eventbooster.admin.startIniciar boosts, iniciar presets e abrir a GUI de admin
eventbooster.admin.stopParar eventos de boost (incluindo pela GUI)
eventbooster.admin.reloadRecarregar config; salvar presets e agendas pela GUI
eventbooster.adminTodas as ações de admin (nó pai)
eventbooster.statusVer boosts ativos

/eventboost help é apenas para staff: jogadores precisam de eventbooster.status, eventbooster.admin ou qualquer nó eventbooster.admin.*. Jogadores normais sem essas permissões não podem executar /eb help ou /eventboost help.

Para permitir que todos leiam a ajuda (opcional), defina "allowPublicHelp": true em config.json.

Setup rápido com Hytale /perm

/perm group add OP eventbooster.admin

Ou nós individuais:

/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

Exemplo permissions.json

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

Coloque jogadores VIP no grupo VIP nas permissões de usuário do save, depois execute:

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

Configuração

Arquivo de config: plugins/EventBooster/config/config.json (configVersion 4 em instalações novas)

Limites de boost

OpçãoPadrãoDescrição
minMultiplier1.0Multiplicador mínimo permitido
maxMultiplier10.0Multiplicador máximo permitido
maxCombinedMultiplier10.0Limite quando vários boosts empilham
defaultDurationMinutes60Duração padrão na GUI de admin; use 0 em comandos ou campo personalizado da GUI para permanente
allowConsoleCommandsfalsePermitir que o console do servidor execute comandos de admin sem jogador
allowPublicHelpfalseSe true, qualquer jogador pode usar /eventboost help
defaultMultiplier2.0Multiplicador padrão na GUI de admin
maxDurationMinutes10080Duração máxima do evento (minutos)
historySize20Quantidade de eventos recentes mantidos para o Histórico recente do dashboard (em memória, sessão atual)

Mensagens

OpçãoPadrãoDescrição
broadcastOnStarttrueBroadcast quando um boost inicia
broadcastOnEndtrueBroadcast quando um boost termina
notifyPlayerOnJointrueLembrar jogadores elegíveis ao entrar
reminderIntervalMinutes15Intervalo de lembrete periódico (0 = desligado)
reminderBroadcastFormat(veja a config)Placeholders: {label}, {remaining}, {target}
startBroadcastFormat(veja a config)Placeholders: {label}, {duration}, {multiplier}, {target}
endBroadcastFormat(veja a config)Placeholders: {label}, {target}
joinNoticeFormat(veja a config)Placeholders: {label}, {remaining}, {target}
statusLineFormat(veja a config)Placeholders: {id}, {label}, {multiplier}, {remaining}, {target}
partyProHudFormatBOOST {multiplier}xTexto do HUD PartyPro quando o boost se aplica àquele jogador

Mensagens são enviadas apenas a jogadores elegíveis para aquele boost.

Integrações

OpçãoPadrãoDescrição
integrationRpgLevelingtrueHook no listener de XP do RPG Leveling
integrationHyRpgCoretrueHook no xpService interno do HyRPGCore
integrationVkCrafttrueHook no booster de delta de XP de skill do VKCraft
integrationPartyProHudtrueTexto do HUD PartyPro por jogador

Presets e agendas

ChaveDescrição
presets[]Array de objetos BoostEventPreset (veja Presets)
schedules[]Array de objetos BoostSchedule (veja Agendas semanais)
schedulesEnabledtrue
scheduleTimezone""

Exemplo de preset:

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

Webhook Discord

Veja Webhook Discord acima para discordWebhookEnabled, discordWebhookUrl, toggles de aviso, discordMention, embed e formatos de mensagem.


Integrações opcionais

ModFunção
RPG Leveling and StatsHook principal de XP (recomendado)
HyRPGCoreHook no xpService interno via reflection
VKCraftBooster de delta de XP de skill
PartyProIndicador no HUD por jogador elegível

Nenhum mod de leveling é obrigatório. Sem um, comandos, timers e broadcasts ainda funcionam, mas o XP no jogo não muda.

Verifique o log do servidor na inicialização:

EventBooster started. Active integrations: RPGLeveling, ...

Verificando boosts de XP

  1. Inicie o servidor com EventBooster + um mod de leveling (RPG Leveling recomendado)
  2. Teste global: execute /eventboost start 10 10. Todos os jogadores devem ganhar XP com boost.
  3. Teste de grupo: execute /eventboost start 10 10 --target=group --groups=VIP. Apenas jogadores do grupo VIP recebem boost.
  4. Execute /eventboost status e confirme [target] na linha
  5. Execute /eventboost stop ou aguarde a expiração. Jogadores elegíveis devem ver o broadcast de fim quando o boost realmente terminar.

API pública

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

Use a sobrecarga com UUID para resultados corretos quando boosts de grupo estão ativos.


Observações

  • /eventboost reload recarrega a config e reanexa integrações com segurança. Reinicie o servidor se desativar uma integração na config e precisar remover os hooks completamente.

Licença

MIT License. Copyright (c) 2026 DurkzPRG