Discord Moderation Guide
DisNCord uses a large set of moderation tools, and guidelines to ease the burden of server administration. The intent is to make moderation quick and easy to review, while still being able to handle large scale raids and other server events are handled. At the moment, this document only covers the Discord server, but should probably be expanded in time to cover YouTube, Fediverse, and this wiki.
Workflow
Moderator Permissions
A quick rundown of who can do what is provided.
Volunteers and Active Users
At the moment, volunteers are a click role in #role-select, and there's no tracking for activity on Discord. However, it's been considered allowing these roles access to the warning command due to how activity on the server continues to grow.
Channel/Project Manager
Currently unused, but in the past DisNCord had Project Managers, which were single channel moderators or category moderators. As moderator demand grows, its expected that this will come back.
Half-Ops
To Be Implemented: Half-ops are server moderators who have access to bot commands, but not the Discord built-in moderation commands.
Server Moderator (Resident Madfolks)
Server moderators hold up the rules and standards of DisNCord. They have access to the Discord moderation commands, and can pin and unpin messages as necessary, as well as access to all staff channels. Discord's built in moderation tools are not great for managing large servers, but are necessary for handling Raid Reporting, as handling message pins.
Server Moderators may also delete individual messages from other users. Discord has a audit log, but in general, this should only done if a user refuses to, or after a disciplinary action is taken.
Bot Wrangler
Due to bots have unique sets of permissions, a dedicated bot wrangler role exists. Due to how Discord handles permissions, the Bot Wrangler role has full access to the base moderator commands, but may not be a moderator in and of themselves. This role is currently unused.
Server Administrator
Server Administrators have the Manage Server permission and are the top rank in the Discord, meaning they can add and remove ranks from all others.
Founder/Owner
This is NCommander, since they have the server crown.
Bots
To aid staff, and moderations, as well as improve the general user experience, multiple bots have been added to DisNCord; here's an overview, combined with how they interact with moderation.
YAGPDB.yxz
Yet Another General Purpose Discord Bot or YAGPDB.yxz handles most of the basic moderation tasks on the server, as well as handling stream announcements, incident longing and more.
At the moment, YAGPDB is responsible for the following
- Streaming Announcements
- Fun/Community items such as reputation, customs commands and more
- Warnings
- Flexible Timeouts/Mutes
- Kick/Ban logging, and Notification DMs
- Deleted Message logging
While YAGPDB.yxz does offer a ticket system, its somewhat difficult to use, and requires bot commands, so we're not using it as such.
Tickets
SlashBot
SlashBot handles mostly role selection, and is used in #role-select. It will likely be used in the future for premium configuration options and more. It might be replaced in the future with a simpler bot, or with YAGPDB replacing it.
PluralKit
Actions
Moderators on DisNCord can take various actions in regards to tickets and incidents. Actions, unless noted, should be done through either Tickets or YAGPDB as is necessary.
Note
Sometimes a ticket comes in, or a borderline action is witnessed, that warrants an official comment from a moderator, but doesn't reach the point that an actual warning should be raised.
In these cases, a ticket should be opened by the moderator, and pull in any relevant offending users. If a moderator is acting on another ticket, the reporter should not be pulled in. Exposing a reporter of an issue opens them up to retaliation; a moderator speaking in a ticket is speaking on behalf of the server. Any relevant conversation should be held, and then the moderator should close ticket should be closed with a comment explaining why no action was taken. The log will be saved.
These actions represent "we talked to someone about X", and will essentially be forgotten if the issue doesn't come up again. Moderators may request that a message be deleted in a note.
Warnings
Warnings are when an infraction of the server rules, or a violation of general good conduct occurs such as disruptive behavior. Essentially, its telling a user to stop before a stronger moderator action is taken. Warnings may be given publicly or privately via YAGPDB. In either case, YAGPDB will notify the user by DM that the warning was given.
Warnings are given with the YAGPDB warn command, which is a slash command.
/warn user:<user> reason:<the text that will show up in the warning log>
Full syntax is available on the YAGPDB documentation page.
Warnings exist as an administrative function of the server, they do not have any penalty in and of themselves, but may influence further moderator decisions down the line. This is why warnings have to be documented. It's not uncommon that a user may need to have bad behavior corrected on more than one occasion. Documenting that warnings help the staff to understand where the rules need to be clarified, or be more stringent, as well as allowing for a way to handle disruptive behavior.
Whomever files a warning must file a ticket that they have done so. In the ticket, they should include any relevant details on why they felt a warning was justified such as a chat link, YAGPDB.xyz log, or more. A warning may not necessarily cite a server rule. Citing the Discord TOS, or even a generalized reason such as inciting violence, are acceptable. In extreme cases, a warning may also be created if someone is considered at risk, and is requesting intervention from a senior staff member, or NCommander themselves.
If necessary, moderators can capture a log from the bot on behalf of another user.
Warnings may be appealed by a user by submitting a ticket.
Timeouts/Mutes
Muting a user means removing their ability to talk in all channels. Discord also offers a timeout feature, which does the same thing, but has very limited controls, and doesn't allow for exclusions. Once muted groups are properly setup, Discord's time-out feature should only be used if access to the ticket system needs to be silence (although then a ban may be warranted).
Mutes are given with the YAGPDB warn command, which is a slash command.
Discord has a built-in /timeout command, make sure you use the right one!
/timeout user:<user> reason:<the text that will show up in the warning log> duration:<how long>
Full syntax is available on the YAGPDB documentation page.
Timeouts represent the lowest level of mod action available, and can be for a few minutes to a few days, and essentially allows for someone to break up a conversation, or to drive through that an action is unacceptable in chat. Short duration timeouts (as in a few minutes to an hour) do not need to be justified; moderators are assumed to be responsible enough to use these as is. However, a timeout reason must be given via bot which will be delivered by DM to the user who was timed out, and reported in the #enforcement-action log.
Long duration timeouts (a few hours to a few days) must be documented via a ticket, and a warning should also be applied. As with warnings, the moderator should open a ticket, provide any relevant documentation, and have another mod look it and close it.
Mutes may be appealed. The muted role can still open tickets, and they have visibility on a special channel that shows that they have been muted. Like with warnings, moderators should remember that their ticket with original reasons may be referenced or even forwarded.
Kicks
DisNCord is a public server, so by its notion, kicking doesn't seem like it would accomplish much. However, a server kick removes all rules, and restores the mint "new user" icon that comes with it. It also requires the user go get the invite link again which represents efforts. In time, we may also add active and other ranks that are granted, which would cause a kick to reset.
Kicks should be done YAGPDB kick command, which is a slash command.
Discord (and Slashbot) has a built-in /kick command, make sure you use the right one!
/Kick <User:Mention/ID> [Reason:Text]
Kicking should be used as a last resort to bans. Like warnings and mutes, kicks should be done through the bot and documented the same.
Kicks, by their nature, can't be appealed; you just need to rejoin the server, and any new user filtering such as rules review must be redone. It also resets the join date.
A user may request to be re-added to any lost roles by filing a ticket, to be granted at the discretion of another moderator who wasn't involved with the original decision.
Bans
Bans are the highest level of action a moderator can take, and can extend past Discord and include things like a wiki account, Patreon access or more, depending on severity. Bans are also used as a method to combat raids, and with combined with the Discord security level, provides key tools in keeping the server usable in times of strife and more.
Bans are classified into anti-spam, and as a punishment for rules violations. Bans may be time limited, or may be permamement.
Ban should be done YAGPDB ban command, which is a slash command.
Discord (and Slashbot) has a built-in /ban command, make sure you use the right one!
/ban <User:Mention/ID> <Reason:why was the ban needed> <duration> <ddays: how many messages to delete>
Server moderators may use the Discord ban function if message deletion is needed to combat spam attacks due to it being easier to use than YAGPDB.xyz slash commands. The audit log must be filled out, and a note must be left in enforcement action that it was used.