Scoreboards Documentation

Everything you need to create and manage Discord leaderboards

  1. Tambahin bot-nya — Undang Scoreboards ke server Discord-mu lewat link undangan di beranda.
  2. Jalanin setup wizard — Pakai /get started buat milih tipe leaderboard, ngasih nama, dan posting ke sebuah saluran. Board Point, Highscore, dan Time mulai dengan beberapa entri contoh biar kamu lihat board-nya jalan; contohnya langsung hilang begitu ada skor asli masuk.
  3. Atur role — Buka dashboard buat nentuin role <arg>bot permission</arg> (siapa yang boleh ngelola leaderboard) dan role <arg>validator</arg> (siapa yang boleh menyetujui submission).
  4. Bikin leaderboard pertamamu — Pakai /scoreboard create buat nyiapin leaderboard. Tentuin nama, tipe, dan urutannya.
  5. Tampilin — Pakai /scoreboard show di sebuah saluran buat posting leaderboard interaktif lengkap sama tombol submit dan navigasi halaman.

Waktu bikin leaderboard pakai /scoreboard create, pilih salah satu dari enam tipe berikut:

Classic

Menambah atau mengurangi poin dari total berjalan. Paling pas buat penilaian yang terus menumpuk.

Highscore

Cuma nyimpen rekor pribadi terbaik tiap pemain. Skor lama yang lebih rendah otomatis ketimpa.

Time (Speedrun)

Kirim waktu dalam format 00:00:00 (perseratusan) atau 00:00:000 (milidetik) — format tampilannya diatur di dashboard, dan board baru default-nya milidetik. Pakai urutan menaik buat 'tercepat menang' atau menurun buat 'terlama menang'.

ELO - Ranked

Sistem rating ELO kompetitif, 1v1 atau tim 2v2–8v8. Kirim hasil match, dan rating semua peserta langsung ke-update otomatis.

Rating

Kirim gambar buat dikasih bintang sama komunitas (1–10). Semua vote dirata-rata jadi satu skor. Pas banget buat lomba seni dan tantangan kreatif.

League

Ranking berbasis poin per match buat olahraga kayak sepak bola, basket, dan FIFA. Poin per menang/seri/kalah bisa diatur (default 3/1/0), lengkap sama skor match (misal 3-1).

Kelola Leaderboard

PerintahKeteranganIzin
/scoreboard createBikin leaderboard baru lengkap sama nama, tipe, urutan, dan pengaturan tambahanAdmin / Bot Permission
/scoreboard showTampilkan leaderboard di saluran ini beserta tombol-tombol interaktifnyaAdmin / Bot Permission
/scoreboard settingsBuka dashboard buat ngatur scoreboard ini (urutan, visibilitas, header, mode tampilan, konfigurasi ELO, dan lainnya)Admin / Bot Permission
/scoreboard deleteHapus permanen sebuah leaderboard beserta seluruh datanya (butuh konfirmasi)Admin / Bot Permission
/scoreboard season endArsipkan klasemen akhir, posting podium, dan reset board buat season berikutnya (butuh konfirmasi)Admin / Bot Permission
/importImpor skor ke leaderboard dari file CSV (buat pindahan dari bot lain atau spreadsheet)Admin / Bot Permission

Kirim Skor & Match

PerintahKeteranganIzin
/submitKirim ke leaderboard mana pun. Bot bakal buka langkah yang sesuai tipenya — modal skor (Classic/Highscore/Time), pemilih pemain + pemenang (ELO), pemilih pemain + skor (League), atau modal nama (Rating, dengan gambar dilampirkan ke slash command-nya). Di board tim, pemilihnya minta satu roster penuh per sisi.Semua orang
/setSet skor atau rating ELO seorang pemain secara manualAdmin / Bot Permission
/adjustTambah atau kurangi nilai dari skor pemain (pakai nilai negatif buat mengurangi)Admin / Bot Permission
/player removeKeluarkan seorang pemain dari leaderboardAdmin / Bot Permission

Konfigurasi

PerintahKeteranganIzin
/get startedJalankan setup wizard buat pengaturan pertama kaliAdmin
/helpBuka dokumentasi bantuan interaktif dengan semua topik yang adaSemua orang

