Introduction to using 42


Commands

The main usage of 42 is directly calling commands.
This is done simply by sending a message that starts with +. There are ways to assign an alternate call character, but + will always work.

Command Syntax

This is how commands are displayed inside help commands and responses.

  • All commands start with an + or appropriate alias
  • Any elements in 'single quotes' are arguments
  • Any elements without quotes are subcommands
  • Any args in ['square brackets'] are optional. This does not mean you need to write in the brackets
Any arguments that contain spaces should be wrapped in either 'single quotes', "double quotes" or «double angle quotes»

Automatic Functions

42 has a set of automatic functions that do not require a command to trigger.
These are all optional and can be set with the correct command, such as using +ayy to disable the bot responding to mentions. A full list of automatic functionality can be found here.


Bug Reports and Feature Suggestions

Bug reports:
Every command within 42 will send a reply, whether that reply is a successful response or an error message.
If a response isn't sent, it means one of two things have happened:

  1. The command call was blocked by an authority check and is still on cooldown.
  2. The command is bugged.

If it is the latter, then it would be greatly appreciated if you could send it to @RocketLanterns either in DMs or Kiwi Hangout. #reeds-station is designed specifically for reporting bugs.
Alternatively, you could email bugs@rockett.space
And I know 42 has some bugs...

Suggestions:
Is there something you need but don't have or don't know how to do? Head over to the server linked above and ask in #heinrichs-workshop.
If we have a solution, we can tell you there and then, if not, we can suggest a bot or Lan may be able to implement a solution into 42 for you.


Authority Checks

42 implements a suite of authority checks to help curb abuse and help server moderators combat spam. There are currently 6 checks:

  1. Permission Levels
  2. Ratelimits
  3. Spamlimits
  4. Server Toggles
  5. Bot Bans
  6. Global Bans

When a check is failed, 42 will alert the user as to what went wrong and will then start ignoring any more permission errors caused by that user for one minute.
This is to stop botbanned members from spamming "You are botbanned" messages.


Permission Levels:

Permission levels are non-changable and are defined on a command by command basis. They exist to stop people using the bot to bypass certain safety features within discord, such as preventing users without Manage Roles from creating giveme roles so that they can grant themselves roles.
Each command will have its permission level displayed next to the name

Here is a list of permissions on the bot:
  • Server Permissions. These are granted through having a particular permission on a users roles.
  • [Server Owner]: This is the big man, woman or wumpus in charge of the server.
  • [Server Admin]: Admins are members with Manage Roles.
  • [Server Manager]: Managers are members with Manage Channels.
  • [Server Moderator]: Moderators are members with Manage Messages.
  • Bot Permissions. These allow servers to grant normal users an elevated level of power over the bot without granting general permissions.
  • [Bot Admin]: These are members who have a role called "Best Friends". Server admins can also use these commands.
  • [Bot Mod]: These are members who have a role called "Friends". Server mods can also use these commands.
  • Special Permissions. There are some specialised permissions used within 42. Any not listed below will be explained when they are used.
  • [Owner]: This refers to squaswin himself. Commands locked to Owner are generally for the wellbeing of the bot.
  • [Buds]: This is only given to a few of squas' close friends. If you ask for buds, you will not get buds.
  • [No DM]: These mark commands that cannot be used inside private or direct channels. If a command has any other permission, assume it has this too.
  • [Patreon Supporter]: These commands or features are special perks only available to Patreon supporters

Any command not marked with a permission level can be used by anyone.


Rate Limits:

Rate limits are also fixed by the bot. This stops both spam in servers and stress on the bot herself.
If a command is rate limited, it will be marked so on its help article next to the permission check.
If no indication exists, then the command is not rate limited.
THIS IS NOT AN INVITATION TO START SPAMMING THE BOT. All spamming like this will do is get you or your server sanctioned.


Spam Limits:

This is the first check that can be set by the server managers via a command.
It enforces a limit to the amount of lines the bot can send to a single non-bot channel within a timeframe, but this is explained in the command's page.


Server Toggles:

This is the largest amount of control servers have over the bot's usage as it allows them to completely disable commands.
Commands that are toggled will have a [Disabled by server] tag applied to the end of the built in help command.
Users who have any server related permissions are not affected by disabled commands.


Botbans:

Botbans are a servers last level of control, or rather defence. It allows them to stop a given user from accessing any of the bot's commands.
Botbans applied in one server are not respected in any other servers, and unlike her predecessor, 42 will not automatically globalban people with too many botbans.
You cannot botban the server owner or other bots and you cannot botban squas.
In general, botbans only affect command calls, not automatic functions.

