抽選(プレゼント企画 / Giveaway)
サーバーのメンバーが参加できるプレゼント抽選(Giveaway)を開催するための機能です。賞品を用意して抽選を作成すると、メンバーはボタンなどで参加でき、期間が来ると Bot が自動で当選者を選んで通知します。手動での早期終了や、当選者を選び直す「再抽選(リロール)」もできます。
このダッシュボードのページでは、抽選に関する コマンドの権限 と、当選者へ送る通知メッセージ を設定します。
この機能は 無料 で利用できます。
抽選そのものの作成・期間設定は、Discord 上のスラッシュコマンド /giveaway create で行います。賞品名・当選者数・期間のいずれかを省略すると、対話形式の作成ウィザードが起動します。
このページでできること
- コマンド権限設定 …
/giveaway createなどの各コマンドについて「誰が使えるか」を決めます。 - コンテキストメニュー権限設定 … 抽選メッセージを右クリックして実行する「抽選を終了する」「抽選をリロールする」の権限を決めます。
- 当選メッセージ設定 … 当選者へ送る通知メッセージ(本文と埋め込み)を作ります。
機能を有効にする
サイドバーから「抽選」を開く
Bot の管理画面のサイドバーにある「抽選」を開きます。
ページ最上部の「機能の有効化」をオンにする
ページ最上部の「機能の有効化」のスイッチをオンにします。
設定を保存する
最後に、画面下部に表示される保存バーの「保存」をクリックして変更を確定します(保存の詳細は設定を保存するを参照してください)。
コマンド権限設定
「コマンド権限設定」は、抽選に関するスラッシュコマンドを 1 つずつ管理するセクションです。各コマンドの行をクリックすると、有効 / 無効の切り替えや権限の細かい設定ができます。
抽選には次の 4 つのコマンドがあります。
| コマンド | 役割 | 初期状態で必要な Discord 権限 |
|---|---|---|
/giveaway create | 新しい抽選を開始します。項目を省略すると作成ウィザードが起動します。 | Manage Server |
/giveaway end | 進行中の抽選を手動で終了します。 | Manage Server |
/giveaway reroll | 当選者を再選出(再抽選)します。 | Manage Server |
/giveaway edit | 抽選の管理ハブを開き、編集・削除・一覧・詳細表示をまとめて行います。 | Manage Server |
「Manage Server」は Discord の「サーバー管理」権限のことです。
各コマンドの行をクリックすると、次のような設定ができます。
- 「コマンドを有効化」… このコマンド自体を使えるようにします。
- 「個別権限設定を有効化」… BotShade 独自の権限判定を使い、許可・拒否するロールや権限を細かく指定します。
- 「Discord権限より個別設定を優先」(強制上書き)… Discord の既存権限を無視して、独自の設定を優先します。
これらの操作はすべての機能で共通です。ロールごとの許可・拒否や強制上書きの詳しい手順は、コマンド権限設定の使い方を参照してください。
コンテキストメニュー権限設定
「コンテキストメニュー権限設定」は、抽選メッセージを 右クリック(スマートフォンでは長押し) して実行するメニューの権限を設定するセクションです。コマンドを入力しなくても、抽選メッセージから直接操作できます。
このセクションには次の 2 つのメニューがあります。
| メニュー | 役割 | 初期状態で必要な Discord 権限 |
|---|---|---|
| 「抽選を終了する」 | 抽選メッセージを右クリックして手動で終了します。 | Manage Server |
| 「抽選をリロールする」 | 終了した抽選を右クリックして再抽選します。 | Manage Server |
各メニューの行をクリックすると、コマンド権限設定と同じように「コンテキストメニューを有効化」や「個別権限設定を有効化」などを設定できます。設定方法はコマンド権限設定の使い方と同じです。
当選メッセージ設定
「当選メッセージ設定」では、抽選が終了して当選者が決まったときに Bot が送る お祝いメッセージ を作ります。本文(テキスト)と埋め込み(リッチな枠付きメッセージ)の両方を設定でき、編集画面の下にはリアルタイムのプレビューが表示されます。
設定したメッセージの中には、当選者の名前や賞品名などを自動で差し込む「抽選変数」を入れることができます(後述のメッセージで使える抽選変数を参照)。
メッセージの本文を入力する
「メッセージ内容 (Content)」の欄に、当選者へ伝えたい文章を入力します。本文は最大 2000 文字まで入力できます。Markdown(太字やリンクなど)に対応しています。
必要なら埋め込み(Embed)を作る
より見栄えのする通知にしたい場合は、埋め込みを使います。次のタブから内容を編集できます。
- 「基本設定」… タイトル、タイトルURL、説明 (Description)、カラーを設定します。
- 「著者 (Author)」… 著者名、著者URL、アイコンURLを設定します。
- 「画像設定」… 画像URL (Main Image)、サムネイルURL (Thumbnail) を設定します。
- 「フッター」… フッターテキスト、フッターアイコンURL、タイムスタンプの表示を設定します。
- 「フィールド」… 「フィールドを追加」で項目を追加し、名前と値を設定します(最大 25 個)。
変数挿入ボタンで抽選変数を入れる
入力欄の右にある変数挿入ボタン(「変数を追加」)をクリックすると、当選者名や賞品名などの抽選変数を選んで差し込めます。たとえば「{Giveaway.prize} の当選者は {Giveaway.winners} さんです!」のように書くと、実際の送信時に賞品名と当選者に置き換わります。
プレビューで見た目を確認する
「🖥️ PC」「📱 Mobile」を切り替えて、PC とスマートフォンそれぞれの見え方を確認できます(画面が狭い場合は「プレビューを開く」ボタンから表示します)。
設定を保存する
画面下部の保存バーの「保存」をクリックして、当選メッセージを確定します。
画像URLなどに変数({ } を含む値)を入れた場合、プレビューでは画像やリンクとして表示されないことがあります。これは仕様で、実際の送信時には Bot が正しいURLに置き換えてから Discord へ送ります。
メッセージで使える抽選変数
当選メッセージの本文・埋め込みの各入力欄では、抽選に関する変数(Giveaway で始まる変数)を使えます。これらは送信時に実際の値へ自動で置き換わります。変数挿入ボタンから選んで入れるのが簡単です。
| 変数 | 内容 |
|---|---|
{Giveaway.prize} | 賞品の名前 |
{Giveaway.winners} | 当選者のメンション一覧 |
{Giveaway.winnerNum} | 当選者の総数 |
{Giveaway.participators} | 参加者のメンション一覧 |
{Giveaway.participatorNum} | 参加者の総数 |
{Giveaway.winUser} | 代表当選者(最初の当選者。1 人以上いる場合) |
{Giveaway.endTime} | 抽選の終了日時(Discord の動的タイムスタンプ) |
{Giveaway.creatorMention} | 抽選作成者のメンション |
{Giveaway.messageUrl} | 抽選メッセージへのリンクURL |
「代表当選者({Giveaway.winUser})」は 1 人分の当選者情報を表す変数で、さらに細かい情報を取り出せます。たとえば {Giveaway.winUser.name}(名前)、{Giveaway.winUser.mention}(メンション)、{Giveaway.winUser.id}(ID)のように使えます。
変数の基本的な考え方や使い方の詳細は、変数の概要も参考にしてください。
設定を保存する
設定を変更すると、画面下部に「未保存の変更があります」という保存バーが表示されます。
「保存」をクリックして確定する
保存バーの「保存」をクリックすると、変更内容が Bot に反映されます。
やり直したいときは「破棄」をクリックする
変更をなかったことにしたい場合は、「破棄」をクリックすると直前の保存状態に戻ります。
変更は「保存」をクリックするまで反映されません。コマンド権限や当選メッセージを編集したら、ページを離れる前に必ず保存してください。
実際に抽選を開催する
ダッシュボードでの設定が終わったら、実際の抽選は Discord 上で行います。
抽選を作成する
Discord で /giveaway create を実行して、賞品・当選者数・期間などを指定し、抽選を開始します。賞品名・当選者数・期間のいずれかを省略すると、項目を順番に入力していく 作成ウィザード が代わりに起動します。すでに入力した値はウィザードにあらかじめ反映されます。
メンバーが参加する
抽選メッセージに表示されるボタンなどから、メンバーが参加します。/giveaway edit を実行すると 管理ハブ が開き、進行中の抽選の一覧や、指定した抽選の詳細を確認できます。
抽選を終了・再抽選する
期間が来ると Bot が自動で当選者を選び、設定した当選メッセージで通知します。早く締め切りたいときは /giveaway end(または抽選メッセージを右クリックして「抽選を終了する」)、当選者を選び直したいときは /giveaway reroll(または「抽選をリロールする」)を使います。
コマンド一覧
Discord 上で使える抽選コマンドの一覧です。コマンド名・コンテキストメニューのラベルは Bot に表示されるとおりの原文です。「誰が使えるか」は初期状態(個別権限設定をしていない場合)の挙動です。
| コマンド / メニュー | 役割 | 主なオプション | 誰が使えるか | 応答の見え方 |
|---|---|---|---|---|
/giveaway create | 抽選を作成し、参加ボタン付きメッセージを投稿します。賞品・当選者数・期間がそろっていればその場で投稿し、いずれかが未入力のときは項目を順番に入力する作成ウィザードを開きます。 | すべて任意(賞品・当選者数・期間・期間の単位、タイトル・説明・画像・色・必須ロールなど)。未入力の項目はウィザードで補い、入力済みの値はあらかじめ反映されます。 | 初期状態は「Manage Server(サーバー管理)」権限が必要(個別権限設定で変更可能) | コマンド応答(ウィザードを含む)は本人だけに表示。完成した抽選メッセージはチャンネルに公開 |
/giveaway end | 進行中の抽選を手動で終了し、当選者を選んで結果を投稿します。 | 抽選(対象を選択) | 作成者本人 または サーバー管理者 | 確認応答は本人だけに表示。結果は元のチャンネルに公開 |
/giveaway reroll | 終了済みの抽選から当選者を選び直します。 | 抽選(対象を選択)、当選者数 | 作成者本人 または サーバー管理者 | 確認応答は本人だけに表示。結果は公開 |
/giveaway edit | 抽選の管理ハブを開き、編集・削除・一覧・詳細表示を 1 つの画面でまとめて行います。一覧から抽選を選んで詳細を開き、そこから編集・削除へ進みます。 | パラメータなし。管理ハブ内のボタン・選択メニューで操作します。一覧では状態(開催中 / 終了 / すべて。初期値は 開催中)で絞り込めます。 | 一覧・詳細表示は初期状態で「Manage Server(サーバー管理)」権限が必要(個別権限設定で変更可能)。編集・削除は 作成者本人 または サーバー管理者 | 管理ハブは本人だけに表示。編集・削除の結果として抽選メッセージは公開で更新 |
| 「抽選を終了する」(右クリックメニュー) | 抽選メッセージを右クリックして手動で終了します。 | なし(メッセージが対象) | 作成者本人 または サーバー管理者 | 確認応答は本人だけに表示。結果は公開 |
| 「抽選をリロールする」(右クリックメニュー) | 抽選メッセージを右クリックして再抽選します。 | 当選者数(入力欄が開きます) | 作成者本人 または サーバー管理者 | 入力欄・確認は本人だけに表示。結果は公開 |
| 「参加する」(参加ボタン) | 抽選メッセージの公開ボタン。押すたびに参加・取り消しが切り替わります。 | なし | サーバーのメンバー(参加条件がある場合は条件を満たした人のみ) | 応答は本人だけに表示。ボタンには参加人数が表示 |
/giveaway end・/giveaway reroll、/giveaway edit の編集・削除操作と右クリックメニューは、抽選を作成した本人 か サーバー管理者(Manage Server / サーバー管理 権限) のどちらかであれば実行できます。ダッシュボードのコマンド権限設定で、これに加えて使えるロールや権限をさらに細かく調整できます。
実際の動作と既定値
- 参加ボタンは押すたびに切り替わります。 まだ参加していない人が「参加する」を押すと参加が受け付けられ、すでに参加済みの人がもう一度押すと参加が取り消されます。ボタンには
参加する (0)のように現在の参加人数が表示され、参加・取り消しに合わせて自動更新されます。 - 期間が来ると Bot が自動で終了します。 Bot は抽選の終了時刻を定期的に確認しており、時刻になると自動で当選者を選び、元のメッセージのタイトルを
終了: ...に書き換えたうえで、抽選メッセージへの返信として結果を投稿します。 - 当選者はランダムに選ばれます。 参加者の中から指定した人数がランダムに選出されます。ボーナスエントリー(後述)を設定している場合は、対象ロールを持つ参加者が当選しやすくなる重み付き抽選になります。
- 当選者数より参加者が少ないときは、いる人数だけ選ばれます。 たとえば当選者 5 人に設定していても参加者が 3 人なら、3 人が当選者になります。
- 参加条件は最初に参加するときだけ確認されます。 いったん参加を取り消して入り直す場合、条件の再確認は行われません。
/giveaway createの作成ウィザードでは、期間の単位の初期値は「時間」 です。入力欄の 当選者数・期間の初期値はどちらも1です。- 抽選メッセージの タイトルを指定しない場合、
🎉 抽選: <賞品名>が自動で使われます。 - 抽選メッセージの 説明を指定しない場合、
下のボタンを押して **<賞品名>** の抽選に参加しよう!が自動で使われます。 - 色を指定しない場合は、特定の色を付けずに既定の表示になります。
参加条件とボーナスエントリー
抽選には参加条件や、当選確率を上げるボーナスを設定できます。
- 必須ロール … 指定したロールを持つメンバーだけが参加できます。
- アカウント作成からの経過日数 … アカウントが一定の日数以上経過しているメンバーだけが参加できます。ウィザードでは
7/14/30/90日から選びます。 - サーバー参加からの経過日数 … サーバーに参加してから一定の日数以上たったメンバーだけが参加できます。ウィザードでは
1/7/14/30日から選びます。 - ボーナスエントリー … 指定したロールを持つ参加者の抽選口数を増やし、当選しやすくします。ロールごとに
+1から+5まで設定できます。複数のボーナス対象ロールを持つ場合、ボーナスは合算されます。
アカウント・サーバー参加日数の条件とボーナスエントリーは、本来プレミアム向けの機能です。現在はベータ版のため、本来プレミアムの機能も含めて全機能を全ユーザーが無料で利用できます(全員にプレミアムが付与されています)。そのため、これらの条件も追加料金なしで設定できます。
上限とクールダウン
抽選の各項目には次の上限があります。
- 当選者数 … 本来、無料プランでは 5 人までという上限があります(現在はベータ版で全員にプレミアムが付与されているため、より多くの当選者を設定できます)。
- 実施期間(日単位) … 本来、無料プランでは「日」単位で 3 日までという上限があります(「分」「時間」単位には上限がありません。現在はベータ版で全員にプレミアムが付与されているため、より長い期間を設定できます)。
- 賞品名 … 最大 100 文字です。
- 埋め込みのタイトル … 最大 256 文字です。
- 埋め込みの説明 … 最大 1000 文字です。
- 色 …
#RRGGBB形式(7 文字)で指定します。 - 一覧表示(
/giveaway editの一覧) … 一度に表示されるのは最新 10 件までです。 - 詳細表示(
/giveaway editの詳細)の参加者表示 … 参加者が 50 人を超える場合は、メンションの代わりに ID を並べたコードブロックで表示します(メンションの大量通知を防ぐためです)。さらに 100 人を超える場合は、先頭 100 人分の ID を表示し、残りを...他 XXX名のように示します。 - 対象の抽選を選ぶ候補(オートコンプリート) … 最大 25 件まで表示され、開催中の抽選が優先して上に並びます。
抽選コマンド自体に待ち時間(クールダウン)はありません。終了処理は Bot が定期的に確認するため、終了時刻ちょうどではなく数十秒ほど遅れて実行されることがあります。
表示されるメッセージ
抽選の操作に対して Bot が返す主なメッセージです。いずれも実際に表示される原文です。<...> の部分は、その時の賞品名や理由など実際の内容に置き換わります。
参加・取り消し
- 参加を受け付けたとき …
抽選への参加を受け付けました! - 参加を取り消したとき …
抽選への参加を取り消しました。 - 参加条件を満たしていないとき …
参加条件を満たしていません:に続けて、満たしていない条件(必須ロール・アカウント経過日数・サーバー参加日数)が示されます。 - すでに終了した抽選のボタンを押したとき …
この抽選は既に終了しています。
作成・編集・終了・再抽選・削除
- 作成に成功したとき …
抽選 `<賞品名>` を開始しました。(賞品名は記号で囲まれて表示されます) - 終了に成功したとき …
抽選 `<賞品名>` を終了しました。 - 編集に成功したとき …
✅ 抽選を編集しました:に続けて変更点が示されます。 - 再抽選が完了したとき …
再抽選が完了しました。 - 削除に成功したとき …
抽選を削除しました。
自動終了・結果メッセージ
- 期間が来て自動終了したとき … 元のメッセージのタイトルが
終了: ...に変わり、結果として🎉 **抽選が終了しました!**と当選者名が投稿されます。 - 再抽選の結果 …
🎉 **再抽選の結果!**と新しい当選者名が投稿されます。 - 参加者がいないまま終了したとき … 元のメッセージと結果のどちらにも
当選者なし!と表示されます。
エラー・拒否
- 当選者数が 5 人を超えるとき(無料プランの上限) …
無料プランでは、当選者数を5人以上に設定できません。 - 「日」単位で 3 日を超えるとき(無料プランの上限) …
無料プランでは、実施期間を3日以上に設定できません。 - 編集で何も指定しなかったとき …
変更する項目を1つ以上指定してください。 - 終了済みの抽選を編集しようとしたとき …
終了済みの抽選は編集できません。 - すでに終了した抽選をもう一度終了しようとしたとき …
この抽選は既に終了しています。 - 作成者でも管理者でもない人が終了・再抽選・編集・削除を試みたとき …
この抽選を作成した本人、またはサーバー管理者のみが<操作>できます。 - 対象の抽選が見つからないとき …
抽選が見つかりません。 - 一覧に該当する抽選がないとき …
該当する抽選はありません。 - 抽選でないメッセージに右クリックメニューを使ったとき …
これは抽選メッセージではありません。 - 投稿先チャンネルに送信権限がないとき …
エラー: このチャンネルにメッセージを送信する権限がありません。
無料プランでは、当選者数を5人以上に設定できません。 などの上限メッセージは、本来の無料プランで表示されるものです。現在はベータ版で全員にプレミアムが付与されているため、通常はこれらの上限に達することなく、より大きい当選者数や長い期間を設定できます。
注意点・うまくいかないとき
- 終了は時刻ちょうどではなく少し遅れることがあります。 Bot は終了時刻を定期的に確認して自動終了するためです。
- 参加条件は入り直すと再確認されません。 参加条件のある抽選で、いったん参加を取り消してから入り直すと、条件を満たさなくなった人がそのまま参加状態を保てる場合があります。
- 抽選メッセージを消すと終了・再抽選ができなくなります。 元の抽選メッセージを Discord 上で削除すると、結果を投稿できず、
結果の表示に失敗しました。元のメッセージが見つからないか、権限がありません。のように表示されます。 - 削除は当選者を選びません。
/giveaway editの削除操作は抽選そのものを取り消す操作で、当選者の選出も結果の投稿も行いません。当選者を決めたい場合は/giveaway endを使ってください。 - 期間は延長のみできます。
/giveaway editで変更できるのは賞品名・当選者数・期間の延長で、期間を短くすることはできません。 - 「日」単位だけ無料プランの期間上限があります。 期間の上限は「日」単位のときだけ適用され、「分」「時間」単位には上限がありません。
- 右クリックメニューの対象は抽選メッセージだけです。 抽選以外のメッセージを右クリックして「抽選を終了する」「抽選をリロールする」を実行すると、
これは抽選メッセージではありません。と表示されます。
次のステップ / 関連ページ
- コマンド権限設定の使い方 — コマンド・コンテキストメニューの権限を細かく設定する共通の手順
- モジュールの基本と共通操作 — 機能の有効化や保存など、すべての機能に共通する操作
- 変数の概要 — メッセージに差し込む変数の基本
- 投票 — 同じように Discord 上で開催する投票機能