Shodan is a Discord bot written by Michael Pelletier and Tori for the SpeakEasy Discord Server. This page documents Shodan's many uses.

Commands

Rolling Dice

Command:

/roll dice: 4d6+2 comment: Perception check

Parameters:

  • dice is what you are rolling for dice. Shodan uses dice roller under the hood, so anything listed there should work.
  • comment (optional) allows you to specify what you are rolling for.

Output

Notes & Interaction

If you specify a comment, it'll be displayed as part of your roll. You can also DM Shodan to roll dice if you need them to be hidden for some reason. To do that, the syntax is slightly different because slash commands like /roll are only available on servers. Instead, you use !roll. Because this does not have parameters, you specify the reason for the dice roll with a hash.

Posting Games

Command:

/rpg title: Mouse Guard description: While on patrol, you and your companions receive urgent news from Lockhaven. Important Mouse Guard business requires you to immediately set out for a distant settlement to discover why it has gone silent. Will you answer the call? system: Mouse guard 2 sessions: ~3 players: 3 availability: April image: urltoimage.png

Parameters:

  • title is the name of the RPG.
  • description of the game itself or the adventure you're looking to run.
  • sessions is how many sessions the game is expected to be. Eg: one shot, 3-5 sessions, 5+
  • players is how many players you'll run for. Typically somewhere between 3 and 5 but some games may have exceptions.
  • system (optional) is what system the RPG uses (eg: 5e, PBTA, etc)
  • image (optional) is a link to an image to feature
  • link (optional) is where the rpg can be purchased / read about (eg: its drivethrurpg or itch.io page)
  • availability (optional) is when you're around to run it. Eg: Thursdays in April. Defaults to "TBD with players")
  • notes (optional) is any other notes.

Output

Notes & Interaction

When the message is posted, there will be two buttons at the bottom for players to express whether they are Interested or to remove their interest. When someone clicks to express interest, the message itself will update, displaying a list of all of the members who have expressed interest.

Scheduling

Command:

/schedule weeks: 2 startdate: 2022-02-20 exclude: 21,22,25,26,28

Parameters:

  • weeks is how many weeks to display. this can be 1, 2, or 3.
  • date is the start date. This must be a Sunday and it must be formatted as YYYY-MM-DD. If it is not, an error will be thrown.
  • exclude are any dates that should not show up as options, typically because the organizer is not available. This is a comma separated list of dates the ignore.

Output

Notes & Interaction

When the message is posted, a calendar will render with date options (excluding those that were excluded). The buttons below will display as Blue on Sundays just to differentiate a new week. Weeks have 7 days and rows of Discord buttons cap at 5 days, so each new line is not a new week, as nice as that would be.

When people click the buttons to express interest, the message itself will update. Clicking the button when you don't already have a date added will do so, clicking it again will remove it.

It also breaks down into "Best Date", which is based in part on the number of responses. The top tier "Best" is a date that works for everyone who responded. It then also will show a second best date, which is everyone - 1.

If there are at least 5 people who have responded, it will also give a third best date of everyone - 2. This last option is because you might be planning to run two groups and you're gonna split them up based on availability.

Reporting

Command:

/report reason: Violating the code of conduct

Parameters:

  • reason (optional) is to call out what you are reporting

Output

Notes & Interaction

When you file a report, it won't be seen by anyone that you did so. Shodan will immediately alert the Admin team that a report has been filed along with your reason for filing, so that we can investigate.

Other Features

These are either commands that Shodan runs automatically or are only triggered by Admins at specific times.

Roles

Description

Shodan also has the ability to post a list of roles. When a user clicks one of the buttons, they are automatically granted the role. We use this to make our channels "opt in" rather than overloading users (especially given the nature of some of our channels).

Output

Code of Conduct

Description

Shodan also has the ability to post the Code of Conduct.

Output

Welcome

Description

Shodan welcomes new members with a brief intro as to what the server is as well as next steps.

Output

Language

Description

Similar to Reporting, Shodan automatically checks all messages sent on the server for bad language. She checks this against a database on Airtable and alerts the Admin team to any violations. Because Shodan lacks context, there are no actions automatically taken - it is always on an Admin to review. Also, fun fact: Michael / Yorick sets this alert off more than literally everyone else combined.

Output

Member Activity

Description

Shodan can run a report to evaluate how active members are. This can only check the 50 most recent messages in each channel, and does not account for emoji reactions, which means it is not necessarily accurate. But it does give us a sense of how many of our members are active within the last day, week, month, three months, six months, or other. We use this to evaluate the "health" of the server.

Output

Random Question

Description

Shodan is equipped with about 190 random questions and can ask them randomly to encourage discussion on various different topics.

Output

Reminders

Description

Shodan is set up with Cron jobs to be able to post things on a regular basis. We use this to automatically run the Member Activity check on the first of every month, to automatically run the Random Question on Mondays at noon, to automatically run a "Tell us something good about your week" prompt on Fridays at noon, and to remind us about Morning Coffee Chats on Wednesdays and Fridays at 8am.

Output