What is a Discord Bot?
A "Discord Bot" refers to a user-like member of your server that you can use to automate various actions. It's denoted by a "Bot" tag next to its name. Bots use Discord's public "API" to do actions like send messages, modify roles, etc.
How to Use Bot Commands
Commands are the various operations that you can have a bot perform through sending messages in Discord. Statbot's commands primarily focus on displaying stats and configuring settings. It supports both Slash and Prefix commands.
Slash
Most common for Discord bots these days, you can access commands you have permissions to run by first typing a /
forward-slash in a channel. This will prompt you with the commands you can run in that channel—narrowing results
as you type more characters.
Example: /me
Note that just because a member can see a Slash command does not mean that they'll always be able to run it. Statbot's advanced RBAC system will always enforce permissions restrictions.
Prefix
Prefix commands are ones where a bot searches the beginning of a message for a set of characters. It uses this
to know if the the message contains a command that it needs to run. In regards to commands, Statbot ignores
messages that don't start with the server's prefix or @Statbot
.
Statbot's default prefix is s?
(not case-sensitive) with full support for /slash
commands. You can also use
@Statbot
instead of the prefix, which is helpful if you ever forget your prefix and want to check it in Discord
rather than the Dashboard.
Below are some examples of Statbot commands illustrating how a prefix is used:
help | commands | stats member | counters | |
---|---|---|---|---|
s? | s?help | s?commands | s?stats member | s?counters |
/ | /help | /commands | /stats member | /counters |
@ | @Statbot help | @Statbot commands | @Statbot stats member | @Statbot counters |
Setting a custom prefix for your server is covered later in this guide under 5. Common Settings.
Aliases
An Alias is a command that acts as a shortcut for another. For example, one of the Aliases for
the stats messages
command is m
, so s?stats messages
and s?m
return the same output. Aliases accept the
same Parameters as the full command. (e.g. s?u @User
)
Privileged Commands
Privileged Commands (aka: "Admin Commands") are commands that require you to have certain
Discord permissions or Role-Based Access Control (RBAC)
overrides. By default, members with the Administrator
or Manage Server
Discord permissions can edit all Statbot
settings—with the only one exception being the
Elevate Manage Server setting.
Required Permissions
Information on what Discord permissions are required by features. This is a more in-depth version of the previous guide page.
Tracking
The following Discord permissions are required to track stats:
- Read Messages — Required on text channels to track sent messages and see commands.
- See Channel — Required on voice channels to track voice minutes and update Statdock channel counters.
Responding to Commands
The following Discord permissions are required to respond to commands in Discord:
- Send Messages — Required to send any response.
- Embed Links — Required to send responses. All commands use tidy embeds which use this permission.
- Attach Files — Required for commands that send graphs and .csv files.
- Read Message History — Required only for Prefix commands.
Statroles
The following permission is required for the Statroles feature:
- Manage Roles — Required to assign and remove roles to/from members.
Statroles rely on stats tracked by the bot, so make sure that the bot has the permissions noted above on the channels you want stats for.
A member's highest role must be higher than the role they're trying to assign. This is true for bots as well. Make sure that Statbot has a role higher than the one you want it to assign. The editor on the website will show only roles that the bot can assign but roles are often reorganized.
Statdocks
The following are required for the Statdocks feature:
- Manage Channels — Required to both create and manage channels.
- View Channel (aka: See Channel) — Required to both create and manage channels.
- Connect — Required to create and manage channels (including channel name).
- Send Messages — Required to create Statdocks.
User Privacy
Finally, because of the importance that Discord places on this topic, it is worth highlighting the
/privacy
command. This command allows a user to anonymize their stats across all servers. This process was explained
earlier in the Welcome page's section about privacy.
When turning on User Privacy, you will be sent the following message and prompted for confirmation:
We greatly value your privacy. By activating User Privacy, we will anonymize your message and voice data. Users are limited to toggling this setting only once every 24 hours. After toggling User Privacy "On", a process will begin to anonymize all of the aforementioned data. The entire process can take some time to complete and once started, can not be stopped. You will receive a notification on this website letting you know when you have been successfully anonymized.
By anonymizing your data, Statbot may not be able to accurately determine your activity in a server when executing services like Smart Prune and Statroles. Anonymizing your data may result in decreased user experience. If you understand and wish to continue...
Technical Stuff
Shard
Without going into the complicated details, Discord has large bots connect to it over many connections so that it can split events between them. All of a bot's servers (like the one you've added Statbot to) are divided amongst these connections. A Shard refers to one of these connections. Typically, a Shard for Statbot will have 1,000 or so servers on it.
This is useful to know because sometimes parts of Discord's API or the bot may go offline, but that doesn't necessarily mean that the entire bot is down.
Sometimes Discord's API goes offline and is inaccessible. When this happens, bots may be unable to function properly until the issues are resolved on Discord's side. These "API outages" will often be felt by users as well. If the Statbot team detects an outage, an announcement will be made in the support server.