Discord Bot (Public • Community Utility)

🌸 BloomBot

A cozy all-in-one Discord bot for community servers. BloomBot handles welcome and leave messages, saved-message reaction roles, birthdays, daily affirmations, leveling, and achievements with a clean slash-command setup that's easy for server admins to manage.

🛠️ Interactive Setup

One-command wizard to configure every feature with buttons and dropdowns.

👋 Welcome + Leave

Custom join and leave messages with channel controls.

🎭 Reaction Roles

Attach emoji-role mappings to an existing message.

🎂 Birthdays

Save birthdays and post automatic birthday messages.

🌸 Daily Affirmations

Scheduled positive messages with custom additions.

✨ Levels + 🏆 Achievements

XP, leaderboards, level-ups, and unlockables.

📝 Description

What BloomBot actually does

BloomBot is a public Discord bot focused on practical community features: welcoming new members, handling self-assignable roles, celebrating birthdays, posting daily affirmations, tracking chat XP, and unlocking achievements tied to server activity.

It's built around slash commands and per-server settings, so each community can decide which systems to enable, where announcements should go, and how much automation they want. The /setup wizard lets admins configure everything from a single interactive panel.

🌼 Built for Community Servers

BloomBot is a good fit for gaming servers, cozy friend groups, fandom servers, and growing communities that want helpful automation without feeling bloated.

Public bot note

BloomBot is meant to be invited to multiple Discord servers, with each server able to configure its own channels, toggles, and settings independently.

⭐ Core Systems

The real BloomBot feature set

🛠️ Setup Wizard New

Run /setup to open an interactive panel that walks you through configuring every BloomBot feature in one place — no need to remember individual commands.

  • Dashboard overview showing all features and their current status
  • Toggle any feature on or off with a button press
  • Pick channels from native Discord dropdowns — no copy-pasting IDs
  • Set your server timezone from a list of common presets
  • Everything stays in one ephemeral message that updates as you go

👋 Welcome + Leave Messages Core

BloomBot can post customizable join and leave messages in channels you choose.

  • Separate welcome and leave channels
  • Separate welcome and leave messages
  • Enable/disable both systems independently
  • Supports placeholders like {user}, {server}, and {membercount}

🎭 Reaction Roles Popular

BloomBot uses a saved-message workflow for reaction roles instead of generating a brand-new panel message.

  • Point BloomBot at an existing message
  • Save it under a panel name
  • Add emoji → role mappings
  • Members gain or lose roles when they add/remove reactions

🎂 Birthday System Community

Members can save birthdays, and BloomBot automatically checks for birthdays throughout the day.

  • Optional year support when saving a birthday
  • Automatic birthday announcement channel
  • Separate message template for birthdays with age
  • Enable/disable birthday announcements with a toggle
  • Server timezone setting for accurate date checking

🌸 Daily Affirmations Cozy

BloomBot can post daily affirmations automatically and also supports custom affirmation lists per server.

  • Dedicated affirmation channel
  • Set a daily posting time
  • Add, remove, list, or clear custom affirmations
  • Members can also use /affirmation anytime

✨ Leveling Progression

Members earn XP by chatting, with built-in cooldown pacing and level-up announcements.

  • XP earned from normal server messages
  • 45-second XP cooldown per member
  • Random XP gain between 15 and 25
  • Custom level-up announcement channel

🏆 Achievements Extra

BloomBot includes an achievement system tied to chatting, reactions, joining, birthdays, and leveling.

  • Automatic unlock announcements
  • Optional achievement images
  • Member achievement view + leaderboard
  • Admin controls for toggling and manually granting achievements

🛡️ Admin Controls Staff

Most setup commands are admin-only so server owners can configure BloomBot safely.

  • Interactive /setup wizard for one-stop configuration
  • Channel selection commands for major systems
  • Toggle commands for welcome, leave, birthdays, affirmations, leveling, and achievements
  • Manual XP and level adjustment tools
  • Saved reaction-role config management
  • Server timezone setting for birthday and affirmation posts

🏷️ Message Tags

Easy template placeholders for custom messages

Some BloomBot messages can be customized with simple tags. When the message sends, BloomBot replaces each tag with the right info automatically.

Example

If your welcome message is:
Welcome {mention} to {server}! You are member #{membercount} 🌸

BloomBot might send something like:
Welcome @Luna to Cozy Garden! You are member #142 🌸

Available Tags

👋 Welcome + 🍂 Leave Messages

These support:

{mention}, {user}, {username}, {server}, {membercount}

🎂 Birthday Messages

These support everything above, plus:

{age}, {age_ordinal}

Ready-to-Use Examples

📘 How to Use

Step-by-step setup guide

Step 1 — Invite BloomBot

Click the Invite BloomBot button at the top of this page, choose your server, and approve the permissions. Make sure BloomBot's role is above any roles you want it to assign via reaction roles.

Step 2 — Run the Setup Wizard

The fastest way to configure BloomBot is the interactive setup wizard. It shows a dashboard of every feature, lets you toggle things on and off, pick channels from dropdowns, and set your timezone — all from one ephemeral message.

/setup

The wizard covers: welcome messages, leave messages, birthdays, leveling, achievements, daily affirmations, and server timezone. You can click into any module, configure it, and go back to the main menu.

Step 3 — Customize Message Templates

The setup wizard handles toggles and channels, but to customize your message templates you'll use the individual commands. Use the tags listed above to personalize them.

/setwelcomemessage Welcome {mention} to {server}! 🌸 /setleavemessage {user} has left {server}. 🍂

