The Giveaway feature handles the full giveaway lifecycle: creation, timer, winner draw, prize delivery, and rerolls. Winners claim their prize key directly with a single command. No manual DMs or other actions required.
Two entry modes are available. Button mode posts a new giveaway embed with an entry button. Reaction mode attaches to an existing message and collects entries via 🎉 reactions, leaving your original post untouched. Pick whichever fits your communication strategy.
What makes it different
- Two entry modes. Post a new button embed or run the giveaway on an existing message via 🎉 reactions. whichever fits your setup.
- Automatic key delivery. Winners use
/claimto receive their prize key as a spoiler tag. No manual distribution, no DMs. - Per-winner claim status. The ended giveaway embed shows a live ✅ or ⏳ per winner so you can see at a glance who has and hasn't claimed.
- Legal compliance built in. Configure a No Purchase Necessary disclaimer and Terms link once via
/giveaway setup, and they appear automatically on all pool and giveaway messages. - Flexible rerolls. Reroll all unclaimed winners or specify an exact count. New winners are drawn from remaining eligible entrants.
- 30-day data retention and CSV exports.
Claimer user IDs are automatically wiped 30 days after a giveaway ends to comply with Discord's data retention policy. Export first if you need
the records.
Setup
setup → create → (addkeys) → start → auto-draw → winners claim
Run /giveaway setup to go through the wizard. Configure your log channel and optional legal settings Terms page & NPN disclaimer). Both are optional but the log channel is required for reaction-mode giveaways.
Run /giveaway create, pick a channel, and fill in the modal. Input prize name, optional description, number of winners, and duration. You can paste keys directly into the modal or load them separately with /giveaway addkeys. For reaction mode, pass the existing message ID in the create command and the bot will attach the giveaway to that message.
Run /giveaway start when ready. The bot posts the embed (button mode) or adds the 🎉 reaction (reaction mode) and begins the countdown. Winners are drawn automatically when the timer ends.
Rerolls are announced and new winners are automatically reflected in the winner list. If configured, winners who claim will be assigned the winner role and they won't be able to win again unless staff runs /giveaway clearwinners.
Commands
/giveaway setup - Configure legal disclaimers for pool and giveaway messages (Terms page
& NPN disclaimer) and set a logging channel. Legal settings are shared between both features.
/giveaway create - Open the create modal. Set the prize, description, winner count, and duration. Optionally paste keys directly. Pass a message ID to use reaction mode instead of button mode. Optionally credit a host.
/giveaway start - Post and start a created giveaway. For reaction mode, a log channel must be configured first.
/giveaway end - End a running giveaway early and draw winners immediately.
/giveaway reroll - Reroll unclaimed winners. Optionally specify how many to reroll. New winners are drawn from entrants who are not already winners.
/giveaway keys - Show key stats and per-winner claim status for any giveaway.
/giveaway addkeys - If applicable, load prize keys from a .txt file. One key per line. Can be added before or after the giveaway ends, including while it's running.
/giveaway retrievekeys - Pull and remove all unclaimed keys from an ended giveaway. Returned inline for small batches or as a .txt file for larger ones.
/giveaway clearwinners - Clear the winner role from winning members if configured. This makes members eligible for upcoming giveaways again.
/giveaway list - List all giveaways for this server with status icons and remaining time for active ones.
/giveaway delete - Deletes a selected giveaway, reminds to export first if applicable.
/giveaway export - Export the full entrant list for an ended giveaway as a CSV file.
/claim - Member-facing. Claim a prize key from a giveaway you won from anywhere on the server. If they've won multiple, the bot creates a list and prompts them to pick one. Already-claimed prizes are shown again if they run it a second time.
Troubleshooting
- Keys not appearing after upload: confirm the file has one key per line with no blank rows or extra formatting.
- Winners cannot claim: the giveaway must be in ended state and keys must be loaded. Check status with
/giveaway keys. - Log channel not receiving activity: confirm the bot has Send Messages permission in the configured log channel.
- Autocomplete shows no giveaways: autocomplete is status-filtered.
startonly shows created entries,endonly shows active ones,rerollandretrievekeysonly show ended ones. - Winners are not assigned a role: make sure Keystone has Manage Roles permissions.
- Winner sees "no keys available": more winners were drawn than keys loaded. Use
/giveaway addkeysto load more and affected winners will be able to claim immediately.