A Discord bot built with discord.js that manages tierlist testing queues, assigns ranks, tracks tester activity, and displays leaderboards — all through slash commands and buttons.
Perfect for PvP / SMP / gamemode tierlists where staff test players and assign ranks.
- 🧾 Create and manage tierlist queues per gamemode
- 🔘 Button-based queue joining
- 🧑⚖️ Tester-only commands with admin override
- 🏆 Rank players and automatically manage Discord roles
- 📊 Persistent leaderboards per tierlist
- 🧠 Remembers previous ranks and removes old roles
- 🎟️ Optional auto ticket creation for queued players
- 💾 Data saved locally using JSON files
- Node.js v16+
- A Discord bot application
- A Discord server where you have admin permissions
-
Clone the repository
git clone https://github.com/yourusername/tierlist-bot.git cd tierlist-bot -
Install dependencies
npm install discord.js
-
Configure the bot
Editconfig.jsonand fill in:- Bot token
- Channel IDs
- Role IDs for testers
- Rank role IDs
- Queue limits
-
Start the bot
node index.js
If successful, you should see:
Tierlist bot online 😎
If using bought server then set it to launch from index.js
Each tierlist (e.g. mace, sword, axe, smp) supports:
roleID– Role required to manage that tierlistchannelID– Channel where the queue is postedmaxQueue– Maximum queue sizerankRoles– Role IDs assigned for each tierticketCategoryID(optional) – Category for ticket channels
Example:
"mace": {
"roleID": "TESTER_ROLE_ID",
"channelID": "QUEUE_CHANNEL_ID",
"maxQueue": 20,
"rankRoles": {
"Champion-Tier": "ROLE_ID",
"Contender-Tier": "ROLE_ID"
}
}Start a tierlist queue
Permission: Tester role or Administrator
Stop an active queue
View ranked players for a tierlist
Assign a rank to a player
Automatically updates:
- Discord roles
- Leaderboard stats
- Previous rank removal
Options:
- Discord user
- Tierlist
- Rank (auto-complete)
- Minecraft IGN
Add or remove testers from a queue
- Players join using a Join Queue button
- Queue updates every 10 seconds
- Auto ticket creation for the first player (optional)
- Tickets close automatically once ranked
leaderboard.json– Number of tests per playerlastRanks.json– Last assigned rank per tierlist
These files persist between restarts.
Bot requires:
- Manage Roles
- Manage Channels (for tickets)
- Send Messages
- Use Slash Commands
Apache License