This version of the bot is very outdated! Please see CE-Assistant-v2 instead.
A discord bot using discord.py
for automation purposes for the online community Challenge Enthusiasts.
Challenge Enthusiasts is an online community made to curate and caregorize video games in a point-based system. Each game is given certain "objectives" based on tasks to be completed in games. You join the community by signing up on the website or joining the Discord server.
This bot will send detailed updates to the Discord server whenever a game on the site is added, updated, or removed.
When a game is updated, the bot gives a run down of everything that was changed.
When a game has a longer amount of objectives (seven or more), the bot will screenshot just the specific objective that was changed.
This bot allows users in the Discord server to participate in roll events. Users who participate in these will have a set number of games that fit certain parameters (difficulty, category, etc.) randomly selected for them, depending on the event. Once they complete these events (usually within a time limit, but some events go on forever), they're awarded a badge on the site, and the bot sends an update to the server.
The bot keeps track of all previously completed rolls as well, so anyone can view their previous accomplishments.
This gets a lot trickier, as some rolls are Co-Op or PvP. You can view a spreadsheet with information on all of the roll events here.
While CE-Assistant has its own main purposes, it also can do a lot of smaller stuff.
Users can use /profile
, with an optional parameter of another discord.User
, and the bot will return information about this user.
Users can use /steam-game
with one parameter for the name of the game, and the bot will return information from Steam about it.
The Steam curator for Challenge Enthusiasts is updated with games that are cleared and popular on the site. Any time the curator is updated, the bot will send a message.
Challenge Enthusiast users are awarded ranks based on how many points they have. The higher rank they are, the more colors they have access to within the Discord server. /set-color
presents users with the options they have available to them and changes their colors on request.
One Challenge Enthusiasts user, Schmole, runs a script once a month and collects information on all the games and users on Challenge Enthusiasts and dumps it on this spreadsheet. This bot can access this spreadsheet and save specific data from it, specifically the 'Median Completion Time' from SteamHunters. So, rather than scrape the SteamHunters API every time a game is checked, the bot just accesses its local copy of this spreadsheet.
As is standard with any Discord bot, users can use /help
to get a menu with frequently asked questions and access to other help.
Administrators in the server have access to other commands to help with the bot.
Administrators have the option to add notes to any game update message, in case there's any added context needed.
Insert image
In the event that something happens with a roll event, administrators can manually remove a roll from a user (without initiating a cooldown) so that they can re-roll.
Credits to Andy and Theron for being the main developers of this bot.
Credits to Folkius and Jarvis, the main administrators of Challenge Enthusiasts who helped us with direction and ideas quite a lot, and to Laura for writing the entire backend for the site and several custom API endpoints for the bot to use.
Credits to apollo and Schmole for writing code intermittenly and for general inspiration.
Credits to crappy for making both the icons for Challenge Enthusiasts emojis and the icon for CE-Assistant (seen below).