Welcome to SauriCogs’ documentation!

SaurBot's Harem Red-DiscordBot Black formatting

Important

These cogs are made to work only with Red DiscordBot V3.

Contact me

If you have any issues with any of the cogs, `open an issue on GitHub`__, I have notifications turned on for it, unlike Discord.

Please, do not message me on Discord, I have no time to be there and it is always muted and open in the background.

How to install

[p] is your prefix.

To install any of my cogs, first load the Downloader:

[p]load downloader

Next, install the repository:

[p]repo add SauriCogs https://github.com/elijabesu/SauriCogs/

Finally, you can install the desired cog:

[p]cog install SauriCogs <cogs>

AdvancedLock

An advanced version of Lock.

Important

You’re required to read this page as I do not take any responsibility in it breaking your server.

[p] is your prefix, <> is a required argument, [] is an optional argument.

Setting up

Run [p]setlock which will give you a menu of subcommands. You may not have to use them all (and some will not even let you), that’s why you should start with running

[p]setlock setup

The bot will then ask you a few basic questions (depending on your answers, it could be two, it could be more).

Once you are done and content with your settings, use

[p]setlock toggle

to enable/disable the cog.

Initial setup

Now, all the next settings depend on your answers as there’s multiple scenarios. So let me go through the questions and let’s number our scenarios.

Q1: Do you use roles to access channels? (yes/no)

Q2: Do you have different channels that different roles can access? (yes/no)

Q3: You answered no but you answered yes to Do you use roles to access channels? What roles can access your channels?

Q4: Would you like to add default value for when a channel isn’t specified? (yes/no)

Q5: What are the default roles that can access your channels? (Must be <strong>comma separated</strong>)

Q6: What is your Moderator role?

ID Q1 Q2 Q3 Q4 Q5 Q6
1 no doesn’t ask doesn’t ask doesn’t ask doesn’t ask Mod role
2 yes no Role1, Role2, … doesn’t ask doesn’t ask Mod role
3 yes yes doesn’t ask no doesn’t ask Mod role
4 yes yes doesn’t ask yes Role1, Role2, … Mod role

These answers will result in the following settings:

ID everyone special roles default default roles moderator
1 TRUE FALSE NULL FALSE NULL Mod role
2 FALSE FALSE Role1, Role2, … FALSE NULL Mod role
3 FALSE TRUE NULL FALSE NULL Mod role
4 FALSE TRUE NULL TRUE Role1, Role2, … Mod role
Ignored channels

Same as with Lock, you may add channels into an ignored list by running

[p]setlock ignore <channel>

and remove them by running

[p]setlock unignore <channel>

This will ensure that during server (un)lockdown, these channels will be kept the same without any change. Use this for channels like announcements.

Special channels

Important

If scenario with ID 3 or 4 is your scenario, you are required to add channels into the list and give them their permissions.

Run

[p]setlock add <channel>

to add the specified channel into the list. The bot then asks you what role can access the channel and saves those permissions.

You can remove the channels’ permissions with

[p]setlock remove channel
Settings display

You can display your settings by running

[p]setlock settings

This will fetch all settings for the current server.

Tip

You can also check if all channels have been set/ignored by running

[p]setlock all
Settings reset

You may reset all settings to their default value by running

[p]setlock reset

Warning

This action cannot be undone and you will have to go through the entire setup all over again!

Usage

Mods may lock the channel, so that only they can type, by running

[p]lock

And letting everyone be able to type in the channel again, by running

[p]unlock

Tip

Mods can also set how many seconds the bot should wait before automatically unlocking the channel by running

[p]lock [seconds]

If they wish to lock the entire server, they may use

[p]lockserver

Warning

This will overwrite ALL server’s channels’ permissions.

To unlock the server, type

[p]unlockserver

Warning

Important

This cog can be extremely dangerous if setup/used incorrectly.

Use at your own risk because I wrote out everything and if it still manages to break your server, I take no responsibility in it.

I fully support this cog as it’s a masterpiece that I am very proud of. However, it gives your Mods a LOT of power, so use it very wisely.

I tried to put in as many checks as I could, so it should not allow you something that would break it (if setup correctly) - it has a LOT of ‘Uh oh’s. However, I’m still a human and this is my biggest project so far, so it can have some flaws. It’s pretty hard to properly test all possible scenarios, so yeah. Definitely open an issue if you find something that could be handled better.

List of commands

[p]setlock toggle [on_off] - Toggle Lock for current server. If on_off is not provided, the state will be flipped.

[p]setlock setup - Go through the initial setup process.

[p]setlock add <channel> - Add channels with special permissions.

