Scoreboards Documentation

Everything you need to create and manage Discord leaderboards

  1. Tilføj botten — Inviter Scoreboards ind på din Discord-server med invite-linket på forsiden.
  2. Kør opsætningsguiden — Brug /get started: én hurtig formular til at navngive dit leaderboard, vælge en type og eventuelt en log-kanal — og boardet bliver lagt op direkte i kanalen. Point-, Highscore- og Time-boards starter med et par eksempler, så du kan se boardet i aktion; de forsvinder i samme øjeblik den første rigtige score lander.
  3. Sæt rollerne — Åbn dashboardet og vælg rollen <arg>bot permission</arg> (dem der må styre leaderboards) og rollen <arg>validator</arg> (dem der må godkende indsendelser).
  4. Lav dit første leaderboard — Brug /scoreboard create. Du vælger navn og type, og resten sætter du i formularen, der åbner.
  5. Vis det frem — Kør /scoreboard show i en kanal, så bliver leaderboardet lagt op med knapper til indsendelse og bladring.

Når du laver et leaderboard med /scoreboard create, vælger du en af seks typer:

Classic

Lægger point til eller trækker fra en løbende total. Bedst til spil, hvor pointene hober sig op over tid.

Highscore

Gemmer kun hver spillers personlige rekord. Lavere scores bliver automatisk skiftet ud.

Time (Speedrun)

Indsend tider som 00:00:00 (hundrededele) eller 00:00:000 (millisekunder) — visningsformatet vælger du i dashboardet, og nye boards står som standard til millisekunder. Sortér stigende, hvis hurtigst vinder, faldende hvis længst vinder.

ELO - Ranked

Konkurrencepræget ELO-rating, 1v1 eller på hold fra 2v2 til 8v8. Indsend resultatet af et match, og alle deltageres rating bliver rettet automatisk.

Rating

Indsend billeder og lad dit community give stjerner (1–10). Stemmerne bliver til et gennemsnit. Perfekt til kunstkonkurrencer og kreative udfordringer.

League

Point efter matches — til fodbold, basket, FIFA og alt derimellem. Du bestemmer selv point for sejr/uafgjort/nederlag (3/1/0 som standard) og noterer matchens cifre (fx 3-1).

Styring af leaderboards

KommandoBeskrivelseRettighed
/scoreboard createLav et nyt leaderboard — vælg navn og type, og sæt sortering og mere i formularenAdmin / bot permission
/scoreboard showLæg leaderboardet op i kanalen med interaktive knapperAdmin / bot permission
/scoreboard settingsÅbner dashboardet, hvor du styrer boardets indstillinger (sortering, synlighed, kolonnenavne, visning, ELO-opsætning med mere)Admin / bot permission
/scoreboard deleteSletter et leaderboard og alle dets data permanent (kræver bekræftelse)Admin / bot permission
/scoreboard season endAfslut en sæson ved at fryse boardet — stillingen står tilbage som det blivende resultat, og du kan låse op fra dashboardet for at fortsætteAdmin / bot permission
/importHent scores ind i et leaderboard fra en CSV-fil (fra en anden bot eller et regneark)Admin / bot permission

Scores & matchresultater

KommandoBeskrivelseRettighed
/submitIndsend til et hvilket som helst leaderboard. Botten åbner det næste skridt, der passer til typen — et scorefelt (Classic/Highscore/Time), vælg spillere + vinder (ELO), vælg spillere + score (League) eller et navnefelt (Rating, med billedet vedhæftet slash-kommandoen). På et holdboard beder den om en fuld opstilling til hver side.Alle
/setSæt en spillers score eller ELO-rating til en bestemt værdiAdmin / bot permission
/adjustLæg til eller træk fra en spillers score (brug negative tal for at trække fra)Admin / bot permission
/player removeFjern en spiller fra et leaderboardAdmin / bot permission

Opsætning

KommandoBeskrivelseRettighed
/get startedStart opsætningsguiden til den allerførste opsætningAdmin
/helpÅbn den interaktive hjælp med alle emnerAlle

Der er to veje ind:

  • Kør /submit og vælg et leaderboard. Botten åbner det flow, der passer til typen — et scorefelt til Classic/Highscore/Time, vælg spillere + vinder til ELO, vælg spillere + score til League, eller et navnefelt til Rating (med billedet vedhæftet slash-kommandoen). På et holdleaderboard skal du vælge en fuld opstilling til hver side i stedet for én spiller.
  • Eller klik på Submit-knappen på det opslåede leaderboard — det åbner præcis det samme flow.

