Silk!

A small bot targeted toward smaller servers and providing just the essentials




Vote Votes: 0 Prefix: s! (customizable) Uptime: 97%



Hi. You’re on this page, so you’re probably curious what this bot is, and why you should use it!


If you’re familiar with V2, some things have changed in V3, and we don’t want you to feel alienated by the new changes.

A blog post can be found here; An overview of changes can be found here.


About Silk

Silk! (or just Silk) appears to be general purpose at first glance, and you technically wouldn’t be wrong about that.

However, unlike larger, more ubiquitous bots, it aims toward smaller servers.

Large bots have upwards of hundreds of features these days, a lot of which are completely unnecessary for a large portion of smaller Discord servers that just need something that can be used when someone’s acting up.

Silk is also open source, and does <em>not</em> store any inordinate information about users.

All data collected by Silk is either opt-in or anonymized and used for metrics. A full privacy policy is written here.

If you feel skeptical about it, you’re free to self-host an instance

Why Silk?

Silk aims to provide only what’s necessary and useful for small server owners. Small servers are those with < 1000 total members, excluding bots, and can be managed with a handful of moderators.

While some commands are geared more toward power-users, Silk also aims to be as accessible and easy to use as we can make it within reason. Some commands aren’t possible without some features, but these are few and far apart.

Below is a screenshot of the help screen seen when a normal (non-moderator) user invokes the help command:

For members who have moderation capabilities, the menu is expanded with a new category, but is still rather easy to traverse.

Silk’s help menu also displays information in compact embeds when viewing the help screen for a specific command

Moderation

Moderation is a core focus when it comes ot Silk!, and lots of time is devoted to ensuring that the mdoeration tools exposed by Silk! are both accessible and powerful for server moderators.

An overview of Silk’s moderation tools include the following:

  • Kicks
  • Bans
  • Unbans
  • Mutes (with support for Timeouts)
  • Infraction History
  • Retroactive mute re-application
  • Infraction logging
  • Customizable auto-moderation

Below is a screenshot of the embed Silk uses when logging infractions.

Silk logs more than just infractions, however, and can also detect when messages are edited and deleted. In the case of message deletions, Silk will also preserve attachments sent with the message too.

Message Edit Logging:

Message Delete Logging:


Silk! also integrates into existing infrastructure with minimal effort.

Silk! can re-use existing existing mute roles and logging channels your server may have already set up for another bot, or even prior to using a bot.

If you want to change the channel Silk logs to, simply use config edit log channel #mod-log, for example.

Configuring logging channels is relatively simple.

For example, to log infractions to a mod-log channel: s!config edit logging --infractions -channel #mod-log

Ensure Silk! can send messages and embeds to the channel you select, as at this time Silk will silently fail to log if it cannot send messages to the specified config channel.

Setting a mute role (legacy) is even simpler:

To enable the use of timeouts instead, specify --native true instead.


Silk also comes with anti-phishing capabilties.

With an unprecedented uproar of phishing/scamming, this feature was adopted to help smaller servers stay safe, especially considering that these attacks can propogate rapidly through these guilds.

This is an opt-in feature, and must be configured before it’s used. After that, this process works autonomously in the background.

To enable phishing-detection, use config edit phishing --enabled true.

You will also want to set an action, with config edit phishing --action ban.

Other usable configurable options include kick and mute.

By default, Silk! will attempt to delete these links (assuming the feature is enabled), but in the event that you haven’t granted Silk! permission to manage messages, you can disable this by appending --preserve to the command.

From there, Silk will check if a message contains a link, and then match the link against a growing repository of over nine <em>thousand</em> known phishing and scam domains for Discord, Steam, Roblox, and more.


Not only can Silk! detect phishing <em>links</em>, but Silk can also detect a variety usernames commonly used by compromised accounts, including “Staff Events”, “Discord Message”, and plenty more.

Usernames are first normalized, and then fuzzy-matched, so cirvumvention of this detection is quite difficult.

To enable this feature, edit the config using the following command:

config edit phishing --ban_suspicious_users true

After this you’ll want to reload your configuration for this to take effect immediately, as Silk! caches configurations for 10 minutes for performance reasons.

config reload will immediately refresh the current configuration, and automod should begin to work it’s magic.

When someone with a suspicious username joins, or when an account is comprimised, expect to very quickly see a message like so appear in your mod-log channel (if confgured).

Here’s a video of this happening in realtime, too:


What about normal users?

For normal users, there’s a series of useful functions, the best of which probably being reminders.

Reminders in Silk are powerful, with many fallbacks, no matter what the circumstances.

If the slash command version of reminders are used, you will be silently notified via DMs when your reminder expires, with an ephemeral confirmation message.

If you use text-based reminder commands, however, will receive the reminder in the channel you used it in.

Furthermore, if you reply to someone when creating a reminder (not available with slash commands at the moment), Silk will reply to that message when reminding you

It’s not shown here, but in the event that the channel or thread you created a reminder in has gone missing, you will be notified in DMs instead.

Greetings

Silk! Can also greet members with a user-defiend message!

Here’s an exmaple from a real server:

Creating a greeting is as simple as editing the configuration:

config edit greeting add #general join Some super cool welcome message here!

Because of caching, you will likely want to run config reload for these changes to take effect immediately.

If you want Silk! to greet members when they’re granted a role, simply use the following command:

config edit greeting update --on role --role @Verified.

Alternatively, you can pass role and use --role @Example Role when creating the greeting.

Silk! can also subsitute some placeholders in your greeting to give them more flare and a personal feeling.

{s} - Evaluates to the server name {u} - Evaluates to the user’s name {@u} - Evaluates to the user’s mention (a ping, if you will).


There’s a <em>lot</em> to unpack here, but we hope you’ll enjoy using Silk! on your server :)

Semi-occasional blogs happen here and are the second best place to get updates outside of the support server.