The OSD Staff Handbook #
Welcome to Staffing on the Officially Official OneShot DiscordTM (Copyright 2016 /s). This handbook will give you everything you need to know about moderating the place and keeping it nice and clean, whether you’re brand new or just checking in.
New Staff, Start Here! #
If you’re brand new to the Staff team, you’ll need to do this first. DM either @renavi or any previously active Staff member and ask for your email address to be added to the OneShot Google Drive folder. You’ll need to use it in the event that coordination is needed, or just to view a previous log from basement.
Keep in mind that you’ll have access to this Staff drive even if you choose to take a break with Ex-Staff. You will only lose access to this drive if you are demoted.
Once you have that done, consider making yourself a personal role (at the bottom of the role list, with the others), then continue on for the rest of this!
Staff Guidelines #
First and foremost, here are some guidelines that all Staff are expected to uphold while Staffing.
- Be respectful to the users. You may be in a position of power, but you are still a member of the community, and should engage with the community as such.
- Take breaks, but don’t go missing. Everyone needs breaks sometimes, however things can get a bit confusing if there are one or more members of the Staff team who are part of the team, but don’t show up. If you need an extended break, please use
pls modtoggle. - Don’t drown in your moderation responsibilities. Remember, you’re a Staff member! Feel free to contribute in
#towerfor ways to improve the server, concerns about user behavior, etcetera. Users might get scared of a Staff member that only deals with moderation! - Work with the team, but use your judgment. There are times in which you might have to handle a situation entirely by yourself. In that case, use your best judgment when handling the situation. You can also ping
@Staffin#toweras well, if you need help! And if you know of a previous example, use that! If you’re working with other Staff in handling a situation, try not to dominate the conversation! Remember that you’re working as a team.
A High Level Overview #
With that out of the way, how do you moderate? Well, take an example user who breaks the rules. Depending on severity, there are several different courses of action, each more harsh than the last.
- Verbal warning. You can verbally tell them off, if the infraction is relatively minor. If it’s light enough, you could do so in public, but if you need to take it somewhere private, you’ll need to go to the next course of action.
- Basement toss. Using
pls toss(preferably in#old-factoryto avoid causing the chat to ramp up in intensity, though you can do so in public if you need to set an example) will send a user to the basement. More details later, but you can use the basement to have a Staff-on-one conversation between you and the user, away from the public chats. This is very useful, do not be afraid to use it! - Formal warning. Given with
pls warn, use this if an offense is severe enough to warrant it. This will log a formal warning to the user in@Dishwasher, and more on that is later. Do not give out warnings for no reason! - Ban. If the user isn’t cooperative, or they have reached the warning limit, ban them! In most cases, they will not learn from their mistakes by this point, but you are advised to send the ban appeal their way regardless (Dishwasher will automatically forward it when using
pls ban).
The Tools You’ll Use #
Here are general overviews for the moderation bots that you’ll need to know about.
Shokki Araiki / Dishwasher #
Dishwasher is the OneShot Discord’s main moderation bot, coded by @renavi. You’ll be using it to warn, toss, kick, ban, manage ban logs, archive basement sessions, and more. You are advised (and expected) to get familiar with it! This handbook covers the commands you’ll need to do your part for the Staff team, but more commands are available on its documentation.
As @renavi is the one managing this bot, please ping her should you encounter a bug with it.
Robohex #
Robohex is our ModMail bot. Youll see the tickets come up in 📫 Console Input when someone opens a ModMail. More information on this later.
Watcher #
Watcher handles the slowmode for the public chats. All you’ll need to know with Watcher is that you can use /settings to view a channel’s sensitivity settings, and /set sensitivity to set the sensitivity.
How To: #
Here are detailed explanations for how each component of Staffing works. You’ll quickly get accustomed to it.
Toss #
When tossing a user (or, users), it is heavily advised to do so away from the public chats, to prevent any boiling over. Think of the “ooh, someone’s in trouble!” thing, that’s rather hard to quell. It’s recommended to perform tosses in #old-factory.
To perform a toss, you’ll need to either mention a user, or use their IDs. IDs are much preferred, and you’ll need Developer Mode enabled for them. Settings > Advanced > Developer Mode. You can also use usernames, if that is easier for you.
Once you have their name, mention, or ID, simply use pls toss USER. If you are tossing multiple users, separate them with spaces, such as pls toss USER1 USER2.
When tossing a user, @Dishwasher will create a new “session” for you, in 🚷 Lower Tower, with a max of four sessions open at a time. The tossed user (or users) will be pinged, and given a timer to respond. When they do, or when the timer expires, you will be pinged.
Depending on the user, you’ll take your next courses of action in the session channel. If they are uncooperative, they likely aren’t a good fit for the server. Use your best judgement here.
If you need to add more users to the session, simply use pls toss again within the session channel, and they will be added.
When you’re done (and you haven’t kicked or banned them), you can use pls untoss USER to untoss the user and return them to the public chats. If you run pls untoss by itself, it will untoss every user.
Once you’ve done that, you’ll need to close the channel. To do this, simply run pls close, and the channel will be closed and deleted for you.
In the event that the bot complains about nobody being in the toss cache, run pls archive USER, and delete the channel manually.
Warn, Note, and Log #
You’ll want to keep tabs on users, but you can’t know everything. That’s why @Dishwasher has a simple log system.
To warn a user, run pls warn USER Your Reason Here. Preferably do this with the user, during a basement session, so they are aware of why they are being warned.
To view a user’s logs, run pls logs USER. This will tell you each occasion in which they have been tossed, warned, kicked, and banned, as well as any notes that they may have.
To view a user’s notes, run pls notes USER. To add a note to a user (you do not have to do this in front of them), run pls note USER.
You are advised to check the warning system in the server rules, such that you may know when it is necessary to ban a user.
Ban #
Dishwasher has many different commands to ban a user. Here’s a quick rundown of them:
pls banwill ban a user, DMing them that they are banned, a reason for their ban if provided, and a link to the appeal form. For example,pls ban kitchensink Terrible bot..pls unbanwill unban a user.pls sbanwill ban a user without DMing them anything.pls massbanwill ban a list of users, separated by spaces. The bot will not convert newlines.
Raids #
In the event of a raid, do not panic! Ping @Staff in #tower to notify everyone, and use pls raidmode on to enable @Dishwasher’s raid mode, posting every new user to #tower.
Once done, do your best alongside the other Staff members to ban every user involved in the raid as immediately as you can. Do not worry about proper procedure when handling raids, focus on stemming the tide as soon as you can! Take advantage of other Dishwasher commands, such as pls lock in the event that they are spamming public chats, and pls massban to ban many at the same time.
Be careful not to confuse regular users with raiders! During a raid, many users will pop into the chat wondering what’s going on. Use pls lock to your advantage here. You may also have to remind users to not pop in and ask what’s going on during a raid, as that will lead to more confusion.
Do your best in this scenario!
ModMail #
To handle modmails, you’ll need to be familar with @Robohex’s commands.
When a user uses ModMail, they are DMing the bot, which in turn posts their messages into the channel the bot makes. Channels have unique names as to not identify any users by API leaks.
Here’s a brief overview of Robohex commands that you can use in a thread.
>rwill reply, sending a message back to the user.>arwill do as the above, but anonymously.>closewill close the thread. Adding-swill do so silently, without notifying the user. Adding a time (such as 30m, 30s, 30h, etc.) will delay a close to a specified delay.>alertwill alert you to the next post from the user.>editwith the number of the message provided by@Robohexwill allow you to edit a message.>deletewith the number of the message provided by@Robohexwill allow you to delete a message.>logswith an ID will show you previous modmail logs with the user.>blockwith an ID will block a user from using the bot. Adding a time (as in close) will prevent them from using the bot for a specified time.>unblockreverses the above.>is_blockedwith an ID will check if a user is blocked.>newthreadwith an ID will start a new thread with a user.
People may use modmail to apply for various channels. When they do so, you can use specific commands to send boilerplate messages to them. For example:
>>cafewill send a boilerplate message for#cafe.>>barwill send a boilerplate message for#bar.>>bothwill send a boilerplate message for#cafeand#bar.>>devwill send a boilerplate message for the Mod Developer role, which enables posting in#terminal-data.>>raidwill send a boilerplate response for a user reporting a raid.
For the mails requesing entry into a channel, make sure they confirm that they have read the rules, and then ping @Staff with a yes or no reaction vote. When the majority of Staff have voted (visible with pls staff), respond with the outcome.
Appeals #
When a user appeals a ban, it’ll be sent to the #banana-peals channel. If @Dishwasher is working correctly, a poll and thread will be made for you. Simply vote on each poll, and offer your opinions on each user in their threads.
If an appeal goes through, unban the user with pls unban, and notify them, whether through Discord or Email. The Staff Email is available in #tower pins.
Ban Log #
When a user gets banned, unbanned, or kicked, a new case will be made in #safety-violations. If you are the one to ban, you are expected to provide a reason for your ban if you haven’t already, for public logs. You can add a reason by using pls reason CASEID Reason Here.
In some scenarios, you might have to reason multiple cases, in the event of multiple bans. In that case, you can use the two case IDs, separated by either - or ... For example, pls reason 5000..5010 Trolls.. If you are reasoning for more than 20 users, Dishwasher will warn you that you are doing so. Be careful!
In the event someone has a racist username or display name, or something else wildly offensive that we shouldn’t show in the public ban logs, use pls censor with their case ID. Dishwasher will redact the username by replacing it with a blank space.
If you need to dump user IDs for whatever reason (such as getting a list of raiders), use pls dump caseid..caseid. Any user is allowed to use this command.
Clean Up #
You’ll probably need to clean up a few messes in the public chats sometimes. @Dishwasher has you covered in that regard, and here are a few commands and their uses in order to handle situations.
>pls lockwill lock a chat, preventing users from speaking.>pls unlockwill unlock a chat, enabling speaking once more.>pls purgewill purge the chat. You’ll need to add some modifiers to it, detailed below.>pls slowmodewith a number will set the slowmode. Do not do this in chats managed by Watcher, as it will be overriden.
Purging #
pls purge has numerous modifiers. When using a purge command, you can always apply the following at the end:
- The number of messages you’d like purged.
- The channel you’d like to purge messages in.
For example, pls purge 50 #barrens will purge 50 messages from #barrens.
You may also make purge more specific, by adding a modifier between the number of messages, and the command itself. Here are some modifiers:
bots- This will only purge bots.from- This will purge messages from a certain user. You’ll have to specify the user afterwards. For example,pls purge from @renavi 10 #old-factory.with- This will purge messages with a certain string. If you are using spaces, you must enclose the string in quotes. For example,pls purge with "this is a test" 20 #old-factory.emotes- This will purge messages with emotes.embeds- This will purge messages with embeds, including stickers.reacts- This will clear reactions from messages, but will not delete the messages. Good for reaction spam.