Scoreboards Documentation
Everything you need to create and manage Discord leaderboards
- Ajoute le bot — Invite Scoreboards sur ton serveur Discord avec le lien d'invitation de la page d'accueil.
- Lance l'assistant — Utilise
/get startedpour choisir un type de leaderboard, le nommer et le poster dans un salon. Les boards Point, Highscore et Time démarrent avec quelques entrées d'exemple, histoire de voir le board tourner ; elles disparaissent dès le premier vrai score. - Attribue les rôles — Ouvre le dashboard pour définir le rôle <arg>bot permission</arg> (ceux qui peuvent gérer les leaderboards) et le rôle <arg>validator</arg> (ceux qui peuvent approuver les envois).
- Crée ton premier leaderboard — Utilise
/scoreboard createpour le mettre en place : un nom, un type et un ordre de tri. - Affiche-le — Utilise
/scoreboard showdans un salon pour poster le leaderboard interactif, avec ses boutons d'envoi et de pagination.
Au moment de créer un leaderboard avec /scoreboard create, tu choisis parmi six types :
Classic
Ajoute ou retire des points d'un total qui court. Le format des jeux où les points s'accumulent.
Highscore
Ne garde que le record personnel de chaque joueur. Les scores plus faibles sont remplacés automatiquement.
Time (Speedrun)
Les temps s'envoient en 00:00:00 (centièmes) ou 00:00:000 (millisecondes) — le format d'affichage du board se règle dans le dashboard, et les nouveaux boards sont en millisecondes par défaut. Tri croissant si le plus rapide gagne, décroissant si c'est le plus long.
ELO - Ranked
Système de rating ELO compétitif, en 1v1 ou en équipes de 2v2 à 8v8. Tu envoies le résultat du match et le rating de chaque participant bouge tout seul.
Rating
Les membres envoient des images et la communauté les note en étoiles (1 à 10). La moyenne des votes fait le score. Parfait pour les concours d'art et les défis créatifs.
League
Classement aux points, match par match, pour le foot, le basket ou FIFA. Points par victoire/nul/défaite configurables (3/1/0 par défaut) et un score de match (3-1, par exemple).
Gérer les leaderboards
| Commande | Description | Permission |
|---|---|---|
/scoreboard create | Crée un leaderboard : nom, type, ordre de tri et réglages facultatifs | Admin / Bot Permission |
/scoreboard show | Affiche le leaderboard dans le salon courant, avec ses boutons interactifs | Admin / Bot Permission |
/scoreboard settings | Ouvre le dashboard pour régler ce scoreboard (tri, visibilité, en-têtes, mode d'affichage, config ELO, etc.) | Admin / Bot Permission |
/scoreboard delete | Supprime définitivement un leaderboard et toutes ses données (confirmation requise) | Admin / Bot Permission |
/scoreboard season end | Archive le classement final, poste un podium et remet le board à zéro pour la season suivante (confirmation requise) | Admin / Bot Permission |
/import | Importe des scores dans un leaderboard depuis un fichier CSV (migration depuis un autre bot ou un tableur) | Admin / Bot Permission |
Envoyer scores et matchs
| Commande | Description | Permission |
|---|---|---|
/submit | Envoie sur n'importe quel leaderboard. Le bot ouvre l'étape qui correspond au type — une fenêtre de score (Classic/Highscore/Time), un sélecteur joueur + vainqueur (ELO), un sélecteur joueur + score (League), ou une fenêtre de nom (Rating, avec l'image jointe à la commande). Sur un board en équipes, les sélecteurs demandent la composition complète de chaque camp. | Tout le monde |
/set | Fixe manuellement le score exact ou le rating ELO d'un joueur | Admin / Bot Permission |
/adjust | Ajoute ou retire une valeur au score d'un joueur (valeur négative pour retirer) | Admin / Bot Permission |
/player remove | Retire un joueur d'un leaderboard | Admin / Bot Permission |
Configuration
| Commande | Description | Permission |
|---|---|---|
/get started | Lance l'assistant de configuration initiale | Admin |
/help | Ouvre l'aide interactive, avec tous les sujets disponibles | Tout le monde |
Il y a deux chemins :
- Lance
/submitet choisis un leaderboard. Le bot ouvre le flux qui correspond au type — une saisie de score pour Classic/Highscore/Time, un sélecteur joueurs + vainqueur pour ELO, un sélecteur joueurs + score pour League, ou une saisie de nom pour Rating (avec l'image jointe à la commande). Sur un leaderboard en équipes, il te demande la composition complète de chaque camp au lieu d'un seul joueur. - Ou clique sur le bouton Submit du message du leaderboard — ça ouvre exactement le même flux.
La validation
- L'envoi est posté dans le salon de logs, si tu en as défini un.
- Un validateur ou un admin clique sur Approve ou Reject.
- En cas de refus, l'auteur reçoit un DM avec le motif.
- En cas d'approbation, le leaderboard se met à jour immédiatement.
Validation automatique
Chaque leaderboard peut approuver les envois tout seul après un certain délai : Off, Instant, 1 hour, 3 hours, 24 hours, 3 days ou 7 days. Les leaderboards ELO sont sur 24 heures par défaut.
Annuler un score
Admins et validateurs peuvent revenir sur un score déjà approuvé : clic droit sur le message de l'envoi, puis "Cancel Score/Match". Le score est rétabli comme avant et un motif d'annulation est demandé.
Le type de leaderboard ELO - Ranked classe les joueurs selon un rating ELO, en 1v1 ou en équipes allant jusqu'à huit joueurs par camp.
Comment ça marche
- Tout le monde démarre au même ELO de départ, que tu choisis (1200 par défaut).
- Un match se solde par une victoire, une défaite ou un nul.
- Les ratings sont calculés avec un facteur K de 32.
- Le rating de tous les participants bouge en même temps, dès que le match est approuvé.
Matchs en équipe (2v2 – 8v8)
Les leaderboards ELO et League peuvent être verrouillés sur une taille d'équipe fixe — choisis-la à la création, ou change-la plus tard sous Match format dans le dashboard. Sur un leaderboard 3v3, chaque match oppose alors trois joueurs par camp, et le classement reste individuel.
En ELO, le résultat attendu d'une équipe se calcule sur son rating moyen, et l'écart obtenu s'applique à chacun de ses membres — battre plus fort que soi rapporte donc autant à tous les vainqueurs. En League, tous les joueurs du camp gagnant touchent les points de la victoire, et toute l'équipe perdante ceux de la défaite.
Queue de matchmaking (bêta)
Si le bouton queue est activé sur le leaderboard, les joueurs s'y mettent en file d'un clic. Le système regroupe les joueurs de rating proche en élargissant petit à petit la fenêtre de recherche. Quand un match se forme, un fil est créé avec les boutons de vote de la communauté. Sans match trouvé au bout de 5 minutes, la place en queue expire.
Sur un leaderboard en équipes, la queue attend d'avoir de quoi remplir les deux camps — six joueurs pour un 3v3 — puis les répartit en deux équipes aux ratings moyens les plus proches possible, de sorte que les plus forts et les plus faibles se retrouvent face à face. Tout le monde doit cliquer sur Ready ; si quelqu'un ne le fait pas, il saute et les autres retournent en queue en gardant leur place.
Chaque équipe a son propre salon vocal, pour parler tactique sans que l'adversaire écoute — tu ne vois et ne rejoins que celui de ton équipe. Les deux salons disparaissent une fois le match finalisé. Un résultat n'est acté qu'à la majorité dans chaque équipe (deux sur trois en 3v3) : une équipe ne peut donc jamais s'auto-proclamer vainqueur. Tout le reste part en litige, qu'un validateur tranche.
Équipes fixes
Un leaderboard ELO ou League avec taille d'équipe peut aussi tourner en mode fixed teams (à activer dans le dashboard, juste à côté de Match format). Des équipes nommées s'inscrivent une bonne fois via le bouton Team sign-up du leaderboard — un nom, puis l'effectif, qui peut compter jusqu'à deux remplaçants en plus de la taille d'équipe. Ce sont alors les équipes elles-mêmes qui sont classées : sur un board ELO, chacune a son rating et battre plus fort que soi rapporte davantage ; sur un board League, le tableau les classe aux points, exactement comme une vraie ligue. En League, les équipes fixes enregistrent leurs matchs avec /submit — la queue de matchmaking ci-dessous n'existe que sur ELO.
Dès qu'un seul membre clique sur Queue, c'est toute l'équipe qui part en file, et chacun reçoit un DM. Le matchmaking oppose les équipes selon leur rating, et le ready-check sert en même temps de composition : les premiers de chaque effectif à cliquer sur Ready entrent sur le terrain jusqu'à remplir l'équipe, les autres sont sur le banc pour ce match. Le résultat est voté par ceux qui ont joué, avec la même règle de majorité dans chaque camp.
Le type de leaderboard League classe les joueurs aux points accumulés au fil des matchs. C'est le format du foot, du basket, du futsal, du hockey et de toute compétition, en 1v1 ou par équipes, où c'est le tableau qui fait foi.
Comment ça marche
- Enregistre un match avec
/submit— le bot demande les deux camps et un score pour chacun (3 et 1, par exemple). - Le score le plus élevé l'emporte ; à égalité, c'est un nul.
- Le camp vainqueur reçoit points_win, le perdant points_loss, et en cas de nul tout le monde touche points_draw. Dans une ligue par équipes, chaque joueur récupère les points de son camp.
- Le leaderboard classe aux points totaux, et compte les victoires, nuls et défaites à côté.
Points par défaut
Les nouvelles ligues démarrent en 3 / 1 / 0 (la norme FIFA depuis 1994). Les trois valeurs se règlent leaderboard par leaderboard depuis le dashboard. Passe en 2 / 1 / 0 pour le hockey, 4 / 2 / 0 pour le rugby, ou invente le barème qui colle à ton sport.
Enregistrer un match
Sur le site, ouvre le leaderboard et clique sur Submit — saisis les deux camps et le score du match. La commande /submit ouvre exactement la même chose dans Discord. Les matchs où le même joueur figure des deux côtés et les scores négatifs sont refusés d'emblée.
Ligues par équipes
Un leaderboard League peut être verrouillé sur une taille d'équipe fixe, de 2v2 à 8v8, à la création ou plus tard sous Match format dans le dashboard. Le tableau continue de classer les joueurs un par un : tout le camp gagnant touche les points de la victoire, tout le camp perdant ceux de la défaite, et le score du match compte comme buts marqués et encaissés pour chacun d'eux.
Tu préfères un vrai tableau de ligue, où ce sont les équipes qui occupent les lignes ? Active Fixed teams à côté de Match format : des équipes nommées s'inscrivent via le bouton Team sign-up du leaderboard (jusqu'à deux remplaçants par effectif), les matchs s'enregistrent équipe contre équipe avec un score, et le tableau classe les équipes aux points.
Validation et annulation
Les matchs League passent par la même file de validation que les matchs ELO : un validateur approuve ou refuse chaque envoi, les points s'appliquent à l'approbation, et un match approuvé peut être annulé ensuite — ce qui retire exactement les points qui avaient été donnés.
Le type de leaderboard Rating laisse les membres envoyer des images et donner des étoiles à celles des autres.
Comment ça marche
- On envoie une image avec
/submit— joins l'image à la commande, puis écris un nom dans la fenêtre qui s'ouvre. - Les envois atterrissent dans le salon de logs, avec un menu de notation.
- N'importe qui peut donner de 1 à 10 étoiles. Les votes deviennent une moyenne.
- Chacun peut changer son vote quand il veut — mais un seul vote par personne et par envoi.
- Le leaderboard classe les envois à la note moyenne.
Noter depuis le site
Sur le site, les envois se trouvent dans l'onglet Entries. Clique sur l'un d'eux pour voir l'image en grand et mettre tes étoiles directement. Tes votes sont retenus d'une visite à l'autre.
Tu décides qui voit tes leaderboards sur le site Scoreboards :
Visible par tout le monde sur le site.
Visible uniquement par les membres de ton serveur Discord (connexion requise).
Visible uniquement par les membres qui ont un rôle Discord précis.
N'apparaît pas du tout sur le site.
Attribue automatiquement des rôles Discord aux joueurs selon leur place au classement. Tu peux par exemple donner un rôle « Champion » au top 3, un rôle « Vétéran » aux rangs 4 à 10, et ainsi de suite.
- Les tiers se configurent depuis le dashboard web, dans les réglages de chaque leaderboard.
- Choisis comment un tier se définit : par rank (les rangs 1 à 3), par percentile (les 10 % du haut) ou par score (tous ceux à 2000 points et plus). Tous les tiers d'un même leaderboard partagent le même mode.
- Associe à chaque tier n'importe quel rôle Discord existant.
- Les rôles sont donnés et retirés automatiquement à mesure que le classement bouge.
- Le rôle Scoreboards doit se trouver au-dessus de tous les rôles qu'il attribue, dans Server Settings → Roles. Discord interdit aux bots de gérer les rôles situés à leur niveau ou plus haut, et le bot postera un avertissement dans le salon du leaderboard s'il tombe dessus.
Tu fais déjà tourner une compétition ailleurs ? /import prend un fichier CSV et remplit le leaderboard avec, pour t'éviter de tout retaper.
Deux chemins possibles : dans Discord, lance /import, choisis le leaderboard et joins le fichier ; ou sur le site, ouvre le dashboard, sélectionne un leaderboard et utilise Import from CSV. Les leaderboards personnels ne dépendent d'aucun serveur Discord : pour ceux-là, c'est le dashboard. Le fichier, lui, est le même dans les deux cas — un <arg>name,score</arg> par ligne :
name,score Alex,120 "Cooney, EM",95 Sam,88
- Une ligne d'en-tête est repérée et ignorée automatiquement.
- Virgule, point-virgule et tabulation font tous office de séparateur — prends ce que ton tableur exporte.
- Les noms qui contiennent une virgule passent s'ils sont entre guillemets, comme <arg>"Cooney, EM"</arg>.
- Si le nom est un identifiant Discord, la ligne est rattachée au membre et affiche son pseudo. Tout le reste devient une entrée libre.
- Le même nom deux fois garde la dernière valeur : tu peux réimporter un fichier corrigé par-dessus.
- Les lignes illisibles sont sautées et listées avec leur numéro — le reste passe quand même, tu corriges deux ou trois lignes et tu relances.
Les temps acceptent <arg>mm:ss</arg>, <arg>hh:mm:ss</arg> et éventuellement une fraction : <arg>1:30</arg>, <arg>1:12:44.081</arg>. Un nombre seul est lu comme des millisecondes. Attention : trois nombres séparés par des deux-points valent <arg>heures:minutes:secondes</arg>, donc la précision sous la seconde s'écrit après un point.
Limites : 500 lignes et 100 Ko par fichier — découpe les exports plus gros et importe-les en plusieurs fois. Les leaderboards Image Rating ne s'importent pas : leurs entrées sont des images envoyées, pas des scores.
Les seasons servent à tirer un trait sur une compétition et à repartir de zéro sans rien perdre de ce qui s'est passé. Lance /scoreboard season end et confirme : le classement final est archivé, un podium est posté dans le salon du leaderboard, et le board repart pour la season suivante.
- Les boards ELO gardent leurs joueurs et remettent tous les ratings à la valeur de départ — une ladder sans personne dessus n'est plus une ladder.
- Les boards Classic, Highscore, Time et League sont vidés : un score à zéro n'est pas une vraie entrée.
- Les boards Image Rating n'ont pas de seasons — une remise à zéro effacerait les images envoyées.
- Les classements archivés restent en place pour toujours, même si le board est réinitialisé de nouveau plus tard.
Les récaps hebdomadaires postent chaque lundi un petit bilan dans le salon du leaderboard : le top 3, la plus grosse progression de la semaine, et le volume de parties. Seuls les boards avec au moins trois scores dans la semaine en reçoivent un — un leaderboard calme a le droit de rester calme. Tu peux couper les récaps leaderboard par leaderboard dans /scoreboard settings ou depuis le dashboard du site.