Godkendelsen

  1. Indsendelsen bliver lagt op i log-kanalen (hvis du har sat en).
  2. En validator eller admin klikker Approve eller Reject.
  3. Bliver den afvist, får afsenderen en DM med begrundelsen.
  4. Bliver den godkendt, opdaterer leaderboardet sig med det samme.

Automatisk godkendelse

Hvert leaderboard kan sættes til at godkende indsendelser af sig selv efter et stykke tid: Off, Instant, 1 hour, 3 hours, 24 hours, 3 days eller 7 days. ELO-leaderboards står som standard til 24 timer.

Annullér en score

Admins og validatorer kan fortryde en allerede godkendt score: højreklik på beskeden med indsendelsen og vælg "Cancel Score/Match". Så rulles scoren tilbage, og du skal angive en begrundelse.

Leaderboard-typen ELO - Ranked rangerer spillerne efter en ELO-rating — enten 1v1 eller på hold med op til otte på hver side.

Sådan virker det

  • Alle starter på den samme start-ELO, som du selv bestemmer (standard: 1200).
  • Et match kan ende med sejr, nederlag eller uafgjort.
  • Ratings beregnes med en K-faktor på 32.
  • Alle deltageres rating rykker sig samtidig, når matchet er godkendt.

Holdmatches (2v2 – 8v8)

ELO- og League-leaderboards kan låses til en fast holdstørrelse — vælg den, når du opretter leaderboardet, eller skift den senere under Match format i dashboardet. På et 3v3-leaderboard er der så tre spillere på hver side i hvert eneste match, og leaderboardet rangerer stadig spillerne enkeltvis.

På ELO regnes hvert holds forventede resultat ud fra holdets gennemsnitlige rating, og ændringen gives til alle på holdet — slår I et stærkere hold, får hver eneste spiller på vinderholdet den samme gevinst. På League får alle på vinderholdet sejrspointene, og hele taberholdet får nederlagspointene.

Matchmaking-queue (beta)

Er queue-knappen slået til på leaderboardet, kan spillerne klikke sig ind i køen. Systemet samler spillere med nogenlunde samme ELO ved at udvide søgevinduet lidt efter lidt. Når to bliver matchet, oprettes der en tråd til matchet med afstemningsknapper. Er der ikke fundet et match inden for 5 minutter, udløber pladsen i køen.

På et holdleaderboard venter køen, til der er spillere nok til begge sider — seks til et 3v3 — og deler dem så op i to hold med så tæt på samme gennemsnitsrating som muligt, så de stærkeste og de svageste ender på hver sin side. Alle skal klikke Ready; gør en det ikke, ryger vedkommende ud, og resten kommer tilbage i køen med deres plads i behold.

Hvert hold får sin egen talekanal, så I kan lægge taktik uden at modstanderne hører med — du kan kun se og gå ind i dit eget holds kanal. Begge kanaler forsvinder, når matchet er afgjort. Et resultat står først fast, når et flertal på begge hold har stemt på det (to ud af tre i et 3v3), så ét hold kan aldrig udråbe sig selv til vinder. Alt andet ender som en tvist, som en validator afgør.

Køen er ikke længere kun for ELO: et League-leaderboard kan også slå den til. Da League-point er en løbende total og ikke et estimat af niveau, matcher League-boards på point pr. kamp — så det at spille mere flytter dig ikke i sig selv i køen.

Faste hold

Et ELO- eller League-leaderboard med holdstørrelse kan også køre med fixed teams (slås til i dashboardet ved siden af Match format). Faste hold med navn melder sig til én gang via leaderboardets Team sign-up-knap — vælg et navn, og sæt truppen, som må have op til to reserver ud over holdstørrelsen. Derefter er det holdene selv, der rangeres: på et ELO-board har hvert hold sin egen rating, og det betaler sig at slå et stærkere hold; på et League-board rangeres holdene efter point, præcis som i en rigtig sportsliga. Faste hold i League registrerer deres matches med /submit.

Når bare ét medlem klikker Queue, ryger hele holdet i kø, og alle får en DM. Systemet matcher hold mod hold efter holdrating, og ready-checket fungerer samtidig som holdudtagelse: de første på hver trup, der klikker Ready, kommer på banen, indtil holdet er fuldt — resten sidder over den kamp. Resultatet stemmes igennem af dem, der spillede, efter samme regel om flertal på begge sider.

