A Guide to Sapphire – The Complete Discord Bot

Discord Bots Oct 12, 2022

Since April 2021, Xge started coding this bot as a hobby project because he felt there was not a single public discord bot crafted to fit his needs. Sapphire was released on July 17th 2021, along with a functional website and dashboard. While he managed the bot, website and dashboard, Kaera designed the logo, website concept and emojis.

Thumbnail by Messyhunk

Sapphire is one of the few public bots today that is up to date-with the latest features and comes with unmatchable customizability options. Besides the provision to tweak every single message the bot sends to your server - with the help of message components and a pinch of creativity - you can create eye-candy info messages that users will love to fidget with! Strict moderation, neat action logs as forum posts, editing messages right from the dashboard, social media notifications, flexible custom commands and whatnot for free!

Wait are you new to Sapphire? You are in the right place; besides pointing out how Sapphire should be the next bot you add to your server, I also made a quick guide for you to help you have a vivid understanding of how the dashboard works. A brief description of some basic features with special emphasis on some critical aspects which are essential for unlocking your creative mind!

And for the daily users, do not read further! Go make better embeds... Just kidding, read on!

Xge, the developer of the Sapphire, left a note for y'all. Don't forget to have a look at it!


The Dashboard

A Brief Walkthrough

The dashboard is minimal and every feature is efficiently grouped under specific tabs, making navigation very smooth and easy. There are initial pop-ups on every tab that informs you about what that section does.


This is like your shortcut deck, functions which you might need readily put together at a place for ease of access.

Overview Tab

General Server Settings

To quickly set up your language and date format

General Settings Tab


With the permission tab, you get to set your manager roles i.e., roles that are allowed to fully configure the bot.

Permissions Tab

Feel like going with something more tailored? There is an Advanced Permission Tab to allocate roles on the left and set specific permissions on the right.

To manage your permissions regarding Custom Commands, which we will come back to in the later part of the article.


One of the parts of the server that you will be mostly dealing with.

Message Tab

Under messages, we have two main columns: Default Messages and Templates.

Default messages: Messages that are sent when a particular command is run, you guessed it right! Unlike other bots, you can customize every message that the bot sends to your server as a command response.

  • Message Kit is a term you will come across here which allows you to share or transfer your custom-made pack of default messages to other people or servers in general. You can also import kits from other servers/ people.

Templates: This is where you will be creating the messages you want to send to the server, normally or as embedded. We will soon come into its extensive usage. A very important point to note is that every message you send can be edited within seconds and right from the dashboard.

Error Logs:

Errol Logs' Tab

A very crucial and useful element of the bot, any error you get with the bot will be automatically listed here, once you learn to understand the error statement you can fix your problems very easily. Gone are those days when you keep pinging the staff for an unexplainable error that you get with a bot.


Auto-Moderation Tab

You get two tabs here one for managing discord’s built-in auto-mod system, and another for your everyday auto-mods like spam filter, mention filter etc. Again they all are customisable, from the message they send to the way they react to the trigger.


Moderation Tab

In moderation, you get a whole deck to manage every aspect of safeguarding your server. You get a tab for managing moderation cases and a tab for configuring the punishment settings. You can customise each option separately like setting the default time for reverting the punishment. For cases like mute and warn you get to configure the subactions as well like mute and unmute or warn and unwarn.

You get to set the immune roles, manage notifications on punishment, pre-define custom reasons and add an alias to them so that If you define the reason 'Test' with the alias 't1', you can use it like this: mute @user t1

You get to configure your channels when locking your server using !lockall, you can also add ignored roles at the same time, ie., if you want you can lock the whole server for the members and keep it open for the staffs' training.

Lastly, the privacy section is where you choose which information is shown in a command output message for example a ban or mute command in a server or direct message.

Social Media Notifications

Social Media Notification Tab

The section favourite to all content creators, automatic webhook redirect of your social media post, they are limited yet enough to satisfy one’s need. You can also make live updating streaming messages. Notifications for Instagram are on their way too!
You can add 5 accounts for each module.

Join Roles

Join Role's Tab

As the name suggests you get to assign a role that gets allotted to every user that joins the server. You can also set up user-specific join roles, Configure delay and even synchronize a new role i.e., it will get added to every member in the server. Make sure to save your changes before syncing.

Reaction Roles

Reaction Role's Tab

Our old friend, one for the oldest form of self role where you react to an allotted emoji to get a corresponding role. They still look good and yes this section is also totally customisable.

Currently, you can create a maximum of 15 Reaction Role messages.


Logging Tab

The tab that lets you set channels for logging every action you need, the list of logging possibilities is overwhelming.

Text Commands

Text Command's Tab: Section 1
Text Command's Tab: Section 2

