レベリング(XP・レベル)
レベリングは、メンバーの発言に XP(経験値)を付与し、たまった XP に応じてレベルを上げる機能です。レベル到達時にロールを付与したり、お祝いのメッセージを送ったりできます。
すべてのプランで利用でき、プランで変わるのはリーダーボードの表示人数だけです。メニューでは「メッセージ」グループの「レベルリング」にあります。設定はサーバーごとに作成し、サーバー設定の「レベリング機能を有効化」をオンにしたサーバーでだけ XP が付与されます。
XP の付与条件
発言が次の条件をすべて満たすと、「メッセージあたり最小XP」〜「メッセージあたり最大XP」(既定 5〜15)の範囲からランダムに XP が付与されます。
- 発言者が Bot ではない
- ホワイトリストチャンネルを設定している場合は、そのチャンネルでの発言である
- ブラックリストチャンネルに含まれていない
- 前回 XP を獲得してからクールダウン(既定
10秒)が経過している
ホワイトリストチャンネルを 1 つでも設定すると、ブラックリストの指定は無視されます。 クールダウンはメンバーごと・サーバーごとに独立して数えられます。
XPブースト
「XPブースト」では、ロールやチャンネルごとに XP のボーナス(0〜500%)を設定できます。複数に当てはまる発言ではボーナスが合算されます(例: ロール +50% とチャンネル +20% で +70%)。ボーナスは発言した時点のロールとチャンネルで計算されます。
レベルの計算
| 設定項目 | 内容 | 既定値 |
|---|---|---|
| 「最大レベル」 | 1〜1000 | 50 |
| 「XP計算式タイプ」 | 「算術 (増分加算)」は必要 XP が一定量ずつ増え、「指数」は高レベルほど大きく増えます | 算術 (増分加算) |
| 「基本必要XP」 | 最初のレベルアップに必要な XP の基準値 | 100 |
| 「レベルごとの追加必要XP」 | レベルが上がるごとに必要 XP に上乗せされる量 | 50 |
1 回の発言で複数レベルまとめて上がることもあります。最大レベルに到達したメンバーは、以降の発言で進捗が増えません。さらに上げたい場合は「最大レベル」を引き上げてください。
レベル報酬
「レベル報酬」では、指定したレベルに到達したときに付与するロール(複数可・上限なし)と通知メッセージを設定します。通知メッセージでは {Leveling.level}(到達したレベル)、{USER_NAME}(ユーザー名)、{USER_MENTION}(ユーザーへのメンション)などの変数を使えます。変数名は大文字と小文字を区別します。
報酬ロールは付与だけが自動で行われ、外す処理は行われません。 「/level edit-xp」で XP を下げたり「/level reset-leaderboard」でリセットしたりしても、過去に付与したロールは残ります。外したい場合は手動で行ってください。
- Bot にロール管理権限がない、対象ロールが Bot のロールより上位にある、ロールが削除されている場合は、エラーを出さずに付与が失敗します。 Bot のロール順位と権限をご確認ください。
- 「レベルアップ時にメッセージを送信」をオフにしても、報酬ロールの付与は行われます。
- 「/level edit-xp」で XP を設定すると、そのレベルまでの報酬ロールが付与されます。
退出時のデータ削除
「退出時にデータをクリア」(既定はオフ)をオンにすると、メンバーが退出・キックされた時点で XP・レベル・進捗が削除されます。再参加してもデータは戻らず、元に戻すことはできません。
レベルアップ通知
通知は、ダッシュボードのほか「/level settings」で開く Discord 上の設定パネルからも調整できます。
| 項目 | 選択肢 |
|---|---|
| 送信先 | レベルアップが起きたチャンネル / 指定チャンネル / 本人への DM |
| 形式 | テキスト / 埋め込み / 画像(レベルアップカード) |
ランクカード・リーダーボードの表示形式
「/level rank」と「/level leaderboard」の出力は、埋め込みと画像(カード)から選べます。カードのスタイルは「rich」(既定)「minimal」「neon」で、リーダーボードではさらに上位 3 名を表彰台風に並べる「podium」を選べます。
生成されるカード画像(ランクカード・リーダーボードカード・レベルアップカード)には、下端に「Made with botshade.com」の透かしが入ります。
リーダーボードはレベルの高い順(同じレベルなら累計 XP の多い順)に並び、表示人数は Free 5 人 / Plus 10 人 / Pro 15 人 / Max 25 人です。発言が集中したときは、反映がわずかに遅れることがあります。
メッセージの変数
ランク表示・リーダーボード・レベルアップ通知のメッセージと埋め込みは、変数を使ってカスタマイズできます。空欄のテンプレートは既定表示になります。
| 変数 | 内容 |
|---|---|
{Leveling.level} | 現在のレベル |
{Leveling.maxLevel} | レベルの上限 |
{Leveling.rank} | サーバー内の順位 |
{Leveling.totalXp} | 累計 XP |
{Leveling.currentXp} | 現在のレベル内での進捗 XP |
{Leveling.requiredXp} | 次のレベルに必要な XP |
{Leveling.remainingXp} | 次のレベルまで残りの XP |
{Leveling.percent} | 進捗率(0〜100) |
{Leveling.displayName} | 表示名 |
{Leveling.rows} | 上位メンバーの一覧を行として展開します(リーダーボードのテンプレート専用) |
{User.*} や {Guild.*} などの共通変数も併用できます。書き方は 変数と式の使い方 をご覧ください。
コマンド
| コマンド | 内容 | 使える人 |
|---|---|---|
/level rank [user] [ephemeral] | レベル・順位・累計 XP・進捗を表示します | 全メンバー |
/level leaderboard [ephemeral] | リーダーボードを表示します | 全メンバー |
/level edit-xp <user> <total_xp> | 累計 XP を設定し、レベルと進捗を再計算します | 管理者 |
/level reset-leaderboard | サーバー内の全メンバーの XP・レベルを削除します | 管理者 |
/level settings | レベルアップ通知の設定パネルを開きます | 管理者 |
「/level rank」「/level leaderboard」は既定で全員に公開され、ephemeral を 1 にすると本人だけに表示されます。
管理者向けのコマンドは、Discord の「管理者」または「サーバー管理」権限を持つメンバーか、「管理者ロール」に設定したロールを持つメンバーだけが実行できます。コマンドの有効化と権限設定は コマンド権限設定の使い方 をご覧ください。
次のステップ / 関連ページ
- コマンド権限設定の使い方 — レベリングコマンドの公開範囲や権限の設定方法
- 変数と式の使い方 — メッセージでの変数の書き方
- モジュールの基本と共通操作 — 機能の有効化や保存など、全機能で共通の操作
最終更新: