Scoreboards Documentation

Everything you need to create and manage Discord leaderboards

  1. Añade el bot — Invita a Scoreboards a tu server de Discord con el enlace de invitación de la página principal.
  2. Pasa por el asistente — Usa /get started: un formulario rápido para ponerle nombre al ranking, elegir el tipo y, si quieres, un canal de logs — y se publica directamente en el canal. Los rankings de puntos, Highscore y Time arrancan con un par de entradas de ejemplo para que veas cómo se comporta el ranking; desaparecen en cuanto llega la primera puntuación real.
  3. Asigna los roles — Abre el panel para definir el rol <arg>bot permission</arg> (quién puede gestionar rankings) y el rol <arg>validator</arg> (quién puede aprobar envíos).
  4. Crea tu primer ranking — Usa /leaderboard create para montarlo: elige nombre y tipo, y el resto lo ajustas en el formulario que se abre.
  5. Publícalo — Usa /leaderboard show en un canal para colocar el ranking interactivo, con botones de envío y paginación.

Al crear un ranking con /leaderboard create eliges entre seis tipos:

Classic

Suma o resta puntos a un total acumulado. Ideal para juegos en los que la puntuación se va sumando partida a partida.

Highscore

Guarda solo la mejor marca de cada jugador. Las puntuaciones anteriores más bajas se sustituyen solas.

Time (Speedrun)

Envía tiempos como 00:00:00 (centésimas) o 00:00:000 (milisegundos): el formato de cada ranking se elige en el panel, y los rankings nuevos usan milisegundos por defecto. Ordena de menor a mayor si gana el más rápido, o de mayor a menor si gana el que más aguanta.

ELO - Ranked

Sistema ELO competitivo, en 1v1 o en equipos de 2v2 a 8v8. Envía el resultado del match y el rating de cada participante se actualiza solo.

Rating

Los miembros suben imágenes y la comunidad las vota con estrellas (1–10). La media de los votos es la puntuación. Perfecto para concursos de arte y retos creativos.

League

Ranking por puntos basado en matches, para fútbol, baloncesto o FIFA. Configuras los puntos por victoria, empate y derrota (3/1/0 por defecto) y el marcador de cada match (por ejemplo, 3-1).

Gestión de rankings

ComandoDescripciónPermiso
/leaderboard createCrea un ranking nuevo — elige nombre y tipo, y ajusta el orden y más en el formularioAdmin / Bot Permission
/leaderboard showMuestra el ranking en el canal actual, con botones interactivosAdmin / Bot Permission
/leaderboard settingsAbre el panel para gestionar los ajustes de este scoreboard (orden, visibilidad, encabezados, modo de vista, configuración de ELO y más)Admin / Bot Permission
/leaderboard deleteBorra un ranking y todos sus datos para siempre (pide confirmación)Admin / Bot Permission

Envíos de puntuaciones y matches

ComandoDescripciónPermiso
/scoreEstablece o ajusta la puntuación, el ELO o el tiempo de un jugador. Elige la clasificación y luego Establecer o Ajustar en el formulario. Las clasificaciones de valoración de imágenes no se incluyen.Admin / Bot Permission

Configuración

ComandoDescripciónPermiso
/get startedAbre el asistente de configuración inicialAdmin
/helpConsulta la ayuda interactiva con todos los temas disponiblesTodos
/delete_my_dataBorra de forma permanente los rankings personales y las puntuaciones de tu propio espacio (requiere confirmación)Todos

Economía (beta)

La economía no tiene comandos. Los miembros abren la página de la tienda del servidor para ver su saldo, comprar roles, emojis de tablero y colores de nombre, y desplegar cualquier pago para ver cómo se calculó. Los admins la encienden, ponen precios y dan o quitan moneda en el panel, en Economía.

