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: trueTabla Explicativa de Opciones
| Ruta de la Opción | Tipo | Valor por Defecto | Descripción | Comando de Recarga |
|---|---|---|---|---|
config-version | Integer | 1 | Versión del esquema. No modificar manualmente. | Ninguno |
plugin.debug | Boolean | false | Habilita trazas y mensajes detallados de depuración en la consola. | /cfe reload config |
runtime.tick-interval | Long | 1 | Frecuencia de ticks del ciclo principal de procesos (1 tick = 50ms a 20 TPS). | /cfe reload config |
definitions.directory | String | "processes" | Carpeta relativa a la raíz del plugin donde se guardan los blueprints. | /cfe reload processes |
definitions.verbose-hot-reload | Boolean | true | Muestra diagnósticos detallados en consola al recargar cada archivo. | /cfe reload processes |
language.default-language | String | "es_ES" | Idioma de reserva cargado desde plugins/CraftingEngine/lang/. | /cfe reload languages |
language.mode | String | "per_player" | per_player (usa el idioma del cliente del jugador) o fixed (fuerza default-language). | /cfe reload languages |
scripting.sandbox-mode | String | "STRICT" | STRICT (entorno seguro aislado) o FULL_ACCESS (permite reflexión Java). | /cfe reload scripts |
scripting.execution-timeout-ms | Long | 50 | Tiempo máximo en milisegundos antes de que el watchdog interrumpa un script de Lua. | /cfe reload scripts |
scripting.max-instructions | Long | 10000 | Límite de instrucciones ejecutables por invocación de script (previene bucles infinitos). | /cfe reload scripts |
scripting.presets-directory | String | "presets/scripts" | Carpeta relativa con scripts .lua reutilizables. | /cfe reload scripts |
resources.auto-generate-defaults | Boolean | true | Si 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:
/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.