Leaderboard-typen League rangerer spillerne efter point samlet over en række matches. Det er formatet til fodbold, basket, futsal, hockey og enhver 1v1- eller holdturnering, hvor tabellen er sandheden.

Sådan virker det

  • Indsend et match med /submit — botten spørger efter begge sider og et cifferresultat til hver (fx 3 og 1).
  • Det højeste tal vinder; står det lige, er matchet uafgjort.
  • Vinderen får points_win, taberen points_loss, og ved uafgjort får begge points_draw. I en holdliga får hver spiller på en side sidens point.
  • Leaderboardet rangerer efter samlede point, mens sejre, uafgjorte og nederlag tælles ved siden af.

Standardpoint

Nye ligaer starter på 3 / 1 / 0 (FIFA-standarden siden 1994). Alle tre tal kan ændres per leaderboard i dashboardet. Brug 2 / 1 / 0 til hockey, 4 / 2 / 0 til rugby — eller find på jeres eget system, der passer til sporten.

Indsend et match

På hjemmesiden åbner du leaderboardet og klikker Submit — indtast begge sider og resultatet. /submit åbner nøjagtig det samme i Discord. Matches, hvor den samme spiller står på begge sider, og negative resultater bliver afvist med det samme.

Holdligaer

Et League-leaderboard kan låses til en fast holdstørrelse fra 2v2 op til 8v8 — enten når du opretter det, eller senere under Match format i dashboardet. Tabellen rangerer stadig spillerne enkeltvis: alle på vinderholdet får sejrspointene, hele taberholdet får nederlagspointene, og matchens cifre tæller som scorede og indkasserede mål for hver enkelt.

Vil du hellere have en klassisk ligatabel, hvor holdene er rækkerne? Slå Fixed teams til ved siden af Match format: faste hold med navn melder sig til via leaderboardets Team sign-up-knap (trupperne må have op til to reserver), matches indsendes hold mod hold med et resultat, og tabellen rangerer holdene efter point.

Godkendelse & annullering

League-matches går gennem den samme godkendelse som ELO-matches: en validator godkender eller afviser hver indsendelse, pointene tildeles ved godkendelse, og et godkendt match kan annulleres bagefter — så ryger præcis de point, der blev givet.

ELO- og League-leaderboards behøver ikke have to sider. I et alle mod alle spiller alle i matchet for sig selv — 3 til 8 spillere — og resultatet er, hvor hver enkelt endte. Slå det til med ffa_players, når du opretter leaderboardet, eller senere under Match format i dashboardet. Det træder i stedet for holdmatches: et alle mod alle-leaderboard kan ikke også have en holdstørrelse eller faste hold, og at slå det til gælder kun nye matches, så alt, der allerede står registreret, bliver præcis som det er.

Resultattyperne

ResultatELOLeague
Hele rækkefølgen — fra nr. 1 til sidst✓ Ja✓ Ja
Alle spiller uafgjort✓ Ja✓ Ja
Én vinder, alle andre uplaceret— Ikke muligt✓ Ja

Kun-vinder er en League-type. Der kræver den ikke mere, end den siger: vinderen får sejrspoint, resten tabspoint. Sådan afslappet kan en rating ikke være — hvis taberne står uden placering, er det eneste, den ærligt kan sige om dem, at de alle spillede uafgjort, og så vinder en lavt ratet spiller rating på et match, hans statistik tæller som et nederlag. Derfor beder et ELO-alle mod alle om hele rækkefølgen, eller om et uafgjort, der rent faktisk skete.

Sådan melder du et resultat ind

Alle mod alle-leaderboards har en Report result-knap i stedet for Submit result. Vælg først alle, der spillede med — fra 3 og op til lobbystørrelsen, så et 6-spillers leaderboard stadig kan registrere aftenen, hvor der kom fem. Sæt så resultatet: et League-leaderboard spørger, hvem der vandt, med Alle spiller uafgjort i den samme menu og Sæt hele rækkefølgen, hvis du hellere vil rangere hele feltet; et ELO-leaderboard spørger direkte om rækkefølgen, én plads ad gangen, med Fortryd sidste til fejlklik og en Alle spiller uafgjort-knap ved siden af. Indsend forbliver grå, indtil resultatet er et, leaderboardet kan score. Knappen er den eneste måde at indberette et alle mod alle-resultat på i Discord — viser dit leaderboard den ikke, kan du slå den til under Discord-visning → Submit-knap i dashboardet eller indberette kampen fra leaderboardets side på hjemmesiden.

