Inspiration
Imagine this: you are gaming with a group of close friends on a Discord server when BAM! An uninvited guest wanders in through an old permanent link that they somehow got hold of. Instead of leaving, they share the link to everyone they know, sending a swarm of strangers and scammers into YOUR safe haven. Not only do they invade your personal digital space, but they also rage-bait you and spam you with bots. This is unacceptable. If only there was some way to prevent this and also diss these intruders. That's why we made DISScord.
What it does
Here at Pacemakers, we created DISScord to automate preventative Discord modding. DISScord is an advanced network of Discord bots that stop malicious and mischievous users from entering your servers through a series of preventative measures.
Firstly, if an unauthorized person gets hold of your server invite link, the first thing they meet is Gandalf, who demands a password, a feature a server does not have by default. If the intruder does not pass the defences, they are banished to a separate channel where they are constantly verbally insulted with no way out unless they leave the server. If, for some reason, they can guess the correct password within 3 guesses, they are put into our second layer of defence, human verification.
The intruder needs to submit a photo of themselves, which would be saved into our database. Originally, we wanted this to be marked for human review. However, upon reflecting on the theme, we thought it would be more appropriate for us to automate the process by dissing the newcomers for a prolonged period of time. For intruders and untrue friends, they would think this is all there is and flee to avoid the spam, but for your true, real friends, they would stay till the end of the barrage, where they'd be permitted to enter the server, featuring an AI Discord Chatbot and an AI Discord Chatbot Rap Battle.
Other preventative measures
If multiple attackers are brought along, to avoid spam and confusion, we made it so that only one user is allowed to enter the Discord server at any given time, meaning Gandalf is always one-on-one with the intruder.
How we built it
Learning Python as we went, we originally only thought about making the security mechanism or the insult bots as separate projects, but as we progressed further, we realized that they would both be so much better in the same system.
Essentially, there are 3 main types of bots in the server: an authenticator, an aggravator, and the lackeys. The authenticator is responsible for weeding out the initial joiners. This bot is responsible for giving users their respective permission levels, roles, and access to channels. The aggravator is a bot that receives an input from the user and then calls upon other bots to help achieve a certain goal. For this project, it is for dissing users. The last type of bot is the lackeys (like the slaves in I2C). They carry out what the aggravators tell them to do.
To create unique insults and messages, we decided to try something neither of us have ever done before, which was to incorporate AI into our code. For the unique roasts, we use qwen2.5:7b and qwen2.5:1.5b depending on their task load (for processing images and creating rhymes or for just creating general roasts).
Challenges we ran into
This entire project was quite a challenge for us. Both of us have never even touched Python, so the first thing that we did was look up a basic tutorial on syntax and how to even write the language. As we progressed through the project, we hit a roadblock where we couldn't figure out why certain parts of the code didn't run and why the bot couldn't function as expected. This led us to look toward the forums online and to scour YouTube for more up-to-date tutorials, such as tutorials that talk about the "intent" function of coding a Discord bot and integrating an AI with the system. There were also the functions that we never got working. We wanted to go far with this project, but in the end, we had to cut our losses due to time constraints (such as making overlapping TTS messages and joining voice calls).
Accomplishments that we're proud of
To say that we aren't proud of anything would be a lie. We woke up yesterday morning and decided to take on a seriously difficult challenge. Although it would've been much easier for us to code in a language we knew, such as Arduino's version of C and Java, we wanted to experiment with new languages and test our will for learning. We're proud that we were able to not only learn a new language, but also compete in a Hackathon with entry-level knowledge for a bot/system we've never made before. For non-coding-related accomplishments, we've also tried experimenting with new video-editing technologies, such as using the fusion page of the video editor. Although it took quite a bit of time, we are proud that we were able to explore this new field of editing.
What we learned
In this hackathon, we learned many things. We learned Python. We learned to integrate AI. We learned how to code for Discord bots. We learned to use Fusion in DaVinci Resolve. We learned to research and find the correct forums and videos. We learned to look not just at forums such as Stack Exchange, but also to look into the official documentation for commands, only to find that the problem was just a lack of authorization in the Discord Developer Portal. We learned that we aren't limited by our known coding languages and that we can develop a skill (learning Python) in under 36 hours. But most importantly, we learned to persevere through hardship and approach problems from different perspectives.
What's next for DISScord
We hope to implement some of the features we wanted to include, but couldn't. This includes making TTS overlap with each other. Hope to enable the Discord bots to have some sort of calling feature, where they could drag someone into a call or ring someone. We hope to improve the kicking members feature, since as of right now, with enough rejoins, the bot gets overwhelmed or Discord questions the humanity of the user trying to enter the server. This could be improved by using some sort of banning and unbanning system that we have yet to implement. We also wished we could make the rappers stop rapping with a command, but due to time constraints, this was unfortunately unfinished. Most importantly, I think that the best feature to add is some sort of firewall or tertiary defence mechanism to stop hackers and malicious web traffic.
Note: the GitHub repository does not include the .env files nor the discord.log file. Note: the Discord link expires in 7 days, and there is also no guarantee that the bots will stay online after the hackathon is over.
Built With
- discord
- python
- qwen
Log in or sign up for Devpost to join the conversation.