Scoreboards Documentation
Everything you need to create and manage Discord leaderboards
- ボットを追加する — トップページの招待リンクから、ScoreboardsをDiscordサーバーに招待します。
- セットアップウィザードを実行する —
/get startedでリーダーボードの種類を選び、名前をつけて、チャンネルに投稿します。Classic、Highscore、Timeのボードには最初からサンプルの記録が入っていて、動きをすぐ確かめられます。実際のスコアが1件でも入れば消えます。 - ロールを決める — ダッシュボードを開いて、<arg>bot permission</arg>ロール(リーダーボードを管理できる人)と<arg>validator</arg>ロール(送信を承認できる人)を設定します。
- 最初のリーダーボードを作る —
/scoreboard createでリーダーボードを用意します。名前、種類、並び順を選んでください。 - チャンネルに出す — チャンネルで
/scoreboard showを実行すると、送信ボタンとページ送り付きのリーダーボードが投稿されます。
/scoreboard createでリーダーボードを作るときは、次の6種類から選びます。
Classic
合計に加算・減算していく方式です。ポイントを積み上げていく競技に向いています。
Highscore
各プレイヤーの自己ベストだけを保存します。より良い記録が出れば、古い記録は自動で置き換わります。
Time (Speedrun)
タイムは00:00:00(1/100秒)か00:00:000(ミリ秒)で送信します。どちらで表示するかはダッシュボードの設定で決まり、新しいボードは既定でミリ秒です。最速勝ちなら低い順、長く続けたほうが勝ちなら高い順に並べてください。
ELO - Ranked
本格的なELOレーティングです。1v1でも2v2〜8v8のチーム戦でも使えます。マッチ結果を送信すると、参加者全員のレーティングが自動で更新されます。
Rating
画像を投稿して、コミュニティが1〜10の星で評価します。平均がスコアになります。アートコンテストやお題チャレンジにぴったりです。
League
1試合ごとに勝ち点を与える方式で、サッカーやバスケ、FIFAなどに向いています。勝ち・引き分け・負けの点数(既定は3/1/0)と、試合のスコア(3-1など)を設定できます。
リーダーボードの管理
| コマンド | 説明 | 必要な権限 |
|---|---|---|
/scoreboard create | 名前、種類、並び順などを指定して、新しいリーダーボードを作ります | 管理者 / ボット操作ロール |
/scoreboard show | いまのチャンネルに、ボタン付きのリーダーボードを表示します | 管理者 / ボット操作ロール |
/scoreboard settings | ダッシュボードを開いて、このボードの設定(並び順、公開範囲、見出し、表示モード、ELO設定など)を変更します | 管理者 / ボット操作ロール |
/scoreboard delete | リーダーボードと、そのデータをすべて完全に削除します(確認が必要です) | 管理者 / ボット操作ロール |
/scoreboard season end | 最終順位を保存し、表彰台を投稿して、次のシーズンに向けてボードをリセットします(確認が必要です) | 管理者 / ボット操作ロール |
/import | CSVファイルからスコアを取り込みます(他のボットや表計算ソフトからの移行用) | 管理者 / ボット操作ロール |
スコアとマッチの送信
| コマンド | 説明 | 必要な権限 |
|---|---|---|
/submit | どのリーダーボードにも送信できます。種類に応じて、次に必要な画面が開きます。スコアの入力(Classic / Highscore / Time)、プレイヤーと勝者の選択(ELO)、プレイヤーとスコアの選択(League)、名前の入力(Rating。画像はスラッシュコマンドに添付します)。チーム制のボードでは、各サイドのメンバー全員を選びます。 | 全員 |
/set | プレイヤーのスコアやELOレーティングを、手動で指定した値にします | 管理者 / ボット操作ロール |
/adjust | プレイヤーのスコアに値を足し引きします(マイナスの値で減らせます) | 管理者 / ボット操作ロール |
/player remove | リーダーボードからプレイヤーを外します | 管理者 / ボット操作ロール |
設定
| コマンド | 説明 | 必要な権限 |
|---|---|---|
/get started | 初期設定用のセットアップウィザードを開きます | 管理者 |
/help | 対話形式のヘルプを開いて、すべてのトピックを確認できます | 全員 |
送信のしかたは2通りあります。
/submitを実行してリーダーボードを選びます。ボードの種類に合わせて、適切な画面が開きます。Classic / Highscore / Timeならスコアの入力、ELOならプレイヤーと勝者の選択、Leagueならプレイヤーとスコアの選択、Ratingなら名前の入力(画像はスラッシュコマンドに添付)です。チーム制のリーダーボードでは、1人だけでなく各サイドのメンバー全員を選びます。- 投稿されたリーダーボードのSubmitボタンからでも、同じ送信画面が開きます。
確認の流れ
- 送信された内容が、設定したログチャンネルに投稿されます(設定している場合)。
- 承認者か管理者がApproveまたはRejectを押します。
- 却下された場合は、送信した人にDMで理由が届きます。
- 承認されると、リーダーボードがすぐに更新されます。
自動承認
リーダーボードごとに、一定時間が過ぎた送信を自動で承認できます。オフ、即時、1時間、3時間、24時間、3日、7日から選べます。ELOのリーダーボードは、既定で24時間です。
スコアを取り消す
管理者と承認者は、承認済みのスコアをあとから取り消せます。送信のメッセージを右クリックして"Cancel Score/Match"を選ぶと、そのスコアの変更が元に戻ります。取り消しには理由の入力が必要です。
ELO - Rankedのリーダーボードは、ELOレーティングで実力どおりの順位をつけます。1v1でも、最大8人ずつのチーム戦でも使えます。
しくみ
- 全員が同じ開始ELOからスタートします(既定は1200。変更できます)。
- マッチの結果は、勝ち・負け・引き分けのいずれかです。
- レーティングはKファクター32で計算されます。
- 承認されると、参加者全員のレーティングが同時に更新されます。
チーム戦(2v2〜8v8)
ELOとLeagueのリーダーボードには、固定のチーム人数を設定できます。作成時に選ぶか、あとからダッシュボードのMatch formatで変更してください。3v3にしたリーダーボードでは毎回3人ずつで対戦し、順位はそれでもプレイヤー個人ごとにつきます。
ELOでは、各チームの期待勝率をチームの平均レーティングから計算し、その結果をチーム全員に同じだけ反映します。格上に勝てば、勝った側の全員が同じだけ上がるということです。Leagueでは、勝ったチームの全員に勝ちの点数が、負けたチームの全員に負けの点数が入ります。
マッチメイキングキュー(ベータ)
リーダーボードでキューのボタンを有効にしておくと、プレイヤーはそれを押してマッチメイキングに参加できます。まずはELOの近い相手を探し、見つからなければ範囲を少しずつ広げていきます。マッチが決まると専用のスレッドが作られ、結果を報告する投票ボタンが用意されます。5分たっても相手が見つからない場合は、キューから自動で外れます。
チーム制のリーダーボードでは、両サイドが埋まる人数(3v3なら6人)がそろうまで待ってから、平均レーティングができるだけ近くなるように2つのチームへ分けます。いちばん強い人といちばん弱い人は、自然と別のチームになります。全員が Readyを押す必要があり、押さない人が出たときは、その人だけ外れて、残りは順番を保ったままキューへ戻ります。
チームごとに専用のボイスチャンネルが用意されるので、相手に聞かれずに作戦を話せます。見えるのも入れるのも自分のチームのチャンネルだけです。マッチが確定すると、どちらのチャンネルも消えます。結果は両方のチームで過半数が同じ結果に投票した時点で確定するので(3v3なら各チーム2人)、片方のチームだけで勝ちを宣言することはできません。食い違ったときは異議として扱われ、承認者が判断します。
固定チーム
チーム人数を決めたELOやLeagueのリーダーボードは、fixed teamsモードでも動かせます(ダッシュボードのMatch formatの隣で切り替えます)。名前つきの固定チームは、リーダーボードのTeam sign-upボタンから一度だけ登録します。チーム名を決めてメンバーを選ぶ形で、チーム人数に加えて控えを2人まで入れられます。以降、リーダーボードはチームそのものを順位づけします。ELOのボードならチームごとにレーティングを持ち、格上に勝つほど大きく上がります。Leagueのボードなら、本物のリーグ戦と同じように勝ち点順に並びます。Leagueの固定チームは/submitで試合を記録します。下で説明するマッチメイキングキューは、ELO専用です。
メンバーの誰かがQueueを押すと、チーム全員がキューに入り、全員にDMが届きます。マッチングはチームのレーティングどうしで組み合わせ、レディチェックはそのまま出場メンバーの選抜も兼ねます。各チームで先にReadyを押したチーム人数分の人が出場し、残りはそのマッチを見送ります。結果の投票は出場した人が行い、こちらも各チームの過半数で確定します。
Leagueのリーダーボードは、試合を重ねて貯めた勝ち点でプレイヤーを順位づけします。サッカー、バスケ、フットサル、ホッケーのようなスポーツや、シーズンの順位表がすべてを語る1v1・チーム戦にぴったりの形式です。
しくみ
/submitで試合を送信すると、両サイドと、それぞれのスコア(3と1など)を聞かれます。- スコアが高いほうが勝ち、同点なら引き分けです。
- 勝った側にpoints_win、負けた側にpoints_loss、引き分けなら両者にpoints_drawが入ります。チーム制のリーグでは、そのサイドの全員に同じ点数が入ります。
- リーダーボードは合計勝ち点で並び、勝ち・引き分け・負けの数はそれぞれ別に記録されます。
勝ち点の初期値
新しいリーグの初期値は3 / 1 / 0です(1994年以降のFIFA標準)。3つの値はどれも、ダッシュボードからリーダーボードごとに変更できます。ホッケーなら2 / 1 / 0、ラグビーなら4 / 2 / 0のように、競技に合わせて自由に決めてください。
試合を送信する
Webサイトからは、リーダーボードを開いてSubmitを押し、両サイドと試合のスコアを入力します。Discordでは/submitで同じ入力画面が開きます。同じプレイヤーどうしの対戦や、マイナスのスコアは送信の時点で弾かれます。
チームで戦うリーグ
Leagueのリーダーボードには、2v2から8v8まで固定のチーム人数を設定できます。作成時でも、あとからダッシュボードのMatch formatからでも変更できます。順位はプレイヤー個人ごとのままで、勝ったサイドの全員に勝ちの点数、負けたサイドの全員に負けの点数が入り、試合のスコアはそれぞれの得点・失点として記録されます。
チームそのものが並ぶ、本物のリーグ表にしたいですか?Match formatの隣にあるFixed teamsをオンにしてください。名前つきの固定チームがリーダーボードのTeam sign-upボタンから一度だけ登録され(控えは2人まで)、試合はチーム対チームでスコアとともに送信し、表はチームを勝ち点順に並べます。
確認と取り消し
Leagueの試合も、ELOのマッチと同じ確認の流れを通ります。承認者が1件ずつ承認または却下し、承認された時点で勝ち点が入ります。承認済みの試合はあとから取り消すこともでき、そのときは入った勝ち点がそのまま元に戻ります。
Ratingのリーダーボードでは、メンバーが画像を投稿し、お互いの投稿を星で評価し合います。
しくみ
/submitで画像を送信します。画像はスラッシュコマンドに添付し、そのあと開く入力欄に名前を入れます。- 送信された画像は、設定したログチャンネルに評価用のドロップダウン付きで表示されます。
- 誰でも1〜10の星で評価できます。評価の平均がスコアになります。
- 投票はいつでも変えられます。1人につき、1つの投稿に1票までです。
- リーダーボードは、平均評価の高い順に並びます。
Webサイトでの評価
Webサイトでは、投稿はEntriesタブに並びます。開くと画像が大きく表示され、星のボタンから評価できます。入れた票は、あとで開き直しても残っています。
Scoreboardsのサイトで、リーダーボードを誰が見られるかを決められます。
サイト上で誰でも見られます。
Discordサーバーのメンバーだけが見られます(ログインが必要です)。
指定したDiscordロールを持つメンバーだけが見られます。
サイトにはまったく表示されません。
リーダーボードの順位に応じて、Discordのロールを自動で割り当てられます。たとえば上位3人に「Champion」、4〜10位に「Veteran」といった具合です。
- ティアは、Webダッシュボードの各リーダーボードの設定から追加します。
- ティアの決め方は3通りです。順位(1〜3位)、パーセンタイル(上位10%)、スコア(2000ポイント以上の全員)。1つのリーダーボードでは、すべてのティアが同じ基準を使います。
- 各ティアには、既存のDiscordロールを自由に割り当てられます。
- 順位が動くと、ロールも自動で付け外しされます。
- Server Settings → Rolesで、Scoreboardsのロールを、割り当てるすべてのロールより上に置いてください。Discordでは、自分と同じかそれより上のロールをボットが操作できません。うまくいかないときは、ボットがリーダーボードのチャンネルに警告を投稿します。
すでに別の場所で大会を回していますか?/importにCSVファイルを渡せば、その中身でリーダーボードが埋まります。打ち直す必要はありません。
方法は2つあります。Discordなら/importを実行し、リーダーボードを選んでファイルを添付します。Webならダッシュボードを開いてリーダーボードを選び、Import from CSVを使ってください。個人用のリーダーボードにはDiscordサーバーがないので、こちらが入口になります。ファイルの形はどちらも同じで、1行に <arg>name,score</arg> と書きます。
name,score Alex,120 "Cooney, EM",95 Sam,88
- 見出し行は自動で判別して読み飛ばします。
- 区切り文字はカンマ、セミコロン、タブのどれでも構いません。表計算ソフトの出力そのままで大丈夫です。
- カンマを含む名前も、<arg>"Cooney, EM"</arg>のように引用符で囲めば使えます。
- 名前がDiscordのユーザーIDなら、その行はそのメンバーと紐づき、表示名で並びます。それ以外は通常のエントリーになります。
- 同じ名前が2回出てきた場合は、最後の値が残ります。直したファイルをもう一度取り込んでも問題ありません。
- 読み取れなかった行は飛ばし、行番号を一覧で知らせます。残りはそのまま取り込まれるので、数行だけ直して実行し直せます。
タイムは<arg>mm:ss</arg>と<arg>hh:mm:ss</arg>に対応し、小数部も付けられます(<arg>1:30</arg>、<arg>1:12:44.081</arg>など)。数字だけの場合はミリ秒として読みます。コロンで区切った3つの数字は<arg>hours:minutes:seconds</arg>という意味になるので、1秒未満はドットのあとに書いてください。
上限は1ファイルにつき500行・100KBです。大きな書き出しは分けて取り込んでください。Image Ratingのリーダーボードは取り込めません。エントリーがスコアではなく、アップロードされた画像だからです。
シーズンを使えば、それまでの記録を失わずに区切りをつけて、仕切り直せます。/scoreboard season endを実行して確認に答えると、最終順位が保存され、リーダーボードのチャンネルに表彰台が投稿され、ボードは次のシーズンに向けてリセットされます。
- ELOのボードはプレイヤーを残したまま、レーティングだけ全員が開始値に戻ります。誰もいないラダーは、もうラダーではないからです。
- Classic、Highscore、Time、Leagueのボードは記録を消します。0点は記録として意味を持たないからです。
- Image Ratingのボードにシーズンはありません。リセットすると、投稿された画像まで消えてしまうからです。
- 保存された順位はずっと残ります。そのあとボードを何度リセットしても消えません。
週間まとめは、毎週月曜日にリーダーボードのチャンネルへ短いまとめを投稿します。トップ3、その週いちばん順位を上げたプレイヤー、どれだけ遊ばれたかがわかります。直近1週間にスコアが3件以上あったボードだけが対象なので、静かなリーダーボードは静かなままです。まとめは/scoreboard settingsかWebのダッシュボードから、リーダーボードごとにオフにできます。