Hay dos formas de enviar:

  • En Discord, pulsa el botón de envío del mensaje del ranking: se llama Submit score en Classic/Highscore/Time, Submit result en ELO y League, y Submit image en Rating. El bot abre el modal que corresponda: entrada de puntuación, selector de jugador y ganador, selector de jugador y marcador, o un nombre junto con la propia imagen. En un ranking por equipos, los selectores te piden la alineación completa de cada bando en vez de un solo jugador, y un ranking free-for-all lleva un botón Report result en su lugar.
  • Desde la web, abre el ranking y pulsa Submit para ese mismo flujo: es la única vía que admite un nombre personalizado, para jugadores que no están en tu servidor de Discord.

Proceso de revisión

  1. El envío se publica en el canal de logs configurado (si lo hay).
  2. Un validador o administrador pulsa Approve o Reject. En un partido de ELO o League también pueden aprobar los jugadores que participaron: basta con que el rival confirme el resultado, así que un servidor no necesita rol de validador para que los partidos avancen. Quien reportó el partido no puede aprobar su propio reporte, y solo esa persona puede rechazarlo.
  3. Si se rechaza, quien lo envió recibe un DM con el motivo.
  4. Si se aprueba, el ranking se actualiza al instante.

Aprobación automática

Cada ranking puede aprobar los envíos automáticamente pasado el tiempo que elijas: desactivada, al instante, 1 hora, 3 horas, 24 horas, 3 días o 7 días. En los rankings ELO son 24 horas por defecto.

Anular una puntuación

Los admins y los validadores pueden anular una puntuación ya aprobada: haz clic derecho en el mensaje del envío y elige «Cancel Review». Eso revierte el cambio de puntuación y hay que indicar un motivo.

El tipo de ranking ELO - Ranked ordena a los jugadores por nivel con un sistema de rating ELO, en 1v1 o en equipos de hasta ocho por bando.

Cómo funciona

  • Cada jugador arranca con un ELO inicial configurable (1200 por defecto).
  • Un match puede acabar en victoria, derrota o empate.
  • Los ratings se calculan con un factor K de 32.
  • El rating de todos los participantes se actualiza a la vez en cuanto se aprueba el resultado.

Matches por equipos (2v2 – 8v8)

Los rankings ELO y League pueden tener un tamaño de equipo fijo: lo eliges al crear el ranking o lo cambias después en Match format, dentro del panel. A partir de ahí, cada match de un ranking 3v3 se juega tres contra tres, y la clasificación sigue siendo individual.

En ELO, el resultado esperado de cada equipo sale de su rating medio, y el cambio se aplica a todos sus integrantes: ganar a un equipo más fuerte da la misma subida a todo el bando vencedor. En League, cada jugador del equipo ganador se lleva los puntos de victoria, y todo el equipo perdedor, los de derrota.

Queue de matchmaking (Beta)

Si el botón de queue está activado en el ranking, los jugadores pueden pulsarlo para entrar en la queue de matchmaking. El sistema junta a jugadores con un ELO parecido usando un algoritmo de ventana que se va ampliando. Cuando hay match se crea un hilo con botones para que la comunidad vote el resultado. Si en 5 minutos no aparece rival, la entrada en la queue caduca.

En un ranking por equipos, la queue espera a que haya gente suficiente para llenar los dos bandos (seis para un 3v3) y luego los reparte en dos equipos con la media de rating lo más pareja posible, de forma que el mejor y el peor acaben enfrentados. Todos tienen que pulsar Ready; quien no lo haga se queda fuera y el resto vuelve a la queue conservando su sitio.

Cada equipo tiene su propio canal de voz para hablar de táctica sin que el rival escuche: solo ves el canal de tu equipo y solo puedes entrar en ese. Los dos canales desaparecen cuando el match se cierra. Un resultado queda fijado cuando lo vota la mayoría de cada equipo (dos de tres en un 3v3), así que ningún equipo puede darse la victoria por su cuenta; cualquier otra cosa abre una disputa para que la resuelva un validador.

La queue ya no es solo para ELO: una clasificación de League también puede activarla. Como los puntos de League son un total acumulado y no una estimación de nivel, los boards de League emparejan por puntos por partida, así que jugar más no te mueve por sí solo en la queue.

Equipos fijos