[p]setlock remove <channel> - Remove channels with special permissions.

[p]setlock ignore <channel> - Ignore a channel during server lock.

[p]setlock unignore <channel> - Remove channels from the ignored list.

[p]setlock settings - List all channels’ settings.

[p]setlock channel <channel> - List channel’s settings.

[p]setlock refresh - Refresh settings (deleted channels will be removed from ignored and special channel lists).

[p]setlock reset - Reset all settings to default values.

[p]setlock all - Check if all channels are set.

[p]lock [seconds] - Lock @everyone from sending messages. If seconds is provided, the bot will automatically unlock the channel.

[p]unlock - Unlock the channel for @everyone.

[p]lockserver - Lock @everyone from sending messages in the entire server.

[p]unlockserver - Unlock the entire server for @everyone.

Application

Simple application cog with a ‘Staff Applicant’ role.

[p] is your prefix, <> is a required argument, [] is an optional argument.

Setting up

Run

[p]applysetup

The bot checks if required channels and roles are already present, if not, it will create them. It will also ask you if you want your applications channel to be visible to everyone. Once it is done, it will ask you to move the new channel into desired category.

Usage

User writes [p]apply and the bot DMs them (unless they have closed DMs, in that case, bot sends a notice about it into the current channel) ask asks them questions. Once the questionnaire has been finished, the bot gives them a Staff Applicant role and sends an embed message with answers into appropriate channel.

Important

Currently it does not support custom questions.

Current questions are:

What position are you applying for? What is your name? How old are you? What timezone are you in? (Google is your friend.) How many days per week can you be active? How many hours per day can you be active? Do you have any previous experience? If so, please describe. Why do you want to be a member of our staff?

Accept/Deny

To accept someone’s application, use

[p]accept <target>

where target can be a user ID, user mention or user name. The bot then checks if the user applied (and has the Staff Applicant role), if so, it then asks you what role you want to accept the user as.

Warning

It only allows one role.

Once it’s done, the bot DMs the user about being accepted.

To deny someone’s application, use

[p]deny <target>

where target can be a user ID, user mention or user name. The bot then checks if the user applied (and has the Staff Applicant role), if so, it asks you if you’d like to specify a reason, if so, it asks for the reason. Once it’s done, the bot DMs the user about being rejected (with a reason, if it has been specified).

List of commands

[p]apply – Apply to be a staff member.

[p]applysetup – Go through the initial setup process.

[p]accept <target> – Accept a staff applicant. can be a mention or an ID

[p]deny <target> – Deny a staff applicant. can be a mention or an ID

Cookies

Collect cookies.

[p] is your prefix, <> is a required argument, [] is an optional argument.

Setting up

By default, members receive one cookie, cooldown is 24 hours, stealing is disabled and stealing cooldown is 12 hours.

You can set how many cookies members get by running

[p]setcookies amount <amount>

If you put amount as 0, the bot will ask you to put the minimum and maximum amount for a random amount.

Stealing

To enable stealing, run

[p]setcookies steal

You can change the cooldowns with

[p]setcookies cooldown <seconds>

and

[p]setcookies stealcooldown <seconds>

Usage

Members collect cookies by simply running

[p]cookie

To see how many they have, they can run

[p]cookies

Cookie leaderboard can be seen by running

[p]cookielb

To give someone some of their cookies, they can run

[p]gift <target> <amount>

Stealing is done by running

[p]steal [target]

where target is optional, if not provided, it’s a randomly chosen member of the server. They can steal up to 50% of the target’s cookies.

Warning

Penalty for failing stealing can be up to 25% of the author’s (your) cookies.

List of commands

[p]cookie – Get your daily dose of cookies.

[p]steal [target] – Steal cookies from members. If [target] isn’t specified, target will be randomly chosen.

[p]gift <target> <amount> – Gift someone some yummy cookies.

[p]cookies [target] – Check how many cookies you have.

[p]cookielb – Display the server’s cookie leaderboard.

[p]setcookies amount <amount> – Set the amount of cookies members can obtain. If 0, members will get a random amount.

[p]setcookies cooldown <seconds> – Set the cooldown for [p]cookie. This is in seconds! Default is 86400 seconds (24 hours).

[p]setcookies stealcooldown <seconds> – Set the cooldown for [p]steal. This is in seconds! Default is 43200 seconds (12 hours).

[p]setcookies steal [on_off] – Toggle cookie stealing for current server. If on_off is not provided, the state will be flipped.

[p]setcookies set <target> <amount> – Set someone’s amount of cookies.

[p]setcookies add <target> <amount> – Add cookies to someone.