Global Bans:

Global bans are the absolute last resort for cleaning up a mess. They can only be applied and removed by squaswin and can affect either single users or entire servers.
If a user is global banned, they will not be able to use 42's commands in any server or private channel.
If a server is global blocked, the bot will refuse to join the server and if she does get on the server, she will leave at the first opportunity.


Permissions Requested by 42

While 42 has a lot of functionality that can be sustained with only Read Messages, Send Messages and Embed Links, she also has a lot of features that require elevated server permissions.
Here I'll list each elevated permission that 42 requests, and the commands and/or reasons why they are requested.

These permissions are explicitly NOT requested:
  • Administrator: No bots should ever be granted Administrator, the amount of access and authorisation granted exceeds any reasonable limit.
  • Manage Emojis: No functions require this. All emoji use is read-only.
  • View Insights: No insights API exists for bot usage, no bot should require this as of the time of writing.
  • Manage Webhooks: No command creates, modifies, or utilises webhooks.
  • Create Invites: No command generates invites. This should not be granted for privacy reasons.
  • Change/Manage Nicknames: Not used by any command. This may change in future
  • Mention Everyone/Here/Roles: Not only is this not used by any command, it should not be granted for security purposes.
  • Send TTS: No command uses this feature.
  • All Voice Permissions: 42 does not require any voice channel functionality, as she is a text-only bot.
The following require no explanation: Read Messages, Send Messages, Embed Links, Add Reactions, Use External Emoji. All are required for regular use of commands on 42.

Manage Server

Not strictly required, as no functions make any write requests to server configuration.

  • +info server [Optional] Used to populate page regarding to guild partnership status and features, which are only readable with the Manage Server permission.

Manage Roles

  • +giveme Required to assign roles.
  • +giveyou Required to assign roles.
  • +colourme Required to assign roles.
  • +voicerole Required to assign roles.
  • +welcome Required to assign roles.

Manage Channels

  • +modlog Used to create new modlog channels and populate the channel topic with default modlog configs.

Manage Messages

  • +remove Required to delete messages from other users.
  • +blacklist Required to delete messages from other users.
  • +cleanme Required to delete messages from other users.
  • +cleanup [Optional] Used to access the bulk message delete mode. Required to delete invocation messages from other users.
  • +tag [Optional] Enables use of the +tag hidden subcommand.
  • All paged commands: [Optional] Allows 42 to remove page turn/interaction reactions from invoking user.
  • All game/casino commands: [Optional] Allows 42 to remove input reactions from invoking user.

Kick Members and Ban Members

  • +kick Required to kick members.
  • +ban Required to ban members.
  • +unban Required to unban members.
  • +softban Required to ban and unban members.

View Audit Log

  • +modlog [Optional] Detects and distinguishes kicks from leaves.
  • +modlog [Optional] Attaches an acting moderator and a reason to kick/ban/unban logs.

Attach Files

  • +archive Required to upload chat archive into channel.
  • +cleanme Required to upload chat archive into channel.
  • +tag Required to output content (calculated or raw) of tag when it exceeds 2000 characters or 12 lines of text.
  • +solstice Required to upload output of image command.
  • +entify Required to upload output of image command.
  • +imtb Required to upload output of image command.
  • +schedule [Optional] Uploads image displaying current schedule instead of text-dump.

Read Message History

  • +archive Required to fetch chat messages.
  • +cleanme Required to fetch chat messages.
  • +remove Required to use bulk message delete tools.
  • +cleanup Required to use bulk message delete tools, or to fetch chat messages.
  • +blacklist [Optional] Attaches previous message to blacklist modlog output as context.

Username Resolution

A lot of commands accept a user as an argument. For these args, you can pass any of the following:
  • User Mention (@42)
  • Discord Tag (42#6023)
  • Username (42)
  • Nickname (Ping for Free Hugs)
  • ID (88575421972516864)
  • Role Mention (@Bots)
If multiple users are found, or a role has multiple users, then she will ask for who you meant.
If no names match a user perfectly, she will attempt to find people with a similar name or nickname.

Usually args of 'user' or 'member' are what is affected.

Tulpa Compliance

42 supports being able to process messages sent through alternate users of accounts.
The way this works is that if a message matches a compliance, the compliance will be removed from the message before it is processed.
List of current compliance: (All resolve to "command")
  • [command]
  • [<whitespace>command<whitespace>]
  • {command}
  • {<whitespace>command<whitespace>}
  • //command
  • //<whitespace>command
Because I update the message itself, this means that the compliant version will be used for commands that rely on past messages, such as +remove and +modlog

Return to top.