Un ranking ELO o League con tamaño de equipo puede funcionar además en modo fixed teams (se activa en el panel, junto a Match format). Los equipos con nombre propio se inscriben una sola vez con el botón Team sign-up del ranking: eliges nombre y luego la plantilla, que admite hasta dos reservas por encima del tamaño de equipo. A partir de ahí la clasificación es de equipos: en un ranking ELO cada equipo tiene su propio rating y ganar a uno más fuerte compensa más; en uno League, la tabla ordena a los equipos por puntos, igual que una liga de verdad. Los equipos fijos de League registran sus matches con el botón Submit result del ranking.

Cuando cualquier integrante pulsa Queue, entra el equipo entero y todos reciben un DM. El emparejamiento enfrenta equipo contra equipo por rating, y el ready-check hace también de alineación: juegan los primeros de cada plantilla en pulsar Ready hasta completar el tamaño de equipo, y el resto se queda fuera de ese match. El resultado lo votan quienes jugaron, con la misma regla de mayoría en cada bando.

El tipo de ranking League ordena a los jugadores por los puntos que acumulan match a match. Es el formato que quieres para fútbol, baloncesto, fútbol sala, hockey y cualquier competición 1v1 o por equipos en la que la tabla de la season es la que manda.

Cómo funciona

  • Registra un match con el botón Submit result del ranking: el bot te pide los dos bandos y el marcador de cada uno (por ejemplo, 3 y 1).
  • Gana quien tenga el marcador más alto; si son iguales, es empate.
  • El bando ganador se lleva points_win, el perdedor points_loss y, si hay empate, todos se llevan points_draw. En una liga por equipos, cada jugador recibe los puntos de su bando.
  • El ranking ordena a los jugadores por puntos totales, y lleva la cuenta aparte de victorias, empates y derrotas.

Puntos por defecto

Las ligas nuevas usan 3 / 1 / 0 (el estándar FIFA desde 1994). Los tres valores se configuran ranking a ranking desde el panel: 2 / 1 / 0 para hockey, 4 / 2 / 0 para rugby o el reparto que mejor le venga a tu deporte.

Registrar un match

Desde la web, abre el ranking y pulsa Submit: indica los dos bandos y el marcador. En Discord, el botón Submit result del propio ranking abre lo mismo. Los matches de un jugador contra sí mismo y los marcadores negativos se rechazan al enviarlos.

Ligas por equipos

Un ranking League puede tener un tamaño de equipo fijo, de 2v2 hasta 8v8, al crearlo o después desde Match format en el panel. La tabla sigue siendo individual: cada jugador del bando ganador se lleva los puntos de victoria, todo el bando perdedor los de derrota, y el marcador cuenta como goles a favor y en contra para cada uno de ellos.

¿Prefieres una tabla de liga clásica en la que las filas sean los equipos? Activa Fixed teams junto a Match format: los equipos con nombre propio se inscriben con el botón Team sign-up del ranking (las plantillas admiten hasta dos reservas), los matches se registran equipo contra equipo con su marcador, y la tabla ordena a los equipos por puntos.

Revisar y anular

Los matches de League pasan por la misma cola de revisión que los de ELO: un validador aprueba o rechaza cada envío, los puntos se aplican al aprobarlo, y un match aprobado se puede anular después (se devuelven exactamente los puntos que se dieron).

Los rankings ELO y League no tienen por qué ser de dos bandos. En un todos contra todos cada participante juega por su cuenta — de 3 a 8 jugadores — y el resultado es la posición en la que terminó cada uno. Actívalo con la opción ffa_players al crear el ranking, o después en Match format dentro del panel. Sustituye a las partidas por equipos: un ranking todos contra todos no puede tener además un tamaño de equipo ni equipos fijos, y activarlo solo afecta a las partidas nuevas, así que todo lo ya registrado queda exactamente igual.

Los tipos de resultado

ResultadoELOLeague
Orden completo de llegada — del 1.º al último✓ Sí✓ Sí
Empate para todos✓ Sí✓ Sí
Un ganador, el resto sin posición— No disponible✓ Sí