Ada dua cara buat kirim skor:

  • Pakai slash command /submit lalu pilih leaderboard-nya. Bot bakal buka modal/alur yang sesuai tipe leaderboard-nya — kolom skor buat Classic/Highscore/Time, pemilih pemain + pemenang buat ELO, pemilih pemain + skor buat League, atau kolom nama buat Rating (gambarnya dilampirkan ke slash command). Di leaderboard tim, pemilihnya minta kamu nyusun roster penuh buat tiap sisi, bukan cuma satu pemain.
  • Klik tombol Submit di pesan leaderboard yang udah diposting buat buka alur pengiriman yang sama.

Proses Review

  1. Submission-nya diposting ke log channel yang udah diatur (kalau ada).
  2. Validator atau admin klik Approve atau Reject.
  3. Kalau ditolak, pengirimnya dapat DM berisi alasan penolakan.
  4. Kalau disetujui, leaderboard-nya langsung ke-update.

Auto-Approve

Tiap leaderboard bisa diatur buat menyetujui submission otomatis setelah jeda tertentu: Off, Instant, 1 hour, 3 hours, 24 hours, 3 days, atau 7 days. Default buat leaderboard ELO adalah 24 jam.

Membatalkan Skor

Admin dan validator bisa membatalkan skor yang terlanjur disetujui dengan klik kanan pesan submission-nya lalu pilih "Cancel Score/Match". Perubahan skornya bakal dibalikin, dan alasan pembatalan wajib diisi.

Tipe leaderboard ELO - Ranked pakai sistem rating ELO buat meranking pemain secara kompetitif, baik 1v1 maupun tim sampai delapan orang per sisi.

Cara kerjanya

  • Tiap pemain mulai dari ELO awal yang bisa diatur (default: 1200).
  • Hasil match bisa menang, kalah, atau seri.
  • Rating dihitung pakai K-factor 32.
  • Rating semua peserta ke-update bersamaan setelah disetujui.

Match tim (2v2 – 8v8)

Leaderboard ELO dan League bisa dikunci ke ukuran tim tertentu — pilih pas bikin leaderboard-nya, atau ubah belakangan di Match format pada dashboard. Di leaderboard 3v3, tiap match berarti tiga pemain per sisi, dan leaderboard-nya tetap meranking pemain satu per satu.

Buat ELO, hasil yang diharapkan tiap tim dihitung dari rating rata-rata mereka, dan perubahannya diterapkan ke semua anggota tim itu — jadi ngalahin tim yang lebih kuat bikin semua orang di sisi pemenang dapat kenaikan yang sama. Buat League, tiap pemain di tim pemenang dapat poin menang, dan seluruh tim yang kalah dapat poin kalah.

Queue Matchmaking (Beta)

Kalau tombol queue diaktifkan di leaderboard, pemain tinggal klik buat masuk antrean matchmaking. Sistemnya ngelompokin pemain dengan rating ELO yang mirip pakai algoritma jendela melebar. Begitu ketemu lawan, sebuah thread dibikin buat match itu lengkap sama tombol voting komunitas. Kalau nggak ada lawan dalam 5 menit, antreannya kedaluwarsa.

Di leaderboard tim, queue-nya nunggu sampai pemainnya cukup buat ngisi dua sisi — enam orang buat 3v3 — lalu membaginya jadi dua tim dengan rata-rata rating sedekat mungkin, jadi pemain terkuat dan terlemah selalu berseberangan. Semua orang wajib klik Ready; yang nggak klik bakal dikeluarin, dan sisanya balik ke queue tanpa kehilangan antrean.

Tiap tim dapat voice channel sendiri biar bisa bahas strategi tanpa kedengeran lawan — kamu cuma bisa lihat dan masuk ke channel timmu sendiri. Dua-duanya dihapus begitu match selesai. Hasilnya baru dikunci kalau mayoritas tiap tim milih hasil yang sama (dua dari tiga di 3v3), jadi satu tim nggak akan pernah bisa ngaku menang sendiri; kalau hasilnya beda, sengketanya dilempar ke validator.

Tim tetap

Leaderboard ELO atau League berbasis tim juga bisa jalan dalam mode fixed teams (di-toggle di dashboard, sebelah Match format). Tim bernama yang permanen mendaftar sekali lewat tombol Team sign-up di leaderboard — pilih nama, lalu susun roster-nya, yang boleh nampung sampai dua cadangan di luar ukuran tim. Leaderboard-nya lalu meranking timnya sendiri: di board ELO tiap tim punya rating sendiri dan ngalahin tim yang lebih kuat lebih gede hasilnya; di board League, tabelnya meranking tim berdasarkan poin, persis liga olahraga beneran. Tim tetap di League nyatet match mereka lewat /submit — queue matchmaking di bawah ini khusus ELO.