[p]setcookies take <target> <amount> – Take cookies away from someone.

[p]setcookies reset – Delete all cookies from all members.

[p]setcookies role add <role> <amount> – Set cookie reward for a role.

[p]setcookies role del <role> – Delete cookie rewards for a role.

[p]setcookies role show <role> – Show how many cookies a role gives.

[p]nostore – Cookie store.

CookieStore

Store add-on for SauriCogs’ Cookies cog.

Warning

You need SauriCogs’ Cookies cog installed, loaded and working.

[p] is your prefix, <> is a required argument, [] is an optional argument.

Setting up

Simply start by

[p]store toggle

and then

[p]store add

That’s all you need, the rest is optional.

Changing an item

You can change anything about any item in the store.

Removing:

[p]store remove <item>

Showing information:

[p]store show <item>

Changing the price:

[p]store price <price> <item>

Changing the quantity:

[p]store quantity <quantity> <item>

Changing the redeemability:

[p]store redeemable <redeemable> <item>

Usage

Members can use their collected cookies to buy various things, such as roles, game keys, etc. by running

[p]buy [item]

If [item] is not provided or non-existent, it will act as [p]shop.

Note

Members can only have one of one item.

To check the inventory, simply run

[p]inventory

If the bought item is redeemable, they can then redeem it by running

[p]redeem <item>

If the bought item is returnable while also not redeemable or not redeemed (if redeemable), they can then return it by running

[p]return <item>

which will give them back half of the original price.

They can also simply remove it without getting any cookies back by running

[p]rminventory <item>

List of commands

[p]store toggle [on_off] – Toggle store for current server. If on_off is not provided, the state will be flipped.

[p]store add – Add a buyable item/role/game key.

[p]store remove <item> – Remove a buyable item/role/game key.

[p]store show <item> – Show information about a buyable item/role/game key.

[p]store price <price> <item> – Change the price of an existing buyable item.

[p]store quantity <quantity> <item> – Change the quantity of an existing buyable item.

[p]store redeemable <redeemable> <item> – Change the redeemable of an existing buyable item.

[p]store reset – Delete all items from the store.

[p]store ping [who] – Set the role/member that should be pinged when a member wants to redeem their item. If who isn’t provided, it will show the current ping set.

[p]store resetinventories – Delete all items from all members’ inventories.

[p]shop – Display the cookie store.

[p]buy [item] – Buy an item from the cookie store. If item isn’t provided, it will show the store.

[p]return <item> – Return an item, you will only get 50% of the price.

[p]inventory – See all items you own.

[p]rminventory <item> – Remove an item from your inventory.

[p]redeem <item> – Redeem an item from your inventory.

Counting

Counting channel!

[p] is your prefix, <> is a required argument, [] is an optional argument.

Setting up

All you need to do is enable counting by running

[p]countchannel <channel>

Usage

After setting it up, you can start counting by sending the following number in the channel.

Note

If the message isn’t just a number, it will be deleted.

If the message is a wrong number, it will be deleted.

If the number message is deleted, the bot replaces it.

List of commands

[p]countchannel [channel] – Set the counting channel. If channel isn’t provided, it will delete the current channel.

[p]countgoal [goal] – Set the counting goal. If goal isn’t provided, it will be deleted.

[p]countreset – Reset the counter and start from 0 again!

[p]countrole [role] - Add a whitelisted role.

EconomyRaffle

A simple cog that gives a pre-specified amount of credits to a randomly picked user.

Tip

I suggest using it along with scheduler.

[p] is your prefix, <> is a required argument, [] is an optional argument.

Setting up

Simply run

[p]economysetup

The bot will then proceed to ask you a series of questions where you choose whether your winner should have a specified role, how much they get and what the message is.

After that, either set scheduler or just run

[p]economyraffle

List of commands

[p]economysetup – Go through the initial setup process.

[p]economyraffle – Give a a pre-set amount of economy to a random user in the guild/role.

Forwarding

Forwards all messages to the bot owner, incl. pictures (max one per message).

[p] is your prefix, <> is a required argument, [] is an optional argument.

List of commands

[p]pm <user ID> <message> – PMs a person.

[p]self <message> – Send yourself a DM. Owner command only.

Lock

Lock @everyone from sending messages.

[p] is your prefix, <> is a required argument, [] is an optional argument.

Setting up

Start by running

[p]setlock
Ignored channels

You may add channels into an ignored list by running

[p]lockignore <channel>

and remove them by running

[p]lockunignore <channel>

This will ensure that during server (un)lockdown, these channels will be kept the same without any change. Use this for channels like announcements.

