The making of Ugly Bot

HunterRanger

The Making of Ugly Bot

Introduction

About 4 months ago I started working on a personal project of mine called Ugly Bot(A discord bot). This basically came to existence as a result of me having to go through lots of difficulty to organize raids and gather people and assign them things necessary to complete a raid in Neverwinter (MMORPG Game). This was just built for my use and was a personal project of mine at the time. However due to the interest from the community and many requests from friends to use the bot. I decided to make it publicly available to install and use, and furthermore I have made it open source as well under MIT Licence.

The Uses

UglyBot is a highly versatile discord bot that leverages AI to interact with users and aid in the creation of raids. The bot has the ability to create a raid and allow users to sign up with their class and Items that are essential for a raid, for example a class would be something like a Wizard and the Wizard may have some artifacts that may be useful in the raid.

One of the other key features of UglyBot is the ability to interact with users through the /ask command. This feature was made possible by the use of OpenAI, which provides a natural language processing API that enables the bot to understand and respond to user queries. I have also experimented with one such feature which takes in a natural language request from a user and translate it to intermediary code and then perform some specific functions on discord. One such example would be for example a user can ask the bot a simple thing like changing the time of a raid in any format they like and it will perform that.

NaturalLanguageDialect

It also offers several other features the latest addition to it was the Raid Summary. It was quite fun and at the same time exiting to work on this, I also happened to pick up a few things along the way and added to my technical knowledge specially around discord API / OpenAI.

The Impact

In just a short time, UglyBot has made a significant impact in the discord community, currently serving over 1,000 users across 50 discord servers, considering this was only made for a game with about 3000 Daily active users I consider this to be quite an achievement. Despite its diverse technology stack and widespread adaptation, the cost of running the bot is nearly zero USD, making it accessible to users free of charge even till now. This is due to cost-saving measures put in place, such as utilizing AWS free tiers and architecture to efficiently manage resource utilization.

The Technology

For the tech enthusiasts, the technologies used in the development of UglyBot include AWS Lambda, API Gateway, EventBridge, DynamoDB, and SQS, which work together to provide scalable and reliable services for the bot. Additionally, Pulumi was used to provision the infrastructure, making it easier to manage and deploy the bot. You can find out more about UglyBot and its technologies here, you are also welcome to contribute here.

Architecture