beast[code] Help

Getting Started

beast[code] is a discord bot whose purpose is to facilitate coding practice within a Discord Server. It does this through a reoccurring system of configurable problems. This page is to help you get started with using the bot effectively.

There are three groups of server settings that can be configured using /serverconfig. Upcoming Contest Alerts, Static Time Alerts, and Other Settings.Upcoming Contest Alerts can be configured to send alert notifications at time away intervals for upcoming LeetCode Contests. Static Time Alerts can be configured to send alert notifications for specific events such as when a contest becomes active or the official daily LeetCode problem. Other Settings include various other configuration options such as the server's timezone, to allow duplicate problems to be sent, to use @mentions on the notifications, and more. You can view a server's settings using the /serverinfo command.

There also exists "problem" settings. These settings are what determine when the reocurring problem will be sent alongside other settings such as difficulty and premium problems. Each problem is uniquely identified by it's problemID. To configure use the command /problemconfig. Once configured, the problem will be sent to the server at the time set using the parameters chosen. You can view all currently configured problems using /probleminfo.

Lastly, there exists minimal configuration of a user's settings. Limited only to providing their LeetCode username. This is used only for submitting problems, if there is no plan to use this feature, then it is not necessary for the user to provide. Submissions work by checking the server's "active problems" to the user's recently completed problems. If there is a match, points will be awared. Active problems are set when a problem is sent to the server. The active problems can be checked using /problemactive.

A list of all of the commands is provided below. For further usage information on these, use the /help command on the bot directly.

Commands List

lcproblemPosts a problem for users to solve.
dailylcproblemPosts the LeetCode daily problem.
contestsDisplays upcoming contest times
submitproblemsSubmits recently completed problems. Get's points if they were active.
leaderboardDisplays the current point leaderboard.
rankDisplays the current leaderboard position of a user.
userinfoDisplays user information.
setusernameSets the LeetCode username of the user.
deleteuserDeletes a user's config.
problemconfigAllows configuration of problems.
probleminfoDisplays information about all configured problems.
problemactiveDisplays the problems that can be submitted for points.
deleteproblemDeletes a problem's config.
serverconfigAllows configuration of server settings.
serverinfoDisplays information about a server's config.
resetdupesClears a server's duplicate problems.
deleteserverDeletes a server's config.
aboutDisplays some information about the bot.
reportProvides the GitHub link so users can report bugs.
helpExplains and give details about an individual command.
voteProvides the top.gg link for the user to provide feedback & vote.
tutorialProvides a link to the tutorial (this page) to setup and begin using the bot.

Walkthrough & Setup

Before we can do anything, the bot must first be invited to the server. You can do that by using this link. The bot does not need any permissions besides being able to @mention users, use slash commands, and send/read messages.

Once the bot is in the server, we can begin to configure the bot's settings. This is done through the slash command /serverconfig.

Upcoming Contest Alerts handles settings for alerts based on how far away contests are. Static Time Alerts handles settings for when contests open and the official daily. Other Settings handles all other settings. A more thorough explanation of these settings is above. For now we're going to select the Other Settings and begin our sample configuration.


The selection of a setting group provides a dropdown for the user to select the setting they would like. The current setting is provided in parentheses besides the prompt.

Now that we have the dropdown, we can make our setting selection. Similarly, if you're confused about what a setting does, a more detailed explanation can be found above.


Once we are done with our Other Setting selection, it is time to move onto the other two groups of settings. Do this by once again calling the /serverconfig command and using the dropdowns to select the settings you want.

At this point, all of the server settings should be configured. Before we move on, use the /serverinfo command to review the current settings and ensure it all looks good.


Now that the server settings are configured, we can move onto configuring a problem. This is done using the command /problemconfig. This will bring up a similar dropdown menu to the one used for the server settings.

When using the /problemconfig command on a problemID (unique identifier) that has not been created yet, it will prompt the user to create a new problem. It is important to note that when a problem is created, it will be added to the pool of problems to be handled. This means that these problems will be sent to the server based on their configuration. To remove a problem from this pool, the user must use the /deleteproblem command.

Once again, select the setting group you want to configure and make your selections. Once you are done, use the /probleminfo command to review the current problems. The times and parameters you see are what will be used to send problems.


At this point, we have our single problem configured. Looking at it using /probleminfo, we can determine that it will send us an easy problem that is free only on weekdays at 4:30 PM.

Let's skip to when our problem activates and we receive the notification.


As you can see, at 4:30 PM, we were sent a free and easy problem.

The next step to this is solving the problem that was sent to the server. When a problem is sent to a server as such, it is kept within the server as an "Active Problem". What this simply means is that it can be submitted for points. You can check active problems with the command /problemactive.


Before solving the problem, the user needs to connect their LeetCode account. This is done by simply using /setusername.

Once linked and you have solved the problem, you can submit it using the command /submitproblems. This will check your recently completed problems against the active problems and award points if there is a match. And if such a match exists, you will gain points based on the problem difficulty.

At any time, you can check your points using the command /leaderboard or /rank.


And that's it! You have successfully configured the bot and can now use it to practice coding problems. To add more problems, just follow the same steps with a different problemID.

Any feedback would be much appreciated! This is one of the first projects that I am showing to the world so I still have a lot to learn.

For any further questions, please use the /help command on the bot or visit the GitHub repository. If you need more direct help, feel free to directly send me an email. Thank you very much and I hope you enjoy using my bot.