Casi todas las peleas de una liga de HaxBall nacen de una regla que no existía, que decía dos cosas distintas o que nadie sabía quién tenía que aplicar. Un buen reglamento no es largo: es concreto, medible y dice quién decide y con qué prueba. Esta guía recorre los temas que toda liga termina necesitando, con ejemplos de redacción, y al final tienes una plantilla para adaptar. Donde una regla se apoya en una función de Spike, está indicado; donde no, también.
Qué debe lograr un reglamento
Antes de escribir artículos conviene fijar tres criterios que sirven para revisar cada regla:
- Medible. «Llegar puntual» no se puede aplicar; «presentar a seis jugadores en la sala a más tardar diez minutos después de la hora fijada» sí. Si una regla necesita una opinión para saber si se cumplió, escribe quién da esa opinión.
- Con responsable. Cada regla nombra al rol que decide: el organizador, el comité o los dos DT de común acuerdo. Una regla sin responsable se discute en el canal general hasta que alguien se cansa.
- Con prueba. Para cada infracción posible, define qué evidencia vale: una replay, una captura del chat, un registro del bot. Lo que no se puede probar tampoco se puede sancionar de forma justa.
Una buena práctica es empezar por los casos que ya pasaron en tu comunidad: la última vez que un equipo no se presentó, el último desempate discutido, la última acusación de cuenta doble. Cada artículo del reglamento debería responder a un caso real, no a uno imaginado. Y es mejor tener veinte reglas claras que cincuenta ambiguas.
Formato: liga, copa y grupos
Lo primero que fija un reglamento es cómo se compite. Hay tres formatos habituales y conviene escribir cuál usas, cuántos equipos entran y cómo se decide el campeón:
- Liga (todos contra todos). Cada equipo juega contra los demás, a una o dos vueltas. Es el formato más justo para pocos equipos y el que mejor premia la regularidad. Escribe cuántas fechas hay y qué pasa con las fechas sobrantes si el número de equipos es impar (descansa uno por fecha).
- Copa (eliminación directa). Un partido por ronda y avanza el que gana. Define cómo se rompe un empate (lo habitual son penales) y si hay partido por el tercer puesto. Si los equipos no son una potencia de dos, algunos pasan directo a la ronda siguiente.
- Fase de grupos y eliminatorias. Grupos de pocos equipos que clasifican a una llave. Es lo más vistoso, pero exige definir cuántos clasifican por grupo y cómo se desempata entre grupos distintos.
En Spike, un mercado es una competición con sus propios equipos, tabla y estadísticas, y /fixture crear arma un calendario de liga (de 1 a 50 fechas) o una copa de hasta 64 equipos, con sorteo, rondas con pase directo cuando hace falta y tercer puesto opcional. Un empate en la copa se resuelve cargando penales. Spike no tiene fase de grupos ni partidos de ida y vuelta en la copa: si quieres grupos, lo práctico es un mercado por grupo y, para la fase final, otro mercado con los clasificados. Si tu reglamento promete algo así, escríbelo como un procedimiento manual del staff y no como algo automático.
Planteles, pases y ventanas
Un reglamento de planteles responde cuatro preguntas: cuántos jugadores como máximo (y como mínimo), cuándo se puede fichar, quién autoriza un pase y qué pasa con quien juega en dos equipos. Redáctalas así:
- Tamaño. Máximo de jugadores inscritos por equipo. Si quieres un mínimo para poder presentarse, defínelo también, y define cuántos deben estar en la sala para empezar un partido.
- Ventana de pases. Fechas en que se puede fichar y dar de baja. Fuera de la ventana, solo se permiten casos excepcionales aprobados por el organizador (lesión prolongada, abandono de la liga).
- Consentimiento. Nadie queda en un equipo sin aceptarlo. Es la mejor defensa contra fichajes «por sorpresa» y contra equipos que acumulan nombres para parecer más grandes.
- Un jugador, un equipo. Salvo que tu liga tenga divisiones y permita jugar en una y en otra, escribe que cada jugador pertenece a un solo equipo por competición.
En Spike, el tope de jugadores se define en /setup-mercado (de 1 a 32 por equipo, con un límite propio opcional por equipo al registrarlo con /add-equipo). El fichaje lo inicia el DT o SubDT con /fichar y el jugador debe aceptarlo con un botón en el plazo de 24 horas; Spike no deja fichar a alguien que ya está en un equipo del mismo mercado ni pasar el tope. Las tiers añaden cupos por nivel, útiles si tu reglamento limita cuántos jugadores «top» puede tener cada equipo.
La ventana de pases es manual: /edit-mercado con accion: cerrado bloquea fichajes, bajas y renuncias (y cancela las solicitudes pendientes), y con abierto se reabre. Spike no abre ni cierra el mercado por fecha, así que el reglamento debe decir cuándo lo hace el organizador. Ojo con los detalles: /expulsar no revisa si el mercado está cerrado, y Spike no impone un mínimo de plantel al fichar (las inscripciones de equipos con /inscripciones abrir sí permiten fijar un mínimo y un máximo por plantilla). Los comandos están detallados en Fichajes y bajas y Mercados y equipos.
Puntos y desempates
Un reglamento tiene que decir cuántos puntos da cada resultado y en qué orden se desempata. Lo habitual es 3 puntos por victoria, 1 por empate y 0 por derrota. Para el desempate, estos son los criterios más usados; lo importante es elegir un orden y no cambiarlo a mitad de temporada:
- Diferencia de gol.
- Goles a favor.
- Resultado del enfrentamiento directo.
- Menos tarjetas o mejor conducta.
- Partido de desempate o sorteo, solo si hay un título o un ascenso en juego.
Spike calcula la tabla con 3 puntos por victoria y 1 por empate y ordena por puntos, diferencia de gol y goles a favor (y alfabéticamente por nombre del equipo si siguen igualados). No contempla el enfrentamiento directo ni las tarjetas. Si tu reglamento los usa, decide qué pasa cuando la tabla de Spike y el reglamento no coinciden: la salida más simple es escribir que la tabla del bot es orientativa y que la clasificación oficial la publica el organizador al cierre.
Un detalle técnico que evita sorpresas: cada vez que se registra un resultado, la tabla se recalcula desde cero con los partidos jugados, de modo que un ajuste manual de estadísticas de equipo no sobrevive al siguiente resultado. Si necesitas corregir la tabla, corrige el resultado del partido. Solo cuentan los partidos con estado «jugado»; los suspendidos o aplazados no suman.
Horarios, aplazamientos y W.O.
Los horarios son la mayor fuente de conflictos, así que merecen reglas precisas:
- Hora y zona horaria. Escribe siempre la zona horaria de referencia. Si tu comunidad abarca varios países, publica la hora con la etiqueta de hora de Discord.
- Tolerancia. Cuántos minutos se espera a un equipo incompleto y qué número de jugadores se considera «equipo presente».
- Aplazamientos. Quién puede pedirlos, con cuánta anticipación y cuántas veces por temporada. Un aplazamiento sin fecha de recuperación es un W.O. en cámara lenta, así que fija un plazo máximo.
- Falta de presentación (W.O.). Qué resultado se asigna, qué pasa si faltan los dos equipos y qué ocurre tras repetidos W.O. (por ejemplo, la baja de la liga).
En Spike, el día y la hora se ponen en el panel (sección Partidos) o con /fixture editar y la opción dia_hora (por ejemplo 12/10 21:00; la zona por defecto es UTC-5 y se cambia con utc). Spike avisa 30 minutos antes en el canal de cada equipo que tenga uno propio, si el mercado tiene los avisos activos. Para los W.O. existe /wo, que pide el partido, el ganador (equipo 1, equipo 2 o ninguno) y un motivo opcional. El ganador recibe por defecto 3-0, un valor configurable de 1 a 20 con /sancion config; si no se presenta ninguno, el partido queda suspendido sin resultado. Un W.O. con ganador cuenta en la tabla como un partido jugado, y cualquier W.O. descuenta partidos a los jugadores suspendidos. Lo que Spike no hace es detectar la ausencia: la decisión es del organizador, y por eso el reglamento debe decir en qué momento exacto puede declararla.
Inactividad, desconexiones y lag
Inactividad
Un equipo con jugadores que desaparecen perjudica a todos los demás. Define inactividad en términos medibles: «tres fechas seguidas sin jugar ni avisar» en lugar de «mucho tiempo sin aparecer». Escribe qué debe hacer el DT (avisar, reemplazar al jugador) y la consecuencia (baja del jugador, libera su cupo). Spike no detecta la inactividad por sí mismo, pero te da dos herramientas para comprobarla: las estadísticas de partidos jugados (/stats-jugador y /top stat: partidos, siempre que cargues las estadísticas de cada partido) y las bajas con /baja o, sin consentimiento del DT, /expulsar.
Desconexiones y lag
Una desconexión en HaxBall es inevitable de vez en cuando. Lo que evita el conflicto es haber decidido antes qué ocurre. Un esquema razonable:
- El jugador desconectado tiene un tiempo máximo para volver (escríbelo en minutos).
- Mientras tanto, el partido se pausa si lo permite la sala; si no, sigue con quien esté.
- Si no vuelve, el equipo decide entre seguir con un jugador menos o sustituirlo por alguien del plantel.
- Si la caída afecta a una jugada decisiva (un gol, un penal), el partido solo se repite cuando ambos DT o el organizador lo aprueban con la replay a la vista.
- Un partido interrumpido se reanuda con el marcador y el tiempo que quedaban, o se repite completo: elige una opción y escríbela.
Para distinguir un lag real de una excusa, el analizador de Spike muestra el ping de cada jugador durante la replay (promedio, mínimo, máximo y qué porción del tiempo estuvo por encima de 100 ms), las entradas y salidas de la sala en la pestaña Eventos y las pausas del partido. Son datos útiles, no veredictos: el ping que ve la grabación es el que la sala midió, y un ping alto no prueba por sí solo mala fe.
Replays .hbr2 como prueba
La replay es la prueba más fuerte que existe en HaxBall, pero solo si el reglamento dice cómo se obtiene. Cualquier jugador puede grabar lo que ve con el botón Rec del menú de la sala, y una sala alojada con la API de HaxBall puede grabar por código; la guía Cómo grabar y compartir replays lo explica. Para el reglamento, tres decisiones bastan:
- Quién graba. Lo ideal es que el host de la sala grabe cada partido y que además grabe un jugador por equipo. Escribe que la grabación debe empezar antes del saque inicial y detenerse al terminar, porque la que se cierra a mitad de partido es la que nadie puede usar.
- Quién la entrega y cuándo. Por ejemplo, el equipo local sube la replay dentro de las 24 horas siguientes. Sin replay, el resultado puede quedar en revisión.
- Qué se hace con ella. La replay se revisa solo cuando hay disputa, o se usa siempre para cargar el resultado.
Con Spike, /resultado replay partido: 12 archivo: partido.hbr2 analiza la replay y publica una propuesta de resultado con goles y asistencias que un administrador u organizador confirma o descarta con un botón (si no se resuelve, vence a las 48 horas). Si la grabación contiene varias partes, por ejemplo un partido interrumpido y reiniciado, la opción descartar permite ignorar las que no valen. Si la sala firma la identidad de Discord de cada jugador en la grabación, Spike la usa; si no, empareja los apodos con las plantillas y deja «sin identificar» a quien no coincide, y esos jugadores no suman estadísticas. Por eso el reglamento debería exigir que el nick de la sala sea reconocible respecto al del Discord. Un dato más: el analizador identifica a los jugadores por nick, así que quien se desconecta y vuelve con el mismo nombre se suma como la misma persona. Para revisar una jugada dudosa, la guía Cómo analizar una replay explica el reproductor, la cámara y los eventos.
Fair play, multicuentas y disciplina
Esta es la parte del reglamento que más se cita en las discusiones, así que debe ser la más concreta. Separa tres cosas:
Fair play
Lista de conductas prohibidas con ejemplos: insultos y discriminación, trampas (scripts, ayuda externa), autogoles intencionales, bloquear el saque, abandonar un partido perdido y filtrar información del rival. Para cada una, indica el rango de sanción: de una advertencia a la expulsión de la liga.
Multicuentas
Escribe una regla simple: una persona, una cuenta de Discord y un nick de HaxBall por temporada. Los cambios de nick se avisan antes al organizador. Prohíbe jugar con la cuenta de otra persona, aunque sea con permiso. Spike no detecta multicuentas: lo que sí aporta es que el fichaje exige que el propio jugador acepte y que el sistema registra cada pase (sección Historial del panel), y el analizador muestra entradas, salidas y kicks de la sala, que ayudan a reconstruir quién estuvo en cada partido. El juicio final es humano, por eso la regla debe indicar qué indicios bastan para abrir una investigación y cuál es la sanción si se confirma.
Disciplina
Define el sistema de tarjetas: cuántas amarillas suspenden, cuántos partidos se pierde por roja directa y quién puede aplicar las sanciones. Con /sancion puedes registrar una amarilla, una roja, una suspensión por un número de partidos o una advertencia (que queda solo como registro). Los valores por defecto del mercado son: 3 amarillas acumuladas suspenden 1 partido y una roja directa suspende 1 partido, ajustables con /sancion config. La suspensión se descuenta sola cuando un partido del equipo del jugador pasa a jugado (o se define por W.O.), y si indicas el partido donde ocurrió la roja, ese no se descuenta: la suspensión empieza en el siguiente. Ten presente que Spike no impide que un suspendido juegue: si sus datos aparecen en un partido cargado, deja una alerta visible en la sección Disciplina del panel para que el organizador actúe.
Apelaciones y roles del staff
Una sanción sin camino de apelación se vive como arbitrariedad. Escribe un proceso corto:
- Quién puede apelar (el jugador sancionado o su DT) y en qué plazo, por ejemplo 48 horas.
- Dónde se presenta: un canal o formulario, con la evidencia adjunta.
- Quién resuelve: un organizador distinto del que aplicó la sanción, o un comité de tres personas.
- En cuánto tiempo responde y si la decisión es definitiva.
Para ejecutar el resultado, /sancion ver muestra el historial de un jugador con el número de cada sanción, y /sancion quitar anula una por su número: deja de contar, pero queda en el historial, y la sección Disciplina del panel muestra quién la aplicó y quién la anuló. La sección Auditoría del panel (visible para quien tiene permiso de Gestionar servidor) conserva durante 180 días quién hizo qué en el bot, incluidas las sanciones y los cambios de reglas, lo que sirve para responder cuando alguien dice «a mí me sancionaron distinto».
Respecto a los roles, Spike solo distingue a los administradores, al rol de organizador de cada mercado y a los DT y SubDT de cada equipo. Si tu liga tiene árbitros, un comité disciplinario o moderadores, esos roles viven en Discord y sus decisiones las ejecuta un organizador. Escribe qué puede hacer cada rol: quién abre y cierra el mercado, quién carga resultados, quién aplica sanciones, quién resuelve apelaciones y quién modifica el reglamento.
Publicar y versionar
Un reglamento que nadie encuentra no existe. Publícalo en un canal de solo lectura, fíjalo y pide que cada DT confirme que lo leyó al inscribirse. Para mantenerlo ordenado:
- Numera los artículos, para poder citarlos («art. 7.2») en las resoluciones.
- Pon una versión y una fecha («v1.2, vigente desde el 12/10/2026») al comienzo.
- Guarda un registro de cambios corto: qué cambió y por qué.
- Establece que los cambios rigen desde la próxima fecha o la próxima temporada, nunca retroactivamente, salvo por error evidente.
- Anuncia cada versión nueva en el canal de novedades, no solo en el documento.
Las reglas que Spike aplica de forma automática (amarillas, partidos por roja, goles del W.O.) se guardan por mercado: cuando cambies el reglamento, cambia también esos valores con /sancion config y deja la fecha escrita. Un buen momento para publicar una versión nueva es el cierre de temporada con /temporada cerrar, que guarda la tabla final y reparte los títulos antes de empezar de nuevo.
Qué regla apoya cada función de Spike
Resumen de lo que está automatizado y de lo que sigue dependiendo del staff:
| Regla | Función de Spike | Queda en manos del staff |
|---|---|---|
| Formato de liga o copa | /fixture crear | Grupos, ida y vuelta, reglas de clasificación |
| Tope de plantel y cupos por nivel | /setup-mercado, /add-equipo, tiers | Mínimo de jugadores, casos excepcionales |
| Ventana de pases | /edit-mercado (abierto o cerrado) | Abrir y cerrar en la fecha |
| Puntos y desempate | Tabla: puntos, diferencia, goles a favor | Enfrentamiento directo, tarjetas |
| Horarios y avisos | /fixture editar, avisos 30 minutos antes | Tolerancias y plazos de aplazamiento |
| W.O. | /wo | Declararlo en el momento correcto |
| Replay como prueba | /resultado replay, analizador | Quién graba y quién entrega |
| Tarjetas y suspensiones | /sancion, panel Disciplina | Evaluar la falta y aplicar la sanción |
| Apelaciones | /sancion quitar, Auditoría | El proceso y quién resuelve |
| Inactividad y multicuentas | Estadísticas, historial de pases | Detectar, investigar y sancionar |
Plantilla para adaptar
Copia el texto, reemplaza lo que está entre corchetes y borra lo que no aplique. Los números son ejemplos de redacción, no recomendaciones del juego: ajústalos a tu comunidad.
REGLAMENTO DE [NOMBRE DE LA LIGA] - versión [1.0], vigente desde [fecha] 1. FORMATO 1.1 La competición es una [liga a una vuelta / copa / liga más eliminatorias] con [N] equipos. 1.2 El campeón es [el primero de la tabla / el ganador de la final]. 1.3 En la copa, un empate se define por penales. 2. PLANTELES Y PASES 2.1 Cada equipo inscribe entre [mínimo] y [máximo] jugadores. 2.2 Los pases se realizan solo con la ventana abierta, del [fecha] al [fecha]. 2.3 Todo fichaje requiere la aceptación del jugador. 2.4 Cada jugador pertenece a un solo equipo por competición. 3. TABLA 3.1 Victoria 3 puntos, empate 1, derrota 0. 3.2 Desempate: diferencia de gol, goles a favor, [enfrentamiento directo], [sorteo]. 3.3 La tabla oficial la publica el organizador al cierre de cada fecha. 4. HORARIOS Y W.O. 4.1 Los horarios se publican en la hora de [zona horaria]. 4.2 Se espera [10] minutos a un equipo con menos de [5] jugadores. 4.3 Pasado ese plazo, el organizador declara W.O. y asigna [3-0] al equipo presente. 4.4 Un equipo puede aplazar [1] partido por temporada, avisando con [24] horas y recuperando antes del [fecha]. 4.5 Tras [2] W.O. el equipo queda fuera de la competición. 5. INACTIVIDAD 5.1 Un jugador es inactivo tras [3] fechas sin jugar ni avisar a su DT. 5.2 El DT debe reemplazarlo en la siguiente ventana de pases. 6. DESCONEXIONES 6.1 El jugador desconectado tiene [5] minutos para volver. 6.2 El partido se repite solo si ambos DT o el organizador lo aprueban viendo la replay. 6.3 Un partido interrumpido se [reanuda con el marcador y tiempo restante / repite completo]. 7. REPLAYS 7.1 El host graba cada partido desde antes del saque inicial. 7.2 El equipo local entrega la replay en un plazo de [24] horas. 7.3 La replay es la prueba principal en cualquier disputa. 7.4 El nick en la sala debe ser reconocible respecto al de Discord. 8. CONDUCTA 8.1 Está prohibido insultar, discriminar, hacer trampa, anotar en contra a propósito o abandonar un partido. 8.2 Una persona, una cuenta de Discord y un nick por temporada. Los cambios de nick se avisan. 8.3 Las multicuentas se sancionan con [expulsión de la liga] y anulación de los resultados afectados. 9. DISCIPLINA 9.1 [3] amarillas acumuladas suspenden [1] partido. La roja directa suspende [1] partido o más según la gravedad. 9.2 Las sanciones las aplica el organizador y se registran con su motivo. 10. APELACIONES 10.1 Se presentan en [canal] dentro de [48] horas, con la evidencia adjunta. 10.2 Las resuelve [un organizador distinto / el comité] en [72] horas. La decisión es definitiva. 11. STAFF 11.1 Administración: [permisos]. Organizadores: [permisos]. Comité: [permisos]. 12. CAMBIOS AL REGLAMENTO 12.1 Se anuncian en [canal] y rigen desde la siguiente fecha. No son retroactivos.
Preguntas frecuentes
¿Cuántas reglas debe tener un reglamento?
Las que puedas aplicar. Para una liga pequeña, una página con los temas de esta guía alcanza. Añade artículos cuando un caso nuevo lo pida, no antes.
¿Puedo cambiar el reglamento a mitad de temporada?
Solo para corregir errores o lagunas, con anuncio previo y sin efecto retroactivo. Cambiar el desempate o los puntos con la temporada en marcha es la forma más rápida de perder la confianza de los equipos.
¿Spike aplica el reglamento por mí?
Aplica las partes que son datos: planteles, mercado abierto o cerrado, tabla, suspensiones que se descuentan y resultados propuestos desde replays. No evalúa conductas, no detecta multicuentas ni inactividad, y no decide apelaciones. Para cada regla de la tabla de arriba está indicado qué hace y qué no.
¿Qué hago si el reglamento y la tabla del bot no coinciden?
Decide cuál manda y escríbelo. Lo más simple es que el reglamento tenga siempre la última palabra y que el organizador corrija el resultado en el fixture para que la tabla quede alineada.
¿Cómo organizo la liga completa?
El reglamento es una pieza. La guía Cómo organizar una liga de HaxBall en Discord recorre el resto: mercado, equipos, fixture y cierre de temporada. Para los resultados y las tablas, mira Partidos y replays y Estadísticas, y para empezar, el panel web.