> ## Documentation Index
> Fetch the complete documentation index at: https://docs.eventsmc.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Novedades del panel

> Qué ha cambiado en el panel de control de Events

## 9 de octubre de 2026

* **Componentes:** sección nueva en la configuración de la instancia. Rachas, Feed, Canales,
  Términos y Notificaciones se activan ahí, y cada pestaña solo aparece si está activada.
  Ver [Componentes](/panel/instances#componentes).
* **Reportes:** pestaña nueva con los fallos que envían los jugadores desde la partida, con
  captura, mods y log. Ver [Reportes de fallos](/panel/instances#reportes-de-fallos).
* **Skins de Events Connect:** interruptor por instancia para ver en la partida las skins y
  capas de Events Connect. Ver [Skins de Events Connect](/panel/instances#skins-de-events-connect).
* **Referidos:** cada studio crea sus propios códigos, cada uno con su nombre, su enlace y sus
  jugadores. Gratis 1, Lite 2, Pro 5 y Max 10. Apagar un código libera el hueco y conserva lo
  que trajo.
* **Actividad:** el registro ya no se pierde al llegar al límite; lo antiguo se archiva por
  meses y se consulta eligiendo las fechas. Se guarda 2 años.

## Tercera tanda

### Confirmar una acción no hacía nada

El fallo detrás de «le doy a eliminar y no pasa nada, ni se envía una
petición».

El diálogo de confirmación **cerraba antes de responder**. Cerrar emite un
evento cuyo manejador contesta «no» —para cubrir Esc, la X y el clic fuera— y
una promesa solo se resuelve una vez, así que el «sí» que llegaba justo
después no contaba. Las **21** acciones destructivas del panel comprobaban esa
respuesta y salían sin llegar a la red: borrar una instancia, borrar archivos,
la limpieza de archivos, vaciar la papelera, desbanear, quitar una entrada de
una whitelist, publicar en el canal de pruebas. Sin error y sin petición, que
es justo lo que se veía.

Detrás había un segundo fallo, tapado por el primero: borrar **un** archivo
llamaba a una ruta que no existe en el backend (`DELETE .../files/<ruta>`;
solo existe el borrado múltiple). Ahora los dos comparten camino, así que
también comparten el trato de las referencias externas y del canal de pruebas.

<Note>
  Los dos fallos eran silenciosos por separado y se tapaban entre ellos: la
  confirmación nunca dejaba llegar a la petición, así que la ruta inexistente no
  podía notarse.
</Note>

### Cambiar de sección: de medio segundo a instantáneo

Cada clic **esperaba una petición antes de dibujar nada**, aunque los datos ya
estuvieran cargados desde el arranque. Ahora se pinta con lo que hay y se
refresca por detrás; los módulos de cada pantalla se descargan en tiempo
muerto en vez de al primer clic. Medido: **5-16 ms** donde antes había \~500.

Se añade un fundido corto al cambiar de sección y una barra fina de progreso
que solo aparece si la espera pasa de 120 ms.

### Roles: quedan tres

**Solo calendario** y **Creador de contenido** se retiran. Las cuentas se
migran solas. Ver [Equipo y studios](/panel/team) — incluye qué cambia para
quien era *Solo calendario*.

### Servidores de juego

La sección **no controla nada**. Todo —consola, archivos, copias y
facturación— vive en hosting.eventsmc.xyz, que está en desarrollo.

### Detalles

* El número de la papelera vuelve a ser un círculo de 18 px. Salía como una
  barra ancha porque `.nav-item span` también casaba con él y su `flex: 1`
  ganaba por especificidad al `flex: none` propio del badge.
* Las categorías de instancias y eventos sugieren **Evento**, **Squid Game**,
  **Torneo** y **Serie**, con *Evento* por defecto. Siguen siendo texto libre:
  una lista cerrada habría reescrito las categorías que ya existen.
* El panel pasa a llamarse **Events Panel**.

## Segunda tanda

### Los diálogos que se abrían doce veces

`patch()` conserva a propósito los nodos que no cambian, para no perder el
scroll ni el foco. Pero cada vista reejecuta su `wire()` tras cada repintado
—incluida la actualización automática cada diez segundos— y un
`addEventListener` sobre un nodo que sobrevivió **se acumula**. De ahí los
diálogos repetidos, lo que costaba cerrarlos, y que un botón enviara una
petición por cada listener acumulado hasta chocar con el límite del servidor.

Ahora enlazar sustituye en vez de sumar: un manejador por elemento y evento.

<Note>
  El panel es una aplicación de una sola página: una pestaña abierta durante un
  despliegue sigue ejecutando el código que cargó. Ahora lo detecta y ofrece
  recargar, en vez de arrastrar un fallo ya corregido.
</Note>

### Registro de actividad

Páginas, filtro por tipo, por rango de fechas y por texto, y 4000 entradas en
vez de 200. Cada línea se clasifica sola, así que las antiguas también se pueden
filtrar. Ver [Actividad](/panel/introduction).

### Menos peticiones

* Cada navegación hacía el trabajo dos veces: el guardián que debía evitar el
  segundo aviso del navegador se apagaba antes de que ese aviso llegara.
* Una sección leída hace menos de ocho segundos se reutiliza. Cualquier
  escritura tira esa caché, así que un guardado siempre se ve.

### Servicios abiertos

**Servidores de juego**, **Events Whitelist** y **Events Blacklist** quedan
disponibles para todos los studios: ninguno es una capacidad de pago.

### Events Whitelist, entero desde el panel

Con tu cuenta de Discord, sin claves. Ver [Bots desde el panel](/panel/bots).

## Rediseño completo

El panel se reescribió de cero. Lo que cambia, por orden de lo que más se nota:

### Organización

* La barra lateral **agrupa** las secciones por lo que son: Launcher, Bots de Discord, Hosting,
  Plataforma y Sistema. Antes eran once entradas seguidas, con las instancias del launcher al
  lado del registro de seguridad de la plataforma.
* Una instancia pasa de **diez pestañas a siete**. Whitelist, códigos, aceptados, baneados y
  staff eran cinco pestañas para una sola pregunta —quién puede entrar—, así que ahora son una:
  **Acceso**.
* **Ajustes** deja de ser un scroll de siete secciones apiladas y pasa a tener pestañas.

### Crear una instancia

* Un **asistente de seis pasos** sustituye la rejilla de treinta campos que salía de golpe.
* Incluye un **diagrama** de qué es una instancia y una **vista previa en vivo** de la portada.
* El editor completo sigue estando, pero repartido en seis grupos con nombre en vez de una
  lista plana.

### Los textos

* Las explicaciones largas salen de debajo de cada campo y pasan a un botón **`?`**.
* Dentro, en vez de un párrafo, hay una ficha: **qué hace**, **qué pasa si no se toca**,
  **cuándo cambiarlo** y, solo si equivocarse rompe algo, un **aviso**.
* Sin segunda persona, sin opiniones y sin anécdotas. Es un servicio, no una explicación de su
  autor.

### Aspecto

* Los colores, radios, sombras y curvas de animación son **exactamente** los del launcher.
* **Tema claro** además del oscuro, y la opción de seguir al sistema.
* Casillas, interruptores y desplegables propios en lugar de los del navegador.
* **Responsive de verdad**: menú lateral, tablas que se desplazan y formularios de una columna
  en el móvil.

### Idiomas

* **Español, inglés, catalán y francés**, los mismos cuatro del launcher.

### Calendario

* Cada evento se pinta en **su propio color**, con su hora y su nombre, en vez de un punto de
  seis píxeles sin información.
* Un evento de varios días ocupa todos sus días.
* Columna de **próximos eventos** al lado del mes.

### Rendimiento

* El panel era **un solo archivo de 293 KB** que se descargaba y analizaba entero en cada
  apertura. Ahora son módulos y cada pantalla se carga la primera vez que se entra en ella.
* Las portadas se cargan de forma diferida y las tarjetas fuera de pantalla no se dibujan.
* Las pantallas se repintan por partes, así que ya no se pierde el scroll ni lo que se está
  escribiendo cuando llegan datos nuevos.

## Funciones nuevas

<CardGroup cols={2}>
  <Card title="Mantener la sesión abierta" icon="clock" href="/panel/session">
    30 días en lugar de 12 horas. Una sesión que caduca en mitad de un evento es el peor momento
    posible.
  </Card>

  <Card title="Servicios por studio" icon="toggle-on" href="/panel/team">
    Qué puede usar cada studio, encendido a mano y al margen de cualquier plan.
  </Card>

  <Card title="Gestión de accesos" icon="user-plus" href="/panel/team">
    Decidir por studio si su equipo puede dar acceso a más gente, en vez de depender solo del rol.
  </Card>

  <Card title="Avisos de studio" icon="bell" href="/panel/webhooks">
    Un webhook para todo el studio, no solo para una instancia. Hasta cinco destinos.
  </Card>

  <Card title="Archivos públicos" icon="folder-open" href="/panel/files">
    Alojar cualquier archivo con URL pública, y ver y limpiar lo que ya no usa nadie.
  </Card>

  <Card title="Bots desde el panel" icon="robot" href="/panel/bots">
    Ver y exportar las whitelists de Events Whitelist sin salir del panel.
  </Card>
</CardGroup>

## Correcciones

* **No se podía guardar un studio.** El diálogo leía al guardar un campo que nunca dibujaba, así
  que fallaba siempre — y el error que salía era «error de conexión con el backend», que no era
  verdad.
* **La whitelist y la lista de staff no guardaban.** El panel enviaba los datos con un nombre que
  el servidor no leía: la petición respondía correctamente y no cambiaba nada.
* **Expulsar, banear y cerrar sesión** tenían el mismo problema y tampoco hacían nada.
* La música de prueba **seguía sonando** después de cerrar el diálogo.
* El botón de parar la música salía **vacío**.
* Un error de programación del panel se mostraba como «error de conexión con el backend»,
  disfrazando de caída del servidor lo que era un fallo del propio panel.
* Un ajuste desactivado podía **seguir viéndose** (el límite fijo de la cola aparecía con la cola
  en automático).

## Almacenamiento

Tres fugas de disco corregidas — ver [Archivos públicos](/panel/files):

* La carpeta de archivos **solo crecía**: no existía ninguna forma de borrar de ella.
* Borrar definitivamente una instancia se llevaba sus archivos pero **no** sus imágenes.
* Los trozos de una subida abandonada se quedaban en disco **para siempre**.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.