The section that allows you to set your custom commands and add predefined actions and instantly convert them into slash commands!
You can set an alias, enforce restrictions, delay the auto delete or turn it off altogether. On the right, you get the list of default commands which can be customised in every way from changing their slash commands to adding an alias, just that you cannot edit them which is fair enough, the default for a reason.


Components Tab

Finally, the last tab deals with declaring buttons, drop menus and their functionality. Very easy to configure once you are used to it.

Having completed a basic walkthrough, we will emphasise some key aspects of the bot which will eventually make you better at creating assets.

Understanding Message Templates

The key to customization.

When you make a template you create a message and get the provision to save the message with a template name to be used for actions. You can make a maximum of 100 templates.

Edit Tab

Message Creating Section

Just like any message creator, you can generate either a normal message or an embed message or both. If you wanna enter your raw JSON code you can do that on the next sub column “Raw”, finishing off with variables on the final column from where you can copy predefined variables.

Preview Tab

Message Previewing Section

On this tab, you can instantly preview how your message looks, all from the dashboard. Components don't work on the tab so to test that you can send your message to a test channel before its final destination.

Use Tab

Message Usage Tab

This is from where you send, edit, schedule or automate your message.

  1. To send your message you select a channel and hit the send message button, you can also connect your webhook here but only for a message without message components.
  2. To edit you enter the message link of the message you want to edit and save. The changes you made in the edit tab will reflect on the original message.
  3. To schedule you to create a schedule, choose your channel and set the time you want the message to auto-send itself.
  4. To automate, you feed the bot the words it looks for as a trigger and sends the message as a response.

You can add 7 schedule settings & 7 automation settings per message template.

Create a message and name it message-1 and send it to a channel. We will use this template shortly.

On the edit tab, you might have noticed the option to add an "Action Row" to your message, when you select that, you have two options: "Buttons" and "Select Menu".

These are called components and let us understand their setup.

Understanding the Components

Level up your info messages.

You can create 50 Buttons and 50 Select Menus. There are some predefined actions which we should first know about since they carry the same functionality throughout the other commands in the bot:

  • Send Message: Send a message in the channel the component is in using a premade template. You can make the message Ephemeral i.e., only visible to the user interacting with the button.
  • Send Channel Message: Send a message in a channel you define and using a template
  • Edit Message: Edit the original messages and replace them with the new message on a template
  • Delete Message: Deletes the original message
  • DM user: DMs the user with a selected message template
  • Toggle Roles: When interacted, toggles the selected role for the user
  • Add Roles: When interacted, it adds the selected role to the user
  • Remove Roles: When interacted, it removes the selected role from the user
  • Set Roles: When interacted removes all other roles from the user and replace them with the role selected
Actions dealing with roles can accommodate more than one role.

On the left, you can create custom buttons and on the right, you can create your custom Select Menus.

Creating Buttons

Let's create a button called button-1.

Button Creating Section
  • We want our button to send a message to the channel the button is in, have a look at the actions mentioned above. Which action do you think is fit for this particular case? Yes, Send a Message. Well, let us proceed with that.
  • Now we need to configure which message it sends, so if we click the gear button on the right of the action we get the space to insert a pre-defined template. Choosing message-1 from the last step. We have the option to mark it ephemeral. Let's mark it as well.
Selecting Message Template While Creating a Button
  • So now our button is ready and this button can be used all over the bot’s dashboard as an Action. It will stay there unless you delete it with the cross sign on the right.
  • Let's head back to the message column/message-1
  • Add Action Row, select “Button”.
  • You see three apparent elements here, a gear, an emoji and the term Label which you can replace with any word which you want the button to display, you can keep it blank to just keep an emoji.
  • To add an emoji you click on the smiley face and select one of your server emojis or default emojis.
  • Now for the main configuration, you select the gear icon. You get the select the style of the button aka colour and action. We will drop down the menu to select button-1

That's it you now have a message with a button that sends itself as an ephemeral message. Now send the message by navigating to Use Tab and selecting the channel you want your message to be sent in.

Testing A Button that Sends Itself as An Ephemeral Message

Say, you want the main message to stay the same and change the message that is sent via the button. Instead of sending the message edits itself to set the new message.

To make such a button we will just create another message called message-2 and head to the components/button tab where we select button-1 and change its action from Send Message to Edit message. And from the gear icon, we choose the message template: message-2.

Now, all we did was re-programmed the button and didn't touch the original message.

Creating Select Menus

Head to the right column and create a menu called menu-1

  • You see an “Add Option” button in the top right corner. With that, you add options to your menu. If you have used a select menu before, you must be knowing what exactly I am talking about.
    Say a menu for pronouns, options will be: He/Him, She/Her, He/They, She/They, They/Them and Any.
  • Here, let's create two options: Option1 and Option2
  • Next step, we configure what happens when each option is selected.
  • For Option1 we hit the add button and choose an action, say Toggle Roles next we select the role we wish to allot to that option.
  • Similarly for option 2, we choose Toggle Roles and add another role.