Solo-ganador es un modo de League. Ahí no necesita nada más de lo que dice: el ganador se lleva los puntos de victoria y el resto los de derrota. Un rating no puede permitirse esa relajación: si los perdedores quedan sin clasificar, lo único que puede decir honestamente de ellos es que empataron entre sí, y entonces un jugador con rating bajo gana rating en una partida que su historial cuenta como derrota. Por eso un todos contra todos de ELO pide el orden completo, o un empate general que haya ocurrido de verdad.

Reportar un resultado

Los rankings todos contra todos llevan un botón Report result en lugar de Submit result. Primero elige a todos los que jugaron — exactamente los que diga el tamaño del lobby del ranking, así que uno de 6 jugadores admite 6 y el formulario no se envía con 5. El mismo formulario puede llevar el resultado: indica al ganador y la partida queda reportada al momento; en un ranking con tabla de posiciones ese campo se amplía a todo el orden de llegada — primero el 1.º, luego el 2.º, y así. Si lo dejas vacío, aparece el paso del resultado. Después define el resultado: un ranking de League pregunta quién ganó, con Empate para todos en el mismo menú y Definir el orden completo si prefieres ordenar a todo el grupo; un ranking de ELO pide directamente el orden, una posición por toque, con Deshacer el último para el error y un botón Empate para todos al lado. Enviar sigue desactivado hasta que el resultado sea uno que el ranking pueda puntuar. Ese botón es la única forma de registrar un todos contra todos en Discord: si tu ranking no lo muestra, actívalo en el panel en Apariencia en Discord → Botón de envío, o registra la partida desde la página del ranking en la web.

A partir de ahí, un todos contra todos es un envío normal y corriente. Entra en la cola de revisión, un validador lo aprueba o lo rechaza (o lo hace la aprobación automática tras el retraso configurado), los ratings y los puntos se mueven al aprobarlo, y cancelar una partida aprobada devuelve a cada jugador exactamente lo que le dio.

Cómo funciona el rating

Un todos contra todos de ELO se puntúa como todos sus enfrentamientos directos a la vez. Cada pareja de jugadores se compara — la mejor posición gana a la peor, la misma posición es un empate entre ellos — y cada uno de esos mini-resultados se calcula con la misma matemática de puntuación esperada que un 1v1. Por eso terminar por encima de jugadores con un rating muy superior al tuyo paga mucho más que terminar por encima del fondo del grupo. Después el factor K se divide entre el número de rivales, que es lo que mantiene un todos contra todos en torno al movimiento de rating de una sola partida en lugar de los siete duelos que técnicamente jugaste.

Todo el conjunto es de suma cero exacta: lo que pierde el grupo es lo que ganan los demás, hasta el último punto. Seis jugadores con el mismo rating y K=32 terminan en +16, +10, +3, −3, −10, −16. El historial sigue a la posición: el primer puesto, incluido un empate por él, cuenta como victoria, todo lo que queda por debajo como derrota, y el empate general como empate para todo el grupo.

Puntos por posición en los rankings League

Un todos contra todos de League puede repartir entre todo el grupo con una tabla de puntos por posición, al estilo de la F1: tantos puntos para el primero, tantos para el segundo, y así hasta el final del lobby. La editas en el panel, debajo de los puntos de victoria, empate y derrota, en cualquier ranking League que juegue todos contra todos. Los jugadores que empatan reciben cada uno los puntos del puesto que comparten, y quien termina más allá del final de la tabla sigue puntuando con su última entrada.

La tabla solo se aplica a una clasificación completa. Si alguien queda sin posición — un reporte de solo-ganador, o un orden que dejaste a medias — no se aplica en absoluto: el primer puesto recibe los puntos de victoria del ranking y todos los demás los de derrota. Eso es también lo que obtienes sin ninguna tabla configurada, así que la tabla es opcional. Un empate general paga los puntos de empate a todos, diga lo que diga la tabla.

Todos contra todos en la cola de matchmaking

Con el botón de cola activado, un ranking todos contra todos pone en cola a jugadores individuales y salta en cuanto tiene exactamente el tamaño del lobby: seis jugadores en un ranking de 6, nunca cinco y nunca siete. No hay bandos que equilibrar, así que el lobby es sencillamente el grupo con los ratings más parecidos que la cola puede reunir. Todos tienen que pulsar Ready igualmente, y la partida recibe un único canal de voz compartido: en un todos contra todos no hay compañeros de quienes esconderse.

