How to go about developing a server database without meeting Datastore limits?

I’m trying to develop a database of Reserved Servers that players create and have them centered in a list of servers that any player can access.

I’m worried that storing them all in a single Datastore Key would inevitably meet the key limits, and that making multiple keys for a single server list would become complicated quickly.

Are there any other ways to go around this using Roblox, and if not, what are some good methods that take advantage of HttpService that isn’t extremely expensive?

Well, you could just create new datastores when they get filled up.

Just said this lol. Seems like that would get very complicated and inefficient.

Would it be possible to JSONEncode/JSONDecode the data?
Strings most probably take much less data than tables.

The datastore limit’s are REALLY high, unless you’re worried about saving the data too many times, then you shouldn’t worry, because I don’t think a single game has manages to cross the limits:

Request Type Methods Requests per Minute
Get GetAsync() 60 + numPlayers × 10
Set SetAsync(), IncrementAsync(), UpdateAsync(), RemoveAsync() 60 + numPlayers × 10
Get Sorted GetSortedAsync() 5 + numPlayers × 2
On Update OnUpdate() 30 + numPlayers × 5
Request Type Methods Cooldown
Write Requests (same key) Repeated SetAsync(), IncrementAsync(), UpdateAsync(), or RemoveAsync() 6 seconds between write requests

Component Maximum Number of Characters
Key 50
Name 50
Scope 50
Data 260,000

AFAIK Tables are auto encoded/decoded through datastores

1 Like

I would probably just create my own system using Amazon Web Services products. They’re not very expensive at all and can be scaled with usage, so for a small game you’d probably pay nothing at all, but even large games won’t cost much if you’re just using it for this server list, and not for regular player data.

You might be able to make use of OrderedDataStores if you just store the reserved server ID as the value. You can get all entries using the GetSortedAsync method.

1 Like

You can also use 000webhost and make your own online system. Thought it’s in PHP with a MySQL database, so if they don’t want to learn it, there are other, better options.