Derefter er et alle mod alle en helt almindelig indsendelse. Den lander i godkendelseskøen, en validator godkender eller afviser den (eller auto-godkendelse gør det efter den valgte forsinkelse), rating og point flytter sig ved godkendelse, og annullerer man et godkendt match, får hver spiller præcis det tilbage, matchet gav.

Sådan regnes ratingen

Et ELO-alle mod alle bliver scoret som alle sine indbyrdes delkampe på én gang. Hvert par spillere sammenlignes — den bedste placering slår den dårligere, samme placering er uafgjort mellem dem — og hver af de mini-kampe rates med den samme forventede score-matematik som en 1v1. At slutte over spillere, der er ratet langt over dig, betaler derfor meget mere end at slutte over bunden af feltet. K-faktoren deles så med antallet af modstandere, og det er det, der holder ét alle mod alle på cirka én kamps rating-bevægelse i stedet for de syv dueller, du teknisk set spillede.

Det hele er præcis nulsum: hvad feltet taber, er det, resten vinder, ned til sidste point. Seks spillere med samme rating ved K=32 ender på +16, +10, +3, −3, −10, −16. Statistikken følger placeringen — førstepladsen, også en delt en, tæller som en sejr, alle nedenunder som et nederlag, og alle-uafgjort som uafgjort for hele feltet.

Placeringspoint på League-leaderboards

Et League-alle mod alle kan give point til hele feltet fra en tabel med placeringspoint, F1-stil: så mange point for førstepladsen, så mange for andenpladsen og så videre ned gennem feltet. Du redigerer den i dashboardet under sejrs-, uafgjort- og tabspointene på ethvert League-leaderboard, der spiller alle mod alle. Spillere på delt placering får hver især point for den plads, de deler, og alle, der slutter efter tabellens sidste linje, bliver ved med at få den.

Tabellen bruges kun, når hele feltet er placeret. Står bare én uplaceret — en kun-vinder-indberetning eller en rækkefølge, du stoppede halvvejs — gælder den slet ikke: førstepladsen får leaderboardets sejrspoint og alle andre tabspoint. Det er også det, du får helt uden tabel, så tabellen er valgfri. Alle-uafgjort giver uafgjort-point til alle, uanset hvad tabellen siger.

Alle mod alle i matchmaking-queuen

Med queue-knappen slået til stiller et alle mod alle-leaderboard enkeltspillere i kø og går i gang, så snart der er præcis lobbystørrelsen — seks spillere på et 6-spillers leaderboard, aldrig fem og aldrig syv. Der er ingen sider at balancere, så lobbyen er simpelthen den tættest ratede gruppe, queuen kan sætte sammen. Alle skal stadig trykke Ready, og matchet får ét fælles voice-rum: i et alle mod alle er der ingen holdkammerater at gemme sig for.

Resultatet bliver indberettet i stedet for stemt om — tre stemmeknapper kan ikke udtrykke en rækkefølge med otte spillere. Enhver spiller i lobbyen sætter resultatet på match-beskeden, og de andre trykker Bekræft; det låses, når et flertal af feltet er enige (to ud af tre, fem ud af otte), hvor den, der indberettede, tæller som den første af dem. Gør indsigelse giver matchet videre til en validator, som sætter det rigtige resultat og bekræfter det selv. Et queue-match afgøres i sin egen tråd, så det kommer ikke gennem godkendelseskøen.

Leaderboard-typen Rating lader medlemmerne indsende billeder og give hinandens bidrag stjerner.

Sådan virker det

  • Man indsender billeder med /submit — vedhæft billedet til slash-kommandoen, og skriv et navn i feltet, der dukker op.
  • Indsendelserne lander i log-kanalen med en rating-dropdown.
  • Alle kan give fra 1 til 10 stjerner. Stemmerne bliver til et gennemsnit.
  • Man kan altid ændre sin stemme — men kun én stemme per person per indsendelse.
  • Leaderboardet rangerer indsendelserne efter gennemsnitlig rating.

Rating på hjemmesiden

