This bot tracks defeated bosses by boss and channel in an easy-to use way. Simply click the boss in a forum channel list, then select the channel the boss was defeated in to update the tracker for everyone. You can also display a personal channel change cooldown to keep track of who will change next when chaining bosses. Screenshots are below.
A Discord account with developer mode enabled and Node.JS. If you're not familiar with Node.JS or working with developer applications and Bots on Discord, please see this guide and follow the sections below.
- Clone or download the repository.
- Edit
.env
to supply the necessary values. - In a terminal, change to the directory.
- Run
npm install discord.js dotenv
. - Run
node deploy.js
to deploy commands. - Run
node index.js
to start the bot (for automatic startup and recovery, I recommend PM2).
- Create a new forum in your Discord server and give it the following permissions:
- Everyone:
- Deny ALL
- Bot
- Allow Send Messages in Posts
- Allow Embed Links
- Allow Read Post History
-
For each boss: Create a forum post with the title of the boss and your preferred picture of the boss.
Note: If you want the boss tracker forum to be sorted alphabetically, it is recommended that you set the forum sort order to Creation Time, then post the bosses alphabetically reversed (Z-A). -
For each boss: Use the /say command to issue placeholder messages. You need a placeholder for each channel, then an extra placeholder for the sorted list.
/say message:Time not set.
Use the /interaction command after the placeholder messages have been created.
/interaction create:Boss Timer bossmenu:<boss>
- Shut down the bot.
- Edit
exports/bossMessageID.js
and copy the placeholder message ID's of each boss to the corresponding to their order (first to last message). The last placeholder message ID before the interaction menu does not need to be obtained/configured.
- Start the bot.
- Set the forum permissions as follows:
- Everyone:
- Deny ALL
- Allow View Channel
- Allow Read Post History
- Allow Create Invite at your discretion
- Bot
- No changes
You're ready to go!
If and when channels are removed or added from servers (usually after a patch), the files commands/interaction.js
and exports/bossMessageID.js
will need to be updated to reflect the channel availability.
Specifically for adding new channels, placeholder messages may need to be regenerated for formatting reasons, as it will not show contiguously if new messages are added. Step 3 of Discord Setup, as well as both steps in Configuring the BOT will need to be repeated.
Using an internal persistent database would save a lot of manual work on future updates regarding channel changes. Additionally, a single message embed could be used rather than many individual messages, which would allow for easy formatting changes. At this time, such a change is not being actively developed by me.