Commands
All commands must be preceeded by my command prefix: p?
For a summary of available commands, you can use p? help.
Certain commands require special permissions. See configure role for details.
Legend
[...] |
Required arguments are in square brackets |
(...) |
Optional arguments are in regular brackets |
(-...) |
This represents an optional flag. For example, if a command has the syntax p? example (-x) you can call it with p? example or p? example -x for different results |
(-... [...]) |
If square brackets are inside regular brackets that represents a required argument for an optional flag, e.g. (-expires [date]).
|
Note that you cannot change the order of the arguments.
Date format
At several locations in this documentation, a user can provide a date. Almost all date formats are available and many different languages are supported. Relative times are also supported e.g. in 2 days.
The preferred date format is DMY so, for example, the date 1/5/2020 would be interpreted as May 1st 2020 and not January 5th 2020. This can be circumvented by providing the month name instead of its number, e.g. 5 january 2020.
Users can also specify a time zone by adding its abreviation to their date e.g. tomorrow at 23:30 CST
The defualt time zone is always UTC so all times are assumed to be in UTC. The exception to this is if a guild configured their time zone (see configure timezone) and the date is for scheduling an event.
This bot uses the dateparser python library to parse dates.
Here are some valid date examples:
tomorrow at 12:30
5 june at 15:00 CST
in 3 weeks
eftir 5 mín
montag um 8:00
Setup
Once the bot joins your server, It will ask you to run p? setup. This command will create all the necessary channels and roles so that this bot can function normally.
Setup
Usage:
p? setup
This command will attempt to create the channel #events under a new category, events. This channel will automatically be registered as the events channel.
If the bot fails to create the #events channel, it will let you know and you will have to create one manually. Once a suitable channel has been created, you can set it as the events channel with the configure channel command.
This command can be run however many times, for instance if you accidentally remove the events channel, however, it will always create a new category, channel and role so you need to delete the old stuff manually.
You can always manually set the event channel with the configure channel command.
Note
This command can only be executed by the server owner.
Configuration
In this section you can find the commands related to configuring different aspects of the bot such as setting bot role permissions, which channel to use as the events channel and the guild's time zone.
Configure
aliases: config, conf
Usage:
p? configure
When this command is called without a subcommand, it will open up an interactive settings menu.
Note
This command is only available to members with permission to configure roles.
Configure channel
Usage:
p? configure channel [channel type]
This command sets the channel it is executed in to [channel type].
Available channel types are:
events |
The channel with the events message. WARNING! This will erase all messages in the channel the command is executed in! You will be asked to confirm this action. |
friendly |
The channel where the morning recurring event messages are posted. |
Example
p? configure channel friendly
This command would set the channel it was executed in to the friendly type.
Note
This command is only available to members with permission (see configure role for details).
Configure role
Certain commands require special permission. This command is the way to give those permissions to roles on your server.
Usage:
p? configure role [@role]
This command allows you to change the permissions for a certain [@role]. Roles that have the administrator permission already have all permissions for this bot.
Commands that require special permission to use are:
- schedule
- remove
- update
- kick
- soundboard add
- soundboard remove
- configure channel
- configure role
- configure timezone
- notice new
- notice edit
Example
p? configure role @Mod
This would give you the configuration dialogue for the role @Mod.
Note
This command is only available to members with permission (see configure role for details).
Configure timezone
Usage:
p? configure timezone
This command will give you a dialogue to change your guild's time zone.
Note
This command is only available to members with permission (see configure role for details).
Event related commands
The following commands are all related to the events feature. They are the only commands that can be executed within the Events channel.
Schedule
alias: s
Usage:
p? schedule (name) (date & time) (description) (limit) (-noroles)
Starts the scheduling process for a new event.
Note that if any of the optional arguments above are provided, the corresponding step below will be skipped.
The bot will ask you to give a title, date and time, description, optional roles and people limit for your new event. If at any time you want to cancel the scheduling process, type cancel. The process is as follows:
1. Name
First you will be asked to provide a name for the event.
If the (name) optional argument is provided, this step will be skipped.
2. Date & Time
Next you will be asked to give a date and a time for the event. It is important to note that you must specify the date AND time, e.g. June 15th 2020 at 14:00.
Almost all date formats are supported. See date for details. If the date specified includes a weekday, the event will be set as recurring at the same time every week. You can also specify that an event is yet to be dated by entering TBD as the date.
If an event is recurring then instead of removing the event once it starts, the attendant list will simply be cleared.
At 10:00 A.M. on a day with a recurring event the bot will post a little message in the designated friendly channel (see configure channel for details)
If the (date & time) optional argument is provided, this step will be skipped.
3. Description
Third, you will be asked to provide a description for your event.
If the (description) optional argument is provided, this step will be skipped.
4. Roles
After asking you for a description, the bot will ask you to react to a message with emojis to represent any event specific roles. Once you have added all your reactions, type done in the text channel. You will then have to give a name and a limit of people for each role.
If you are not in need of any event specific roles, type done without reacting to the message with any emojis.
These roles are purely visual and no actual server roles are added.
If the (-noroles) optional flag is provided, this step will be skipped.
5. Limit
Lastly, you will be asked to specify how many people in total can join your event.
If the (limit) optional argument is provided, this step will be skipped.
Event and role limits
Role limits and event limits work exactly the same. If an event or role is full, you will not be able to join that event or that role. If all roles are full but there is still space left in an event, new attendants will not get a role but they will still be added.
If you do not want a limit for your role or event, simply give 0 when you are asked for a limit.
Owner
When scheduling an event, you will be registered as the event owner and thus do not require any other event related permissions when executing commands related to this event.
Examples
p? schedule
p? schedule "Example event" tomorrow "Come join us for some fun!" 2 -noroles
p? schedule "Example event" tomorrow
Notes
-
You cannot change the order of the optional arguments. Your first argument will always be interpreted as
(name), the second as(date & time)and so on. The exception is that you can specify-norolesanywhere. - This command is only available to members with permission (see configure role for details).
Remove
alias: r
Usage:
p? remove [event id]
Removes the event number [event id].
Example
p? remove 1
This command would delete event number 1.
Note
This command is only available to members with permission (see configure role for details).
Join
alias: j, attend, a
Usage:
p? join [event id]
Signs you up for event number [event id] and adds your name to the list of people showing up.
You can also use this command to change your role in an event. To do so, simply join the event again.
Example
p? join 3
This command would sign you up for event number 3.
Leave
alias: l
Usage:
p? leave [event id]
Use this command to leave event number [event id] and remove your name from the list of people showing up.
Example
p? leave 3
This command would remove you from the list of people showing up for event number 3.
Update
alias: u
Usage:
p? update [event id] [what to update] [new value]
This command sets the field [what to update] to [new value] for event number [event id]. Available fields to update are
date |
The date and time of the event. The same formats as in schedule. |
name |
The name of the event. |
description |
The description of the event. |
owner |
The owner of the event. When updating this field, use the @Mention for the new owner as [new value]. |
limit |
The total number of people that can join the event. |
role |
Update a role. |
Editing roles
When editing a role, the command syntax becomes as follows:
p? update [event id] role [the role's emoji] [attribute] [new value]
Available values for [attribute] are
name |
The name of the role. |
limit |
The limit of people that can join a role. |
emoji |
The role's emoji. When updating this attribute, [new value] can be left blank. |
Examples
p? update 2 description Free oj for everyone who shows up.
This would update the description for event number 2 to Free oj for everyone who shows up..
p? update 1 role :thumbsup: limit 5
This would update the role with the :thumbsup: emoji and set its limit to 5.
p? update 1 role :thumbsup: emoji
This would allow you to change this role's emoji from :thumbsup:.
Note
This command is only available to members with permission (see configure role for details).
Kick
alias: k
Usage:
p? kick [@member] [event id]
This command kicks member @member from event number event id
Example
p? kick @exampleMember#1234 1
This command would kick the member @exampleMember#1234 from event number 1.
Note
This command is only available to members with permission (see configure role for details).
When
Usage:
p? when [event id] [UTC offset]
This command returns the start time with regards to the given UTC offset. It also returns the time until the event starts.
Example
p? when 1 -2
This command would give you the start time of event 1 in UTC-2 time.
Owner
Usage:
p? owner [event id]
This command will make the bot reply with the current owner of event with id [event id]
Salt related commands
These commands are for when you get Sastasha for the 5th time in a row on duty roulette or when PEOPLE DON'T STACK! GEEZ, HOW HARD IS IT?!
Salt
Usage:
p? salt
This command gives you a little demotivational quote and ups the count of salty nugs you have had.
Saltboard
Usage:
p? saltboard
This command prints a salty leaderboard so you can ascertain who is the saltiest of all your friends.
Fun stuff
These commands are here because they are fun. Some of these are pretty weird though.
Eyebleach
aliases: cute, cutestuff, helppls
Usage:
p? eyebleach
This command give you a cute image of something or other from /r/eyebleach.
Clowntime
alias: trúðagrín
Usage:
p? clowntime
It's clowntime!
Orangejuice
aliases: oj, applejuice, juice, akidrugs
Usage:
p? orangejuice
This command posts a picture of high quality orange juice! The best in all the land!
Sorry
Usage:
p? sorry
Use this command to apologise to the bot if you have been mean to it. why would you do that though? :'(
Roll
Usage:
p? roll [list of names]
The bot selects a random person from the [list of names] provided.
[list of names] |
A list of names seperated by a , |
Example
p? roll Lahabread, Emet, Ardbert, Driur
This would make the bot choose one of Lahabread, Emet, Ardbert or Driur and post the winner in chat.
Julia
Usage:
p? julia (colour scheme) (complex number)
This command generates a random julia set unless a (complex number) is specified, then it will generate the set with the given constant. You can choose the colour scheme by specifiyng (colour scheme).
(hue|value) |
The colour scheme to use for the image. Available colour schemes are hue and value. Unless specified, hue will be used. |
(complex number) |
The complex number to use as the constant for every series. The format is a+bi. |
If neither parameter is specified, you will receive a random Julia set.
Example
p? julia value -0.77568377+0.13646737i
This will generate the Julia set with the constant -0.77568377+0.13646737i and use the value colour scheme.

Lo-fi radio
These commands are related to the Lo-fi radio player.
Chill
Usage:
p? chill
This command will only work when you are connected to a voice channel.
This command makes the bot join your voice channel and starts playing some chill tunes.
Chill stop
Usage:
p? chill stop
This command makes the bot stop playing chill tunes and leave your voice channel.
Chill volume
alias: v
Usage:
p? chill volume [volume]
Where
[volume] |
A number from 0 to 100 denoting volume percent. |
This command sets the chill tunes volume to [volume]
Example
p? chill volume 20
This would set the volume to 20%.
Chill nowplaying
aliases: now, playing
Usage:
p? chill nowplaying
This command displays the currently playing song.
Miscellaneous
I don't know where to put these commands so they go here
Log
Usage:
p? log
The bot messages you with a log of recent activity in the events channel. The log only consists of commands found under Event related commands.
Clean
Usage:
p? clean
This command clears the channel it is executed in. You will be asked to confirm this action.
Note
This command is only available to members with the administrator permission.
Readycheck
Usage:
p? readycheck [list of mentions] (-expires [date])
This command invokes a ready check for all members listed. The [list of mentions] is a list of @mentions for members or roles you want to include in the ready check.
Use the optional argument -expires [date] to specify when the readycheck should expire. If this argument is not present, there expiration time will be set to 24 hours (see date for more details about date formats).
Example
p? readycheck @member1#1234 @member2#5678 @role -expires in 1 hour
This would start a ready check for member1, member2 and all members with the role role. The ready check would expire in one hour.
Calculate
Usage:
p? calculate [query]
This command queries wolfram alpha for your [query] and returns the result.
Example
p? calculate the surface area of the earth
This command would return the surface area of the earth.
Spoiler
Usage:
p? spoiler [message]
This command reuploads all attachments as spoilers with the message [message] attached.
Example

Spoiler delete
Usage:
p? spoiler delete
This command deletes the last message the user posted with the spoiler command.
Poll
Usage:
p? poll [name] [options]
This command will create a poll with the name [name] and the options [options]
name |
The name of the poll as a string of characters, surrounded by double quotes if it is more than one word. |
options |
A list of options for the poll, seperated by a space. If an option contains multiple words, surround it with double quotes. |
Example
p? poll "What is your favourite colour?" red blue green "another colour"
This would create a poll called What is your favourite colour? with the options red, blue, green and another colour
Notes
- The number of options for a poll is limited to 20.
- After some time without any activity, the poll will stop working
Notice new
Usage:
p? notice new
This command creates a new notice message that can be edited by everyone with permission to display whatever you want. You can edit this message with the notice edit command.
Note
This command is only available to members with permission (see configure role for details).
Notice edit
Usage:
p? notice edit [message id] [new message]
This command will edit the notice message with id [message id] to display the new message [new message]. You do not need to surround [new message] with quotes.
Notes
- You need to be in the same channel as the notice message you want to edit.
- This command is only available to members with permission (see configure role for details).
Forget_me
Usage:
p? forget_me
This command will purge all stored information this bot has stored on you which is:
- Salt count
- All reminders you have set and have not yet deleted
- All spoiler messages you have sent with the spoiler command and have not yet been deleted
- You will be removed from all scheduled events
Soundboard
Here are all the commands related to the soundboard feature.
Soundboard
alias: sb
Usage:
p? soundboard
When this command is invoked without a subcommand it will list all the available sounds and you will be able to pick one to play.
Soundboard add
alias: a
Usage:
p? soundboard add [name]
To add a new sound, upload a mp3 or wav file to any channel the bot has access to and put this command in the comment when uploading. The new sound will be called [name].
Example

Notes
- Sound names cannot include spaces.
- If you delete the message with the file upload, then that sound will no longer work.
- This command is only available to members with permission (see configure role for details).
- The maximum amount of sounds for a server is 19.
Soundboard remove
alias: r
Usage:
p? soundboard remove [name]
This command will remove the sound called [name].
Example
p? soundboard remove ExampleSound
This would remove the sound called ExampleSound.
Note
This command is only available to members with permission (see configure role for details).
Soundboard play
alias: p
Usage:
p? soundboard play [name]
This command will play the sound called [name].
To see all available sounds, use the Soundboard command.
Soundboard rename
alias: rn
Usage:
p? soundboard rename [oldname] [newname]
This command will rename the sound [oldname] to [newname].
Example
p? soundboard rename wow amazing
This command would rename the sound called wow to amazing.
Reminders
Here you can find all commands related to reminders.
Remindme
Usage:
p? remindme [time] to [reminder]
Where
[time] |
The time you want to set the reminder for. See the date section at the top for details on available formats. |
[reminder] |
is what you want to be reminded of. |
[reminder] which will go off at [time].
Examples:
p? remindme in 2 days to water my cactus
This command would set a reminder for 2 days in the future to water your cactus.
p? remindme tomorrow at 14:30 UTC-3 to put cookies in the oven
This command would set a reminder for tomorrow at 14:30 UTC-3 time to put cookies in the oven.
Remindme list
Usage:
p? remindme list (page)
This command will give you a list of reminders you have set for yourself as well as their ids. If (page) is not specified, you will
receive page one of the list. There are 10 reminders per page.
Example
p? remindme list 2
This command would give the user page two of their reminder list.
Note
All times are in UTC.
Remindme remove
Usage:
p? remindme remove [reminder id]
This command will remove the reminder with the given [reminder id]. You can check all your reminders and their ids with the remindme list command.
Example
p? remindme remove 5
This command would remove reminder number 5 on the remindme list.