Sweetie Bot
Sweetie Bot was an administration bot for Discord servers which is now deprecated. Legacy support is available through Patreon.
Setup
Upon being added to a server, Sweetie Bot will begin with all commands and modules disabled. Only users with admin rights can setup a server. Sweetie Bot will send the owner of the server a PM when she is first added with instructions on how to run the !setup
command. In case you missed it, !setup
takes the following parameters, in order:
Mod Role
should be set to a role shared by all moderators. It is used to alert moderators and also allows the moderators to bypass command restrictions imposed by certain modules. Sensitive commands will be restricted so only users with the moderator role can use them, but as the server owner, you will ALWAYS be able to run any command, no matter what.Mod Channel
should be set to whatever channel the moderators would like to recieve notifications on, such as potential raids, spammers being silenced, etc. Usually, this is your private moderation channel, but you can make it whatever channel you want. Just make sure you use the format `#channel`, and ensure the bot actually has permission to post messages on the channel.Log Channel
(optional) should be set to a channel that recieves log messages about errors and initialization. Usually this channel is only visible to the bot and the moderators. Usually, this is only visible to server admins and the bot. Ensure the bot has permission to post messages on the log channel, or you won't get any output. Providing a log channel is highly recommended, because it's often the bot's last resort for notifying you about potential errorsMember Role
(optional) if you already have a role that you've assigned to all members, specify it here. Otherwise, if this argument is omitted, Sweetie Bot will generate a new "Member" role and add everyone on the server to it, then disable all permissions on the everyone role. This ensures that if a massive raid happens, the new users won't have the ability to speak, even if the bot is overwhelmed or nonfunctional.
For example: !setup @Mods #staff-lounge #bot-log @Member
!setup
will automatically restrict all sensitive commands to modrole
and enable a default set of modules. Running the setup twice will delete everything and reset all configuration values. Specify an additional OVERRIDE
parameter if this is your intent.
After you've completed the basic setup, there are some additional features you can enable. For additional help, type !help
for a list of commands and modules, or !getconfig
with no arguments for a list of configuration options. Using !help
will display detailed help for that module and all its commands. Using !getconfig <group>
will display detailed help for all the configuration options in that configuration group. See below for details on how to use !setconfig
.
Bucket
If you'd like to enable the bucket, use the command!enable Bucket
. It defaults to carrying a maximum of 10 items, but you can change this via theBucket.MaxItems
option.Bored Module
If you'd like the bot to perform actions when the chat in a certain channel hasn't been active for a period of time, use!enable bored
followed by!setconfig modules.channels bored #yourchannel
, where#yourchannel
is your general chat channel. The commands picked from are stored inbored.commands
. By default, it will quote someone or attempt to throw an item out of the bucket.Free Channels
If you like, you can designate a channel to be free from command restrictions, so people can spam silly bot commands to their hearts content. If you had a channel called#bot
for this, you can disable all command restrictions by using the command!setconfig basic.freechannels #bot
Spam Zones
If you really want to, you can exclude one or more channels from all spam protection, using this command:!setconfig modules.channels spam ! #channel1 #channel2
Configuration
Basic configuration parameters can be set with !setconfig <parameter name> <value>
. To get a list of configuration parameters, use !getconfig
. To output the current value of a parameter, use !getconfig <paramater name>
.
Common Scenarios
Changing the prefix: !setconfig commandprefix [prefix]
Make the anti-spam module ignore #channelname
: !setconfig modules.channels spam ! #channelname
Make birthday announcements show up in #channelname
: !setconfig modules.channels scheduler #channelname
Change the channel the bored module activates on: !setconfig modules.channels bored #yourchannel
Sweetiebot is silencing everyone?! You messed up the spam module configuration. Either run !setup
again to wipe your settings, or reset all her spam module values to the defaults listed here.
Prevent Sweetiebot from saying "That's an invalid command": !setconfig IgnoreInvalidCommands true
Set the bored command list: !setconfig bored.commands "!command1" "!command2 arg"
Set up a basic word filter: Check the help page for the filter module.
Advanced Configuration
Certain configuration parameters are more complex. They can either be maps, lists, or maps of lists. This type information is listed when using !getconfig
. Parameters that are lists simply take multiple values instead of one. Setting a list parameter to a set of values will replace the current list of values. In list parameters, all values must use quotes if they have spaces in them.
!setconfig <list parameter> <value 1> <value 2> <value 3> <etc...> !setconfig bored.commands !drop "!pick cute"
You may pass no values to a list, which will simply set the list to nothing:
!setconfig bored.commands
Maps are a set of key-value pairs. Unlike lists, each invocation of !setconfig
will set just a single key-value pair and won't affect any others. If a key already exists, the value of that key will be overwritten.
!setconfig <map parameter> <key> <value> !setconfig basic.aliases listbucket list
If no value is given, the key will be deleted:
!setconfig basic.aliases listbucket
Maps of lists match keys to entire lists of values instead of just one value. The syntax is similar to setting a single map value:
!setconfig <maplist parameter> <key> <value 1> <value 2> <value 3> <etc...> !setconfig modules.commandchannels roll #channel1 #channel2
To delete a value, simply provide only the key and no values:
!setconfig modules.commandchannels roll
Some maplists are whitelists of channels or roles. To change them into a blacklist, add !
anywhere in the maplist:
!setconfig modules.commandchannels roll ! #excludedchannel1 #excludedchannel2