PolyamGuardian

From Polyamory Wiki
Revision as of 07:40, 17 June 2021 by Captn (talk | contribs) (→‎Trivia and more: Link for KTG)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

PolyamGuardian is a bot created by PolyPirates to protect public polyamory and LGBTQ+ Discord servers. It helps communicate ban lists between servers and distinguishes between ordinary banned users and actual trolls and bots.

How it works[edit]

Most of the information about PolyamGuardian is held simple to avoid exploitation. Generally, it checks incoming Discord users' information against an internal database to determine whether or not the user is on any trusted ban list. The results of this check are reported to a channel of choice, typically a "moderator only" channel. PolyamGuardian also marks users as trolls or bots, depending on the description of the ban or via manual marking. PolyamGuardian can also ban people automatically based on the security level or change the reason for a ban by re-banning.

How to use[edit]

PolyamGuardian is a private bot. Due to the nature of its construction and implementation, it will only be shared after a short application process. In order to gain access, please either join the PolyPirates Discord server, or apply via an email to captain @ polypirat.es.

After joining a server, make sure that the bot has all the necessary permissions:

  • Seeing channels, especially the channel seen by all arriving users.
  • Writing messages, especially channels where bot commands are used and where the bot is expected to report.
  • Banning users, even if the bot is not used for actually banning people. PolyamGuardian will require this permission to access previous bans, regardless if you actually intend to use it to ban users or not.

Make sure that PolyamGuardian's highest role is above the role of any newcomers if you want to use it for actual banning and changing existing ban reasons. There is no need to keep it above the roles of moderators.

First, set the channel for announcing potential threats using pg!channel #announcement-channel and make sure that the bot has permission to write there. This should be a channel exclusive to admins and/or moderators since announcements could contain sensitive information. Secondly, use the pg!authorize command followed by any number of tagged users or roles you want to be mentioned whenever a potential threat is announced.

The prefix pg! can be changed to any text not containing a whitespace that is between one and five characters long, using pg!prefix followed by your new prefix, e.g. pg!prefix ?? changes commands like pg!authorize to ??authorize. After changing the prefix, the pg!help command will still work and tell you how to change the prefix again. This step is entirely optional.

Finally, you need to set the security level using pg!security followed by a number from 0 to 3. The security levels decide how the bot will communicate and act in case of new server members that were noted in one of the bot's other servers. They are explained below, and whenever the pg!security command is used without a level indicator. The default level is 1.

Security levels[edit]

  • Level 0: The bot will only keep track of the ban list but not interact in case of suspicious new members.
  • Level 1: If a user joins the server while banned on another of this bot's servers, the bot will announce where they are banned, for which reasons, and what servers have flagged that user to be a troll or bot.
  • Level 2: In addition to the level 1 behavior, the bot will also ban people who are flagged as trolls right away and add announce that it also banned that user.
  • Level 3: In addition to the level 2 behavior, the bot will also ban everyone who is banned on any of the bot's servers. This level should be used with caution since people are sometimes banned for mundane things that would not be worth banning on another server.

How to handle ban reasons and trolls/bots[edit]

While this bot is on your server, be aware that your ban reasons might be accessed by another server whenever one of your banned users joins another of PolyamGuardian's servers. Therefore you should keep sensitive information out of ban reasons. If you want to change the reason of an already banned user, you can use the pg!reason command.

PolyamGuardian does not distinguish between trolls and bots. When being added to a server or whenever someone new is banned, the reason is searched for the words "troll" and "bot" and flags those users as such. Therefore, be cautious with adding ban reasons like "not a troll, but" or "might be a bot" since those will create false positives. Banned users can also be flagged manually using the pg!troll command.

Flagging is meant to be done with caution, so please only use this feature only when being absolutely sure.

List of commands[edit]

All commands can be used by admins, some can be used by authorized members. The prefix pg! might have been changed for your settings. To see the commands with a changed prefix, pg!help can still be used.

command alias function can be used by authorized users example
pg!amongus pg!sus Checks if there's already someone on the server who is banned or flagged somewhere else. Those users will be announced like in security level 1, but not banned even if the server is set to level 2 or 3. This command is meant to be used rarely since it is very resource-heavy and takes some time. All other commands are deactivated until this process is finished. no
pg!authorize pg!auth Lists all authorized users and roles on this server. no
pg!authorize [@user1 [@user2 ...] [@role1 [@role2 ...]] pg!auth Adds any number of mentioned roles and users to the list of authorized users. Those users will be notified by PolyamGuardian whenever it is triggered and can use some of the commands listed here. no pg!authorize @TheBoss @moderators
pg!channel #channel pg!chan Sets the channel for announcing potential threats to this channel. Make sure that PolyamGuardian has permission to send messages there. no pg!channel #mod-discussions
pg!deauth [@user1 [@user2 ...] [@role1 [@role2 ...]] pg!remove Removes the mentioned users and roles from the list of authorized users. no pg!deauth @Brutus @senate
pg!help none Displays a list of commands, taking into account if a prefix was changed. pg!help will always be available as an alias after changing the prefix. yes
pg!prefix newPref pg!pref Changes the current prefix (by default pg!) to a new prefix that is between one and five characters long and does not contain whitespace. no pg!prefix p/
pg!reason banned_user_id some new reason none Updates the reason for a ban by unbanning and re-banning a user. If the reason for a ban includes "troll" or "bot", the user will be flagged in the process. Since banned users are difficult to mention, the user ID is used instead. IDs can be gathered from the ban list after enabling Discord's developer mode. yes pg!reason 3141592653589793238 put pineapple on pizza
pg!security pg!sec Displays information about security levels. yes
pg!security 0-3 pg!sec Sets the security level to the chosen value. no pg!security 2
pg!serverinfo pg!server Displays the chosen settings for this server. yes
pg!troll user_id pg!bot Flags a banned user for being a troll. Since banned users are difficult to mention, the user ID is used instead. IDs can be gathered from the ban list after enabling Discord's developer mode no pg!troll 3141592653589793238

Trivia and more[edit]

  • Since this project is maintained by PolyPirates, you can support it by supporting this wiki.
  • This project was born from a collaboration between PolyPirates and the Kitchen Table Germany Discord server and started out by manually exchanging ban lists.
  • PolyamGuardian's nickname is Wot.
    • Wot is named after a character from an unreleased web comic, which also served for Wot's avatar.