Skip to main content

Getting Started

Discord Ticket Bot

A multilingual, per-guild configurable Discord giveaway bot built on Discord.js v14, persisted via MariaDB (Prisma). Restart-safe poll scheduler, entry via button, weighted winner draw with eligibility checks, and reroll. Developed and maintained by MSK Scripts.

License: AGPL-3.0 · Node.js 22+ · Discord.js v14 · Docs: docu.msk-scripts.de

Prefer the overview first? The free Discord giveaway bot page on msk-scripts.de covers the features, the command list and the Tebex winner coupons. Auf Deutsch: Discord Giveaway Bot, kostenlos und neustartsicher.


➕ Add to Your Server

The easiest way to use the bot is to invite the official public instance — no hosting, no database, no setup required.

🎉 Invite the Giveaway Bot →

You can also retrieve this link at any time inside Discord with the /ginvite command.

Once the bot has joined, a server manager runs /gcreate to open a giveaway. Members join with a single button click, and the bot draws the winners automatically when the timer ends.


✨ Features

FeatureDescription
🎉 Button EntryMembers join with a single click — customisable emoji, label and button style
🔁 Restart-SafeA poll-based scheduler means no giveaway is lost or orphaned, even after a reboot
🎁 Multiple PrizesList several prizes per giveaway — either everyone gets all of them, or each winner gets their own
👥 Weighted Bonus EntriesGrant specific roles extra entries (up to 100), shown in the giveaway message so everyone knows about them
🛡️ Eligibility RulesWhitelist / blacklist roles — server-wide or scoped to a single giveaway — plus minimum account age and server membership
⏸️ Pause & ResumeFreeze the timer mid-giveaway and resume seamlessly where you left off
🗂️ TemplatesSave a whole giveaway including its prize list and reuse it, by command or in the dashboard
✨ RerollDraw fresh winners for any ended giveaway, respecting the blacklist
🖥️ Web DashboardCreate and fully manage giveaways and settings from the browser — Discord login, no commands required
🏆 Public Results PagesEvery finished giveaway gets a shareable results page with the winners and participant count
🎟️ Tebex Winner CouponsConnect your own Tebex store and every winner gets their own single-use discount code by DM
🌐 MultilingualEnglish, German, French and Spanish — selectable per server
🎨 Per-Guild BrandingCustom embed colour, button emoji and style
📜 Audit LoggingOptional log channel records every giveaway event
🧑‍⚖️ Manager RoleDelegate giveaway control without handing out Manage Server
🔒 Least-PrivilegeOnly the Guilds intent and minimal permissions — no message-content access

🔑 Required Permissions

When invited via the link above, the bot requests exactly the permissions it needs (permission integer 478208):

PermissionWhy it is needed
View ChannelSee the channel the giveaway runs in
Send MessagesPost the giveaway message
Embed LinksRender the giveaway embed
Read Message HistoryLocate and edit its own giveaway message
Use External EmojisAllow a custom button emoji
Mention EveryonePing the configured notify role on creation

At runtime, allowedMentions restricts pings specifically to the configured notify role — the bot never mass-pings @everyone.

The bot uses only the Guilds gateway intent. It requires no privileged intents and opens no inbound port.


🌍 Live Statistics

Anonymous, server-wide statistics of the official instance are available at msk-scripts.de/giveaway/stats — total servers, giveaways, entries and winners, plus language and status distribution. No server IDs, user IDs or other personal data are shown.


🖥 Web Dashboard

Prefer a browser over slash commands? Server admins can manage everything at msk-scripts.de/giveaway/dashboard:

  1. Log in with Discord (you'll only see servers where you have Manage Server and the bot is present).
  2. Pick a server.
  3. Create, edit, extend, pause/resume, end, cancel and reroll giveaways — and change every per-server setting.
  4. Manage templates in their own tab, and start from one when creating a giveaway: pick it above the form and every field is filled in.
  5. Set the entry conditions: blocked and required roles plus bonus entries per role, server-wide in the Settings tab or for one giveaway in its own form.

The dashboard also holds the two things that have no slash command: the winner coupon settings of a giveaway, and the Tebex store tab, which is visible to the server owner only.

Behind the scenes the dashboard forwards each action to the running bot over a private, server-internal channel, so the Discord message, button, winner DMs and audit log stay perfectly in sync — exactly as if you had used the slash commands. Everything you do on the dashboard is still recorded in your log channel.


🏆 Public Results Pages

When a giveaway ends, the bot publishes a clean, shareable results page at msk-scripts.de/giveaway/g/<token> — linked automatically in the results message and in the winner DMs. It shows the giveaway title and prize, the winners and the number of participants. If the giveaway handed out one prize per winner, each winner is listed with the prize they won. For privacy, the full participant list is never published. The page is removed automatically if the bot is removed from your server.


🎟️ Tebex Winner Coupons

Run a Tebex shop? Winners can automatically receive a personal, single-use discount code for your own store, not ours. The server owner connects the store once in the dashboard, then every giveaway can carry a discount percentage, an optional package restriction and an optional validity period.

The code arrives by DM together with the prize and never appears in the public results message or on the results page. On a reroll, the replaced winner's code is revoked before the new one is issued.

Because a Tebex plugin secret grants full access to a shop, connecting a store is restricted to the server owner and the key is stored encrypted. Full setup in the configuration guide.


🔒 Self-Hosting

Running your own copy of this bot is neither supported nor encouraged. The source code is published for transparency — so users can see exactly how the bot behaves and fellow developers can learn from it — not as a ready-made product to redeploy. There is no support for installing, modifying, or building your own instance.

Just invite the official instance instead.


📝 License

AGPL-3.0 — source code must remain open and be published under the same license when distributed or hosted.