Discord-To-Roblox Ban bot

Wow ! Seems like a cool bot. Added you on discord Julez#1221

1 Like

A very complex system. Its really cool that you guys are giving this away for free, considering how much work went into it. Thanks!

1 Like

I am not being aggressive at all, I am giving criticism on your open source code so you can improve it and so other people can actually rely on it as a banning system.

“Your solution” is not a good answer to the problem, and you were simply advised to change your code because it was not reliable on. This is not rude, this is giving criticism.

Not everyone here has the ability to program. This is community resources.

If you find criticism an act of harassment then honestly you shouldn’t be publishing open source code, everywhere you will get criticism.

You are contradicting yourself here, you are using google spreadsheets as a permanent datastore. What?

Exactly, it is not a good iea and it is completely not reliable on, that is why you were advised to change your code.

Are you implying using a database is hard? If so that is not true. Once more, you are open sourcing code for others to use, people who may not even know what programming is. If they are going to use your code to learn, they freely can as it is open sourced but that is not the main point of community resources. Also considering other people may learn from it, this is another reason why you should update your code, so other people do not learn bad practices.

11 Likes

Thanks for the suggestions, sure users who want to modify this system to their own preferences will find that useful. :slight_smile:

3 Likes

I agree with you, I misinterpreted your reply as an attempt at attacking us. Sorry about that.

1 Like

I think people are misinterpreting what the point of this thread is. This code was created to show that doing something such as banning people straight from a Discord Server is possible, and was open-sourced and could be modified to your personal needs. A Battle Royale game was recently open-sourced and some of the code didn’t work as intended, yet the following reasons why the creators open-sourced it was to allow other people to learn from the code, make something out of it, and/or modify it to their needs. Lastly, to those who think that this should be a simple drop-and-drop installation and made easy for developers even without much knowledge in Lua, you’re wrong. In my opinion, if you’re new to coding then this isn’t your cup of tea just yet.

edit: didn’t mean to make this a reply

14 Likes

I actually did something almost identical for this to give Discord Nitro boosters perks in game for my game.

I never actually implemented the reward (lol) but I got the game to the point where it could detect who was a nitro booster and notify people when they joined.

3 Likes

How was this done? Of course you don’t have to share, but it intrigues me that this is even possible lol

5 Likes

Pretty much, I made my discord bot check a list of people who are boosting the server when it starts up, then sends a call to the spreadsheet to write their discord ID down, and their roblox UserID down (obtained through RoVer API). From there, the game server can access that data and use it to provide benefits to the players. Basically, roblox isn’t the only one who can read / write to the spreadsheet haha. It also creates an event that is fired when a new player boosts the server, and writes their name down as the bot is already running.

I also made it so the game will automatically give players a role in the discord server when they reach a specified rank. This is done by having the game send a request to a webhook that the discord bot I made is listening for. From there, the bot will make sure the message was sent in a private channel (only I have access) and that there is no member object attached to the message (I’m using Discordia API for my bot because it uses Lua and lets me switch between roblox and the bot easily) If all this matches up, it’ll give the role.

8 Likes

As experienced node.js and rLua engineer, I would like to help your project further. Could you upload it on GitHub so people that are experienced can help you out?

PS: It’s more recommended to use SQLite instead of Google Spreadsheet. They can be checked by an endpoint.

4 Likes

Could you possibly make up a short little example? Not for giving out ranks, just for checking to see who’s boosting.

2 Likes

By default Discord has an integrated Nitro Booster Role whenever that user boosts a server, so if you want to get users who are boosting you can just check via that specific role.

2 Likes

Google spreadsheets are not meant to be used as databases. For some odd reason, many Roblox developers use it. Please don’t. Neat project.

2 Likes

I don’t want to open the IDE right now, but I’m using Lua in the Discordia API. Here’s how it work:

  • Cache all members on start
  • Iterate through members and check status
  • If booster, then send HTTP call
  • bind function to respond when a booster is added
3 Likes

What’s wrong with it? It seems to be working just fine for developers right now, and due to Google’s easily manipulable interface, you can edit and view data on mobile too. It’s very well rounded and much easier to perform save framework changes than even the integrated roblox datastore. I use the datastore for storing people’s data, but sometimes I’m tempted to use Spreadsheets considering how easily I could view & manipulate data in it. Not to mention, the discord bot could access that data and provide cool things like interactive gameplay elements within the discord server, or an external app could access it to let you edit your cars (for example) on mobile and view them in the game when you get back to PC.

3 Likes

I appreciate it lots, thank you so much :^)

2 Likes

Google Spreadsheets, while still being a free service, is definitely not meant to be used as a database, and should never be interpreted as a database. Sure, if you only have a couple thousand people’s worth of data, it could be easy to use and manipulate very easily. However, once you start reaching the high thousands, even hundred thousands, you simply cannot persist on using Google Spreadsheets as a database.

There are so many more free (extra emphasis on free) databases out there. Take any number of services, such as AWS, even setting up your own SQL database on a Glitch website (although I don’t recommend that), can work much more efficiently than a Google Spreadsheet. Google made spreadsheets for the ease of data interpretation and managing analysis of data, not for a spreadsheet of data.

This argument falls in line with why Trello should not be used as a database, even though more developers are attracted to using that.

Simply put, there are services, another emphasis on free, that are dedicated solely for database usage as compared to analysis and management.

3 Likes

@JohnnyMorganz There is a way to make it private you know?

1 Like

I’ll be fully honest, I don’t understand why everyone on this thread is so against Google Spreadsheets. Here are the pros to using this in a ban system;

  1. You wont exceed the request limit , its not going to be super constant.
  2. It is a ban system, you only use it when you want to ban someone from your game.
  3. Google Spreadsheets is free, and simple to use.
  4. The service hasn’t went offline in a LONG time.

Those are advantages, now I do understand that there are so many other sources better than Google Spreadsheets, but for a ban system, and for someone who is new to LUA and storing Data offsite, then I highly recommend spread sheets. All the recent suggestions are awesome, and I am sure people with experience who want to use this system will use those suggestions. @TheMaddestRedux also did a good job explaining that this system wasn’t created for the most efficient methods.

Thanks for all the recent replies, and I hope you guys continue to suggest and help others. :smiley:
Me and Stratiz will be editing the post soon to teach users how to make this work with a specific role only, and some more efficiency areas.

7 Likes

Spreadsheets is by design not a database nor meant to be used by one. It’s bad practice to support to use it in the first place.

1 Like