This section lists all of the default modules provided by cop. If you feel like creating your own, check out the Develop section!
This module gives certain roles to new users as soon as they join. Useful if you want to be annoying and spam-ping your poor, poor members with announcements they don't care about. Or, if you want to give them pretty colors. Whatever floats your boat.
- The list of role (IDs) to give. You can specify an array/list of IDs if you're using cop in a single server, or a map/object mapping server IDs to their autorole IDs. For example:
roles: ["720990739961741364", "707403823920054333"] # role IDs
# or
roles:
690908396404080650: # server ID
- "720990739961741364" # role ID
- "707403823920054333" # role ID- Type:
array<string>orobject<string, array<string>> - Default:
none
This module filters the exaggerated usage of emojis (or any usage, if you're into that). It detects both default (Unicode) and custom (Discord) emojis.
- The maximum number of emojis there can be in a message before it is considered 'spam' (yes, it can be
0). - Type:
number(max.2000) - Default:
12
- Whether to delete the message.
- Type:
boolean - Default:
yes
- The punishment to execute on the user.
- Type:
Punishment - Default:
none
This module filters empty messages, detecting several blank characters ( , ឵, , \n...), and strategies (like using markdown).
- Whether to delete the message.
- Type:
boolean - Default:
yes
- The punishment to execute on the user.
- Type:
Punishment - Default:
none
This module will filter server invites, detecting several domains (discord.gg, discord.com/invite), including vanity domains (discord.io, discord.me, discord.li...).
- Whether to check the invites and make sure they are valid before acting upon them.
- Type:
boolean - Default:
yes
- Used in conjunction with
validate. The maximum number of invites there can be in a message before stopping validation (and counting the invites as valid either way). Useful if you don't want spammers to post 50 invites per message and get you banned from Discord's API. - Type:
number - Default:
Infinity(no limit)
- Whether to delete the message.
- Type:
boolean - Default:
yes
- The punishment to execute on the user.
- Type:
Punishment - Default:
none
This module filters links. Nothing more and nothing less.
- Whether to delete the message.
- Type:
boolean - Default:
yes
- The punishment to execute on the user.
- Type:
Punishment - Default:
none
This module filters usernames or nicknames starting with characters for the purpose of appearing at the top of member or VC lists (ie, hoisting), such as !, ., etc.
- How to unhoist nicknames. If
replace, the hoisting characters will be replaced with similar-looking characters that do not hoist (eg,! name→ⵑ name). Ifremove, the hoisting characters will be removed (eg,! name→name). Ifprefix, the nicknames will be prefixed with an invisible character (eg,! name→឵! name), which will move the member to the bottom of the list. - Type:
replaceorremoveorprefix - Default:
replace
- The punishment to execute on the user.
- Type:
Punishment - Default:
none
This module filters text walls; messages that occupy big portions of other users' screens when shared (what a fancy description!). It does not yet have a way to control the length (or width) the lines span, but the number of lines (or height) should be enough of a measurement.
- The maximum number of lines in a message before it is considered a text wall.
- Type:
number(max.2000) - Default:
12
- Whether to delete the message.
- Type:
boolean - Default:
yes
- The punishment to execute on the user.
- Type:
Punishment - Default:
none