På hjemmesiden ligger indsendelserne under fanen Entries. Klik på en af dem for at se billedet i fuld størrelse og give stjerner direkte. Dine stemmer bliver husket, også næste gang du kommer forbi.

Du bestemmer selv, hvem der kan se dine leaderboards på Scoreboards-hjemmesiden:

Public

Alle på hjemmesiden kan se det.

Hidden

Kun medlemmer af din Discord-server kan se det (kræver login).

Private

Kun medlemmer med en bestemt Discord-rolle kan se det.

Disabled

Vises slet ikke på hjemmesiden.

Giv automatisk Discord-roller efter placeringen på leaderboardet. Du kan for eksempel give top 3 rollen "Champion", plads 4–10 rollen "Veteran" og så videre.

  • Tiers sætter du op i web-dashboardet under det enkelte leaderboards indstillinger.
  • Vælg, hvordan en tier afgrænses: efter placering (plads 1–3), efter percentil (de øverste 10 % af spillerne) eller efter score (alle med 2000+ point). Alle tiers på et leaderboard bruger den samme metode.
  • Knyt en hvilken som helst eksisterende Discord-rolle til hver tier.
  • Rollerne bliver givet og fjernet automatisk, efterhånden som placeringerne ændrer sig.
  • Scoreboards-rollen skal ligge over alle de roller, den skal uddele, i Server Settings → Roles. Discord lader ikke bots røre roller på eller over deres eget niveau, og støder botten på det, skriver den en advarsel i leaderboardets kanal.

Kører I allerede en konkurrence et andet sted? /import tager en CSV-fil og fylder leaderboardet ud fra den, så du slipper for at taste det hele forfra.

Der er to veje: i Discord kører du /import, vælger leaderboardet og vedhæfter filen — eller på hjemmesiden åbner du dashboardet, vælger et leaderboard og bruger Import from CSV. Personlige leaderboards hører ikke til nogen Discord-server, så dér er dashboardet vejen ind. Filen er den samme uanset hvad — én <arg>name,score</arg> per linje:

name,score
Alex,120
"Cooney, EM",95
Sam,88
  • En overskriftsrække bliver genkendt og sprunget over.
  • Komma, semikolon og tabulator virker alle som skilletegn — brug det, dit regneark nu engang spytter ud.
  • Navne med komma i virker, hvis de står i anførselstegn, fx <arg>"Cooney, EM"</arg>.
  • Er navnet et Discord-bruger-id, bliver linjen koblet til medlemmet og viser vedkommendes viste navn. Alt andet bliver til en almindelig tekstpost.
  • Står det samme navn to gange, gælder den sidste værdi — så du kan lægge en rettet fil ind ovenpå.
  • Linjer, der ikke kan læses, springes over og listes med linjenummer — resten kommer ind, så du kan rette et par linjer og køre filen igen.

Tider forstås som <arg>mm:ss</arg>, <arg>hh:mm:ss</arg> og eventuelt en brøkdel: <arg>1:30</arg>, <arg>1:12:44.081</arg>. Et rent tal læses som millisekunder. Bemærk, at tre tal adskilt af kolon betyder <arg>timer:minutter:sekunder</arg> — skal du under sekundet, skriver du det efter et punktum.

Grænser: 500 linjer og 100 KB per fil — del større eksporter op, og tag dem i bidder. Image Rating-leaderboards kan ikke importeres, fordi deres bidrag er uploadede billeder og ikke scores.

Sæsoner lader dig sætte punktum for en konkurrence uden at miste noget. Sæt en sluttid (eller afslut fra dashboardet), og boardet fryses: der postes et podie, og stillingen står præcis som den endte.

  • Intet nulstilles eller slettes — det frosne board er sæsonens blivende resultat, synligt for alle.
  • Et frosset board tager ikke imod nye indsendelser, kampe eller stemmer; en admin kan låse op når som helst.
  • Alle board-typer kan have sæsoner — også Image Rating, hvor frysning af et board med blind afstemning samtidig afslører resultatet.
  • Vil du i gang med en ny sæson? Opret et nyt board og lad det frosne stå som arkivet.

Ugentlige recaps lægger hver mandag et kort overblik i leaderboardets kanal: top tre, ugens største klatrer, og hvor meget der er blevet spillet. Kun boards med mindst tre scores i den forgangne uge får et, så et stille leaderboard får lov at være stille. Du kan slå recaps fra per leaderboard i /scoreboard settings eller i dashboardet på hjemmesiden.