Skip to content

Instantly share code, notes, and snippets.

Last active February 25, 2023 20:50
What would you like to do?
Kitchen Sink Feature List

Feature List (not a command list)

Looking for the Roleban Docs?

Looking for the Reaction Role setup menu?

Kitchen Sink is a decent bot with many useful features, such as


Adds the . prefix for the server.


Automatically dehoists users with the following characters at the start of their display name: !"#$%&'()*+,-./

The characters detected can be changed on request.



Deletes star reactions people put on their own message. If the message has not been self-starred before, a message is sent confirming that the self-star was prevented. Stars from said message are also deleted.

You can also optionally choose a custom star emote (only one), and a list of whitelisted channels this will work in.

Requirements: MANAGE_MESSAGES, custom_star_emote (optional), star_channel_whitelist (optional)


Allows the staff command to be customised with specific roles and role groups.

If you just want the staff command to list your mods, it should already work as-is.

Requirements: staff_list_name, staff_role or staff_lists and a staff_argument_map ok you have no idea what I'm talking about why did I bother mentioning any of this.


Reports valid invites leading to another guild posted with info about the destination guild to mod_channel.

Requirements: mod_channel access


Allows staff to call snipe to repost the last quick-delete/edit in the channel. A less forceful version of the above.

Requirements: VIEW_AUDIT_LOG, staff_role


Unlocks snipe for all users.

Requirements: None


Automatically grant roles to members after they have been on the server for a specific amount of time.

The role will be applied when the member sends a message for the first time after exceeding the time threshold.

Requirements: MANAGE_ROLES, role_timegates (A list of seconds, role id tuples)


Detects when users join a voice channel, and edits their permissions to allow them into a specified text channel.

If a staff member joins or leaves the voice channel, the channel limit (if any) is offset to allow other users to join past the regular limit, effectively making staff members not take up a slot.

If the corresponding text channel is set to prevent everyone from viewing its contents by default, all contents of the channel are wiped when the voice channel is vacated.

An optional role can be specified to "block" specific users from getting added to the channel.

Requirements: MANAGE_CHANNELS, MANAGE_MESSAGES, voice_blacklist if used, voice_to_text, access to all channels involved


If you distrust uptime like I do, permissions can be proxied off to roles instead of direct channel permissions, with a role per voice channel.

Requirements: voice_channel enabled, MANAGE_ROLES, voice_to_roles


This will override the channel wipe behavior and will instead only wipe the channel if the (text) channel ID is in the voice_channel_purge list.

Requirements: voice_channel enabled, voice_channel_purge


Deletes any messages sent (or edited) if it contains Discord's spoiler tags. Also deletes spoilered attachments. Only affects channels in the voice_channel_purge list.

Users with manage messages are immune.

Requirements: MANAGE_MESSAGES, spoiler_banned_channels


Sends how many times the eyes emoji is used to eye_tracking_channel with who used it how many times and where (ignoring eye_tracking_channel).

Why does this even exist.

Requirements: eye_tracking_channel and access to it.


Disables the reaction translate feature.

Requirements: None.


Disables snowball.

Requirements: None.


Disables posting a preview of the linked message when a user links it.


Changes the color of a role named COTD (or the custom_cotd_name) into a different one daily (at midnight UTC). One can use the cotd command to see the current color.

Requirements: MANAGE_ROLES, custom_cotd_name (if used)


Automatically deletes messages without attachments or URLs in specified channels. People with staff_role are immune.

Requirements: gallery_channels


You do not recognize the bodies in the water.

Requirements: ███████, █████████


Log member joins, leaves, and name changes.

Requirements: server_log_channel

Deprecated features

These features have been deprecated. Existing guilds can keep this feature active, but it will not be added to any new guilds.


Raid mode notifies mod_channel if a user joins if any of the following are met:

  • Raid mode is enabled (Toggled with the raid command, or on and off as arguments to force a specific state)
  • Account is younger than 2 days
  • User was immediately rolestated with a roleban upon joining

The notification will include which invite the user joined with (An invite of Unknown is likely the guild's Vanity URL).

The invites [amount=5] [offset=0] command will post cached invite uses.

In addition, raid mode also notifies mod_channel if a user is banned, with who did the ban and with what reason. All invites created by the banned user are revoked.

Requirements: MANAGE_GUILD, VIEW_AUDIT_LOG, mod_channel access, staff_role


Reposts a message if it was deleted too quickly.

How fast this is is (optionally) defined in delete_interval.

The message is not reposted if any if the following conditions are met:

  • The message was posted by a bot
  • Another user deleted the message
  • The messages were automatically deleted following a ban of the user
  • The messages were deleted in bulk by a bot

Invite links in the reposted message are redacted.

Channels can be added to a whitelist/blacklist with delete_police_whitelist and delete_police_blacklist.

Requirements: VIEW_AUDIT_LOG, delete_interval; delete_police_whitelist; delete_police_blacklist if definition is required.


Reposts a message if it was edited too heavily and quickly.

How fast this is is (optionally) defined in delete_interval.

The message is reposted if all the following conditions are met:

  • The edited message is shorter than the unedited message (ignoring counting mentions, emotes and whitespaces)
  • The edit has a Levenshtein distance of at least 10.
  • The message was not sent by a bot

Channels can be added to a whitelist/blacklist with delete_police_whitelist and delete_police_blacklist.

Requirements: delete_interval; delete_police_whitelist; delete_police_blacklist if definition is required.


This makes delete police ignore messages deleted with invites. This should be used if the server already has invite surveillance, such as Vortex.

Requirements: delete_police enabled.


When enabled, if the archive command is used in the roleban channel, the archive of the chat will be uploaded to Google Drive, with the link to the log posted to mod_channel. If used outside roleban channel, the Google Drive archive folder will be searched given the argument as search parameters.

Kitchen Sink's email is, to be added to the archive folder.

Requirements: mod_channel access, staff_role, archive_folder, archive folder access


This feature allows staff to add warnings to users on a Google Drive Spreadsheet with the warnings command.

warnings help will display documentation for this command.

If warning_expiry is defined, warnings will be marked as expired when its age exceeds the defined number of days.

A warning with its comment containing the infinity symbol () will be marked as permanent, while comments containing the empty set symbol () will be set as null.

Using this command without arguments will display the last 5 warnings if used by Staff, or the user's own warnings otherwise.

Requirements: staff_role, warning_sheet, warning_expiry (if applicable, defined in number of days), warning sheet access


This feature enables the pingmod command, which when used by a user, pings the first online mod in a predetermined priority list, with any extra arguments specified.

If the mod responds by kicking, banning, muting or rolebanning a user within the cooldown period, a confirmation message will be posted to the channel.

Requirements: VIEW_AUDIT_LOG, staff_role, priority, mute_roles if any

Copy link

Ensign0 commented Dec 16, 2021

This is my type of explanation.

Copy link

@Ensign0 Same but for mine, each sentence in different languages

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment