Planificador de escenas

Una escena es una configuración parcial que se superpone a tus ajustes normales cuando su horario coincide. Configúrala una vez y funciona sola cada año.

Las escenas viven en data/scenes.json, dentro del recurso. Es la única parte de HZ-Loading que se edita como archivo en lugar de en el panel — un calendario es un cambio raro y deliberado, no algo diario.


Anatomía

{
  "scenes": [
    {
      "id": "halloween",
      "name": "Halloween",
      "schedule": "* * 25-31 10 *",
      "config": {
        "theme": "vice",
        "tagline": "Spooky season",
        "imagePlaylist": ["default-01.jpg", "default-02.jpg"],
        "tips": [
          "Manteneos juntos — la noche es larga",
          "Truco o trato — escribe /halloween para el evento"
        ]
      }
    }
  ]
}

CampoSignificado
idIdentificador único. Se muestra en la etiqueta de escena del loading screen.
nameNombre visible, por ejemplo Halloween.
scheduleCron POSIX de 5 campos, en UTC.
configCualquier subconjunto de los ajustes que gestiona el Creator.

Las reglas

Gana la primera coincidencia. Las escenas se evalúan en el orden del array y se aplica la primera cuyo horario coincida. Ordena el array deliberadamente — pon primero la escena más específica. Parcial por diseño. Todo lo que una escena no declara recae directamente en tu configuración normal. Eso es lo que mantiene las escenas pequeñas y seguras: una escena de Halloween que solo fija un eslogan y una lista de imágenes no cambia nada más.
Los campos de lista se reemplazan por completo, no se añaden. Una escena que declara imagePlaylist sustituye toda la lista mientras dura; no se suma a ella. Lo mismo con tips y musicPlaylist.
Una escena sin schedule nunca se activa. Suele ser un error, así que el servidor imprime un aviso explícito al arrancar en lugar de callarse.

Cron

Cinco campos, UTC: minuto hora día mes día-de-la-semana.

HorarioSignificado
* * 25-31 10 *Del 25 al 31 de octubre, en continuo
* 3-4 * * 2Cada martes, de 03:00 a 04:59
* * * 12 *Todo diciembre
* * 1 1 *1 de enero, todo el día
0 6 * * 2Cada martes, solo el minuto de las 06:00
Una escena está activa solo mientras el reloj coincide con su cron. No hay inicio, ni fin, ni duración — el servidor reevalúa cada minuto y descarta la escena en cuanto deja de coincidir.

Por eso los campos de minuto y hora deben quedarse en * para una escena que deba permanecer visible. 0 0 25-31 10 * no significa «desde medianoche del día 25»; significa «durante el minuto 00:00 de cada uno de esos días», es decir, aproximadamente un minuto al día. Usa * * 25-31 10 *.

UTC, no la hora local de tu servidor. En verano, un operador europeo que escriba 0 6 obtiene las 08:00 locales.

Aplicar y comprobar

Edita data/scenes.json, luego refresh y restart hz_loading. Las escenas son lo único que no se recarga en caliente.

/hzloading:scenes (admin) lista todas las escenas declaradas, cuál está activa y por qué. Úsalo para confirmar que una expresión cron hace lo que crees antes de que llegue la fecha — mejor que esperar a octubre para descubrirlo.

Cuando una escena está activa, los jugadores ven bajo el bloque de marca una etiqueta discreta con su nombre, de modo que la variación se lee como intencionada y no como un fallo.