This is a Discord bot made as a part of the UQCS 2021 Hackathon for the intended purpose of facilitating speedrun bingo wherein both players will get a randomly generated bingo board based on challenges that they must complete in the speedrun. Bingo Butler aims to upon Bingosync's workflow by making it quicker via instanced rooms and easily customisable inputs localised within a Discord text channel.
Currently this bot only supports for games of lockout rather than bingo as it suited the time requirements of the hackathon.
This bot is running on Vercel as per NextJS' integration and uses socket.io to establish a peer to peer instanced connection between at max two players in the bingo game.
Before proceeding, ensure that the bot has been invited to the Discord server with appropriate bot access.
-
Create a fresh Discord text channel and fill it with your speedrunning challenges (minimum of 2), this will be used as the input for Bingo Butler to generate a random board for the game.
-
Run the following command to start the game based on the above, after running this command, the bot will wait for all participants to react to the generated message
!start
-
After all participants have been set, the bot (after some time) will @ mention the participants and send through an instanced URL to participate in the game.
-
The website will then ask for Discord OAuth authentication for use in the game.
-
Participants proceed with the game
-
Once the game has completed, it will @ mention the winner.
Note that the bot will clear most of its messages automatically, but there is a clear command as well to do it manually.
-
DiscordJS v12, a NodeJS Discord bot framework.
-
Socket.io, used for P2P connections
- Using v12 for DiscordJS API as new intents system in v13 does not allow for reading messages.