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.