My personal Star Citizen focused Discord bot had reached a point where I wasn’t sure what I wanted to do with it. I don’t run my own corp, and my current corp has a Discord bot that’s got more features than mine, so I kind of left S.A.D.I. running on my personal server without any plan or future.

The closure of CouchBot, though, opened an opportunity on our Wombattery Community server. We had been using CB for many of our needs, like announcing when a streamer went live. Although we have a few other bots on the server to handle a few other features, as a “streamer community” having that announcement service was kind of a big deal.

Enter WomBot (name courtesy of Arkenor). WomBot is based on S.A.D.I. because she’s got a few features that were born out of our initial discussions on what we felt we needed for the Wombattery Way Back When, with some new features added in.

The first carryover from S.A.D.I. is the “Lobby” feature. This allows admins to specify a channel and a role. When a new user arrives, he will be given the @everyone role and dropped off in the Welcome channel. This channel is locked down tight and contains only our server’s EULA. When a lobby is set, WomBot adds a boilerplate message to the bottom of the channel with 2 reactions: Accept and Reject. If the user clicks Reject, he’s booted from the server. If he clicks Accept, he is granted the role specified by the admin when the Lobby channel was defined. The idea here is that @everyone can only read the contents of the Lobby, and cannot see any other channel on the server. Once he Accepts the server bylaws, the role he is granted allows him access to a select number of other channels.

Since that was already up and running, and because I couldn’t access live stream APIs from certain places where I was developing, I moved on to another wish list item I had: profiles.

One of the major shortcomings of Discord is that you can’t really use your membership to tell other members about you. There’s the “presence” tag which shows others what you’re playing, and members can leave notes on your Discord member card for themselves, but that’s about all.

This advanced profile system, then, allows users to specify a blurb for themselves, to provide info on their social media presence, and most importantly, to list games, characters, and servers they are playing. The Wombats are pretty nomadic group, but on occasion we all get a bug to play the same game, and then a flurry of questions about servers and names starts to swirl. With a profile, users can update their own info and have it available to anyone who might need to know something about someone.

I’ve also started stubbing out a new XP system. We currently use DynoBot and Mee6 to provide level-up services and actions taken based on a user’s current level, but I figured that if I were already working under the hood of a bot, I might as well roll all of our disparate services into one single source. One of the good things about our current multi-bot setup is that we’re able to award XP for participation, so when a user reaches a certain level, we can offer him or her certain perks, like being able to accept the “content creator” role that let’s them see and participate in additional channels.

In constructing this I realized that it could feed into the live-stream system, as I have coded Twitch, Mixer, and YouTube into the social media fields. If someone provides a Twitch handle, for example, when they qualify to be a Wombattery Streamer, we could simply pick up their handle and start announcing their go-live events without any fuss on their part or on the part of the admins. Currently we trigger a DM to a user who reaches a certain XP level that he or she is now eligible to get the “content creator” role, but they have to elect to accept it. With the profile system working with the XP system, we can start announcing streamers when they go live (if they just have a streaming account for viewing and not for streaming, that’s OK! We won’t ever announce anything from them).


Owner and author.

Leave a Reply

Your email address will not be published. Required fields are marked *