Server documentation
EventBooster
ActiveHytale • 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
- Baixe EventBooster-0.4.1.jar na aba Files do CurseForge
- Coloque o JAR na pasta mods/ do servidor
- Inicie o servidor. A config é gerada em plugins/EventBooster/config/config.json
- Conceda permissões de staff (veja Permissões abaixo)
- 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.
| Comando | Permissão | Descrição |
|---|---|---|
/eventboost gui | eventbooster.admin.start | Abrir painel de admin (aliases: /eb gui, /eventboost panel, /eventboost menu) |
/eventboost start <mult> <minutes> [flags] | eventbooster.admin.start | Iniciar um boost de XP temporizado |
/eventboost stop [id|all] | eventbooster.admin.stop | Parar um boost ou todos |
/eventboost reload | eventbooster.admin.reload | Recarregar config |
/eventboost status | eventbooster.status | Listar boosts ativos |
/eventboost preset list | eventbooster.status ou eventbooster.admin.start | Listar presets salvos |
/eventboost preset start <id> | eventbooster.admin.start | Iniciar um preset |
/eventboost preset schedules | eventbooster.status ou eventbooster.admin.start | Listar agendas semanais (respeita schedulesEnabled) |
/eventboost help | Staff (veja abaixo) | Mostrar lista de comandos |
Flags de start
| Flag | Descrição |
|---|---|
--target=all | Todos online (padrão) |
--target=group | Apenas jogadores que correspondem a --groups |
--target=party | Apenas os membros da sua party atual (snapshot tirado no início; exige um plugin de party como o PartyPro) |
--groups=VIP,hytale:Admin | Nomes 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).
| Tela | Ações |
|---|---|
| Dashboard | Presets: 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 boost | Presets 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 preset | Campos 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 schedule | Id 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.jsondiretamente - Comandos:
/eventboost preset list,/eventboost preset start <id> - Permissões:
eventbooster.admin.startpara iniciar;eventbooster.admin.reloadpara criar, editar ou excluir presets na GUI - Padrões na migração:
weekend(2x para todos) evip(grupoVIP)
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:
| Campo | Descrição |
|---|---|
id | Id único da agenda |
enabled | Se false, a linha é ignorada |
presetId | Preset lançado ao abrir a janela |
boostId | Opcional: substitui o boost id do preset |
dayOfWeek | Dia ISO: segunda=1 … domingo=7 |
startHour, startMinute | Início da janela (fuso da agenda) |
endHour, endMinute | Fim da janela (o boost para ao fechar) |
Opções globais:
| Opção | Padrão | Descrição |
|---|---|---|
schedulesEnabled | true | Interruptor 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 scheduleslista as linhas com o fuso resolvido - Permissões:
eventbooster.admin.reloadpara 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ção | Padrão | Descrição |
|---|---|---|
discordWebhookEnabled | false | Ativar posts para o webhook |
discordWebhookUrl | "" | URL HTTPS completa das configurações do canal no Discord |
discordNotifyOnStart | true | Avisar em starts manuais ou pela GUI |
discordNotifyOnEnd | true | Avisar quando um boost termina |
discordNotifyOnSchedule | true | Avisar quando uma agenda inicia um boost |
discordUseEmbed | true | Embeds em vez de texto simples |
discordMention | @everyone | Linha 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(oudiscordapp.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ão | Descrição |
|---|---|
eventbooster.admin.start | Iniciar boosts, iniciar presets e abrir a GUI de admin |
eventbooster.admin.stop | Parar eventos de boost (incluindo pela GUI) |
eventbooster.admin.reload | Recarregar config; salvar presets e agendas pela GUI |
eventbooster.admin | Todas as ações de admin (nó pai) |
eventbooster.status | Ver 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ção | Padrão | Descrição |
|---|---|---|
minMultiplier | 1.0 | Multiplicador mínimo permitido |
maxMultiplier | 10.0 | Multiplicador máximo permitido |
maxCombinedMultiplier | 10.0 | Limite quando vários boosts empilham |
defaultDurationMinutes | 60 | Duração padrão na GUI de admin; use 0 em comandos ou campo personalizado da GUI para permanente |
allowConsoleCommands | false | Permitir que o console do servidor execute comandos de admin sem jogador |
allowPublicHelp | false | Se true, qualquer jogador pode usar /eventboost help |
defaultMultiplier | 2.0 | Multiplicador padrão na GUI de admin |
maxDurationMinutes | 10080 | Duração máxima do evento (minutos) |
historySize | 20 | Quantidade de eventos recentes mantidos para o Histórico recente do dashboard (em memória, sessão atual) |
Mensagens
| Opção | Padrão | Descrição |
|---|---|---|
broadcastOnStart | true | Broadcast quando um boost inicia |
broadcastOnEnd | true | Broadcast quando um boost termina |
notifyPlayerOnJoin | true | Lembrar jogadores elegíveis ao entrar |
reminderIntervalMinutes | 15 | Intervalo 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} |
partyProHudFormat | BOOST {multiplier}x | Texto 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ção | Padrão | Descrição |
|---|---|---|
integrationRpgLeveling | true | Hook no listener de XP do RPG Leveling |
integrationHyRpgCore | true | Hook no xpService interno do HyRPGCore |
integrationVkCraft | true | Hook no booster de delta de XP de skill do VKCraft |
integrationPartyProHud | true | Texto do HUD PartyPro por jogador |
Presets e agendas
| Chave | Descrição |
|---|---|
presets[] | Array de objetos BoostEventPreset (veja Presets) |
schedules[] | Array de objetos BoostSchedule (veja Agendas semanais) |
schedulesEnabled | true |
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
| Mod | Função |
|---|---|
| RPG Leveling and Stats | Hook principal de XP (recomendado) |
| HyRPGCore | Hook no xpService interno via reflection |
| VKCraft | Booster de delta de XP de skill |
| PartyPro | Indicador 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
- Inicie o servidor com EventBooster + um mod de leveling (RPG Leveling recomendado)
- Teste global: execute
/eventboost start 10 10. Todos os jogadores devem ganhar XP com boost. - Teste de grupo: execute
/eventboost start 10 10 --target=group --groups=VIP. Apenas jogadores do grupo VIP recebem boost. - Execute
/eventboost statuse confirme[target]na linha - Execute
/eventboost stopou 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 reloadrecarrega 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