Bingo Bot is a speedrunning race bot for Discord, originally developed for LittleBigPlanet by RbdJellyfish (no bingo functionality).
To get an overview of how the code works and where to start, see code_structure.md
.
Enable Application > Bot > Server Members Intent.
Install Node.js (LTS version or newer).
Get build tools.
- Windows: Install "VC++ 2015.3 v14.00 (v140) toolset for desktop" through VS Installer
- Linux:
sudo apt-get install build-essential
Get dependencies.
npm i
Create discord_auth.json
in the bingo-bot folder with your auth token.
{
"token": "discord auth token here"
}
Create a configuration file for your speedrunning server and put it into src/guild_configs
.
Run bot.
npm start
To run the bot on a server, I recommend PM2.
If you want properties on discord.js types to work, go to node_modules/discord.js/package.json
and edit this line.
"types": "../../src/discord/types.d.ts",
Pre-race commands
race
– Starts a new race, or joins the currently open race.quit
– Leaves the race.category [<game name> /] <category name>
– Sets the (game and) category.ready
/r
– Indicates that you're ready to start.unready
/ur
– Indicates that you're not actually ready.loads [<timespan>]
– Sets your (team's) loading time for the upcoming raceclearloads
– Resets everyone's loading times
Mid-race commands
done
/d
– Indicates that you/your team finished.undone
/ud
– Indicates that you didn't actually finish.forfeit
/f
– Drops you/your team out of the race.unforfeit
/uf
– Rejoins the race after you forfeited.
Co-op-race commands
team <entrant 1> [/ <entrant 2>…]
– Moves the slash-separated entrants into your team.teamname [<team name>]
– Changes/resets your team's name.unteam
– Leaves your current team.unteamall
– Disbands all current teams.randomteams [<team size>]
– Randomly assigns entrants to teams of the given size.
IL-race commands
level <level name>
– Sets the level.ilresults
– Shows the ILs that have been raced so far in this series.
Stat commands
status
/s
– Shows the current race status.result [<race ID>]
– Shows the results of the given/last race.leaderboard <game name> / <category name>
– Shows the Elo leaderboard for the current/given game / category.me <game name>
– Shows your race stats for a game.runner <user> / <game name>
– Shows a user's race stats.
Other commands
help [<command name>]
– Shows a list of commands or details on one command.
Moderator-only commands
as <@user or ID> <command>
– Calls a command as the specified user.clearrace
– Ends the race immediately.fixelo
– Recalculates the Elo leaderboards.removerace <race ID>
– Deletes the given race.