Begitu ada anggota yang klik Queue, satu tim penuh masuk antrean dan semuanya dapat DM. Pencocokannya mempertemukan tim lawan tim berdasarkan rating tim, dan ready-check-nya sekalian jadi penentu lineup: anggota yang klik Ready paling awal sebanyak ukuran tim yang main, sisanya duduk manis. Hasilnya divoting sama pemain yang ikut main, dengan aturan mayoritas tiap sisi yang sama.

Tipe leaderboard League meranking pemain berdasarkan total poin yang dikumpulin dari banyak match. Ini format yang pas buat olahraga kayak sepak bola, basket, futsal, hoki, dan kompetisi 1v1 atau tim mana pun yang klasemen musimannya jadi patokan utama.

Cara kerjanya

  • Kirim match pakai /submit — bot bakal nanya kedua sisi beserta skor masing-masing (misal 3 dan 1).
  • Skor lebih tinggi menang; skor sama berarti seri.
  • Sisi yang menang dapat points_win, yang kalah dapat points_loss, dan kalau seri semuanya dapat points_draw. Di liga tim, tiap pemain di satu sisi dapat poin sisi itu.
  • Leaderboard-nya meranking pemain berdasarkan total poin; jumlah M/S/K dicatat terpisah.

Poin default

Liga baru default-nya 3 / 1 / 0 (standar FIFA sejak 1994). Ketiga nilainya bisa diatur per leaderboard lewat dashboard. Pakai 2 / 1 / 0 buat hoki, 4 / 2 / 0 buat rugbi, atau skema apa pun yang cocok sama olahragamu.

Mengirim match

Dari website, buka leaderboard-nya lalu klik Submit — isi kedua sisi beserta skor match-nya. Perintah /submit di bot membuka form yang sama di Discord. Match dengan pemain yang sama di kedua sisi dan skor negatif langsung ditolak waktu dikirim.

Liga tim

Leaderboard League bisa dikunci ke ukuran tim tertentu, 2v2 sampai 8v8, pas dibikin atau belakangan lewat Match format di dashboard. Tabelnya tetap meranking pemain satu per satu: semua pemain di sisi pemenang dapat poin menang, seluruh sisi yang kalah dapat poin kalah, dan skor match-nya dihitung sebagai gol memasukkan dan kemasukan buat masing-masing.

Pengin tabel liga klasik yang barisnya adalah tim? Nyalain Fixed teams di sebelah Match format: tim bernama yang permanen mendaftar lewat tombol Team sign-up di leaderboard (roster boleh bawa sampai dua cadangan), match dikirim tim lawan tim beserta skornya, dan tabelnya meranking tim berdasarkan poin.

Review & pembatalan

Match League pakai antrean review yang sama kayak match ELO: validator menyetujui atau menolak tiap submission, poinnya masuk begitu disetujui, dan match yang udah disetujui masih bisa dibatalin belakangan (poin yang tadi diberikan bakal dibalikin persis).

Tipe leaderboard Rating bikin member komunitas bisa kirim gambar dan saling ngasih bintang ke karya satu sama lain.

Cara kerjanya

  • Pemain kirim gambar pakai /submit — lampirin gambarnya ke slash command, lalu isi namanya di form.
  • Submission-nya muncul di log channel yang udah diatur, lengkap sama dropdown penilaian.
  • Siapa pun bisa kasih 1 sampai 10 bintang. Nilainya dirata-rata jadi satu skor.
  • Vote bisa diubah kapan aja — satu orang cuma punya satu suara per submission.
  • Leaderboard-nya meranking submission berdasarkan rata-rata penilaian.

Menilai lewat website

Di website, semua submission muncul di tab Entries. Klik salah satunya buat lihat gambar penuh dan kasih nilai lewat tombol bintang. Vote yang udah kamu kasih tetap diingat lintas sesi.

Atur siapa yang boleh lihat leaderboard-mu di website Scoreboards:

Publik

Bisa dilihat semua orang di website.

Tersembunyi

Cuma member server Discord-mu yang bisa lihat (harus login).

Privat

Cuma member dengan role Discord tertentu yang bisa lihat.

