スマラダー 公開仕様書
最終更新:2026-11-11
スマラダーとは
スマラダーは『大乱闘スマッシュブラザーズ SPECIAL』の1on1レート戦を行う、非公式・個人運営のサービスです。任天堂株式会社とは関係ありません。
2026年10月25日に終了した「スマメイト」のようなサービスとして作っていますが、運営者は別人で、スマメイトとは関係ありません。レートの計算方法は、スマメイトの実際の挙動に合わせています。
この仕様書は、スマラダーがどう動くかを利用者が確かめられるように公開しています。変更するときは、末尾の変更履歴に日付と内容を残します。
アカウントと参加条件
スマラダーにはDiscordアカウントでログインします。パスワードはスマラダーでは作らず、預かりもしません。
レート戦に参加する条件
| 条件 | 内容 |
|---|---|
| Discordアカウントの作成日 | 作成から7日以上経過していること。作成から30日未満のアカウントは、レート戦が24時間で20戦までになります(暫定) |
| Discordサーバー | スマラダーのDiscordサーバーに参加していること。対戦はサーバー内のスレッドで行います |
| プロフィール | ゲーム内の名前と同じ表示名、接続環境(有線・無線)を登録していること |
| ルールチェック | 対戦ルールに関する簡単な問題に全問正解すること。ルールを大きく変えたときは受け直しになります |
- アカウントは1人1つまでです。複数のDiscordアカウントを使っての参加は禁止します。
- Discordから受け取るのは、ユーザーID、ユーザー名、アイコンだけです。メールアドレスは受け取りません。
- DiscordのユーザーIDは公開しません。スマラダー内では、独自のプレイヤーIDを使います。
- 退会するときは、運営に連絡してください(問い合わせ窓口)。退会した後、同じDiscordアカウントで登録し直すことはできません。
対戦の流れ
対戦相手の検索から結果報告まで、スマラダーのDiscordボットで行います。Webサイトでは、ランキングと戦績を見られます。
- 相手を探す:1戦目に使うキャラを選んで、対戦相手の検索を始めます。相手は選べず、条件に合う人と自動で組まれます。30分たっても相手が見つからないときは、検索を自動でやめます。
- 部屋を作る:マッチすると、ボットが対戦用のプライベートスレッド(対戦する2人と運営だけが見られるスレッド)を作り、部屋を立てる側を指定します。部屋を立てる人は、ゲーム内で専用部屋を作り、部屋ID(5文字)をスレッドに入力します。
- 入室する:相手は部屋IDと、ボットが対戦ごとに発行するパスワードで入室します。パスワードを対戦ごとに変えるのは、無関係な人の入室を防ぐためです。
- 対戦する:2本先取で戦います。連絡は対戦用スレッドで行います。
- 結果を報告する:両者が「勝ち」「負け」「対戦中止」のどれかを押します。報告が「勝ちと負け」で一致したときだけ、レートが変わります。対戦中止を押すときは、理由の書き込みが必要です。自分の報告を済ませるまで、次の対戦相手は探せません。相手の報告を待つ必要はありません。
マッチングの条件
| 設定 | 内容 |
|---|---|
| レート差の上限 | 100〜400または「制限なし」から選べます。自分と相手の両方の上限を満たすときだけマッチします |
| 接続環境 | 「有線の相手とだけ対戦する」を選べます |
| 配信 | 配信する人は「配信する」を設定します。「配信者とは対戦しない」も選べます |
| 再戦 | 「○時間以内に対戦した相手とは対戦しない」を選べます。設定に関わらず、同じ相手との連戦は3回までです |
| ブロック | 1シーズンに10人まで。ブロックした相手とは対戦しません。シーズンが終わるまで解除できません |
対戦ルール
1セットは2本先取です。ルールは、スマメイト最終期(第36期)の形をもとにしています。
専用部屋の設定:3ストック、7分、アイテムなし、ステージギミックなし、入室制限「だれでも」、パスワードはボットが発行したもの。
キャラクター
- 1戦目のキャラは、相手を探す前に申告します。相手を見てから変えることはできません。
- 2戦目以降は、直前の試合の敗者だけがキャラを変えられます。勝者は同じキャラのままです。
- Miiファイターは技構成・見た目とも自由です。相手への申告は必要ありません。
ステージ
| 試合 | 選べるステージ | 選び方 |
|---|---|---|
| 1戦目 | 終点、戦場、ポケモンスタジアム2、小戦場、ホロウバスティオン、村と街 | 両者が選び、ゲーム内の抽選で決めます。「おまかせ」は使いません |
| 2・3戦目 | 上の6つと、すま村 | 直前の敗者が選びます。勝者は「おまかせ」にします |
- 終点と戦場は、夢の泉以外の終点化・戦場化ステージも選べます。
- ホロウバスティオンを購入していない人は、そのステージを選べません。相手に代わりに選んでもらうことも禁止です。
拒否ステージ:相手の1戦目のキャラごとに、上の7ステージから2つを事前に設定できます。1戦目は両者の拒否を除いた中から、2戦目以降は相手の拒否だけを除いた中から選びます。選べるステージは、マッチ時にボットが表示します。
その他
- 時間切れのときは、残りストックが多い方の勝ちです。ストックが同じでサドンデスになったときは、時間切れの時点で%が少なかった方の勝ちです(%が多かった方は自滅します)。%も同じときだけ、サドンデスで決めます。
- 拒否されたステージを誤って選んだときは、すぐに自滅してその試合をやり直します。開始から5秒を過ぎても続けた場合は、そのステージで合意したものとします。
- 相手をあおる行為、暴言、意図的な回線切断は禁止です。
レートの計算
同じレート同士なら勝ちで+16、負けで−16です。レート差25ごとに変動が1ずつ増減し、変動は1〜30の範囲に収まります。
Δ = min(30, max(1, 16 + floor((敗者のレート − 勝者のレート) ÷ 25)))
- 勝者のレートに Δ を足し、敗者のレートから Δ を引きます。Δ は、マッチが成立した時点の両者の整数のレートで計算し、その時点で決まります。マッチすると、勝ったときと負けたときの変動をボットが表示します。決まった Δ は、対戦が確定した順に、その時点のレートへ反映します。
- 割り算の端数は、負の方向に切り捨てます(floor)。例えば−20÷25=−0.8は−1になります。
- レートの下限は1000です。1000を下回る分は引かれませんが、勝者には Δ がそのまま足されます。このため全体のレートはわずかに上がっていきますが、意図した仕様です。下限で止まるかどうかも、確定した順番で決まります。
計算例
| 勝者 | 敗者 | 変動 | 説明 |
|---|---|---|---|
| 1500 | 1500 | ±16 | 同じレート |
| 1500 | 1550 | ±18 | 格上に勝ち、差50で+2 |
| 1520 | 1500 | ±15 | 格下に勝ち、差20でも−1(端数は負の方向に切り捨て) |
| 1800 | 1400 | ±1 | 変動の下限1 |
| 1400 | 1800 | ±30 | 変動の上限30 |
| 1010 | 1015 | +16 / −15 | 敗者は下限1000で止まる |
この式は、スマメイトで実際に行われた対戦626組のレート変動のうち、594組(94.9%)と完全に一致しました(2026年10月24日に公開ページから収集)。一致しなかった約5%は、収集時のページ更新の遅れによる取り違えとみています。
シーズンとランキング
レート戦はシーズン制です。各シーズンは全員がレート1500から始め、終了時の上位50名を記録として残します。
| 項目 | 内容 |
|---|---|
| 期間 | 約3か月。開始日と終了日は、開始時に告知します |
| 初期レート | 1500 |
| 終了前のマッチング停止 | 終了の2時間前に、新しい対戦相手を探せなくなります(暫定)。すでに組まれた対戦は続けられます |
| 終了時点で未確定の対戦 | すべて、レートの変動なしで対戦中止として確定します。片方だけ報告していた対戦も含みます |
| シーズン終了時 | レートと戦績をリセットします。終了時点の全データは、データ公開の節の方法で残ります |
| 終了時の記録 | 上位50名の順位とレートを、各自のプロフィールに残します |
ランキング
- レートの高い順に上位200名を表示します。同じレートは同じ順位で、次の順位はその人数分を飛ばします(例:1位、2位、2位、4位)。
- 利用制限中の人は、ランキングに表示しません。
- プロフィールでは、現在のレート、今シーズンの最高レート(1500未満にはなりません)、勝敗数、試合ごとのレートの推移を見られます。
シーズン統計:参加者数、対戦数、上位5%のレート、100刻みのレート帯ごとの人数を公開します。上位5%とレート帯の集計は、そのシーズンに10戦以上した人が対象です。
結果報告のトラブルと自動処理
報告が「勝ちと負け」で一致したときだけ、レートが変わります。それ以外の組み合わせは、人の判断を待たずに決まったルールで処理します。
| 報告の組み合わせ | 結果 |
|---|---|
| 勝ち・負け | レートが変動して確定(勝者に+Δ、敗者に−Δ) |
| 中止・中止 | レートの変動なしで確定 |
| 食い違い | レートの変動なし・未確定。訂正して送り直せる |
| 片方だけ報告 | 1時間待って、報告した側に合わせて確定。未報告の側に記録が付く |
- 食い違い:勝ちと勝ち、負けと負け、勝ちと中止、負けと中止の場合です。レートは動かず、どちらも報告を訂正して送り直せます。運営が結果を変更することはありません。
- 未報告:片方だけが報告すると、30分後にボットが報告していない側へDMで知らせます。報告から1時間たっても相手の報告がなければ、報告した側の申告に合わせて確定します。報告しなかった側には記録が付きます。自動確定で勝った回数は、不正の検知に使います。確定した結果を後から変更することはありません。
- 両者とも未報告:マッチ成立から3時間たっても両者とも報告していなければ、レートの変動なしで対戦中止として確定します(暫定)。両者に未報告の記録が付きます。
- 対戦中止:相手と連絡が取れない(目安5分)、回線が遅いなど、対戦を続けられないときに使います。回線が遅いときは相手に伝え、決着がつく前に申し出てください。2本先取で負けが決まった後に「対戦中止」を選ぶことはできません。
- 未報告、食い違い、対戦中止が重なると、自動で一時停止になります(不正対策とペナルティの節)。
不正対策とペナルティ
ルールとペナルティの内容は公開します。ただし、不正を見つけるための具体的な条件と回数は公開しません。公開すると、そのすぐ手前で止める使い方ができてしまうためです。
| 公開するもの | 公開しないもの |
|---|---|
| 禁止行為と、それに対するペナルティの種類 | 自動制限がかかる回数のしきい値 |
| 「複数アカウントの検出をしている」という事実 | 複数アカウントを判定する条件 |
| 利用制限の段階と、それぞれでできなくなること | 誰が誰を通報したか、通報の件数と内容 |
| 自動確定で勝った回数を不正の検知に使っていること | その回数をどう判定に使うか |
禁止行為
- 虚偽の結果報告、対戦せずにレートを動かす行為(談合・わざと負けることを含みます)
- 複数アカウントの使用、アカウントの貸し借り
- 身勝手な理由での対戦中止、意図的な回線切断
- 暴言、あおり、対戦相手への嫌がらせ
- 改造したSwitch、ソフト、コントローラーの使用
利用制限の段階
| 段階 | 内容 |
|---|---|
| 一時停止 | 一定時間、レート戦に参加できなくなります。未報告や対戦中止が重なったときに、自動でかかります |
| レート戦の停止 | そのシーズン中はレート戦に参加できず、ランキングにも表示されません |
| 利用停止 | すべての機能が使えなくなります |
- 通報はボットから送れます。通報の結果、制限をかけたかどうかは、通報した人にもされた人にも個別には伝えません。通報した人が報復されるのを防ぐためです。
- 対戦の中身は当事者しか知りません。1件の通報だけで制限することは、基本的にありません。
- 制限が間違いだと思う場合は、問い合わせ窓口から連絡できます。
データの公開
全対戦の結果を毎日自動でCSVに書き出し、誰でもダウンロードできるようにします。運営者に何かあっても、その日までのデータは手元に残ります。
対戦データの列(レートが変動した対戦、1対戦1行)
match_id,season,match_seq,confirm_seq,matched_at,confirmed_at,winner_id,winner_name,winner_char,winner_rate_at_match,loser_id,loser_name,loser_char,loser_rate_at_match,delta
1024,1,1003,1019,2026-11-01T21:02:11+09:00,2026-11-01T21:14:05+09:00,p0012,あいう,mario,1532,p0480,かきく,fox,1548,16
- 対戦データのほかに、ランキング(シーズン、順位、プレイヤーID、表示名、現在レート、最高レート、勝敗数)、プレイヤー一覧(プレイヤーID、表示名)、シーズン一覧、各シーズンの終了時の上位50名も、同じ形式で公開します。
- 表計算ソフトで数式として動かないよう、= + - @ で始まる表示名には、先頭に ' を付けて書き出します。
- match_seq(マッチ成立の通し番号)と confirm_seq(確定の通し番号)を合わせて小さい順に処理すれば、全員のレートを最初から計算し直して確かめられます。マッチ成立では、その時点までの確定を反映したレートが「マッチ成立時のレート」と一致することを、確定では、上の計算式で求めた Δ を足し引きすることを確かめます。通し番号はマッチ成立と確定で共通のため、番号は飛び飛びになります。
- ランキングや戦績を読み取るためのAPIも用意する予定です。
公開しないもの:DiscordのユーザーID、対戦用スレッドの会話、通報、利用制限、ブロックの内容。
退会したとき:その後に公開するCSVでは、表示名を「退会済みユーザー」に置き換えます。レートの計算が合わなくなるので、対戦の記録そのものは残します。すでに配布した過去のCSVは回収できないため、登録前にこの点を確認してください。
運営体制と終了時の方針
スマラダーは個人で運営しています。そのため、運営者が対応できなくなっても、データが消えず、誰かが続きから再開できる仕組みにしています。
- データ:全対戦の結果を毎日公開します(データの公開の節)。
- ソースコード:公開します。公開データと組み合わせれば、同じレートの続きから別の人が運営を再開できます。
- 手作業を減らす設計:結果の食い違いや未報告などは、決まったルールで自動処理します。人が判断するのは、通報の確認など一部だけです。
- セキュリティ:ログインはDiscordに任せ、パスワードを保存しません。
終了するときの手順
- 終了を決めたら、できるだけ早く告知します。
- 開催中のシーズンを終了し、最終結果を確定します。
- 最終データとソースコードを公開し、サービスを終了します。
未確定事項と変更履歴
次の項目はまだ決まっていません。決まったら、この仕様書に反映して変更履歴に残します。
| 項目 | 現在の扱い |
|---|---|
| 参加できるDiscordアカウントの作成日数 | 7日以上で参加可。30日未満は24時間で20戦まで(暫定) |
| 片方だけ報告した対戦を自動で確定するまでの時間 | 報告から30分で相手に通知、1時間で確定 |
| 両者とも未報告の対戦を中止として確定するまでの時間 | マッチ成立から3時間(暫定) |
| シーズン終了前にマッチングを止める時間 | 終了の2時間前(暫定) |
| 一時停止の期間 | 未定 |
| 第1シーズンの開始日と終了日 | 未定 |
| 短期のサブシーズンを行うか | 未定 |
| 相手のキャラに応じて自分の1戦目キャラを切り替える機能 | 初期版では提供しません |
| 公開データの利用条件(ライセンス) | 未定 |
| APIの提供開始時期 | 未定 |
| ソースコードと公開データの置き場所 | 公開時に告知します |
| 問い合わせ窓口 | 公開時に告知します |
変更履歴
| 日付 | 内容 |
|---|---|
| 2026-10-24 | 初版 |
| 2026-10-24 | 参加条件を作成7日以上に変更(30日未満は24時間で20戦まで)。レート差の上限に「制限なし」を追加。対戦用チャンネルをプライベートスレッドに変更。片方だけの報告は30分で通知・1時間で確定に決定。レート下限の注記を追加 |
| 2026-10-24 | スレッドを「2人と運営だけが見られる」に訂正。参加条件にDiscordサーバーへの参加を追加。Δはマッチ成立時に固定し確定順に反映、次の対戦は自分の報告後に探せる形に変更。CSVの列を確定順の再計算に合わせて変更。自動確定の勝ちを不正検知に使うことを明記。図の待ち時間を1時間に |
| 2026-10-24 | 公開CSVに match_seq(マッチ成立の通し番号)を追加。両者とも未報告の対戦は3時間で中止として確定。シーズン終了の2時間前にマッチングを止め、終了時点で未確定の対戦は中止として確定 |
| 2026-11-11 | 時間切れの判定を明確化(ストックが同じときに%で判定)。待機は30分で自動解除、退会は運営への連絡で行い再登録はできないことを追記。公開するCSVの種類を実際の5種に合わせ、表示名の先頭に ' を付けることを追記 |