Assigning Roles to Toggle as An Action of Option1 in a Select Menu
  • Now our menu-1 is ready to use and toggles the role for the user, on interacting.
  • Heading to message-1, on the message tab add another action row and choose “Select Menu”. We won't remove the button.
  • On the gear button, you select the number of minimum and maximum selections that a user can do from the menu and at the same time you are to select the action you just created i.e., menu-1.
  • Placeholder is the text that displays on the select menu, more like a call to action prompt or a message that might help the users choose. We will enter “Choose an option”
  • Next, name 2 actions, and select the emojis. As soon as you enter the option name another gear button will show up on the left of the option. You select Option1 for the first one and Option2 for the second.
  • You can add descriptions and emojis to your options if you want.

Save your edits and there you go you have successfully made a select menu. Resend the message once again to the channel since you added the Select Menu after having sent a copy of the message in the channel.

Points to Remember

  • Each action row can have 5 buttons and allows only 1 component type. Either buttons or Select Menu.
  • You cannot use a button component with a Select Menu and vice-versa.
  • Your button name should not be the same as the menu name if they are supposed to work together in the same message
  • For errors, read the Error Log to find out at which step you messed up.

Info Message Combining Multiple Components

An Example

An Info Message I Made for My Server Xavier's High

I made use of multiple components to make a single message that can help me resolve 3-4 info channels.

Advanced Auto-Moderation

Moderation, automated.

With advanced auto-moderation, you get access to 10+ modules/events to configure. Each module needs a condition setup and actions set for the same. You can set a total of 10 conditions and set up multiple actions. For filtering you can add a group of words or link the bot will look for

The list of actions includes: Delete Message, Send Message, DM User, Open Moderation Cases, Add Roles, Remove Roles and Set Roles.

Image Showing A Limited View of Actions Available for Auto-Moderation Modules

A module called Special Channels allows you to make channels where users will be able to send only a specific kind of message. Say an emoji-only channel or a gif-only channel. 

A Special Channel That Allows Only Particular Message Types

You can also actively manage your discord server’s built-in Auto-Mod. The setup is similar, just that you need a minimum of one automod setup beforehand from the discord server’s AutoMod section

Understanding Moderation Cases

Kick smart ban smart.

We are talking about the moderation cases that are part of the actions available for the Auto-Moderation modules of Saphhire and not the list of actions taken.

Moderation Case Manager's Location
Moderation Case Management Section

A very easy setup where you can separately select to Mute, Kick or Warn a user for a specific time limit and provide a pre-set reason. Unlike Dyno or other bots, you can set custom reasons for free.

You also have the provision to set a delay for the actions, in seconds.

Sapphire Keeps Raising the Bar for Discord Bots

Sapphire lets the user customise every aspect of the action the bot takes. You can create beautiful info messages by pairing up embeds with message components. It will take you a day or two to get accustomed to planning your components to work together smoothly. Once you master them, you will be able to lower your number of info channels which is a great step towards enhancing the user experience.

You get to access the full bot, packed with a large number of features, without a paywall. There sure is a support perk: “Custom Branding” which is a very optional upgrade yet a generous way to show your gratitude to the dev and his team.

Sapphire’s dashboard is also one of the most reactive dashboards you will come across. I have been using Sapphire for quite a time now and personally didn't experience a single bug. If you stay up to date with the support server, you will see the number of updates that are already planned.

A Note from the Developer

"I definitely plan on upgrading Sapphire's current features and adding a lot of new ones in the future. I spent the last months working on the zero-downtime update which finally released a week ago. There will be many major updates in the next months, including ideas from the community, which they suggested in the #feature-requests and #feedback channels in Sapphire's support server. I'm really happy to see so many new servers using Sapphire and I love reading feedback about the bot. Thanks to the moderators & nice people in the community I am able to focus on implementing new stuff and respond to ideas & criticism while the growing support server is still being well-moderated" -Xge

In a whole-hearted discussion he added, he doesn't have plans for recruiting another dev for the bot right now because that will pause the ongoing rapid developmental process. He looks forward to adding devs to his team in the future when Sapphire is even more packed with features that are yet to release.

For questions related to the bot, support and bug reporting, join the Official Discord Server of Sapphire.

My best wishes go to Xge and his team. That's all for today, hope you enjoyed today's article. Make sure to join our official Discord server to discuss further on this topic or suggest new articles!

Like what you're reading?

We do this every day. Unlock exclusive benefits, 4K wallpapers, and more. Become a member for the price of a coffee.

What are your views on Sapphire?




Hi, I am messyhunk. A 500+ discord server owner, graphics designer, coder by day and a writer at night. Most importantly, I am a highschool student.