Saltearse al contenido

Configuración y Rendimiento

CraftingEngine almacena su configuración operativa global en el archivo plugins/CraftingEngine/config.yml. Este documento detalla todas las opciones disponibles, ajustes de rendimiento en tiempo de ejecución, modos de idioma y recargas de subsistemas.


1. Referencia Completa de config.yml

config-version: 1
plugin:
debug: false
runtime:
tick-interval: 1
definitions:
directory: "processes"
verbose-hot-reload: true
language:
default-language: "es_ES"
mode: "per_player"
scripting:
sandbox-mode: "STRICT"
execution-timeout-ms: 50
max-instructions: 10000
presets-directory: "presets/scripts"
resources:
auto-generate-defaults: true
categories:
processes: true
stations: true
capabilities: true
presets: true
scripts: true
menus: true
languages: true

Tabla Explicativa de Opciones

Ruta de la OpciónTipoValor por DefectoDescripciónComando de Recarga
config-versionInteger1Versión del esquema. No modificar manualmente.Ninguno
plugin.debugBooleanfalseHabilita trazas y mensajes detallados de depuración en la consola./cfe reload config
runtime.tick-intervalLong1Frecuencia de ticks del ciclo principal de procesos (1 tick = 50ms a 20 TPS)./cfe reload config
definitions.directoryString"processes"Carpeta relativa a la raíz del plugin donde se guardan los blueprints./cfe reload processes
definitions.verbose-hot-reloadBooleantrueMuestra diagnósticos detallados en consola al recargar cada archivo./cfe reload processes
language.default-languageString"es_ES"Idioma de reserva cargado desde plugins/CraftingEngine/lang/./cfe reload languages
language.modeString"per_player"per_player (usa el idioma del cliente del jugador) o fixed (fuerza default-language)./cfe reload languages
scripting.sandbox-modeString"STRICT"STRICT (entorno seguro aislado) o FULL_ACCESS (permite reflexión Java)./cfe reload scripts
scripting.execution-timeout-msLong50Tiempo máximo en milisegundos antes de que el watchdog interrumpa un script de Lua./cfe reload scripts
scripting.max-instructionsLong10000Límite de instrucciones ejecutables por invocación de script (previene bucles infinitos)./cfe reload scripts
scripting.presets-directoryString"presets/scripts"Carpeta relativa con scripts .lua reutilizables./cfe reload scripts
resources.auto-generate-defaultsBooleantrueSi es true, extrae automáticamente los archivos de ejemplo ausentes al iniciar.Solo al Arrancar

2. Ajustes y Optimización de Rendimiento

CraftingEngine ha sido diseñado para operar con cero sobrecarga en el hilo principal:

Frecuencia del Ticker (runtime.tick-interval)

  • Predeterminado (1 tick): Evalúa procesos cada tick del servidor (50ms). Es la opción recomendada para animaciones fluidas, barras de progreso exactas y minigames rápidos.
  • Optimizado (2 ticks): Evalúa cada 100ms. Reduce el uso de CPU en servidores multitudinarios con cientos de estaciones de crafteo activas simultáneamente.

Watchdog de Seguridad de Lua

Los scripts de condiciones y acciones personalizadas en Lua se ejecutan dentro de un entorno aislado. Las protecciones del watchdog garantizan la estabilidad del servidor:

  • execution-timeout-ms: 50: Evita que cálculos pesados retrasen el tick del servidor.
  • max-instructions: 10000: Corta automáticamente la ejecución de scripts con bucles sin fin (while true do).

Entidades Display Virtuales y PacketEvents

Las previsualizaciones de bloques fantasma en multibloques y las animaciones de ítems virtuales no generan entidades físicas en el chunk del mundo. Se transmiten como paquetes directos a los clientes mediante PacketEvents, eliminando el guardado en disco, la carga de chunks y los posibles bugs de entidades huérfanas.


3. Recarga Granular de Subsistemas

CraftingEngine permite recargar cada módulo de forma independiente mediante /cfe reload:

Ventana de terminal
/cfe reload all # Recarga configuración, procesos, estaciones, menús y scripts
/cfe reload config # Recarga únicamente el config.yml
/cfe reload processes # Recarga los blueprints y recetas de crafteo
/cfe reload stations # Recarga estaciones de bloque único y multibloques
/cfe reload capabilities # Recarga las definiciones de capacidades
/cfe reload menus # Recarga las plantillas matriciales 9xN de la GUI
/cfe reload animations # Recarga los presets de animación virtual
/cfe reload scripts # Recarga los scripts de Lua y limpia la memoria caché
/cfe reload languages # Recarga los archivos de traducción en lang/

Todas las recargas son seguras: los procesos en curso continúan su ejecución y los inventarios de los jugadores no sufren pérdidas durante el proceso.