レベリング(XP・レベル)
レベリングは、メンバーがサーバーで発言するたびに XP(経験値)を付与し、たまった XP に応じてレベルが上がっていく仕組みです。レベルが上がると自動でロールを付与したり、お祝いのメッセージを送ったりできます。
さらに、特定のロールやチャンネルでの発言に XP ボーナスを付ける「XPブースト」、XP の対象にするチャンネルを絞り込むホワイト/ブラックリスト、レベルの計算式やレベルごとに必要な XP の調整など、サーバーごとに細かくカスタマイズできます。
レベリングは本来プレミアム向けの機能ですが、現在ベータ版のあいだは全ユーザーに無料でプレミアムが付与されているため、追加の費用なくどなたでもご利用いただけます(ベータ終了後はプレミアム限定になる予定です)。
メニュー上では、このページは「メッセージ」グループの中に「レベルリング」と表示されます。本ドキュメントでは内容に合わせて「レベリング」と表記します。
このページでできること
- レベリングコマンド(「/level edit-xp」「/level reset-leaderboard」「/level leaderboard」「/level rank」)の有効・無効と、誰が使えるかの権限を設定する
- サーバーごとにレベリングを有効にし、XP の計算式や必要 XP を設定する
- 1 メッセージあたりに付与する XP の範囲と、連投対策のクールダウンを設定する
- メンバー退出時のデータ削除や、レベルアップ時の通知メッセージ送信を切り替える
- 管理者ロール、XP 対象チャンネルのホワイト/ブラックリストを設定する
- ロールやチャンネルごとに XP ボーナス(%)を加える
- レベル到達時に付与するロールと、送信する通知メッセージ(埋め込み)を設定する
レベリングの設定は「サーバーごと」に管理します。1 つの Bot で複数のサーバーを管理している場合、それぞれのサーバーに対して別々の設定を作成できます。
レベリングページを開く
メニューから「レベルリング」を開く
ダッシュボードで対象の Bot を開き、メニューの「メッセージ」グループから「レベルリング」を選びます。
レベリングは本来プレミアム向けの機能のため、メニューでは「Premium」と表示される場合がありますが、ベータ版のあいだはそのまま設定を開いてご利用いただけます。
「機能の有効化」をオンにする
「機能の有効化」のスイッチをオンにします。
コマンド権限設定
「コマンド権限設定」セクションでは、レベリングに関する 4 つのコマンドについて、それぞれ使えるかどうか・誰が使えるかを設定できます。
| コマンド | 説明 |
|---|---|
| 「/level edit-xp」 | 管理者がユーザーの XP を編集します。 |
| 「/level reset-leaderboard」 | リーダーボードをリセットします。 |
| 「/level leaderboard」 | リーダーボードを表示します。 |
| 「/level rank」 | 自分のランクと XP を表示します。 |
各コマンドの行を開くと、「コマンドを有効化」のスイッチや、「個別権限設定を有効化」「Discord権限より個別設定を優先」といった権限まわりの設定ができます。
コマンド権限設定の操作方法は全機能で共通です。許可・拒否するロールの指定や、Discord 権限より個別設定を優先する場合の注意点など、くわしくはコマンド権限設定の使い方をご覧ください。
サーバー別レベリング設定
「コマンド権限設定」の下にある「サーバー別レベリング設定」セクションで、各サーバーの XP・レベル・報酬・ブーストを設定します。セクション右上には登録済み設定数が表示されます。
対象サーバーを追加する
「新しいサーバー設定を追加」をクリックする
「新しいサーバー設定を追加」でサーバーを選ぶフォームが開きます。
「対象サーバー」を選ぶ
「対象サーバー」の欄で、設定したいサーバーを選択します。
「追加」をクリックする
「追加」でそのサーバーの設定が一覧に追加されます。サーバーを選ぶまで「追加」ボタンはクリックできません。
すでに同じサーバーの設定が存在する場合は「既に追加されています」と表示され、重複しては追加できません。
追加された設定は、サーバー ID と状態(「状態: 有効」または「状態: 無効」)のバッジが付いたアコーディオン(折りたたみ)で一覧表示されます。設定可能なサーバーがまだない場合は「設定可能なサーバーが見つかりません。」と表示されます。
アコーディオンを開いて設定する
一覧の行を開くと、そのサーバーの詳細設定が表示されます。一番上にある「レベリング機能を有効化」のスイッチ(「このサーバーでXP・レベルシステムを有効にします。」)をオンにすると、そのサーバーで XP・レベルシステムが有効になります。
「レベリング機能を有効化」がオフのあいだは、そのサーバーの詳細設定項目は表示されません。各項目を設定するには、まずこのスイッチをオンにしてください。
不要になったサーバー設定は、アコーディオン右側の「削除」ボタンで取り除けます。
基本設定(XP とレベルの計算)
「レベリング機能を有効化」をオンにすると、以下の基本設定が表示されます。
| 設定項目 | 内容 | 初期値 |
|---|---|---|
| 「埋め込みカラー」 | レベリングが送る埋め込みメッセージの色。先頭に # が表示され、# を除いた 16 進数のカラーコードを入力します。 | #5865F2 |
| 「最大レベル」 | 到達できる上限のレベル。1 以上 1000 以下の整数で指定します。 | 50 |
| 「XP計算式タイプ」 | レベルアップに必要な XP の増え方。「算術 (増分加算)」と「指数」から選びます。 | 算術 (増分加算) |
| 「基本必要XP」 | 最初のレベルアップに必要な XP の基準値です。 | 100 |
| 「レベルごとの追加必要XP」 | レベルが上がるごとに、必要 XP に上乗せされる量です。 | 50 |
XP計算式タイプについて
- 算術 (増分加算): レベルが上がるごとに、必要 XP が一定量ずつ加算されていく方式です。「基本必要XP」をスタート地点に、「レベルごとの追加必要XP」が段階的に加わっていきます。緩やかに必要量が増えていきます。
- 指数: レベルが上がるほど必要 XP が大きく増えていく方式です。高レベルになるほどレベルアップが難しくなります。
サーバーの規模や、どのくらいのペースでレベルを上げたいかに合わせて選んでください。
XP付与設定(1メッセージあたりの XP とクールダウン)
発言 1 回ごとにどれだけ XP を付与するか、また連投を防ぐためのクールダウンを設定します。
| 設定項目 | 内容 | 初期値 |
|---|---|---|
| 「メッセージあたり最小XP」 | 1 メッセージで付与される XP の下限です(整数、1 以上)。 | 5 |
| 「メッセージあたり最大XP」 | 1 メッセージで付与される XP の上限です(整数、1 以上)。 | 15 |
| 「クールダウン (秒)」 | 一度 XP を付与してから、次に付与するまでの待ち時間(秒)です。短時間の連投で XP が稼げないようにします(整数、0 以上)。 | 10 |
XP は「最小XP」から「最大XP」の範囲でメッセージごとに付与されます。クールダウンの時間内に何度発言しても、追加の XP は付与されません。
挙動(退出時のデータ・レベルアップ通知)
サーバー単位の動作を、2 つのスイッチで切り替えます。
| スイッチ | 内容 | 初期状態 |
|---|---|---|
| 「退出時にデータをクリア」 | メンバーがサーバーを退出した際に、そのユーザーの XP・レベルデータを削除します。 | オフ |
| 「レベルアップ時にメッセージを送信」 | レベルアップ時に通知メッセージを送信します。 | オン |
「退出時にデータをクリア」をオンにすると、メンバーが退出した時点でそのユーザーの XP・レベルが削除されます。再び参加してもデータは戻らず、元には戻せません。慎重に設定してください。
対象制御(管理者ロール・チャンネルの絞り込み)
XP を付与する対象や、コマンドの管理権限を持つロールを指定します。次の 3 つを設定できます。それぞれ、セレクターからロールやチャンネルを選んで「追加」すると、ID のタグとして並んで表示されます。タグの削除ボタンで個別に外せます。
| 設定項目 | 内容 |
|---|---|
| 「管理者ロール」 | 「/level edit-xp」や「/level reset-leaderboard」を使える権限を持つロールです。 |
| 「ホワイトリストチャンネル」 | 設定すると、ここに含まれるチャンネルでの発言のみが XP の対象になります。空のままなら無効です。 |
| 「ブラックリストチャンネル」 | ここに含まれるチャンネルは XP の対象外になります。 |
ホワイトリストチャンネルは、特定の雑談チャンネルだけで XP を稼げるようにしたい場合などに使います(空欄なら全チャンネルが対象です)。
XPブースト(ロール・チャンネルごとのボーナス)
「XPブースト」では、特定のロールやチャンネルでの発言に XP のボーナス(%)を加算できます。ロール単位・チャンネル単位で XP 倍率を % 加算し、複数に一致する発言ではボーナスが合算されます。
設定欄は「ロール毎に追加」と「チャンネル毎に追加」の 2 つに分かれています。
ロールにボーナスを加える
「ロール追加」をクリックする
「ロール毎に追加」の見出しの横にある「ロール追加」ボタンで、新しい行が追加されます。
ロールとボーナス%を設定する
追加された行で、ボーナスを付けたいロールを選び、右側の数値欄にボーナスの割合(%)を入力します(0〜500 の整数)。不要な行は行末の削除ボタンで取り除けます。
チャンネルにボーナスを加える
「チャンネル追加」をクリックする
「チャンネル毎に追加」の見出しの横にある「チャンネル追加」ボタンで、新しい行が追加されます。
チャンネルとボーナス%を設定する
追加された行で、ボーナスを付けたいチャンネルを選び、右側の数値欄にボーナスの割合(%)を入力します(0〜500 の整数)。不要な行は行末の削除ボタンで取り除けます。
レベル報酬(到達時のロール付与と通知)
「レベル報酬」では、特定のレベルに到達したときに付与するロールと、送信する通知メッセージを設定できます(レベル到達時にロール付与+メッセージ送信)。
報酬がまだないときは「報酬が設定されていません。追加ボタンから設定してください。」と表示されます。
報酬を追加する
「報酬を追加」をクリックする
「レベル報酬」の見出し横にある「報酬を追加」ボタンで、報酬の設定枠が 1 つ追加されます。
「レベル」を指定する
枠の上部にある「レベル」欄で、この報酬を発動させるレベルを入力します(1 以上の整数)。
「付与ロール」を選ぶ
「付与ロール」でロールを選んで「追加」すると、そのレベル到達時に付与されるロールとして登録されます。複数のロールを追加できます。各ロールは ID のタグで表示され、削除ボタンで外せます。
通知メッセージを作成する
その下にあるメッセージ作成エリアで、レベル到達時に送る通知メッセージを編集します。「メッセージ内容 (Content)」の本文に加えて、埋め込み(タイトル・説明・カラー・画像など)も設定できます。入力中はプレビューで仕上がりを確認できます。
不要な報酬を削除する
各報酬枠の右上にある「削除」ボタンで、その報酬を取り除けます。
通知メッセージの本文や埋め込みでは変数が使えます。たとえば {Leveling.Level}(到達したレベル)、{USER_NAME}(ユーザー名)、{USER_MENTION}(ユーザーへのメンション)などを差し込めます。変数についてくわしくはコマンド内での変数の使い方をご覧ください。
設定を保存する
設定を変更すると、画面下部に「未保存の変更があります」というバーが表示されます。
内容を確認する
このバーには「変更を保存するか、破棄してください」と案内が出ます。設定内容に間違いがないか確認します。
「保存」をクリックする
「保存」で変更が保存され、「保存しました」と表示されます。保存をやめて変更を取り消したい場合は「破棄」をクリックします。
変更は保存するまで反映されません。ページを離れる前に必ず保存してください。
実際の動作と既定値
ここからは、設定が Bot の実際の挙動(ランタイム)にどう反映されるかをまとめます。
XP が付与される流れ
メンバーがサーバーで発言するたびに、Bot は次の条件をすべて満たす場合に XP を付与します。
- そのサーバーでレベリングが有効になっている
- 発言したのが Bot ではなく通常のメンバーである
- 発言したチャンネルがブラックリストに含まれていない(ブラックリストを設定している場合)
- ホワイトリストを設定している場合は、発言したチャンネルがホワイトリストに含まれている
- 前回 XP を獲得してからクールダウン(初期値 10 秒)が経過している
これらを満たすと、「メッセージあたり最小XP」〜「メッセージあたり最大XP」(初期値 5〜15)の範囲からランダムに XP が付与されます。XP の付与自体には画面上の反応はなく、レベルが上がったときだけ(設定に応じて)通知が表示されます。
クールダウンはメンバーごと・サーバーごとに管理されます。同じユーザーが別のサーバーで発言した場合は、それぞれ独立してクールダウンが計算されます。
XPブーストの加算ルール
ロールブーストとチャンネルブーストは加算(合算)で効きます。たとえば +50% のロールブーストと +20% のチャンネルブーストの両方に当てはまる発言では、合計 +70% のボーナスが付きます。ボーナスは発言ごとに、その時点でメンバーが持っているロールと、発言したチャンネルをもとに計算されます。
レベルアップ時の動作
たまった XP が次のレベルに必要な量に達すると、レベルが 1 つ上がり、次のレベルに向けた進捗がリセットされます。レベルアップ時には次のことが起こります。
- そのレベルに報酬ロールを設定していれば、自動でメンバーにロールが付与されます
- 「レベルアップ時にメッセージを送信」がオンであれば、発言があったチャンネルに通知メッセージ(埋め込み)が送信されます
1 回の発言で大量の XP が入った場合や、必要 XP を低く設定している場合は、1 回の発言で複数レベルまとめて上がることもあります。
報酬ロールは付与されるだけで、自動的に外されることはありません。あとからそのメンバーの XP を下げたり、リーダーボードをリセットしたりしても、いったん付与したロールは残ります。
退出時のデータ削除
「退出時にデータをクリア」をオンにしている場合、メンバーがサーバーを退出・キックされた時点で、そのメンバーの XP・レベル・進捗が削除されます。再参加した場合はレベル 1・XP 0 からの再スタートになります。削除はメッセージなどの表示を伴わず、静かに行われます。
上限とクールダウン
レベリングには次のような上限・既定値があります。設定で変更できるものは、その旨を記載しています。
| 項目 | 内容 | 初期値・上限 |
|---|---|---|
| 最大レベル | 到達できる上限レベル。これ以上は上がりません。 | 初期値 50(1〜1000 で設定可) |
| 1 メッセージあたりの XP | 発言ごとにランダム付与される XP の範囲。XPブーストで割合加算されます。 | 初期値 5〜15 |
| クールダウン | XP を付与してから次に付与できるまでの待ち時間。 | 初期値 10 秒(0 以上で設定可) |
| リーダーボード表示数 | 「/level leaderboard」で表示される人数。 | 上位 10 人で固定 |
| 報酬ロールの数 | 1 つのレベルに割り当てられるロールの数。 | 上限なし(複数指定可) |
最大レベルに到達したメンバーは、それ以上発言しても XP による進捗が増えなくなり、進捗は 0 のまま据え置かれます。「/level rank」では、必要 XP の代わりに到達済みである旨が表示されます。
表示されるメッセージ
レベリングのコマンドやレベルアップ時に Bot が表示する主なメッセージは次のとおりです。文中の { } で囲まれた部分は、実際には数値や進捗に置き換わって表示されます。
ランク表示(/level rank)
「/level rank」を実行すると、🏅 レベリングランク というタイトルの埋め込みが表示され、ユーザー・ランク(サーバー内の順位)・レベル・累計 XP・次のレベルまでの情報が並びます。
- 次のレベルがある場合:
次の必要XP: {remaining:,}(進捗 {percent}%)({remaining:,}は残り XP、{percent}は進捗の割合) - 最大レベルに到達している場合:
次のレベル: 到達済み
リーダーボード(/level leaderboard)
「/level leaderboard」を実行すると、🏆 レベリングランキング (上位10) [max Lv.50] というタイトルの埋め込みに、レベルの高い順(同じレベルなら累計 XP の多い順)で上位 10 人が番号付きで表示されます。まだ誰も XP を獲得していない場合は次のように表示されます。
ランキングデータがありません。XP 編集(/level edit-xp)
管理者が「/level edit-xp」でメンバーの累計 XP を設定すると、本人だけに見える(他のメンバーには表示されない)確認用の埋め込みで、対象ユーザー・更新後の XP・新しいレベルが表示されます。指定した XP に応じてレベルと進捗は再計算され、そのレベルまでの報酬ロールも付与されます(付与のみで、ロールの削除は行いません)。
リーダーボードのリセット(/level reset-leaderboard)
管理者が「/level reset-leaderboard」を実行すると、本人だけに見える確認メッセージとして 🗑️ リーダーボードリセット が表示され、ユーザー進捗(XP/レベル)を削除しました。ロール報酬は解除されません。 と案内されます。サーバー内の全メンバーの XP・レベルが削除されますが、すでに付与済みの報酬ロールは外れません。
権限・利用場所に関するメッセージ
- 管理コマンドを権限のないメンバーが実行した場合:
権限がありません。 - コマンドをサーバー外(DM など)で実行した場合:
ギルド内でのみ使用できます。
注意点・うまくいかないとき
報酬ロールは「付与」だけが自動で行われ、外す処理は行われません。「/level edit-xp」で XP を下げたり「/level reset-leaderboard」でリセットしたりしても、過去に付与したロールはそのまま残ります。ロールを外したい場合は手動で行ってください。
- 報酬ロールが付かない: Bot にロールを付与する権限がない、または対象ロールが Bot のロールより上位にある場合、付与は静かに失敗します(エラーメッセージは表示されません)。報酬に使うロールが削除されている場合も同様です。Bot のロール順位とロール管理権限をご確認ください。
- ホワイトリストとブラックリストの優先順位: ホワイトリストチャンネルを 1 つでも設定すると、ブラックリストの指定は無視され、ホワイトリストに含まれるチャンネルだけが XP の対象になります。
- 最大レベルに達すると進捗が止まる: 最大レベルに到達したメンバーは、以降の発言で XP による進捗が増えません。さらにレベルを上げたい場合は「最大レベル」を引き上げてください。
- リーダーボードがすぐ反映されないことがある: リーダーボードは表示専用に最適化されているため、多くの発言が短時間に集中したときなど、ごくわずかに表示が遅れて見える場合があります。
- レベルアップ通知をオフにしてもロールは付く: 「レベルアップ時にメッセージを送信」をオフにすると通知メッセージは送られませんが、報酬ロールの付与は引き続き行われます。
- 退出時クリアは元に戻せない: 「退出時にデータをクリア」をオンにしていると、退出したメンバーの進捗は削除され、再参加してもレベル 1・XP 0 からの再スタートになります。
コマンド一覧
レベリングで使えるスラッシュコマンドは次のとおりです。各コマンドの有効・無効や権限は、ページ上部の「コマンド権限設定」で調整できます。
| コマンド | 内容 | 使える人 | 表示 |
|---|---|---|---|
/level rank [user] [ephemeral] | 指定ユーザー(省略時は自分)のレベル・ランク・累計 XP・次のレベルまでの進捗を表示します。 | サーバーの全メンバー | 既定は全員に公開。ephemeral を 1 にすると自分だけに表示 |
/level leaderboard [ephemeral] | レベルの高い順に上位 10 人を表示します。 | サーバーの全メンバー | 既定は全員に公開。ephemeral を 1 にすると自分だけに表示 |
/level edit-xp <user> <total_xp> | 指定メンバーの累計 XP を手動で設定し、レベルと進捗を再計算します。 | 管理者(後述の権限を持つ人) | 本人だけに表示 |
/level reset-leaderboard | サーバー内の全メンバーの XP・レベルを削除します(報酬ロールは外れません)。 | 管理者(後述の権限を持つ人) | 本人だけに表示 |
「/level rank」と「/level leaderboard」は、サーバー内であればどのメンバーでも実行できます。
「/level edit-xp」と「/level reset-leaderboard」は管理コマンドで、次のいずれかに当てはまるメンバーだけが実行できます。
- Discord の「管理者(Administrator)」権限を持っている
- Discord の「サーバー管理(Manage Server)」権限を持っている
- 「管理者ロール」に設定したロールを持っている
次のステップ / 関連ページ
- コマンド権限設定の使い方 — レベリングコマンドの公開範囲や権限の設定方法
- コマンド内での変数の使い方 — 通知メッセージで使える変数の一覧と使い方
- 埋め込みメッセージ — 埋め込みの各項目のくわしい解説
- モジュールの基本と共通操作 — サーバー別設定や保存など、全機能で共通の操作