MongoDB Client for Roblox

I am working to develop a MongoDB client for Roblox as a datastore solution due to the ease of use. Saving data using Mongo would allow for a lot of flexibility when it comes to viewing your data. It can be view/edited on the website and you can use the API for accessing the Roblox data using a Discord bot or on a website.

I was thinking that the best way to accomplish this is developing my own backend to handle the requests and setup all the functions on there. Developers can then just use the Roblox module by putting in their connection string.

I’d like to hear everyone’s thoughts on this, what you guys would want added, and what you think is the best way to accomplish what we are trying to do.

8 Likes

Yes, I think that developing some sort of back end wrapper in some common language such as Node would be handy, but I don’t know exactly how you’d pull it off.

  1. Said user uses some sort of connect() function in your module.
  2. It connects to your own Node wrapper.
  3. Allow HTTP requests to that server.

I would recommend a custom domain for this, it may be a bit pricy but then people don’t know your IP.

Happy coding. :grin:

Personally I’ve used MariaDB and Cassandra for these kinds of things before, its definitely doable but you’ll need to do some research for the best host that’ll suit your needs as it can get really expensive.

I did want to mention that I’ve seen some developers create systems like this using PHP where as they could have used NodeJS as its a lot more efficient and faster than PHP.

Though all together I’d just use Roblox’s datastores if I am just looking to store player’s data, but if you’re looking to do more than just that, where you’re tracking some analytics or just want a remote control over the data then this’d be the way to go.

Yeah, I plan on using a custom domain. The way I think the API is going to work is that you send a POST or GET request to http://example.com/mongo/function and include the connection string and args in the body.

1 Like

Having a domain sadly doesn’t hide your ip. When you make a request to a domain its up is looked up and connected to. To actually hide your server ip you’d need to use something like cloudflare or just buy a server host.

Also good luck with the API! It would definitely be useful to have a Mongo API on Roblox especially with how finicky and limited DataStores are.

7 Likes

I like the idea. I’ve worked with MongoDB in the past and found it incredibly useful.

Personally, i’d create a mongo collection for each unique userId and store any data you need to save as documents in this collection - this way would probably make it easier to remove all user data if you ever got a GDPR data removal request.

Using PHP I tend to create a Data Access Object (or Dao) as a class, which handles all requests to mongodb usually for a specific database. I then construct a model class using the Dao which maps the documents in a given collection to variables in the model.

1 Like

I know, it would just be a little bit harder.
Now that I think of it, it’s completely useless anyway, because it’s your public IP address. Maybe you could use glitch.com? It’s a viable host.

Glitch is a good testing ground but would not recommend it as a permanent host due to its small request limit and large latency.
4000 requests per hour inbound and outbound.

2 Likes

I’d just like to echo another user on the -real- cost of a website or server. As popular as Roblox is, with some place visits hitting 2 billion or more, I would call and personally speak to a higher level tech at your hosting company. They all offer “unlimited” this and that. What they mean is very limited this and that.

If you are doing anything with a server that’s storing and writing databases, things begin to break after the 50,000 entry mark or so, requiring more dedicated or vps server spin-ups, more database maintenance, etc.

So… if I was going to use anything with domain+database+high-traffic-Roblox I’d be dedicating a major part of my budget for server infrastructure and a dedicated IT person/team member.

Things always run smoothly when you have a few users. Web apps and sites must be stress tested in order to see what will happen when you are popular.

Edit: I use DigitalOcean for $5 a month VPS testing. I searched for DigitalOcean promo codes and found one that matched the amount I signed up for. Not bad… but they are VPS not dedicated. Cloudflare+Backblaze will give you nearly free bandwidth for high traffic static assets. For databases with high use there are no free lunches.

Have you looked into mLab? They offer a free “sandbox” tier, and they have a REST API for performing operations on your databases.

https://mlab.com/

There’s also jsonstore.io as an alternative; however, it does get DDoS’d a lot and there’s no real security on it.
Jsonstore.io Module

2 Likes

Just out of curiosity, why not just write your own functions in your application using clients made already by other people and simply send requests to them with your data instead of creating your own client? Pre-written clients have a lot of support due to a large of people using them and also little to no bugs because of people reporting and fixing them daily. I personally I wouldn’t use this for security reasons.

Heroku offers free node hosting as well as Mongo hosting and you can upgrade in the future. As far as I know there is no request limit and it’s relatively fast for a free service. It also offers domain support as long as you purchase a domain to use.

1 Like

I plan to use my own servers for it.