Skip to content

How to Set Up a Discord Achievement System: Badges and Roles

Set up achievements from the panel using ready-made sets or one by one: learn which triggers need tiered, single-threshold, manual, or dated achievements, why a reward role might not be granted, and where announcements go.

VeyroBot team Updated

This article was translated automatically from the Turkish original. Read the Turkish original

How to Set Up a Discord Achievement System: Badges and Roles
In this article
  1. Module, trigger, and reward role
  2. Setup from the panel
  3. Which achievement type should you choose and when?
  4. Commands
  5. If unlocks arrive all at once or roles aren't assigned
  6. How to reward unquantifiable contributions
  7. Frequently Asked Questions

In Short

To set up an achievement system, open the Achievements tab in the VeyroBot panel, apply one of the preset sets from the Quick Start section, or click Add New Achievement to select a trigger and threshold. Then, set the announcement channel in the Settings tab. Members can view their progress using /achievements.

Ultimately, when a member crosses a threshold, the achievement is unlocked, announced in your chosen channel, and a role or XP reward is granted if configured. Since the engine runs every minute, unlocks usually appear within a minute.

Module, trigger, and reward role

  • The module must be enabled. If the Active toggle at the top of the tab is turned off, no achievements will unlock and achievement commands will reply that "the module is disabled." The Complete setup box on the tab gives you an at-a-glance check of the module, defined achievements, and the announcement channel.
  • The module linked to the trigger. Invite, level, temporary voice, support ticket, giveaway, and birthday triggers progress only when their respective modules are turned on. The panel shows a warning next to the trigger if this is the case.
  • Reward role hierarchy. The reward role must be positioned below the bot's highest role, and the bot must have the Manage Roles permission. The bot cannot grant a role positioned above it; the unlock will still be announced, but the role will not be given to that member even later.
  • A valid announcement destination. Role and XP rewards are granted after the announcement successfully reaches the channel or DM. If neither a channel is selected nor the DM fallback is enabled, the unlock is recorded, but the reward waits.

This topic in VeyroBot:Discord Achievement System →

Setup from the panel

  1. Go to the panel → your server → open the Achievements tab and turn on the Active toggle.
  2. To start quickly, choose one of the presets from the Quick Start section: Mixed Starter, Chat Server, Voice Community, or Growth & Invite. Existing achievements or those with disabled modules are marked on the preset card and won't be added.
  3. To create a custom achievement, select a Trigger in the Add New Achievement section. The name, description, and thresholds will auto-fill with recommended values.
  4. Choose a Tier Type: single threshold or Bronze, Silver, Gold, and Diamond tiers. Attach an optional Reward Role and XP Reward to each tier.
  5. Optionally, enter a custom Announcement Channel, mark it as a Secret Achievement, or set start and end dates, then click Add Achievement.
  6. In the Settings tab, select your Notification Channel, toggle on Backup Announcement Enabled, customize the Default Unlock Message (using {user}, {achievement}, {tier}, up to 300 characters), and click Save Settings.

The Announcement Preview shows what the message will look like when posted to Discord; you can send a test example to yourself using Send me a DM.

Which achievement type should you choose and when?

Tiered achievementFor counters that keep growing, such as messages, voice minutes, reactions, invites, or levels. Enter thresholds in ascending order; lower tiers give new members an early reward, while higher tiers give senior members a goal.
Single-threshold achievementFor one-time actions such as boosts, birthday registrations, the first sub-thread, or the first support ticket.
Manual achievementFor unquantifiable contributions like member of the month, contest winner, or helpful member. It does not progress automatically; staff members grant it using /give-achievement. You can define multiple achievements of this type.
Dated achievementFor events and seasonal rewards. Progress is counted starting from the start time, so older members won't instantly complete the achievement the moment it is added. Unlocks outside the time window are not recorded.
Secret achievementFor rewards where you want a sense of discovery. Until unlocked, its name appears as "???" in the list.

XP rewards are only granted if the leveling system is enabled. If you haven't set up the leveling system yet, check out the Discord leveling system setup guide first.

Commands

  • /achievements or /achievements member:@Member: displays achievements and progress.
  • /achievement-leaderboard: lists the top 10 members based on tier-weighted points.
  • /give-achievement member:@Member achievement:Member of the Month: grants manual achievements only. Requires the Manage Server permission.
  • /reset-achievements member:@Member or basarim:Chat Master: resets progress. At least one option is required, and the achievement name must be typed exactly. Requires the Manage Server permission.

If unlocks arrive all at once or roles aren't assigned

  • Being surprised by old members instantly unlocking a new achievement. Message, voice, and reaction counters are tracked even before an achievement is defined; invites, levels, and days spent on the server are calculated from existing data. If you don't want dozens of announcements the minute you set it up, set a start date.
  • Unlocking achievements before fixing the reward role hierarchy. Tiers unlocked while the role is above the bot will skip the role assignment and won't grant it retroactively. Fix the role hierarchy before the first unlock.
  • Trying to change the tier type later. You cannot change the trigger and tier type when editing; you can only change the name, description, thresholds, rewards, channel, and dates. If the type needs to change, delete the achievement and recreate it.
  • Adding a second achievement to the same trigger. There is only one achievement per automatic trigger; handle different goals using the tiers of the same achievement.
  • Thinking that resetting will take back roles. Achievement roles are permanent; a reset only clears progress and unlock logs. If you need to remove the role, do it manually.

How to reward unquantifiable contributions

Suitable for: communities that want to visibly reward active members; servers handing out rewards like seasonal events, invite contests, or member of the month. For invite-driven achievements, set up invite tracking first.

Not suitable for: those who want to automatically reward unquantifiable contributions such as content quality or helpfulness. Automatic triggers only measure quantifiable activity; you must manage the rest using manual achievements. Also, message count thresholds can encourage low-quality chat spam; keeping thresholds high mitigates this.

Frequently Asked Questions

An achievement was unlocked, but no announcement appears. Why?

The bot might lack permission to write in the notification channel. If channel delivery fails and Backup Announcements are enabled, a DM will be sent to the member; if that also fails, the bot will retry every minute.

Will deleting an achievement erase the unlocks members have already earned?

No. The definition is deleted, but the tiers previously unlocked by members are preserved.

Can I give the same manual achievement to a member twice?

No. If a member has already reached the highest threshold of the achievement, the command will notify you and won't increase the counter.

Can members view achievements without going to the panel?

Yes. They can use /achievements on Discord; you can also share the Public Achievement Page link found on the tab.

Can I announce achievements in leveling or welcome messages?

Yes. You can add a single-line reminder to level-up and welcome messages via the Announce to Members section in the Settings tab.

For a general overview of the feature, check the Discord achievement system page; for a step-by-step list, see the achievements section in the documentation; and for command details, refer to the /give-achievement command card. For format suggestions regarding event rewards, read the event ideas article.

Last updated: September 17, 2026. The triggers, reward hierarchies, and command behaviors described in this article have been verified against the current version of VeyroBot's achievement engine.

Add the bot to your server Free · ~30s