Settings

If you DON’T use roles to access certain channels, skip to ‘Usage’.

If you DO use roles to access certain channels, your channel permissions need to be set a certain way for this cog to work.

Firstly, @everyone’s permissions should be set like this:

https://i.imgur.com/fOeCA9n.jpg

Secondly, the role(s)’s permissions should be set like this:

https://i.imgur.com/pS8wPpI.jpg

Usage

Mods may lock the channel, so that only they can type, by running

[p]lock

And letting everyone be able to type in the channel again, by running

[p]unlock

If they wish to lock the entire server, they may use

[p]lockserver

Warning

This will overwrite ALL server’s channels’ permissions.

To unlock the server, type

[p]unlockserver

List of commands

[p]locksetup – Go through the initial setup process.

[p]lockignore <channel> – Ignore a channel during server lock.

[p]lockunignore <channel> – Remove channels from the ignored list.

[p]lock – Lock @everyone from sending messages.

[p]unlock – Unlock the channel for @everyone.

[p]lockserver – Lock @everyone from sending messages in the entire server.

[p]unlockserver – Unlock the entire server for @everyone.

LevelUpCookies

Set cookie rewards for users that level up!

Warning

You need Fixator10-Cogs’ Leveler and `SauriCogs' Cookies<https://github.com/elijabesu/SauriCogs>`__ cogs installed, loaded and working.

Note

All is happening as a background task, users don’t get notified in any way that they have received some cookies.

[p] is your prefix, <> is a required argument, [] is an optional argument.

List of commands

[p]lvlupcookies add <level> <cookies> – Set a cookie reward for leveling up!

[p]lvlupcookies del <level> – Delete cookies for level.

[p]lvlupcookies show – Show how many cookies levels give.

Marriage

Marriage cog with some extra shit.

[p] is your prefix, <> is a required argument, [] is an optional argument.

Setting up

Simply start by

[p]marriage toggle

That’s all you need, the rest is optional.

List of commands

[p]marriage toggle [on_off] - Toggle Marriage for current server. If on_off is not provided, the state will be flipped.

[p]marriage currency <currency> - Set the currency that should be used. 0 for Red’s economy, 1 for SauriCogs’ cookies.

[p]marriage multiple <state> - Enable/disable whether members can be married to multiple people at once.

[p]marriage marprice <price> - Set the price for getting married. With each past marriage, the cost of getting married is 50% more.

[p]marriage divprice <multiplier> - Set the MULTIPLIER for getting divorced. This is a multiplier, not the price! Default is 2.

[p]marriage changetemper <action> <temper> - Set the action’s/gift’s temper. Temper has to be in range 1 to 100. Negative actions (f.e. flirting with someone other than one’s spouse) should have negative temper. !!! Remember that starting point for everyone is 100 == happy and satisfied, 0 == leave their spouse

[p]marriage changeprice <action> <temper> - Set the action’s/gift’s price.

[p]addabout <about> - Add your about text. Maximum is 1000 characters.

[p]about [member] - Display someone’s about. If member is not specified, it shows yours.

[p]exes [member] - Display someone’s exes. If member is not specified, it shows yours.

[p]crush [member] - Tell us who you have a crush on. If member is not specified, it deletes the current one.

[p]marry <spouse> - Marry the love of your life! Pre-defined cost is multiplied by the amount of past marriages, comparing both participants and taking the higher amount.

[p]divorce <spouse> [court] - Divorce your current spouse. Asks for their approval, if they say no, you go to the court. You can also force court. Without court, cost is multiplied same as [p]marry as well as by a pre-defined multiplier. By going to a court, you both lose a random percentage of your money.

[p]perform <action> <target> [item] - Do something with someone. Available actions are flirt, fuck, dinner, date, and gift. If you choose gift, available gifts are flower, sweets, alcohol, loveletter, food, makeup, car, yacht, and house. Note that if these are performed on someone but your spouse(s), your spouse(s) lose certain amount of temper. Once temper is 0, your spouse(s) leave you and take all your money.

Mentionable

Makes unmentionable roles mentionable.

[p] is your prefix, <> is a required argument, [] is an optional argument.

List of commands

[p]mention <role> – Makes that role mentionable. <role> can be a name, a mention or an ID.

[p]unmention <role> – Makes that role unmentionable. <role> can be a name, a mention or an ID.

Pick

Pick a random user or a user with a specified role.

Warning

Output is user ID.

Tip

I suggest using it along with nestedcommands and scheduler.

[p] is your prefix, <> is a required argument, [] is an optional argument.

Setting up

