How to set up a Discord starboard bot

Updated · 9 min read

A Discord starboard bot collects messages that members appreciate into a shared highlights channel. It can also be a Discord reaction leaderboard bot: members react with the configured emoji, and /star top ranks message authors by reactions received. That makes the same setup useful for a Discord skull leaderboard bot when your community uses 💀 instead of ⭐. Build Discord Bots includes Starboard on Pro. This walkthrough creates a small board, checks how votes are counted, and tests what happens when a reaction is removed. You will finish with a working highlight workflow and clear expectations about which messages can be copied into it.

Start free

Start free. Free includes 1 bot and the Free modules; Pro is $9.99/month and adds more bots, every module and custom modules.

Before you start

  1. Enable Starboard and select its destination

    Open Modules on the bot dashboard and enable Starboard, then open Settings from the module card. Choose the correct server in the Server selector. Turn on Enable Starboard Reactions and select your highlights channel under Starboard Channel. Save the settings before asking anyone to react. Leaving the destination as None means there is nowhere to publish highlights, even if the reaction switch is on. Keep the source and destination separate: reactions on messages already inside the starboard channel are ignored, preventing the board from copying its own posts.

    Start with ordinary conversation that every intended reader may see. A copied message includes its text and can include an image, so the destination audience matters as much as the original channel audience. There is no source-channel allowlist in these Starboard settings. Do not give the bot access to private discussions that must never be highlighted into a broader channel. Agree with staff which conversations are suitable before opening the board, and test with an intentionally harmless message rather than someone’s personal story or an old moderation discussion.

  2. Choose the emoji and reaction threshold

    Reaction Emoji determines which reaction the bot counts. Keep the default star while you learn the flow so members have a recognizable action. Reaction Threshold defaults to 3 and accepts values from 1 through 100. That number is the eligible reaction count needed on one original message, not a monthly allowance or a subscription limit. For the first test, retain 3 and arrange for three other people to react. A quiet server may later prefer a lower threshold, while a busy conversation may need more agreement before a message earns a place.

    Embed Color changes the accent of the copied message. Pick a valid six-digit hex color and save it alongside the other settings. You can inspect the current configuration from Discord with !starboard; examples here assume the default ! prefix, so substitute your configured prefix when necessary. Staff with Manage Channels can also change values there, for example !starboard threshold 3. The dashboard and command use the same server settings. Coordinate edits with other moderators so a test result is not confusing simply because someone changed the threshold while votes were arriving.

  3. Decide whose reactions and messages count

    Leave Allow Self-star off if an author should not help their own message reach the board. In that mode, the module fetches the reaction users and excludes both the message author and bot accounts from its count. Turning Allow Self-star on includes the author’s reaction, but bot reactions still do not count as member votes. Allow Bot Messages is a separate choice: it controls whether a bot-authored source message may appear on the board. Keeping that off is useful when you want community conversation highlighted without collecting automated announcements.

    Allow NSFW Channels is off by default and prevents messages from channels marked NSFW from being considered. Leave it off for this walkthrough. Minimum Account Age (days) also appears in the dashboard, but its current behavior needs care: when self-star is off, the handler returns after counting non-author members, before checking account age. When self-star is on, the age check applies to the person whose reaction event is being processed, rather than filtering every voter. Keep it at 0 for this test and do not treat that control as comprehensive protection against new-account voting.

  4. Create a highlight and check its source link

    Post a short example in the source channel, such as a useful tip for your next community event. Ask three non-bot members other than the author to add the configured star. After the first two eligible reactions, there should be no highlight at the default threshold. The third should create a post in the destination. Inspect its author, message text, reaction count, and source channel. The embed includes a Jump to message link so readers can return to the original conversation instead of treating a copied sentence as its entire context.

    If the source has an image attachment, the module can display an image in the highlight; other attachments may appear as links. Test any format your community expects to share before announcing support for it. Have an ordinary member check the result as well as an administrator. A visible copy and a usable source link are different things: someone may see the copied text while lacking access to the original channel. If that reveals a mismatch in the intended audience, stop the test and correct channel access before encouraging members to nominate real messages.

  5. Check count updates and removal below threshold

    Add another eligible reaction to the original message and verify that the existing highlight updates its count. The module remembers the relationship between the original message and its starboard post, so a later vote normally updates that post instead of publishing another copy. Next, remove enough eligible reactions to bring the count below the configured threshold. The bot should delete the highlight and remove its stored entry. This means the board reflects current reaction support; it is not a permanent archive of everything that once reached the required count.

    For a second check, add the author’s reaction while Allow Self-star remains off and confirm that it does not increase the displayed eligible count. The reaction total shown on the original Discord message can differ from the board count because author and bot votes are excluded. If nothing appears, inspect the destination, module switch, emoji, permissions, and threshold in that order. Also check whether the source is bot-authored, marked NSFW, or already inside the board channel. Repeat with fresh, simple text after correcting a setting so the result is easy to interpret.

  6. Set up and test the reaction leaderboard

    Members can inspect the stored board activity with !starboardstats and browse the highest recorded star counts with !starboardtop. The latter shows 10 messages by default and accepts a requested count up to 25. These views describe the module’s stored highlights, not every reaction ever added in your server. After your example has fallen below threshold, it should no longer contribute a stored highlight. Use the views to review useful contributions, but avoid promising an immutable competition score: reaction removal changes the underlying entries and members can still change their reactions.

    In the dashboard, turn on Reaction leaderboard. It is enabled by default for a new Starboard configuration; an existing saved configuration from before this setting stays off until you enable it. The leaderboard counts the configured Starboard emoji received by each message author while the bot is online. It ignores self-reactions and bot reactions, and subtracts an eligible reaction when it is removed. Members use /star top to view the top 10 authors by those received reactions. The bot does not scan old reactions or backfill a total after it starts, so explain that this is a live score rather than a complete server-history score.

    Example — run a skull reaction leaderboard: set Reaction Emoji to 💀, leave Reaction leaderboard on, and keep the bot online. Ask two members other than Mina to react with 💀 to Mina’s useful message. /star top should show Mina with 2 received reactions. Mina adding 💀 to her own message and a bot adding 💀 do not raise her total. If one of the two members removes their 💀, Mina’s total becomes 1. This example is about received reactions per author, not the number of reactions a member has personally added. Publish the chosen emoji and scoring policy near the board before treating it as a community activity.

    To pause highlight processing, a moderator can use !starboard enabled off or disable Enable Starboard Reactions in the dashboard. That pause stops creation and updates; it does not clear existing highlights. Recheck the destination after reorganizing channels. When you are ready to create your own board, use the signup button below and configure Starboard with Pro.

Frequently asked questions

Is Starboard included on the Free plan?

No. Starboard requires Pro and is not part of the Free module set.

Why is the starboard count lower than the reaction total?

Bot reactions are excluded. With Allow Self-star off, the message author is excluded too, so the eligible count can be lower than the visible reaction total.

What happens if members remove their stars?

The module updates the recorded count. If it falls below Reaction Threshold, the highlight and its stored entry are removed.

What does /star top count?

When Reaction leaderboard is enabled, /star top shows the top 10 message authors by configured-emoji reactions received while the bot is online. Self-reactions and bot reactions are ignored, and removing an eligible reaction subtracts it.

Is Reaction leaderboard enabled by default?

It is enabled by default for a new Starboard configuration. Existing saved configurations that predate the setting remain off until a moderator enables the dashboard toggle.

Does Minimum Account Age filter every vote?

No. The current handler skips that check when self-star is off. With self-star on, it checks the user triggering the event, not the age of every counted voter.

Ready to configure your bot?

Start free

Start free. Free includes 1 bot and the Free modules; Pro is $9.99/month and adds more bots, every module and custom modules.