Modules (Cogs)

Giveaways

The Giveaway module lets moderators create timed giveaways. Users enter by clicking a button, and winners are automatically drawn when time is up.

Configuration

OptionTypeDefaultDescription
allowed_rolesstring[][]Roles that can create giveaways (empty = moderation roles)
ping_rolestring / nullnullRole to mention on new giveaway
default_durationstring24hDefault giveaway duration
colorstring#FF6B2CEmbed color for giveaway messages

Commands

CommandDescription
/giveaway create [prize] [duration] [winners] [channel]Create a new giveaway
/giveaway end [message_id]End a giveaway early
/giveaway reroll [message_id] [count]Reroll winners

Duration Format

Use combinations of days, hours, minutes: 1d, 12h, 30m, 1d12h, 2d6h30m

How It Works

  1. Moderator runs /giveaway create "Prize" 24h
  2. Bot posts embed with "Enter Giveaway" button
  3. Users click the button to enter (click again to leave)
  4. Entry count updates in real-time on the embed
  5. When time expires → bot draws winners automatically
  6. Winners are announced in the channel

Entry Button

The button is persistent — it survives bot restarts. Users can:

  • Click to enter the giveaway
  • Click again to leave (toggle)
  • See their entry status via ephemeral message

Ending & Reroll

  • Giveaways auto-end via a 30-second check loop
  • Moderators can force-end early with /giveaway end
  • After ending, /giveaway reroll picks new winners from the original entries

Tips

  • Use ping_role to notify members about new giveaways
  • Set allowed_roles to let trusted members (not just mods) create giveaways
  • Reroll is useful when a winner doesn't claim their prize