If you do not wish to have your picked member to have a certain role, you don’t need to set anything up! Otherwise, run

[p]pickrole <role>

to set the role.

List of commands

[p]pick - Pick a random user.

[p]pickrole <role> - Set a role winners should have. <role> can be a name, a mention or an ID.

[p]rpick - Pick a random user with specified role.

Pingable

Make unpingable roles pingable by regular users with commands.

[p] is your prefix, <> is a required argument, [] is an optional argument.

Setting up

Set a pingable role with

[p]setpingable <role>

and then create an alias for it (this is optional).

usage

Members can just use the alias along with their message to ping the roles.

List of commands

[p]setpingable <role> – Make a role pingable. <role> can be a name or an ID.

[p]delpingable <role> – Make a role unpingable. <role> can be a name or an ID.

[p]pingable <role> <message> – Ping a role.

Suggestion

A bit more than just a simple suggestion box. Only admins can approve or reject suggestions.

[p] is your prefix, <> is a required argument, [] is an optional argument.

Setting up

Start by running

[p]setsuggest setup

The bot will ask you if you have your channels already present. If yes, it asks you to mention them so it can save them. If not, it will create them (default permissions are everyone can see the channels but cannot send messages). Since both approved and rejected channels are optional, it asks if you want them. If you say you don’t, it will ask if you want to use the same one channel for all.

Global suggestions

To enable global suggestions, you need to add the channel where the bot can post them by running

[p]setsuggest setglobal channel [server] [channel]

If you don’t provide [server] nor [channel], it will save the current channel. Otherwise, you have to provide both.

Then toggle global suggestions by running

[p]setsuggest setglobal toggle

Usage

Once the cog is properly set up ([p]setsuggest setup has been finished), users may start using

[p]suggest <suggestion>
Approve/Reject

To approve someone’s suggestion, use

[p]approve <suggestion ID> [global]

To reject someone’s suggestion, use

[p]reject <suggestion ID> [global] [reason]

Since [reason] is optional, you can add it whenever you want by using

[p]addreason <suggestion ID> [global] <reason>

List of commands

[p]suggest <suggestion> – Suggest something.

[p]approve <suggestion ID> [global] – Approve a suggestion. If you’re approving a global suggestion, add ‘True’ or ‘yes’ after the ID.

[p]reject <suggestion ID> [global] [reason] – Reject a suggestion. If you’re rejecting a global suggestion, add ‘True’ or ‘yes’ after the ID.

[p]addreason <suggestion ID> [global] <reason> – Add a reason to a rejected suggestion. If you’re adding a reason to a global suggestion, add ‘True’ or ‘yes’ after the ID.

[p]showsuggestion <suggestion ID> [global] – Show a suggestion. If you want to see a global suggestion, add ‘True’ or ‘yes’ after the ID.

[p]setsuggest setup – Go through the initial setup process.

[p]setsuggest setglobal toggle [on_off] – Toggle global suggestions. If on_off is not provided, the state will be flipped.

[p]setsuggest setglobal channel [server] [channel] – Add channel where global suggestions should be sent.

[p]setsuggest setglobal ignore [server] - Ignore suggestions from the server.

[p]setsuggest setglobal unignore [server] - Remove server from the ignored list.

UniqueName

Deny members’ names to be the same as your Moderators’.

[p] is your prefix, <> is a required argument, [] is an optional argument.

Setting up

Firstly, you need to add at least one protected role by running

[p]unset role <role>

Roles added through this command are considered as the originals/uniques.

Secondly (and also finally), you need to toggle the cog by running

[p]unset toggle

List of commands

[p]unset role <role> - Add a role to the original list (f.e. Moderator or Admin role).

[p]unset name <name> - Set a default name that will be set.

[p]unset toggle [on_off] - Toggle UniqueName for this server. If on_off is not provided, the state will be flipped.

UserLog

Log when an user joins or leaves.

[p] is your prefix, <> is a required argument, [] is an optional argument.

Setting up

Setting up is super easy. All you need to do is run

[p]userlog channel <channel>

where channel is a mention of your desired text channel.

The default value is True for both logging users joining and users leaving. You can disable/enable either by running [p]userlog join and [p]userlog leave.

Tip

I suggest [p]cog unload userlog when you’re mass pruning/banning just to be sure you do not rate limit your bot.

List of commands

[p]userlog channel [channel] - Set the channel for logs. If the channel is not provided, logging will be disabled.

[p]userlog join [on_off] - Toggle logging when users join the current server. If on_off is not provided, the state will be flipped.

[p]userlog leave [on_off] - Toggle logging when users leave the current server. If on_off is not provided, the state will be flipped.