Scoreboards Documentation
Everything you need to create and manage Discord leaderboards
- Thêm bot — Mời Scoreboards vào server Discord của bạn bằng link mời ở trang chủ.
- Chạy trình thiết lập — Dùng
/get startedđể chọn loại leaderboard, đặt tên và đăng nó vào một kênh. Board Point, Highscore và Time mở ra sẵn vài dòng mẫu để bạn thấy nó chạy thế nào; chúng biến mất ngay khi có score thật đầu tiên. - Phân vai trò — Mở dashboard để đặt vai trò <arg>bot permission</arg> (ai được quản lý leaderboard) và vai trò <arg>validator</arg> (ai được duyệt lượt gửi).
- Tạo leaderboard đầu tiên — Dùng
/scoreboard createđể dựng một leaderboard. Chọn tên, loại và thứ tự sắp xếp. - Đăng nó lên — Dùng
/scoreboard showtrong một kênh để đăng leaderboard tương tác kèm nút gửi score và nút chuyển trang.
Khi tạo leaderboard bằng /scoreboard create, bạn chọn một trong sáu loại:
Classic
Cộng thêm hoặc trừ bớt điểm vào một tổng chạy liên tục. Hợp nhất với những trò tính điểm cộng dồn.
Highscore
Chỉ giữ kỷ lục cá nhân của mỗi người. Score thấp hơn tự động bị thay thế.
Time (Speedrun)
Gửi thời gian dạng 00:00:00 (phần trăm giây) hoặc 00:00:000 (mili-giây) — định dạng hiển thị là một cài đặt trong dashboard, board mới mặc định dùng mili-giây. Sắp xếp tăng dần nếu nhanh nhất thắng, giảm dần nếu lâu nhất thắng.
ELO - Ranked
Hệ thống rating ELO đúng chất ganh đua, 1v1 hoặc đội hình 2v2–8v8. Gửi kết quả trận lên là rating của mọi người tham gia tự được chỉnh.
Rating
Gửi ảnh lên cho cộng đồng chấm sao (1–10). Các phiếu được lấy trung bình thành một score. Quá hợp cho thi vẽ và các thử thách sáng tạo.
League
Xếp hạng theo điểm tích luỹ qua từng trận, cho bóng đá, bóng rổ, FIFA và mọi môn tương tự. Bạn tự đặt điểm cho thắng/hoà/thua (mặc định 3/1/0) và ghi cả tỉ số trận (ví dụ 3-1).
Quản lý leaderboard
| Lệnh | Mô tả | Quyền |
|---|---|---|
/scoreboard create | Tạo leaderboard mới với tên, loại, thứ tự sắp xếp và vài tuỳ chọn khác | Admin / vai trò dùng bot |
/scoreboard show | Đăng leaderboard vào kênh hiện tại kèm các nút bấm | Admin / vai trò dùng bot |
/scoreboard settings | Mở dashboard để chỉnh cài đặt của scoreboard này (sắp xếp, hiển thị, tiêu đề, kiểu hiển thị, thiết lập ELO và nhiều thứ nữa) | Admin / vai trò dùng bot |
/scoreboard delete | Xoá vĩnh viễn một leaderboard cùng toàn bộ dữ liệu của nó (phải xác nhận) | Admin / vai trò dùng bot |
/scoreboard season end | Lưu lại bảng xếp hạng cuối cùng, đăng bục podium và reset board cho season sau (phải xác nhận) | Admin / vai trò dùng bot |
/import | Nhập score vào leaderboard từ file CSV (khi chuyển từ bot khác hoặc từ bảng tính) | Admin / vai trò dùng bot |
Gửi score & kết quả trận
| Lệnh | Mô tả | Quyền |
|---|---|---|
/submit | Gửi lên bất kỳ leaderboard nào. Bot tự mở bước tiếp theo đúng với loại board — ô nhập score (Classic/Highscore/Time), ô chọn người chơi + người thắng (ELO), ô chọn người chơi + tỉ số (League), hoặc ô nhập tên (Rating, kèm ảnh đính vào lệnh slash). Trên board đồng đội, phần chọn sẽ hỏi cả đội hình từng bên. | Ai cũng được |
/set | Đặt tay score hoặc rating ELO chính xác cho một người chơi | Admin / vai trò dùng bot |
/adjust | Cộng hoặc trừ một giá trị vào score của người chơi (nhập số âm để trừ) | Admin / vai trò dùng bot |
/player remove | Gỡ một người chơi khỏi leaderboard | Admin / vai trò dùng bot |
Thiết lập
| Lệnh | Mô tả | Quyền |
|---|---|---|
/get started | Mở trình thiết lập cho lần cấu hình đầu tiên | Admin |
/help | Xem tài liệu trợ giúp tương tác với đủ mọi chủ đề | Ai cũng được |
Có hai cách gửi:
- Dùng lệnh
/submitrồi chọn leaderboard. Bot mở đúng ô nhập tuỳ theo loại board — ô nhập score cho Classic/Highscore/Time, ô chọn người chơi + người thắng cho ELO, ô chọn người chơi + tỉ số cho League, hoặc ô nhập tên cho Rating (ảnh thì đính kèm ngay vào lệnh slash). Trên leaderboard đồng đội, thay vì chọn một người, bạn chọn cả đội hình cho mỗi bên. - Hoặc bấm nút Submit ngay trên tin nhắn leaderboard đã đăng để mở đúng luồng gửi đó.
Quy trình duyệt
- Lượt gửi được đăng vào kênh log đã cài (nếu có).
- Một validator hoặc admin bấm Approve hoặc Reject.
- Nếu bị từ chối, người gửi nhận DM kèm lý do.
- Nếu được duyệt, leaderboard cập nhật ngay lập tức.
Tự động duyệt
Mỗi leaderboard có thể được đặt tự duyệt sau một khoảng thời gian: Tắt, Ngay lập tức, 1 giờ, 3 giờ, 24 giờ, 3 ngày hoặc 7 ngày. Leaderboard ELO mặc định là 24 giờ.
Huỷ một score đã duyệt
Admin và validator có thể huỷ một score đã duyệt bằng cách chuột phải vào tin nhắn của lượt gửi rồi chọn "Cancel Score/Match". Thao tác này hoàn lại đúng phần điểm đã cộng và bắt buộc phải ghi lý do huỷ.
Loại leaderboard ELO - Ranked dùng hệ thống rating ELO để xếp hạng người chơi theo trình, chơi 1v1 hoặc theo đội tối đa tám người mỗi bên.
Cách nó chạy
- Mỗi người chơi bắt đầu ở mức ELO khởi điểm do bạn đặt (mặc định 1200).
- Kết quả trận có thể là thắng, thua hoặc hoà.
- Rating được tính với hệ số K là 32.
- Sau khi duyệt, rating của tất cả người tham gia được cập nhật cùng lúc.
Trận đồng đội (2v2 – 8v8)
Leaderboard ELO và League đặt được số người cố định mỗi đội — chọn lúc tạo board, hoặc đổi sau trong mục Match format ở dashboard. Từ đó mọi trận trên một board 3v3 đều có ba người mỗi bên, còn leaderboard vẫn xếp hạng từng người riêng lẻ.
Với ELO, kết quả kỳ vọng của mỗi đội được tính từ rating trung bình của đội đó, và mức thay đổi rồi được áp cho từng thành viên — nên hạ được một đội mạnh hơn thì cả bên thắng cùng ăn một mức như nhau. Với League, mọi người bên thắng đều nhận điểm thắng, còn cả đội thua nhận điểm thua.
Queue matchmaking (Beta)
Nếu nút queue được bật trên leaderboard, người chơi bấm vào đó để vào hàng chờ ghép trận. Hệ thống gom những người có ELO gần nhau bằng thuật toán nới rộng dần khoảng tìm kiếm. Ghép được rồi thì một thread được mở cho trận đấu, kèm nút bình chọn kết quả. Nếu 5 phút không tìm ra trận, lượt queue tự hết hạn.
Trên board đồng đội, queue chờ đủ người cho cả hai bên — sáu người cho 3v3 — rồi chia thành hai đội sao cho rating trung bình sát nhau nhất có thể, tức người mạnh nhất và yếu nhất sẽ nằm hai phe. Ai cũng phải bấm Ready; ai không bấm thì bị loại ra, còn những người còn lại quay về queue mà vẫn giữ chỗ.
Mỗi đội có kênh voice riêng để bàn chiến thuật mà đối thủ không nghe được — bạn chỉ thấy và vào được kênh của đội mình. Cả hai kênh bị xoá khi trận kết thúc. Kết quả chỉ được chốt khi đa số mỗi đội cùng bình chọn cho nó (hai trên ba ở trận 3v3), nghĩa là một đội không bao giờ tự tuyên bố mình thắng được; lệch đi là mở tranh chấp cho validator xử.
Đội cố định
Board ELO hoặc League có số người cố định mỗi bên còn chạy được ở chế độ đội cố định (bật ngay cạnh Match format trong dashboard). Các đội có tên đăng ký một lần qua nút Team sign-up trên leaderboard — đặt tên rồi chọn đội hình, được phép dư tối đa hai người dự bị. Từ đó leaderboard xếp hạng chính các đội: trên board ELO mỗi đội có rating riêng và hạ đội mạnh hơn thì ăn nhiều hơn; trên board League thì bảng xếp các đội theo điểm, y hệt một giải thể thao thật. Đội cố định ở League ghi nhận trận bằng /submit — phần queue matchmaking bên dưới chỉ dành cho ELO.
Khi bất kỳ thành viên nào bấm Queue, cả đội cùng vào hàng và mọi người đều nhận DM. Việc ghép trận đấu đội với đội theo rating của đội, và phần ready-check kiêm luôn việc chốt đội hình: đúng bằng số người mỗi bên, ai bấm Ready trước thì được ra sân, còn lại ngồi ngoài trận đó. Kết quả do chính những người ra sân bình chọn, vẫn theo luật đa số mỗi bên.
Loại leaderboard League xếp hạng người chơi theo tổng điểm tích luỹ qua các trận. Đây là thể thức đúng cho bóng đá, bóng rổ, futsal, khúc côn cầu, và mọi giải 1v1 hay đồng đội mà bảng xếp hạng cuối mùa mới là chân lý.
Cách nó chạy
- Gửi một trận bằng
/submit— bot hỏi cả hai bên và tỉ số của từng bên (ví dụ 3 và 1). - Bên nào tỉ số cao hơn thì thắng; bằng nhau là hoà.
- Bên thắng nhận points_win, bên thua nhận points_loss, hoà thì cả hai nhận points_draw. Ở giải đồng đội, mọi người trong một bên đều nhận đúng số điểm của bên đó.
- Leaderboard xếp hạng theo tổng điểm; số trận thắng/hoà/thua được đếm riêng.
Điểm mặc định
Giải mới mặc định 3 / 1 / 0 (chuẩn FIFA từ năm 1994). Cả ba con số đều chỉnh được cho từng leaderboard trong dashboard. Dùng 2 / 1 / 0 cho khúc côn cầu, 4 / 2 / 0 cho bóng bầu dục, hoặc bất kỳ thang điểm nào hợp với môn của bạn.
Gửi một trận
Trên website, mở leaderboard rồi bấm Submit — nhập cả hai bên và tỉ số trận. Lệnh /submit của bot mở đúng bảng đó trong Discord. Trận mà hai bên là cùng một người, hay tỉ số âm, đều bị chặn ngay lúc gửi.
Giải đồng đội
Leaderboard League đặt được số người cố định mỗi đội, từ 2v2 tới 8v8, ngay lúc tạo hoặc sau đó trong mục Match format ở dashboard. Bảng vẫn xếp hạng từng người: ai ở bên thắng cũng nhận điểm thắng, cả bên thua nhận điểm thua, còn tỉ số trận được tính là bàn thắng và bàn thua cho mỗi người.
Thích một bảng xếp hạng thể thao đúng nghĩa, nơi mỗi dòng là một đội? Bật Fixed teams ngay cạnh Match format: các đội có tên đăng ký một lần qua nút Team sign-up trên leaderboard (đội hình được dư tối đa hai dự bị), trận được gửi lên dạng đội đấu đội kèm tỉ số, và bảng xếp các đội theo điểm.
Duyệt & huỷ trận
Trận League đi qua đúng hàng chờ duyệt như trận ELO: validator duyệt hoặc từ chối từng lượt gửi, điểm chỉ vào bảng khi được duyệt, và trận đã duyệt vẫn huỷ được sau đó (huỷ thì hoàn lại đúng số điểm đã cộng).
Loại leaderboard Rating cho phép thành viên trong cộng đồng gửi ảnh lên và chấm sao cho ảnh của nhau.
Cách nó chạy
- Người chơi gửi ảnh bằng
/submit— đính ảnh vào lệnh slash, rồi nhập tên ở ô hiện ra. - Bài gửi hiện trong kênh log đã cài, kèm ô chọn điểm.
- Ai cũng chấm được từ 1 tới 10 sao. Các phiếu được lấy trung bình thành một score.
- Người chấm đổi phiếu lúc nào cũng được — mỗi người chỉ một phiếu cho mỗi bài.
- Leaderboard xếp hạng các bài theo điểm trung bình.
Chấm điểm trên website
Trên website, các bài gửi nằm ở tab Entries. Bấm vào bài nào cũng xem được ảnh đầy đủ và chấm điểm bằng dãy nút sao. Phiếu bạn đã chấm được nhớ lại qua từng phiên.
Bạn quyết định ai xem được leaderboard của mình trên website Scoreboards:
Ai vào website cũng xem được.
Chỉ thành viên server Discord của bạn mới xem được (phải đăng nhập).
Chỉ ai có một vai trò Discord cụ thể mới xem được.
Không hiện trên website chút nào.
Tự phát vai trò Discord cho người chơi dựa trên thứ hạng của họ trên leaderboard. Ví dụ, top 3 nhận vai trò "Champion", hạng 4–10 nhận "Veteran", cứ thế.
- Thiết lập các tier từ dashboard trên web, trong phần cài đặt của từng leaderboard.
- Chọn cách định nghĩa một tier: theo rank (hạng 1–3), theo phần trăm (top 10% người chơi), hoặc theo score (ai từ 2000 điểm trở lên). Mọi tier trên cùng một leaderboard dùng chung một cách.
- Gán bất kỳ vai trò Discord có sẵn nào cho từng tier.
- Vai trò được phát và thu lại tự động mỗi khi thứ hạng thay đổi.
- Vai trò Scoreboards phải nằm trên mọi vai trò mà nó phát, trong Server Settings → Roles. Discord không cho bot đụng vào vai trò ngang hoặc cao hơn chính nó, và bot sẽ đăng cảnh báo vào kênh của leaderboard nếu gặp phải chuyện này.
Đang chạy một cuộc thi ở chỗ khác? /import nhận một file CSV rồi đổ thẳng vào leaderboard, khỏi phải gõ lại gì.
Có hai đường: trong Discord thì chạy /import, chọn leaderboard và đính file; còn trên website thì mở dashboard, chọn leaderboard và dùng Import from CSV. Leaderboard cá nhân không gắn với server Discord nào, nên dashboard là lối vào duy nhất cho chúng. Đường nào thì file cũng như nhau — mỗi dòng một <arg>name,score</arg>:
name,score Alex,120 "Cooney, EM",95 Sam,88
- Dòng tiêu đề được nhận ra và bỏ qua tự động.
- Dấu phẩy, chấm phẩy và tab đều dùng làm dấu phân cách được — bảng tính của bạn xuất ra kiểu nào cũng ổn.
- Tên có dấu phẩy vẫn chạy nếu bạn để trong ngoặc kép, kiểu <arg>"Cooney, EM"</arg>.
- Nếu tên là một Discord user id, mục đó được gắn với thành viên tương ứng và hiện tên hiển thị của họ. Còn lại thì thành một mục tự đặt.
- Cùng một tên xuất hiện hai lần thì giữ giá trị cuối, nên bạn nhập lại file đã sửa được thoải mái.
- Dòng nào đọc không ra thì bị bỏ qua và liệt kê theo số dòng — phần còn lại vẫn vào, nên bạn chỉ cần sửa vài dòng rồi chạy lại.
Thời gian nhận <arg>mm:ss</arg>, <arg>hh:mm:ss</arg> và phần thập phân tuỳ chọn: <arg>1:30</arg>, <arg>1:12:44.081</arg>. Một con số trần được hiểu là mili-giây. Lưu ý ba số ngăn bởi dấu hai chấm nghĩa là <arg>giờ:phút:giây</arg>, nên phần nhỏ hơn một giây thì viết sau dấu chấm.
Giới hạn: 500 dòng và 100 KB mỗi file — file to hơn thì cắt ra nhập làm nhiều lần. Leaderboard Image Rating không nhập được, vì mỗi mục ở đó là một tấm ảnh tải lên chứ không phải một con số.
Seasons là cách bạn khép lại một chặng đua rồi chơi lại từ đầu mà không mất những gì đã xảy ra. Chạy /scoreboard season end và xác nhận — bảng xếp hạng cuối cùng được lưu lại, một bài podium được đăng vào kênh của leaderboard, và board reset cho season mới.
- Board ELO giữ nguyên người chơi và đưa mọi rating về giá trị khởi điểm — một cái ladder không có ai trên đó thì đâu còn là ladder.
- Board Classic, Highscore, Time và League bị xoá sạch, vì một score bằng không thì đâu phải một thứ hạng thật.
- Board Image Rating không có season — reset sẽ xoá mất những tấm ảnh đã gửi.
- Bảng xếp hạng đã lưu thì giữ mãi, kể cả khi board bị reset thêm lần nữa về sau.
Recap hằng tuần đăng một bản tóm tắt ngắn vào kênh của leaderboard mỗi thứ Hai: top ba, người leo hạng mạnh nhất tuần, và mọi người đã chơi nhiều tới đâu. Chỉ board có ít nhất ba score trong tuần vừa rồi mới nhận được, nên một leaderboard đang im ắng thì cứ để nó im. Bạn tắt recap cho từng leaderboard trong /scoreboard settings hoặc trong dashboard trên website.