Skip to main content

config.yml

Archivo de configuración principal que controla todo el comportamiento en tiempo de ejecución del plugin. Los cambios en secciones distintas a heuristics.triggers requieren un reinicio completo del servidor.

auto-regulation

Cambio automático de perfil según un horario diario. Usa formato de 24 horas en la zona horaria local de la JVM del servidor.

auto-regulation:
enabled: false # Establecer true para activar el cambio programado
profile: survival # Perfil activo al arrancar el servidor
schedule:
- time: "08:00"
profile: survival
- time: "20:00"
profile: aggressive # Anticipar la carga del horario pico
- time: "03:00"
profile: conservative # Nocturno — intervención mínima
notify-admins: true # Notificar el cambio de perfil a los admins online

discord

Notificaciones por webhook de Discord. Los fallos de entrega se registran pero no afectan al funcionamiento del plugin.

discord:
webhook-url: "" # Cadena vacía desactiva las notificaciones
alert-tps-threshold: 14.0 # La alerta se activa cuando el TPS baja de este valor
notify-automatic-actions: true # Publicar mensaje por cada acción automática ejecutada
notify-profile-changes: true # Publicar mensaje al cambiar de perfil

handlers — Configuración por Acción

Parámetros predeterminados para cada handler de acción. Estos valores se utilizan cuando el orquestador selecciona una acción sin un override de parámetros explícito proveniente de una política.

handlers:
pause-mob-ai:
default-radius: 6 # Radio de chunks por defecto para la suspensión de IA
max-radius: 12 # Radio máximo (no puede ser superado por las políticas)
exclude-pets: true # Nunca pausar la IA de animales domesticados
exclude-villagers: false # Establecer true para proteger siempre a los aldeanos
exclude-villagers-threshold: 0
auto-renew: true # Reaplicar automáticamente si las condiciones persisten tras el revert

aggressive-item-merge:
default-chunk-radius: 6
max-chunk-radius: 12

throttle-hoppers:
default-ticks: 5 # Ticks entre transferencias (vanilla es 8)
min-ticks: 1
max-ticks: 1200
default-radius: 0 # 0 = global (todos los chunks del mundo)
max-radius: 12
default-max-transfers-per-sec: 4

throttle-redstone:
enabled: true
chunk-threshold: 500 # Máx. eventos de redstone por chunk por intervalo
block-threshold: 15 # Máx. eventos por bloque por intervalo
reset-interval-ticks: 20 # 20 ticks = 1 segundo
removal-action: REMOVE # REMOVE (recomendado) | DISABLE | DROP

set-spawn-limit:
default-limit: 50
default-category: "MONSTER" # MONSTER | ANIMAL | WATER_ANIMAL | AMBIENT

entity-tracking:
default-distance: 8

auto-revert

Controla cuándo y cómo se revierten las optimizaciones automáticas una vez que la condición desencadenante se ha resuelto.

auto-revert:
enabled: true
metrics:
tps-recovery-threshold-pct: 30.0 # % de mejora en TPS desde el baseline al momento de la acción
mspt-recovery-threshold-pct: 20.0
entity-recovery-threshold-pct: 20.0
player-recovery-threshold-pct: 10.0
chunk-recovery-threshold-pct: 10.0
# false = cualquier métrica individual que cumpla su umbral dispara el revert
# true = todas las métricas configuradas deben cumplir sus umbrales simultáneamente
require-all-metrics: false

regional:
enabled: true
action-types: # Solo estos tipos usan evaluación de revert regional
- pause-mob-ai
- set-view-distance
- set-simulation-distance
require-all-metrics: true
required-consecutive-confirmations: 2 # Ciclos que deben confirmar la recuperación
signal:
mode: composite # composite | hotspots-only
weights:
entity-hotspots: 0.60
chunk-hotspots: 0.25
players: 0.15

min-uptime-before-revert-ms:
default: 120000 # 2 minutos de tiempo activo mínimo
pause-mob-ai: 120000
set-view-distance: 180000 # 3 minutos mínimo
set-simulation-distance: 180000

distance-overrides

distance-overrides:
queue:
reset-after-single-apply: true # Aplicar un override y luego limpiar la cola (previene cascadas)
dynamic:
enabled: true # Activar degradación proporcional según la carga del servidor
target-tps: 20.0
target-mspt: 50.0
multiplier-min: 0.50 # El cap de VD puede reducirse hasta el 50% del cap de permiso
multiplier-max: 1.00
min-delta-chunks: 1 # Cambio mínimo para considerarlo significativo
cooldown-ms: 15000 # Mínimo 15s entre ajustes dinámicos
actionbar:
enabled: true
min-interval-ms: 10000
template: "" # Vacío = usa el mensaje del archivo lang

engine

engine:
min-evaluation-interval-ms: 10000 # Tiempo mínimo entre ciclos completos de orquestación
history-max-records: 2000
history-max-file-size-mb: 10
history-persist-interval-ms: 5000 # Volcar el historial de acciones a disco cada 5 segundos

heuristics — Motor de Activación Principal

La sección más crítica de config.yml. Define cada umbral que determina cuándo el orquestador considera necesaria una intervención.

heuristics:
engine:
tps-baseline-floor: 18.0 # Suelo EMA — evita que el baseline colapse bajo carga sostenida
tps-critical: 14.0 # Umbral de severidad CRITICAL (máxima intensidad de respuesta)
tps-high: 17.0 # Umbral de severidad HIGH
cooldown-min-seconds: 12
cooldown-max-seconds: 180
circuit-breaker-failures: 3 # Fallos consecutivos para abrir el circuit breaker
circuit-breaker-silence-seconds: 120

aimd:
additive-increase: 0.05 # Incremento del factor por ciclo de acción exitoso
multiplicative-decrease: 0.5 # Reducción del factor en caso de fallo
min-factor: 0.1
max-factor: 1.0
initial-factor: 0.5

triggers:
# Entidades
entity-count: 80 # DEMO — producción: 300-500
passive-mob-count: 40 # DEMO — producción: 150-300
entity-hotspot: 35 # DEMO — producción: 100-200 (por chunk)
tile-entity-count: 1000 # DEMO — producción: 10000-50000

# Chunks
loaded-chunks: 450 # DEMO — producción: 5000-20000
simulated-chunks: 220 # DEMO — producción: 2000-10000
forced-chunks: 60 # DEMO — producción: 200-500
chunk-entity-hotspot: 30 # DEMO — producción: 50-100

# Redstone y mecánicas
redstone-updates: 500 # DEMO — producción: 5000-20000
piston-activations: 100 # DEMO — producción: 1000-5000

Importante: Todos los valores marcados como DEMO son intencionalmente bajos para entornos de prueba. Para producción, multiplica los umbrales de entidades y chunks por 5-10x y los de redstone/pistons por 10-20x. Valida siempre con el modo Analysis primero.