El resultado se reporta en vez de votarse — tres botones de voto no pueden expresar el orden de llegada de ocho jugadores. Cualquier jugador del lobby define el resultado en el mensaje de la partida y los demás pulsan Confirmar; queda fijado cuando una mayoría del grupo está de acuerdo (dos de tres, cinco de ocho), contando a quien lo reportó como el primero de ellos. Disputar entrega la partida a un validador, que define el resultado correcto y lo confirma él mismo. Una partida de la cola se resuelve en su propio hilo, así que no pasa por la cola de revisión.

El tipo de ranking Rating permite que los miembros de la comunidad suban imágenes y valoren con estrellas las de los demás.

Cómo funciona

  • Los usuarios suben imágenes con el botón Submit image del ranking: el formulario pide un nombre, una descripción opcional y la propia imagen.
  • Los envíos aparecen en el canal de logs con un desplegable para votar.
  • Cualquiera puede puntuar de 1 a 10 estrellas. La media de los votos es la puntuación.
  • El voto se puede cambiar en cualquier momento: un voto por persona y envío.
  • El ranking ordena los envíos por valoración media.

Valorar desde la web

En la web, los envíos aparecen en la pestaña Entries. Haz clic en cualquiera para ver la imagen completa y votarla con los botones de estrellas. Tus votos se recuerdan de una sesión a otra.

Tú decides quién ve tus rankings en la web de Scoreboards:

Público

Lo ve todo el mundo en la web.

Oculto

Solo lo ven los miembros de tu server de Discord (hay que iniciar sesión).

Privado

Solo lo ven quienes tengan un rol concreto de Discord.

Desactivado

No aparece en la web.

Reparte roles de Discord automáticamente según la posición de cada jugador en el ranking. Por ejemplo: un rol «Campeón» para el top 3, un «Veterano» del puesto 4 al 10, y así con los que quieras.

  • Los tiers se configuran desde el panel web, en los ajustes de cada ranking.
  • Elige cómo se define un tier: por puesto (del 1 al 3), por percentil (el 10 % de arriba) o por puntuación (todo el que pase de 2000 puntos). Todos los tiers de un ranking comparten el mismo modo.
  • A cada tier le asignas cualquier rol que ya exista en tu server.
  • Los roles se dan y se quitan solos a medida que cambia la clasificación.
  • El rol de Scoreboards tiene que estar por encima de todos los roles que reparte, en Server Settings → Roles. Discord no deja que un bot gestione roles que estén a su altura o por encima, y si se topa con eso, el bot avisa en el canal del ranking.

¿Ya tienes una competición en marcha en otro sitio? Un archivo CSV puede rellenar un ranking entero de una vez, así no tienes que teclear nada otra vez.

Abre el panel, selecciona un ranking y usa Import from CSV. Es la misma vía para un ranking de server y para uno personal, que no tiene server de Discord detrás. En ambos casos el archivo es el mismo: un <arg>name,score</arg> por línea:

name,score
Alex,120
"Cooney, EM",95
Sam,88
  • Si hay fila de encabezado, se detecta y se salta sola.
  • Valen comas, puntos y comas o tabuladores como separador: lo que exporte tu hoja de cálculo.
  • Los nombres con coma funcionan si van entre comillas, como <arg>"Cooney, EM"</arg>.
  • Si un nombre es un id de usuario de Discord, esa entrada se vincula al miembro y muestra su nombre. Cualquier otra cosa se guarda como entrada personalizada.
  • Si un nombre sale dos veces, se queda el último valor, así que puedes volver a importar un archivo corregido.
  • Las filas que no se entienden se saltan y se listan por número de línea: el resto entra igual, así que arreglas un par de líneas y lo lanzas otra vez.

