Bot 機能(モジュール)

レベリング(XP・レベル)

レベリングは、メンバーの発言に XP(経験値)を付与し、たまった XP に応じてレベルを上げる機能です。レベル到達時にロールを付与したり、お祝いのメッセージを送ったりできます。

すべてのプランで利用でき、プランで変わるのはリーダーボードの表示人数だけです。メニューでは「メッセージ」グループの「レベルリング」にあります。設定はサーバーごとに作成し、サーバー設定の「レベリング機能を有効化」をオンにしたサーバーでだけ XP が付与されます。

XP の付与条件

発言が次の条件をすべて満たすと、「メッセージあたり最小XP」〜「メッセージあたり最大XP」(既定 5〜15)の範囲からランダムに XP が付与されます。

  • 発言者が Bot ではない
  • ホワイトリストチャンネルを設定している場合は、そのチャンネルでの発言である
  • ブラックリストチャンネルに含まれていない
  • 前回 XP を獲得してからクールダウン(既定 10 秒)が経過している

ホワイトリストチャンネルを 1 つでも設定すると、ブラックリストの指定は無視されます。 クールダウンはメンバーごと・サーバーごとに独立して数えられます。

XPブースト

「XPブースト」では、ロールやチャンネルごとに XP のボーナス(0〜500%)を設定できます。複数に当てはまる発言ではボーナスが合算されます(例: ロール +50% とチャンネル +20% で +70%)。ボーナスは発言した時点のロールとチャンネルで計算されます。

レベルの計算

設定項目内容既定値
「最大レベル」1〜100050
「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 の「管理者」または「サーバー管理」権限を持つメンバーか、「管理者ロール」に設定したロールを持つメンバーだけが実行できます。コマンドの有効化と権限設定は コマンド権限設定の使い方 をご覧ください。

次のステップ / 関連ページ

最終更新:

目次