This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Giveaways — Raffles with Buttons
GrumpyGiveaways starts time-limited raffles with an entry button, automatically draws winners when they end, and allows manual ending and re-rolling.
Activation
In configs/config.yml:
addons:
giveaways: true # Default: true
No dedicated configs/modules/giveaways.yml — the module has no YAML config file. All data (active/ended giveaways, entries) is stored exclusively in the database.
Commands
All subcommands require the Manage Guild permission.
/giveaway start <duration> <prize> [winners] [required-role] [channel]
Starts a new giveaway.
| Option | Required | Description |
|---|---|---|
duration |
yes | Duration, e.g. 30m, 1h, 3d (units: s, m, h, d, combinable like 1h30m) |
prize |
yes | What's being given away (max. 256 characters) |
winners |
no | Number of winners, 1–20 (default: 1) |
required-role |
no | Role required to enter |
channel |
no | Target channel (Text or Announcement) — default: current channel |
/giveaway start duration:1h prize:Discord Nitro
/giveaway start duration:3d prize:Steam Key winners:3 required-role:@Booster channel:#giveaways
/giveaway end <id>
Ends a running giveaway immediately and draws the winners.
/giveaway end id:<pick a giveaway via autocomplete>
The id option has autocomplete — it lists active giveaways, searchable by prize name.
/giveaway reroll <id>
Draws new winners for an already-ended giveaway from the same entry pool (does not exclude previous winners).
/giveaway reroll id:<pick an ended giveaway>
Here the id option's autocomplete lists the most recently ended giveaways (up to 25).
/giveaway list
Lists all of the server's active giveaways with prize, channel, relative end time, and short ID.
/giveaway list
Entering via Button
Every giveaway message has a 🎉 Enter-button:
- Clicking toggles entry: clicking again leaves the giveaway — no second command needed.
- If a
required-roleis set, it's checked on click; if missing, the user gets an ephemeral error instead of being entered. - Once the giveaway has ended, the button is disabled and a click on an already-ended giveaway is rejected.
- All responses to the button are ephemeral (visible only to the clicking user).
Lifecycle & Drawing
- A background job checks every 30 seconds whether any giveaways are due (end time reached).
- On expiry, the original message is edited (embed status → "ended", button disabled) and a result message with the winners is posted (including a mention ping).
- Drawing: Winners are picked randomly from all entrants, without replacement. If there are fewer entrants than
winnersrequires, fewer (or zero) winners are drawn accordingly. /giveaway endworks identically, just triggered manually and immediately — useful for ending a giveaway early./giveaway rerolldraws again from the same entry pool — note: previously drawn winners can be drawn again, they are not excluded.- Ended giveaways remain in the database (for
/giveaway rerollautocomplete) and cannot be deleted via commands.
Embed Display
The giveaway embed shows:
| Field | Content |
|---|---|
| Title | 🎉 + prize |
| Winners | Number of winners to be drawn |
| Entries | Current entry count (live) |
| Host | Who started the giveaway |
| Required role | Only shown if a required-role is set |
| Footer / Timestamp | Relative end time (active) or "Giveaway ended" |
Color: green (active) → gray (ended).
GrumpyCore Wiki
⚙️ Setup
🔧 Core-Module
🆕 Neue Module
🔔 Benachrichtigungen & Utility
💬 Commands
👥 Staff
GrumpyCore Wiki (English)
⚙️ Setup
🔧 Core Modules
🆕 New Modules
🔔 Notifications & Utility
💬 Commands
👥 Staff