Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/resynceddesign/giveawaybot/llms.txt

Use this file to discover all available pages before exploring further.

GiveawayBot is an open-source, self-hostable Discord giveaway bot built with TypeScript and Discord.js v14. It handles everything from creating timed giveaways to automatically picking winners — with per-guild settings so every server gets its own look and feel.

Quick start

Clone the repo, set your token, and have a running bot in minutes.

Commands

Browse all slash commands — create, end, reroll, and configure giveaways.

Guild settings

Customize embed colors, entry emojis, and @everyone pings per server.

Database

Learn how GiveawayBot persists giveaway entries and guild config with SQLite.

How it works

GiveawayBot posts a giveaway embed with a button that users click to enter. Every second it checks whether any active giveaways have expired — when one does, it picks random winners, sends an announcement in the channel, and DMs each winner a congratulations message.
1

Clone and install

Clone the repository and install dependencies with your preferred package manager.
2

Add your credentials

Create a .env file with your Discord bot token and application client ID.
3

Build and run

Compile the TypeScript source and start the bot with npm run build && npm start.
4

Invite and configure

Invite the bot to your server, then use /gconfig to set your guild’s color and emoji.

Key features

Timed giveaways

Set a duration in seconds, minutes, hours, or days. GiveawayBot ends the giveaway automatically.

Button-based entry

Users enter by clicking a Discord button — no reactions needed. The entry count updates in real time.

Winner rerolling

Missed a winner? Use /greroll to pick new winners from the existing entry pool.

Per-guild customization

Each server can set its own embed color, entry emoji, and whether to @everyone on giveaway posts.

Build docs developers (and LLMs) love