Increase initial datastore budget for high player count games

As a Roblox developer, it is currently impossible to allow all incoming players to a newly created high-player-count server to load from the datastore at the same time, immediately.

Currently, the start budget for each datastore command is the same regardless of player count. When our team shuts down our large 100-player servers for our game (https://www.roblox.com/games/920587237/Adopt-Me-OWN-A-SHOP), players have to wait a long time because, naturally, we make a lot of datastore requests when everyone joins at once. Additional, we’re exhausting the datastore queue because of the sheer amount of requests, which is causing player loading to error.

If Roblox is able to address your issue, how would it improve your game and/or your development experience? Please be as specific as possible.

This would give players much better load times. If this budget isn’t increased, we will need to implement our own datastore queue in order to ensure we don’t overfill Roblox’s provided datastore queue. This takes valuable time away from anyone building high-player-count games from focusing on features.

16 Likes

This is a problem I’m having myself with Redshift Arena. Could be I just wrote the system horribly, but I can’t have more than 1 person in the main menu at a time currently.

I feel like Roblox has the infrastructure now to increase the budget, and I completely support this change. :slight_smile:

2 Likes

Well you should always implement a queue anyhow, as limits can change. You can use the following:
https://developer.roblox.com/api-reference/function/DataStoreService/GetRequestBudgetForRequestType

If the limit isn’t changing by player count, you should change category to bug report.

2 Likes

Thanks @Semaphorism for your feedback.

Roblox actually already implements a queue. The only issue is that the queue is limited to around 30 requests before it drops future requests. If the Roblox queue or the initial budget can’t be increased, then we will definitely need a custom queue.

The budget does increase based on player count every minute minute. That’s not the problematic part though. The issue is the initial budget, which is constant regardless of player count. This forces players to wait a minute in a load screen for the budget to catch up. More info about initial and per minute rates here: Datastores: Initial values for datastore budgets are not documented

2 Likes

Are you doing more than one GetAsync request per player? The initial budget is 100 (last I checked), so you should be able to fire off 130 requests without errors, and only the additional 30 would have to wait.

We do around 3-4 per player

A version key, 1 for inventory, 1 for all other data, and 1 for issuing remote commands on player’s data while they’re in game.

We’re planning on adding 1 more call for housing, since people are running out of space to store all their houses under the inventory key.

4 Likes