Cargar a mano el marcador y las estadísticas de cada partido es lo que más tiempo le quita a quien organiza una liga. Spike automatiza buena parte: arma una propuesta de resultado con goles, asistencias y autogoles por jugador, el staff la confirma con un botón y, cuando todos los partidos de la fecha están cerrados, publica en Discord un resumen en imágenes. Esta guía recorre ese camino completo, con los detalles que conviene saber antes de la primera jornada.
La fecha de punta a punta
Una fecha se cierra en cuatro pasos. Se juega el partido; Spike genera un resultado propuesto (nadie escribe el marcador); un administrador u organizador lo confirma, y entonces el resultado entra al fixture y la tabla, y el detalle por jugador queda guardado; por último, al terminar la fecha, sale el resumen. Cada paso tiene su propio responsable y su propio punto de falla:
| Paso | Quién lo hace | Dónde |
|---|---|---|
| Proponer el resultado | El bot, desde un partido en vivo o desde una replay | Mensaje con botones en Discord |
| Confirmar o descartar | Administrador u organizador del mercado | Botones del mensaje, o el modal del partido en el panel |
| Guardar estadísticas | Automático al confirmar | Tabla de detalle por partido y acumulados del jugador |
| Publicar el resumen | El bot solo, o el staff a mano | Un canal, foro o hilo; /resumen o el botón «Enviar resumen» |
Un aviso sobre quién propone: los DTs no mandan resultados. La propuesta nace de los datos de la sala o de la replay, y solo el staff del mercado la puede aceptar. Eso evita discusiones sobre un marcador cargado por una de las partes. Para armar antes el calendario, mira la guía Cómo organizar una liga de HaxBall en Discord.
De dónde sale un resultado propuesto
Hay dos caminos, y los dos terminan en el mismo mensaje con botones.
Desde un partido en vivo
Un administrador u organizador activa la transmisión con /live activar link: <enlace de la sala> mercado: Liga1. La opción mercado es la que enciende todo esto: sin ella Spike solo transmite el partido y no identifica equipos. Al inicio de cada partido, Spike cruza los Discord de los jugadores de cada lado con los miembros de los roles de equipo del mercado, y se queda con el rol que más jugadores aporta por lado. Al terminar, si existe un partido pendiente del fixture entre esos dos equipos, publica la propuesta en el canal donde activaste la transmisión.
Si hay varios partidos pendientes entre los mismos equipos (por ejemplo, ida y vuelta o liga y copa), elige el que tiene la hora programada más cercana al momento del partido; los que no tienen hora van después, por fecha y por ID. Por eso conviene cargar los horarios en el panel.
Desde una replay
Si no hubo transmisión, o salió mal, se puede proponer a partir del archivo de la sala:
/resultado replay partido: 12 archivo: partido.hbr2 descartar: 1,3
El número es el ID del partido en /fixture ver, y el archivo debe ser una replay .hbr2 (8 MB como máximo por defecto). La opción descartar es opcional y acepta números de parte separados por coma: sirve cuando la grabación incluye calentamientos o partidos de prueba que no cuentan, y la guía Qué es el formato HBR2 explica cómo se dividen las partes. El partido tiene que tener ya sus dos equipos definidos. Solo un administrador u organizador puede usar el comando, y la respuesta es privada con el enlace al mensaje publicado.
Para ver qué quedó sin resolver, /resultado pendientes lista las propuestas abiertas del servidor (muestra hasta 25, con el total en el título), cada una con su enlace.
Qué trae la propuesta
El mensaje muestra el marcador orientado al partido del fixture (equipo local contra visitante, sin importar de qué color jugó cada uno) y una columna por equipo con sus jugadores:
- Goles (G), asistencias (A) y autogoles (AG) de cada uno.
- CS y MVP, solo en propuestas en vivo y solo cuando la sala los informa. La valla invicta se asigna únicamente si un único arquero identificado atajó ese partido.
- Una sección «Sin identificar» con los nombres que no se pudieron asociar a un Discord. Esos jugadores no suman estadísticas.
- Un aviso de que el partido ya tenía resultado, si lo tenía: confirmar lo reemplaza.
- La hora de vencimiento y, en el pie, el número de partido y de propuesta.
En las propuestas por replay los jugadores se identifican primero por el Discord que firma la sala en la grabación. Si falta, Spike compara el nick con los nombres visibles de los miembros de ambos planteles; acepta una coincidencia exacta o un único candidato parcial (de al menos tres letras) y marca esa línea con «por apodo». Si hay dudas, el jugador queda en «Sin identificar». Las propuestas por replay traen goles, asistencias y autogoles; el MVP y la valla invicta no se calculan.
Cuando el bot no puede comprobar qué lado era cada equipo, agrega la advertencia «No se pudo verificar qué lado era cada equipo». Léela con atención: si el marcador aparece invertido, descarta y vuelve a proponer, o corrige el resultado a mano en el panel.
Confirmar o descartar
Confirmar y descartar están reservados al dueño del servidor, a quienes tienen permiso de Administrador y al rol de organizador del mercado. Se puede hacer de dos maneras: con los botones Confirmar y Descartar del mensaje en Discord, o en el panel, en la sección Partidos. Los partidos con propuesta abierta muestran la etiqueta «Propuesto»; al abrir el partido (Editar partido) aparece el bloque «Resultado propuesto» con el marcador, las estadísticas y los mismos dos botones.
Al confirmar, Spike hace todo en una sola operación:
- Guarda el marcador en el fixture con el estado «jugado».
- En la liga, recalcula la tabla del mercado desde cero.
- Guarda el detalle por jugador de ese partido.
- Suma las estadísticas a los acumulados del jugador, una sola vez por partido.
- Cierra la propuesta, edita el mensaje («Confirmado por…») y avisa al resumen automático.
Copa. Si el partido es de copa y el marcador es un empate, hace falta un ganador: Discord abre un modal para cargar los penales de cada equipo, y el panel muestra dos casillas. Deben ser números distintos entre sí y no mayores que 100. Si la replay trae la tanda, los penales ya vienen cargados en la propuesta y se descuentan del marcador regular.
Vencimiento. Una propuesta abierta dura 48 horas; después se marca como expirada y su mensaje se actualiza. También queda como «reemplazada» si se genera otra para el mismo partido o si el partido se confirma por otra propuesta. Las cerradas se conservan unos 30 días.
Si te equivocas. Confirmar de nuevo el mismo partido no duplica nada: Spike resta lo que había sumado y suma lo nuevo. Si después pones el partido como pendiente, suspendido o aplazado (con /fixture set-resultado o desde el panel), se revierten las estadísticas que había sumado la propuesta y se borra el detalle automático de ese partido.
Estadísticas por partido
Los acumulados del jugador (los que ves en /top o en el perfil) solo guardan totales. Para armar un resumen hace falta saber qué hizo cada jugador en cada partido, y eso vive en una tabla aparte, partido_jugadores: una fila por partido y jugador, con equipo, goles, asistencias, autogoles, valla invicta y MVP. Repetir la carga de un partido reemplaza sus filas, nunca las duplica.
Un detalle importante: hoy esa tabla se llena solo cuando confirmas una propuesta. Un resultado cargado a mano con /fixture set-resultado, o en el panel, mueve el marcador y la tabla pero no crea estadísticas por jugador. Lo mismo pasa si una transmisión en vivo termina sin un partido pendiente entre esos equipos: Spike suma las estadísticas directamente a los acumulados, pero ese partido no entra al detalle ni al resumen.
Con ese detalle, el resumen puntúa a cada jugador sumando sus partidos de la fecha:
| Acción | Puntos |
|---|---|
| Gol | +3 |
| Asistencia | +2 |
| Valla invicta (CS) | +2 |
| MVP | +3 |
| Autogol | -2 |
| Partido ganado por su equipo | +1 por partido |
El «jugador de la fecha» es el de mayor puntaje, siempre que sea positivo. Los empates se resuelven por goles, luego asistencias, MVPs, menos autogoles y, al final, por ID. Las estadísticas de partidos que no están «jugados» no cuentan. Las métricas de cada campo se detallan en Estadísticas.
El resumen automático
Spike puede publicar solo el resumen de cada fecha, pero únicamente si lo configuras: sin configuración no se publica nada. Un administrador u organizador lo hace con:
/resumen configurar mercado: Liga1 canal: #resumenes
Las opciones son canal, activo, jugador, equipo_ideal, tabla y copa. El canal puede ser de texto, de anuncios, un foro o un hilo. Sin ninguna opción, el comando muestra la configuración actual. Si lo pides con un canal donde Spike no puede enviar mensajes, insertar enlaces y adjuntar archivos, lo rechaza.
Una fecha de liga se considera terminada cuando todos sus partidos están en estado jugado, suspendido o aplazado, y al menos uno fue jugado. En la copa se aplica lo mismo por ronda, y los pases directos cuentan como cerrados. Cuando eso ocurre, Spike espera tres minutos antes de publicar, y cada resultado o estadística nueva de esa fecha reinicia la espera: así alcanza a llegar el detalle por jugador de los últimos partidos. Se publica una sola vez por fecha, y si el bot se reinicia retoma las pendientes y revisa las fechas cerradas en las últimas 48 horas. Las rondas de copa solo se publican con copa: true.
Para revisar antes de publicar, /resumen ver muestra una vista previa que solo ves tú, y /resumen publicar lo envía ahora aunque ya se haya publicado. En ambos, fecha empieza en 1 y, si no la indicas, usa la última fecha terminada.
Enviar el resumen desde el panel
En el panel, sección Partidos, el botón «Enviar resumen» abre una ventana para elegir la fecha (o la ronda de copa), el canal y las secciones. La vista previa se genera con las mismas imágenes que se publican, así que lo que ves es lo que sale. Cada sección es una imagen separada, en este orden:
- Resultados: todos los partidos con escudos y marcador. Siempre se incluye.
- Mejor equipo (solo liga): el de mejor rendimiento en esa fecha, con sus puntos, goles y su mejor resultado.
- Jugador y goleadores: el jugador de la fecha y hasta diez goleadores.
- Gráficas: goles a favor y en contra por equipo y puntos en la tabla, separando lo que ya tenían de lo ganado en la fecha.
- XI ideal: los tres mejores del ranking de la fecha. Aparece solo si hay al menos tres jugadores con estadísticas.
- Tabla y posiciones (solo liga): con los puestos que subió o bajó cada equipo.
Los canales disponibles son aquellos donde Spike puede publicar y donde tú también puedes escribir, e incluyen foros e hilos. En un canal normal el resumen es un mensaje; en un foro crea una publicación nueva cuyo título es el de la fecha, y en un hilo se escribe dentro de él. Si ya se había publicado esa fecha, la ventana lo indica con la etiqueta «Ya publicado» y el botón pasa a decir «Volver a enviar», que publica otro mensaje. La etiqueta «Fecha incompleta» avisa que aún quedan partidos sin resultado. Al abrir la ventana se preselecciona el canal configurado con /resumen configurar y, si no hay uno, el último que usaste en ese navegador.
Un detalle de uso: la vista previa se regenera cada vez que cambias de fecha o activas una sección, y cada usuario puede pedir hasta 8 por minuto. Si te topas con el límite, espera un momento y vuelve a intentar.
Errores comunes
- No aparece ninguna propuesta tras el partido. Revisa que activaste
/live activarcon la opciónmercado, que ambos equipos se identificaron (necesitan jugadores con Discord vinculado en la sala) y que existe un partido pendiente entre ellos. Si el partido ya figuraba como jugado, no hay propuesta. - El resumen sale sin jugador ni XI ideal. Los partidos se cargaron a mano y no tienen detalle por jugador. Propón esos partidos con
/resultado replay. - Un jugador falta en las estadísticas. Quedó en «Sin identificar». Pídele que use la sala con su Discord vinculado, o confirma y corrige sus totales con
/setstat. - El marcador sale invertido. Había una advertencia de orientación. Descarta y corrige, en lugar de confirmar a ciegas.
- La propuesta venció. Pasaron 48 horas. Genera otra con
/resultado replayo carga el resultado a mano. - No llega el resumen automático. Falta
/resumen configurar, el mercado está enactivo: false, queda un partido pendiente en la fecha o el canal perdió permisos. También puede estar ya publicado;/resumen publicarlo fuerza. - Los puntos del resumen no coinciden con la tabla. El «jugador de la fecha» usa su propia fórmula; la tabla del mercado usa 3, 1 y 0 por partido.
Preguntas frecuentes
¿Puede un DT proponer o confirmar un resultado?
No. Las propuestas las crea el bot y las confirma el staff. Los DTs gestionan fichajes y bajas, no el cierre de partidos.
¿Qué pasa si confirmo un partido que ya tenía resultado?
Lo reemplaza, y las estadísticas por jugador se corrigen en lugar de duplicarse. El mensaje de la propuesta te avisa antes con el marcador anterior.
¿Si edito el marcador después, cambian las estadísticas?
No. Cambiar los goles de un partido que sigue «jugado» no toca el detalle por jugador. Solo se revierte si lo dejas como pendiente, suspendido o aplazado.
¿Puedo publicar el resumen de una fecha vieja?
Sí, desde el panel o con /resumen publicar fecha: 3. El automático solo mira las fechas cerradas en las últimas 48 horas.
¿Hay que ser administrador para enviar el resumen?
Hace falta ser administrador u organizador del mercado. La configuración y el envío manual tienen el mismo requisito, y puedes publicar solo en canales donde tú también puedes escribir.
Más sobre partidos y replays en Partidos y replays, y para analizar un partido en detalle, el analizador web.