Step 4 — Reaction Roles

Post a message in your roles channel first (the message you want members to react to), then save it as a panel and add emoji → role mappings.

/reactionroles create panel_name:colors message_id:123456789 channel:#roles /reactionroles addreaction panel_name:colors emoji:🔴 role:@Red /reactionroles addreaction panel_name:colors emoji:🔵 role:@Blue

Step 5 — Birthdays

If you used the setup wizard, the birthday channel and toggle are already configured. You can optionally customize the birthday message templates:

/setbirthdaymessage 🎉 Happy Birthday {mention}! 🌸 /setbirthdayagemessage 🎉 Happy {age_ordinal} Birthday {mention}! 🌸

Members use: /setbirthday month:3 day:15 (year is optional)

Step 6 — Daily Affirmations

The setup wizard configures the channel and toggle. To fine-tune the posting time or add custom affirmations, use these commands:

/setaffirmationtime hour:9 minute:0 /addaffirmations
💡 Tip

You don't have to set up everything at once. The /setup wizard lets you come back anytime to toggle features or change channels. Start with welcome/leave and reaction roles, then add birthdays, affirmations, leveling, and achievements once your community is active.

⌨️ Command Reference

Every command in the current version of BloomBot

👤 Member Commands Use

  • /setbirthday — save your birthday
  • /mybirthday — view your saved birthday
  • /removebirthday — remove your saved birthday
  • /nextbirthday — see the next upcoming birthday
  • /affirmation — get a positive affirmation
  • /rank — check your level and XP
  • /leaderboard — view the server XP leaderboard
  • /achievements — view your achievements or another member's
  • /achievementleaderboard — show top members by unlocked achievements

🛠️ Setup Wizard Staff

  • /setup — open the interactive setup wizard

The wizard provides an overview dashboard and lets you toggle features, pick channels, and set your timezone using Discord buttons and dropdowns. It covers welcome, leave, birthdays, leveling, achievements, affirmations, and timezone in one place.

👋 Welcome + Leave Admin Staff

  • /setwelcomechannel — set the channel for welcome messages
  • /setwelcomemessage — set the welcome message template
  • /viewwelcomemessage — view the current welcome message settings
  • /togglewelcome — turn welcome messages on or off
  • /setleavechannel — set the channel for leave messages
  • /setleavemessage — set the leave message template
  • /viewleavemessage — view the current leave message settings
  • /toggleleave — turn leave messages on or off

🎭 Reaction Role Admin Staff

  • /reactionroles create — save an existing message as a reaction-role panel
  • /reactionroles addreaction — add an emoji → role mapping
  • /reactionroles remove — remove an emoji mapping from a panel
  • /reactionroles delete — delete a reaction role panel entirely
  • /reactionroles list — list all saved reaction role panels
  • /reactionroles show — show one panel's mappings and message link

🎂 Birthday Admin Staff

  • /setbirthdaychannel — set the channel for birthday announcements
  • /togglebirthdays — turn birthday announcements on or off
  • /setbirthdaymessage — set the no-age birthday message template
  • /setbirthdayagemessage — set the with-age birthday message template
  • /viewbirthdaymessage — view the current no-age birthday message
  • /viewbirthdayagemessage — view the current with-age birthday message
  • /resetbirthdaymessage — reset the no-age message to default
  • /resetbirthdayagemessage — reset the with-age message to default
  • /birthdaylist — view all saved birthdays in the server

🌸 Affirmation Admin Staff

  • /setaffirmationchannel — set the channel for daily affirmations
  • /toggleaffirmations — turn daily affirmations on or off
  • /setaffirmationtime — set the daily posting time
  • /addaffirmations — add custom affirmations (one per line)
  • /removeaffirmation — remove a custom affirmation by number
  • /clearaffirmations — remove all custom affirmations
  • /listaffirmations — view custom affirmations
  • /sendaffirmationnow — post an affirmation immediately

✨ Leveling Admin Staff

  • /toggleleveling — turn leveling on or off
  • /setlevelupchannel — set the channel for level-up announcements
  • /givexp — give XP to a member
  • /setlevel — set a member's level directly

🏆 Achievement Admin Staff

  • /setachievementchannel — set the channel for achievement unlock messages
  • /toggleachievements — turn achievements on or off
  • /giveachievement — give a specific achievement to a member
  • /achievementlist — list all achievement IDs and names

🕐 Server Settings Staff

  • /settimezone — set the server timezone for birthday and affirmation posts

You can also set the timezone from the /setup wizard using a dropdown of common presets. Use /settimezone directly if you need an IANA timezone not listed in the wizard.

🏆 Current Achievements

The fourteen achievements currently defined in the bot

🔧 Setup Notes

Good things to know
Setup Wizard

Run /setup to open an interactive panel that covers all features. It uses Discord buttons and channel dropdowns so you never need to copy-paste channel IDs. The wizard handles toggles, channels, and timezone — for message templates and reaction roles, use the individual commands listed in the command reference.

Permissions

BloomBot needs Manage Roles for reaction roles to work. Its bot role must be placed above any roles you want it to assign in your server's role list. All admin commands (including /setup) require the Administrator permission.

Toggles

Every major system (welcome, leave, birthdays, affirmations, leveling, achievements) can be toggled on or off independently — either from /setup or the individual toggle commands. Turning something off keeps your settings saved — you can turn it back on later without reconfiguring anything.

Timezone

The server timezone controls when birthday checks and daily affirmation posts happen. Set it from the /setup wizard (common presets) or use /settimezone for any IANA timezone. It defaults to America/New_York if not set.