Open Source
Valkyrja is Open Source Software under highly permissive MIT license, contribution is most welcome.
We also offer a Modmail bot available for self-hosting, and hosted in our infrastructure for our
GitHub or
Patreon Subscribers and Partners.
github.com/ValkyrjaProject Contribution
Any contribution is most welcome. This could be from code, through artwork, proofreading, to testing and reporting bugs. Or even suggesting new features or improvements!
Disclaimer
We recommend that the server owners link to, or copy and modify, this disclaimer about how they use the user data for moderation: http://radka.dev/disclaimer
Key Features
These are some features that are not fully covered by simple commands:
- Encrypted Database containing notes about users, all known usernames and nicknames, with good search based on keyword, userid or mention.
- Powerful permission system using which you can tweak every command to your liking. Change who can execut commands, in which channels, create aliases, or even set commands to self-destruct in the chat.
- Customizable Localisation - you can change messages that Valkyrja sends in response to commands or events. You can even use random responses.
- Custom commands that can send messages or very complex embeds in the chat, or via PM to the user, or people mentioned. With optional permission to ping roles as well. The above mentioned permission system and all the tweaks apply to these as well. Using this combination you can create a custom command with which only select people can mention certain roles!
- Force people to read the rules with the hidden code verification system, where the bot will send a user the rules, with hidden code, which they have to find and send back to get a member role assigned. If that's not your cup of beverage, you're welcome to many other forms of verification.
- Collect statistics about how many people joined, got kicked out by antispam, or passed verification.
- All the typical administration and moderation tools are available and highly customizable.
- Did you like temporary channels on TeamSpeak? No problem, we've got you. (
!tmp
) - Last but not least, we put a lot of emphasis on security. No server has access to any data from any other server, and no sensitive data is available to public. All the data stored on our servers is encrypted while only one person in the world has access to this server. Authors are also part of this trust - both the bot developer and the web developer are Red Hat engineers with decent amount of experience working in their respective fields.
Command permissions
This documentation contains a list of commands, permissions who can use those, and short description. Permissions are configured via the configuration, and the hierarchy is as follows: ServerOwner > Admin > Moderator > SubModerator > Member > Everyone
where for example Admin can use everything that is marked as Admin, Moderator, or Everyone, but can not use commands marked as ServerOwner.
ServerOwner
stands for either server owner, or someone with the ManageServer
and Administrator
permissions, and Admin
, Moderator
, SubModerator
and Member
roles have to be configured.
These permissions can be overriden for each command separately using the !permissions
command and commands can also be blocked from specific channels, or allowed to be used in specific channels.
Commands ~ Basic
help
Description | Display a list of commands. |
Parameters | Use without parameters to get the list, or use it with regex parameter to search for specific commands. |
Permissions | Everyone |
man
Description | Print a detailed manual page (embed) for a specific command. |
Parameters | CommandId - Name of the command. |
Permissions | Everyone |
patchnotes
Description | Display some info about latest updates to the project. |
Parameters | None |
Permissions | Everyone |
Commands ~ Admin
cheatsheet
Description | Send an embed cheatsheet with various moderation commands and pin it. |
Parameters | None |
Permissions | Admin |
embed
Description | Build an embed. |
Parameters | Use without arguments for help. |
Permissions | Admin |
addEmoji
Description | Add an emoji reaction to a message. |
Parameters | <messageId> <emojis> - ID of the message (in the current channel); and Emojis that will be added as a reaction. |
Permissions | Admin |
stats
Description | Display join/verification stats. |
Parameters | >from< [to] dates (mandatory from/since optional to ) |
Permissions | Admin |
createRole
Description | Create a new role with no permissions and return its id . |
Parameters | name of the role. |
Permissions | Admin |
createRoles
Description | Create roles with specified names. |
Parameters | List of whitespace delimited names , use quotes to use spaces. |
Permissions | Admin |
createPublicRoles
Description | Create public roles with specified names. |
Parameters | The first argument will be used as a name for the new role group , followed by a list of whitespace delimited names , use quotes to use spaces. |
Permissions | Admin |
createColourRoles
Description | Create 9 roles with various colours, you can find emoji representations of these colours in Valhalla - the Valkyrja support server. Use case - reaction assigned colour roles |
Parameters | None |
Permissions | Admin |
createTempRole
Description | Create a role with specified name, which will be destroyed after specified time. |
Parameters | name time name of the role and the when to delete it, in number of days or hours from now (e.g. 7d or 12h or 1d12h ) |
Permissions | Admin |
createTempPublicRole
Description | Create a public role with specified name, which will be destroyed after specified time. |
Parameters | name time name of the role and the when to delete it, in number of days or hours from now (e.g. 7d or 12h or 1d12h ) |
Permissions | Admin |
getRole
Description | Get a name, id and colour of a role. |
Parameters | name or id of a role. |
Permissions | Admin |
countWithoutRoles
Description | Count how many users do not have any role. |
Parameters | None |
Permissions | Admin |
kickWithoutRoles
Description | Kick all the users who do not have any role. Know what you're doing! |
Parameters | None |
Permissions | ServerOwner |
prune
Description | Kicks out all the inactive members. |
Parameters | Use the manual page command to see the details. |
Permissions | ServerOwner |
Description | Assign a role to everyone in your server. Please ensure correct permisison hierarchy before using this command. |
Parameters | ID of a role. This does not accept name of the role. |
Permissions | Admin |
demoteEveryone
Description | Remove a role from everyone in your server. Please ensure correct permission hierarchy before using this command. |
Parameters | ID of a role. This does not accept name of the role. |
Permissions | Admin |
alias
Description | Manage command aliases. |
Parameters | Use the command without parameters for more details |
Permissions | Admin |
listPermissions
Description | |
Parameters | None |
Permissions | ServerOwner only! |
permissions
Description | Configure permission groups for every built-in command. Use without parameters for help. |
Parameters | Use the command without parameters for more details |
Permissions | ServerOwner only! |
cmdChannelBlacklist
Description | Block a command from certain channels. (This is mutually exclusive with the whitelist) |
Parameters | CommandID , add or remove , and ChannelID (that long number) |
Permissions | Admin |
cmdChannelWhitelist
Description | Allow a command only in certain channels. (This is mutually exclusive with the blacklist) |
Parameters | CommandID , add or remove , and ChannelID (that long number) |
Permissions | Admin |
cmdResetRestrictions
Description | Reset restrictions placed on a command by the above cmdChannel* commands. |
Parameters | CommandID |
Permissions | Admin |
deleteRequest
Description | Set a command to have the issuing request message deleted automatically. |
Parameters | CommandID and true or false , whether set it to delete or not. |
Permissions | Admin |
deleteReply
Description | Set a command to have the response message automatically deleted in a few seconds. NOTE that only a few commands actually support this feature! |
Parameters | CommandID and true or false , whether set it to delete or not. |
Permissions | Admin |
operations
Description | Display info about all queued or running operations on your server. These are for example nuke or archive . |
Parameters | None |
Permissions | Admin |
cancel
Description | Cancel queued or running operation - use in the same channel. |
Parameters | Name of the command to cancel (nuke, archive, etc...) |
Permissions | Admin |
nuke
Description | Nukes the whole channel (delets all the messages) You can also mention a user to delete all of their messages. (Only within the last two weeks.) |
Parameters | Optional @user mentions or ID's to delete only messages from specific users. |
Permissions | Admin |
membersOf
Description | Display a list of members of a role. |
Parameters | name or id of a role. |
Permissions | Admin |
mentionRole / announce
Description | Mention a role with a message. |
Parameters | name of a role, followed by your message. |
Permissions | Admin |
unverify
Description | Remove verified status from someone. |
Parameters | User mentions or IDs |
Permissions | Admin |
removeStreamPermission / announce
Description | Removes the Go Live permission from all the roles. This is a command to mittigate release of a new enabled-by-default Discord feature. |
Parameters | None. |
Permissions | Admin |
Commands ~ Moderator
op
Description | _op_ yourself to be able to use mute , kick or ban commands. (Only if configured!) |
Parameters | None |
Permissions | Moderator (&SubModerator - will apply to mute only) |
kick
Description | Kick a user out of your server. This requires worded description why did you kick them out - they will receive this message via PM (and it will be added to the system as a warning) Example PM: Hello! I regret to inform you, that you have been **kicked out of the Elite Dangerous server** for the following reason: ......... _(You can rejoin the server in a few minutes.)_ |
Parameters | @user reason where @user = user mention or id; reason = worded description why did you kick them out. |
Permissions | Moderator |
ban
Description | This command can ban a User permanently, or for specific amount of time, and it can do the same with people, who are not on the server yet. (It will ban them as soon as they join.) This requires worded description why did you ban them - they will receive this via PM (and it will be added to the system as a warning) Example PM: Hello! I regret to inform you, that you have been **banned {for x hour(s) /or/ permanently} on the Elite Dangerous server** for the following reason: ......... |
Parameters | @user time reason where @user = user mention or id; time = duration of the ban (e.g. 7d or 12h or 0 for permanent.); reason = worded description why did you ban them. |
Permissions | Moderator |
silentban
Description | The same as ban , but it will not send the reason PM. (Hence silent..) |
Parameters | @user time reason where @user = user mention or id; time = duration of the ban (e.g. 7d or 12h or 0 for permanent.) reason = worded description why did you ban them. |
Permissions | Moderator |
purgeban
Description | The same as ban , but it will also delete their messages in last 24 hours. |
Parameters | @user time reason where @user = user mention or id; time = duration of the ban (e.g. 7d or 12h or 0 for permanent.) reason = worded description why did you ban them. |
Permissions | Moderator |
quickban
Description | Quickly ban someone using pre-configured reason and duration, it also removes their messages. (This command has to be first configured.) |
Parameters | @user user mention or id; You can mention several people at once. |
Permissions | Moderator |
unban
Description | Correctly unban a user. |
Parameters | @user user mention or id |
Permissions | Moderator |
muteChannel
Description | Temporarily mute the current channel. (This may block the moderators as well if they don't have explicitly higher SendMessages permissions than @everyone ) |
Parameters | time - duration of the mute (e.g. `7d` or `12h` or `1h30m` - without spaces.) |
Permissions | Moderator |
unmuteChannel
Description | Unmute previously muted channel. |
Parameters | None |
Permissions | Moderator |
Commands ~ SubModerator
addQuote
Description | Add a new quote! Use with a username or mention as the first parameter, and the text as second. (Or you can just use a message ID.) |
Parameters | messageID or username text |
Permissions | SubModerator |
removeQuote
Description | Remove the last created quote, or specify ID to be removed. |
Parameters | None or ID of a quote |
Permissions | SubModerator |
slow
Description | Enable or disable slowmode in the current channel. |
Parameters | A number specifying message interval in seconds (or use time quantifiers s, m, h or d - e.g. 1m30s ) |
Permissions | SubModerator |
clear
Description | Deletes specified amount of messages (within two weeks.) If you mention someone as well, it will remove only their messages. |
Parameters | <n> [@users] - optional @user mentions or ID's (this parameter(s) has to be last, if specified.) And mandatory n parameter, the count of how many messages to remove. |
Permissions | SubModerator |
clearRegex
Description | Delete only messages that match a regular expression within the last n messages. |
Parameters | <n> <regex> [@users] where you should not use any whitespace in the regular expression, use \s instead. (Note - ignores case.) |
Permissions | SubModerator |
Example | !clear 10 meme @user - removes messages that match regular expression "meme" that were sent by the @user within the last 10 messagews. |
mute
Description | Temporarily mute mentioned members from the text chat. This command has to be configured in the configuration.
|
Parameters | @user time - where @user = user mention(s) or ID(s); time = = duration of the mute (e.g. `7d` or `12h` or `1h30m` - without spaces.) |
Permissions | SubModerator |
unmute
Description | Unmute previously muted members. |
Parameters | @user - user mention(s) or ID(s) |
Permissions | SubModerator |
tempChannel
Description | Creates a temporary voice channel. This channel will be destroyed when it becomes empty, with grace period of three minutes since it's creation. (You can make it public using !permissions or use a !tc alias) |
Parameters | limit name (or just name for unlimited) - Limit how many people can enter, and name of the channel. |
Permissions | SubModerator |
permit
Description | Permit mentioned members to post links and spam, a single message within three minutes will not be removed. (This depends on antispam configuration) |
Parameters | @user mention of a member (or multiple mentions) to permit. |
Permissions | SubModerator |
warnings
Description | Display your own warnings. (Allow everyone to use this command with the permissions command.) |
Parameters | None. |
Permissions | SubModerator |
listWarnedUsers
Description | Display a list of users with more than specific amount of warnings. |
Parameters | n - Threshold above which a user will be added to the output. |
Permissions | SubModerator |
listIDs
Description | Search and display all User IDs on this server that match a username expression. |
Parameters | An expression to use for username search. |
Permissions | SubModerator |
whois
Description | Search for a User on your server (they must be on your server) |
Parameters | @user mention, name or ID. |
Permissions | SubModerator |
find
Description | Find a User in the database. This will search in all known usernames and nicknames (People can change their name, this will search their previous names as well.) |
Parameters | Use with any keywords you like. |
Permissions | SubModerator |
issueWarning
Description | Send a PM to a @user , with a warning message, and note this in the database. |
Parameters | @user warning message ; where @user is a user mention or id and you can add the same warning to multiple people, just mention them all. |
Permissions | SubModerator |
addWarning
Description | Take a note about @user , what have they done this time... (This does not PM the user anything.) |
Parameters | @user warning message ; where @user is a user mention or id and you can add the same warning to multiple people, just mention them all. |
Permissions | SubModerator |
removeWarning
Description | Remove the last created warning. |
Parameters | @user mention or ID (or multiple mentions) |
Permissions | SubModerator |
removeAllWarnings
Description | Remove all the warnings. |
Parameters | @user mention or ID (or multiple mentions) |
Permissions | SubModerator |
lockExp
Description | Locks, or unlocks, someones experience and therefore also activity role assignment. |
Parameters | @user mention or ID (or multiple mentions) |
Permissions | SubModerator |
memberRoles
Description | See what Member Roles can you assign. Set this up in the configuration. |
Parameters | None. |
Permissions | SubModerator |
Description | Assign a Member role to the user. |
Parameters | @user role where @user = user mention(s) or id (will accept multiple mentions at once); and role = the name of a role to assign. |
Permissions | SubModerator |
demote
Description | Remove a Member role from the user. |
Parameters | @user role where @user = user mention(s) or id (will accept multiple mentions at once); and role = the name of a role to remove. |
Permissions | SubModerator |
Commands ~ Everyone
verify
Description | This command will either send verification info to the user, or verify them manually if used by an Admin. |
Parameters | See the config page for more info. |
Permissions | Everyone or Admin |
publicRoles
Description | Display a list of PublicRoles - Roles that anyone can !join or !leave . You can also configure groups of mutually exclusive roles (user can have only one of them) Set this up in the configuration. |
Parameters | None |
Permissions | Everyone |
roleCounts
Description | Display the number of people with every publicRole out of specified group. |
Parameters | Name of the role group. |
Permissions | Everyone |
join
Description | Join one of the PublicRoles. |
Parameters | name of a PublicRole that you wish to join. |
Permissions | Everyone |
leave
Description | Leave one of the PublicRoles. |
Parameters | name of a PublicRole that you wish to leave. |
Permissions | Everyone |
lvl
Description | Displays your current level and how many messages (or images) would it take to reach the next. |
Parameters | None |
Permissions | Everyone |
cookies
Description | How many cookies do you have? |
Parameters | None |
Permissions | Everyone |
nom
Description | Consumes one of your cookies (effectively decreasing your cookie amount by one) |
Parameters | None |
Permissions | Everyone |
give
Description | Give a cookie to your friend (this will effectively decrease the amount of cookies you have by one, and increase theirs.) |
Parameters | @user mention |
Permissions | Everyone |
quote
Description | Get a random quote, or a quote with specific id, oooor search for a quote by a specific user! |
Parameters | None, or a username or mention, or an id of a specific quote. |
Permissions | Everyone |
findQuote
Description | Search for a quote with a message content expression. |
Parameters | Expression to search for |
Permissions | Everyone |
memo
Description | Display your saved memo, or the memo of the mentioned user. (Use-cases: user profiles, hardware, etc... Create an !alias for your use case!) |
Parameters | None, or a username |
Permissions | Everyone |
setMemo
Description | Overwrites previously saved message. This is per-user feature and unique between servers. |
Parameters | None to wipe, otherwise the message to store. |
Permissions | Everyone |
profile
Description | Display your profile. If used with a username or @mention, it will display someone else' profile. |
Parameters | None, or a username |
Permissions | Everyone |
sendProfile
Description | Send your profile to pre-configured #introductions channel. |
Parameters | None |
Permissions | Everyone |
setProfile
Description | Set your profile. (Can be configured.) |
Parameters | Configured, see !setProfile --help |
Permissions | Everyone |
getProfile
Description | Get the source used to set your profile. |
Parameters | None |
Permissions | Everyone |