Una liga de HaxBall en Discord tiene siempre las mismas piezas: equipos, un mercado de pases, un calendario, resultados y una tabla. Esta guía recorre una temporada completa con Spike, en el orden en que conviene configurarla, con los comandos reales y los detalles que suelen generar dudas.
Antes de empezar
Spike se agrega desde el panel web: inicias sesión con Discord y el panel te muestra los servidores de los que eres dueño o en los que tienes permiso de Administrador o Gestionar servidor, con la opción de invitar al bot. Antes de configurar nada, conviene tener creados en Discord:
- Un canal de fichajes, donde se publican las solicitudes, y uno de bajas, donde se anuncian las salidas.
- Un rol de Director Técnico (DT) y, si lo vas a usar, uno de Sub Director Técnico (SubDT).
- Un rol por equipo. Opcionalmente, un canal propio para cada equipo (ahí llegan los recordatorios de partidos).
- Un rol de organizador si quieres que otras personas administren la liga sin ser administradoras del servidor.
Si tu comunidad no habla español, cambia el idioma de las respuestas con /language (Español, English o Português). Los nombres de los comandos se escriben siempre en español.
Cada comando tiene un nivel de permiso. En resumen:
| Quién | Qué puede hacer |
|---|---|
| Administrador | Crear mercados y equipos, abreviaturas, idioma del bot. |
| Administrador u Organizador | Abrir y cerrar el mercado, reiniciarlo, expulsar jugadores, fixture y resultados, transmisiones en vivo. |
| Gestionar servidor | Tiers, plantillas de anuncios y correcciones de estadísticas. |
| DT / SubDT | Fichar y dar de baja en su equipo; el DT nombra al SubDT. |
| Todos | Renunciar, consultar estadísticas, tabla y tops, analizar replays. |
Crear el mercado
En Spike, un mercado es una competición con su propia configuración, sus equipos y sus estadísticas. Un servidor puede tener varios (por ejemplo, Primera y Segunda división) y cada uno funciona por separado. Se crea con /setup-mercado:
/setup-mercado nombre: Liga1 canal_fichajes: #fichajes canal_bajas: #bajas rol_director_tecnico: @DT max_jugadores: 15
Además de esos cinco datos obligatorios puedes indicar el rol de SubDT, el rol de organizador y activar los avisos: recordatorios en el canal de cada equipo 30 minutos antes de un partido del fixture. El límite de jugadores va de 1 a 32 por equipo.
El mercado se crea abierto. Si todavía estás armando equipos y no quieres que empiecen los fichajes, ciérralo con /edit-mercado nombre: Liga1 accion: cerrado y ábrelo el día que arranque el libro de pases. Ten en cuenta que al cerrar un mercado se cancelan las solicitudes de fichaje pendientes. Con /mercados cualquiera puede ver la configuración y el estado de todos los mercados. Todos los comandos están detallados en Mercados y equipos.
Equipos, abreviaturas y límites
Cada equipo es un rol de Discord registrado con /add-equipo. Al registrarlo puedes asignarle un canal propio y un límite de jugadores distinto al del mercado (útil si un equipo juega con plantel reducido). Si hay más de un mercado, tienes que indicar a cuál pertenece. Para cambiar esos datos después está /edit-equipo, y /del-equipo lo quita del mercado sin borrar el rol.
La abreviatura es lo que aparece en el apodo de cada jugador fichado, con el formato «ABR | Nick». Se define con /add-abreviacion (hasta 10 caracteres) y tiene dos modos: todos reescribe los apodos de quienes ya están en el equipo y guardar la aplica solo a los fichajes que vengan. Si la defines antes de abrir el mercado, no necesitas reescribir nada.
Cada DT puede nombrar a un SubDT con /set-subdt: tiene los mismos permisos de fichajes y bajas. Si el equipo ya tenía uno, el reemplazo pide confirmación. Por último, con /plantilla puedes subir un fondo propio para los anuncios de fichajes, bajas, renuncias y expulsiones (PNG, JPG o WEBP de hasta 8 MB, idealmente de 1200 × 500 px).
Tiers para equilibrar planteles
Las tiers son categorías de jugadores con un cupo por equipo. Si defines una tier HT1 con límite 3, ningún equipo puede tener más de tres jugadores HT1: Spike lo valida en cada fichaje y bloquea el que se pase del cupo.
- Crea las categorías con
/add-tier nombre: HT1 limite: 3. - Asigna a cada jugador con
/set-tier jugador: @usuario tier: HT1 accion: asignar. - Revisa la lista con
/tier-list tier: HT1antes de abrir el mercado.
El orden importa: asigna las tiers antes de que empiecen los fichajes, porque la validación ocurre en el momento de fichar. Las tiers pertenecen a un mercado y sobreviven a un reinicio de temporada. Más detalles en Tiers.
Fichajes, bajas y salidas
El fichaje en Spike es con consentimiento. El DT usa /fichar jugador: @usuario y el bot publica en el canal de fichajes una solicitud con los botones Aceptar y Rechazar. Solo el jugador invitado puede responderla, y la solicitud vence a las 24 horas. Cuando acepta, recibe el rol del equipo, su apodo pasa a «ABR | Nick» y se publica el anuncio animado.
El fichaje se bloquea en tres casos:
- el mercado está cerrado;
- el plantel ya llegó a su límite de jugadores;
- el cupo de la tier del jugador en ese equipo está completo.
Las salidas tienen tres caminos, y todas se anuncian en el canal de bajas:
/baja: el DT o SubDT saca a un jugador de su equipo. El rol se revoca al instante./renuncia: el propio jugador se va, con confirmación. No está disponible para el DT o el SubDT, ni para quien tiene varios equipos en el mismo mercado./expulsar: un administrador u organizador saca a un jugador sin su consentimiento.
Si diriges equipos en más de un mercado, agrega la opción mercado a /fichar, /baja y /set-subdt. Todo está en Fichajes y bajas.
Fixture y resultados
El calendario se genera con /fixture crear mercado: Liga1 fechas: 10. Spike arma un todos contra todos (round-robin): sortea el orden de los equipos, reparte los partidos de cada fecha para que ningún equipo juegue siempre en el primer turno y, si el número de equipos es impar, cada fecha uno queda libre. Hacen falta al menos dos equipos, y se pueden pedir entre 1 y 50 fechas.
Para elegir la cantidad de fechas:
- Con 8 equipos, 7 fechas son una vuelta completa: todos se enfrentan una vez.
- Con 7 equipos, una vuelta también son 7 fechas, porque en cada una descansa un equipo.
- Si pides el doble (14 en esos ejemplos), el calendario sigue con la segunda vuelta y la localía se invierte.
Si el mercado ya tenía fixture, Spike pide confirmación antes de reemplazarlo. Como el orden se sortea, generar de nuevo da otro calendario: publícalo antes de la primera fecha y no lo regeneres a mitad de torneo. Con /fixture ver cualquiera lo consulta fecha por fecha.
Los resultados se cargan con /fixture set-resultado, indicando el ID del partido, los goles del local y del visitante y el estado: jugado, suspendido o aplazado. Cada vez que se registra un resultado, la tabla del mercado se recalcula desde cero con todos los partidos jugados (3 puntos por victoria, 1 por empate). Por eso, si usas el fixture, corrige los resultados ahí: un ajuste manual con /setteamstat se pierde en el siguiente recálculo.
Desde la sección Partidos del panel también puedes cargar resultados y ponerle día y hora a cada partido. Esa hora es la que usan los avisos: si el mercado los tiene activos y el equipo tiene canal propio, Spike avisa 30 minutos antes de cada partido pendiente. Más en Partidos y replays.
Estadísticas, tabla y replays
Spike lleva por jugador goles (G), asistencias (A), G+A, MVPs, vallas invictas (CS), autogoles (OG) y partidos jugados (PJ), y por equipo el récord completo. Los comandos de consulta están abiertos a todos:
/stats-jugador: ficha del jugador, con equipo actual, tier e historial de fichajes./stats-equipo: partidos, victorias, empates, derrotas, goles y puntos de un equipo./top stat: goles: ranking paginado (goles, asistencias, mvps, cs, og, partidos o gmasa)./tabla: la tabla de posiciones como imagen, con diferencia de gol y últimos cinco resultados./compare: dos jugadores lado a lado.
Para cargar datos que no pasaron por el bot, /setstat suma o reemplaza valores de un jugador. Las replays se analizan con /analyze, adjuntando el archivo .hbr2 o .hbr (hasta 8 MB): devuelve marcador, posesión, tiros, duración, línea de goles, penales y planteles, y detecta partidos por mitades. Si quieres ver el partido completo con reproductor, mapas de calor y red de pases, súbelo al analizador web; la guía Cómo analizar una replay de HaxBall lo explica paso a paso.
Para seguir un partido en directo, /live activar con el enlace de la sala transmite en el canal el inicio y el final, cada gol con su minuto y asistencia y el marcador final. Si indicas el mercado, las estadísticas se suman solas. La sala tiene que estar activa y ser pública, y la transmisión dura como máximo una hora o hasta /live detener. Las métricas están en Estadísticas.
Panel web y cierre de temporada
Buena parte de lo anterior también se gestiona desde el panel web, que agrupa las secciones en Competición (Partidos y Tabla), Estadísticas (Tops, Comparador y Replay Stats), Mercados (Mercados, Plantillas e Historial) y Equipos (Equipos, Tiers y Jugadores). Para la comunidad existe además una página pública por mercado, que se ve sin iniciar sesión: /share/ID-del-servidor abre el primer mercado y /share/ID-del-servidor/Liga1 uno en particular. Muestra los partidos por fecha, la tabla y los tops de goles, asistencias, G+A, MVPs y vallas invictas. El ID del servidor se copia desde Discord con el modo desarrollador activado.
Al terminar la temporada no hace falta configurar todo de nuevo. /reset-mercado borra los datos y conserva la configuración, los roles, los canales y las tiers. Puedes elegir qué reiniciar: estadísticas, equipos e historial de fichajes van por separado, así que puedes, por ejemplo, empezar la temporada nueva con las estadísticas en cero y los mismos equipos. /del-mercado, en cambio, elimina el mercado con todos sus datos y no se puede deshacer; los roles y canales de Discord quedan intactos.
Si algo no funciona como esperas,/helpmuestra el uso de cada comando y/bugenvía un reporte al equipo de Spike (uno cada 5 minutos). Ver Misceláneos.