QuestBoardDiscordBot is a Python Discord bot for managing an interactive quest board inside a Discord server.
The bot is designed for roleplay communities, game servers and small groups that need a structured way to create, display, accept, complete and archive quests directly in Discord.
- Create quests with title, description, reward, difficulty and quest giver
- Display quests as Discord embeds
- Accept quests through reaction interaction
- Track the team that accepted a quest
- Complete or fail quests through slash commands
- Award or subtract team points based on quest difficulty
- Show a team leaderboard
- Edit and delete quests
- Archive completed or failed quests into a dedicated Discord channel
- Persist quests, scores and quest counter in MongoDB
- Flask keep-alive endpoint for hosting platforms such as Render
/quest_create Create a new quest
/quest_list Show all quests
/quest_complete Mark a quest as completed
/quest_fail Mark a quest as failed
/quest_edit Edit quest description and reward
/quest_delete Delete a quest
/leaderboard Show team rating
- Python
- discord.py
- Discord Slash Commands
- MongoDB
- PyMongo
- Flask
main.py Bot logic, commands, MongoDB storage and Flask keep-alive endpoint
requirements.txt Python dependencies
.env.example Example environment configuration
.gitignore Local files, secrets and cache exclusions
The bot expects these variables:
DISCORD_TOKEN Discord bot token
MONGO_URI MongoDB connection string
PORT Optional hosting port, default is 5000
Do not commit real tokens, passwords or private connection strings to GitHub.
- Clone the repository.
- Create and activate a virtual environment.
- Install dependencies:
pip install -r requirements.txt- Create environment variables using
.env, system variables or your hosting provider settings. - Run the bot:
python main.pyWork in progress. The project is suitable as a portfolio Discord bot, but future improvements may include modular command files, better error handling, role permission configuration and cleaner storage abstractions.
Created by HardesFaktorProg.