Nonaktif

Sama sekali nggak ditampilkan di website.

Kasih role Discord ke pemain secara otomatis berdasarkan peringkat mereka di leaderboard. Misalnya, 3 besar dapat role "Champion", rank 4–10 dapat role "Veteran", dan seterusnya.

  • Atur tier lewat dashboard web di pengaturan tiap leaderboard.
  • Pilih dasar penentuan tier: lewat rank (rank 1–3), lewat persentil (10% teratas), atau lewat skor (semua yang punya 2000+ poin). Semua tier di satu leaderboard pakai mode yang sama.
  • Pasangkan role Discord yang udah ada ke tiap tier.
  • Role dikasih dan dicabut otomatis tiap peringkat berubah.
  • Role Scoreboards harus berada di atas semua role yang dia bagikan, di Server Settings → Roles. Discord ngelarang bot ngatur role yang sejajar atau lebih tinggi dari rolenya sendiri, dan bot bakal ngasih peringatan di saluran leaderboard kalau kejadian.

Udah punya kompetisi yang jalan di tempat lain? /import nerima file CSV dan ngisi leaderboard dari situ, jadi kamu nggak perlu ngetik ulang apa-apa.

Ada dua cara: di Discord jalanin /import, pilih leaderboard-nya, lalu lampirin file-nya; atau di website buka dashboard, pilih leaderboard, terus pakai Import from CSV. Leaderboard pribadi nggak punya server Discord, jadi dashboard-lah satu-satunya jalan masuk buat yang itu. Formatnya sama aja — satu <arg>name,score</arg> per baris:

name,score
Alex,120
"Cooney, EM",95
Sam,88
  • Baris judul kedeteksi dan dilewati otomatis.
  • Koma, titik koma, dan tab sama-sama jalan sebagai pemisah — apa pun yang dikeluarin spreadsheet-mu.
  • Nama yang mengandung koma tetap jalan kalau dikasih tanda kutip, kayak <arg>"Cooney, EM"</arg>.
  • Kalau namanya berupa user id Discord, entri itu disambungkan ke member terkait dan tampil pakai display name mereka. Selain itu jadi entri kustom.
  • Nama yang muncul dua kali dipakai nilai terakhirnya, jadi kamu bisa impor ulang file yang udah dibenerin.
  • Baris yang nggak kebaca dilewati dan dilaporkan lengkap sama nomor barisnya — sisanya tetap masuk, jadi kamu tinggal benerin satu-dua baris lalu impor lagi.

Waktu nerima <arg>mm:ss</arg>, <arg>hh:mm:ss</arg>, plus pecahan detik yang opsional: <arg>1:30</arg>, <arg>1:12:44.081</arg>. Angka polos dibaca sebagai milidetik. Ingat, tiga angka yang dipisah titik dua berarti <arg>jam:menit:detik</arg>, jadi tulis presisi di bawah satu detik setelah tanda titik.

Batasnya: 500 baris dan 100 KB per file — pecah dulu ekspor yang lebih gede lalu impor bertahap. Leaderboard Image Rating nggak bisa diimpor, karena isinya gambar yang diunggah, bukan skor.

Season bikin kamu bisa nutup satu babak kompetisi dan mulai lagi dari nol tanpa kehilangan riwayatnya. Jalanin /scoreboard season end, lalu setelah konfirmasi, klasemen akhirnya diarsipkan, postingan podium dikirim ke saluran leaderboard, dan board-nya direset buat season berikutnya.

  • Board ELO tetap nyimpen pemainnya dan ngembaliin semua rating ke nilai awal — ladder tanpa orang ya bukan ladder namanya.
  • Board Classic, Highscore, Time, dan League dikosongin, soalnya skor nol bukan entri yang berarti.
  • Board Image Rating nggak punya season — reset bakal menghapus gambar yang udah dikirim.
  • Klasemen yang diarsipkan disimpan selamanya, walaupun board-nya nanti direset lagi.

Rekap mingguan ngirim ringkasan singkat ke saluran leaderboard tiap Senin: tiga besar, kenaikan rank terbesar minggu itu, dan seberapa ramai aktivitasnya. Cuma board yang punya minimal tiga skor dalam seminggu terakhir yang dapat, jadi leaderboard yang lagi sepi ya tetap adem. Rekap bisa dimatiin per leaderboard lewat /scoreboard settings atau dashboard di website.