Los tiempos admiten <arg>mm:ss</arg>, <arg>hh:mm:ss</arg> y una fracción opcional: <arg>1:30</arg>, <arg>1:12:44.081</arg>. Un número a secas se lee como milisegundos. Ojo: tres números separados por dos puntos significan <arg>hours:minutes:seconds</arg>, así que la precisión por debajo del segundo va detrás de un punto.

Límites: 500 filas y 100 KB por archivo; si tu exportación es más grande, pártela e impórtala por partes. Los rankings Image Rating no se pueden importar, porque sus entradas son imágenes subidas, no puntuaciones.

Las temporadas te permiten cerrar una competición sin perder nada. Programa un final (o termínala desde el panel) y el ranking se congela: se publica un podio y la clasificación queda exactamente como acabó.

  • Nada se reinicia ni se borra — el ranking congelado es el registro permanente de la temporada, visible para todos.
  • Un ranking congelado no acepta envíos, partidas ni votos nuevos; un admin puede descongelarlo en cualquier momento.
  • Todos los tipos pueden tener temporadas — incluido Image Rating, donde congelar un ranking con votación a ciegas también revela los resultados.
  • ¿Quieres una temporada nueva? Crea un ranking nuevo y deja el congelado como registro.

Los resúmenes semanales publican cada lunes un repaso corto en el canal del ranking: el top 3, quien más ha subido esa semana y cuánto se ha jugado. Solo lo reciben los rankings con al menos tres puntuaciones en los últimos siete días, así que un ranking tranquilo se queda tranquilo. Puedes desactivarlos ranking a ranking desde el panel web.

Una economía convierte los resultados en moneda. Actívala en el panel, en Economía, ponle nombre a la moneda y elige un preajuste de pagos; a partir de ahí, cada resultado que apruebe tu servidor paga a los jugadores. Un pago es una base fija más una parte de un bote variable: la mitad del bote sigue al resultado y la otra mitad a la sorpresa, así que ganar a alguien muy por encima de ti vale más que ganar a alguien por debajo. En un board Classic, Highscore o Time no hay rival, así que ese papel lo hace tu puesto en la clasificación. Es un saldo por miembro para todo el servidor, compartido por todos sus leaderboards.

  • Una racha de victorias suma un 2 % por victoria, hasta el tope que pongas.
  • Enfrentarse al mismo rival una y otra vez paga menos cada vez dentro de una semana móvil; dos partidas al día siguen pagando completo.
  • Un tope diario limita lo que un miembro se lleva en un día, y a las cuentas nuevas se les puede hacer esperar antes de ganar nada.
  • Cancelar, editar o borrar un resultado devuelve el pago, exactamente como se pagó; si la moneda ya se había gastado, el saldo puede quedar en negativo. Cada línea se ve en la página de la tienda del servidor.
  • Los boards de Image Rating no pagan nada: no hay resultado que valorar.

Los miembros consultan el suyo en la página de la tienda del servidor, donde se puede desplegar cualquier pago para ver exactamente cómo se calculó. La tienda vende roles de Discord: añádelos desde el panel, y los miembros miran y compran en la propia página. Scoreboards tiene que estar por encima de cada rol que vende en Ajustes del servidor → Roles.

Esa página está en scoreboards.dev/shop/tu-servidor, una por servidor, enlazada desde sus páginas de leaderboards. Además de roles vende emojis de leaderboard: un único emoji que aparece junto al nombre del comprador en los leaderboards de ese servidor. Los nombres en sí se muestran sin emojis en los boards, así que un emoji comprado es el único que un nombre puede llevar — no se puede falsificar cambiándose el nombre, y eso es exactamente lo que lo hace valioso. Los miembros compran y eligen qué emoji suyo llevar en la propia página, con su sesión de Discord; los artículos de emoji se añaden desde el panel.

Los admins dan y quitan moneda desde la web: en el menú contextual de un jugador en un ranking, o en el panel de Economía si el miembro no está en ningún board; ambas cosas se anuncian en el canal de logs que elijas, así nadie tiene que fiarse de la palabra de un moderador. Los pagos, los topes, quién puede ganar y la propia tienda están en el panel. La moneda no es dinero: no tiene valor real, no sale del servidor en el que se ganó y se puede reiniciar en cualquier momento.