How would I go about fixing throttling(Datastore2)?


This is my first time encountering such an issue and I don’t quite know how to resolve it.

Edit: My story game relies on a Lv datastore2 system which is called on as soon as the player joins the game. The players then choose a role(ItemDataStore:Set()) which then carried on into the place much like Break In.

You are sending way too much requests

Usually this means that you’re sending/calling a ton of DataStore functions in such a short span of time, try limiting the amount of queueing you’re doing

1 Like

I am fully aware that there is too many requests. The confusing part for me is that the game starts throwing this error not immediately, but rather about 8-9 hours into the server, and caused a huge dislike wave on my game. Also, I don’t quite know what the game exactly means by “too many requests”.

W h a t, are you sure you don’t know? That warning means that you’re calling SetAsync/GetAsync too frequently

Also a bit strange, could we see the script?

This isn’t the issue if he’s using Datastore2. Datastore2 will rarely send requests. There must be another issue

1 Like

Because Datastore2 does not use leaderboard systems I fire an Event to regular datastores to save data for a leaderboard as soon as a player joins the game which uses GetAsync/SetAsync. Is this the issue?

Most likely, you should be saving leaderboards on a time interval, I use every 200 seconds, for the entire server. It will be a bit delayed, but it won’t break it.

Basically just save the leaderboard data for EVERY player every 200 seconds, You could go lower but I’ve never tried, and 200 seconds isn’t too bad for a Leaderboard.

1 Like

I save to the leaderboard every 60 seconds is that too small an interval? I read an article that says that requests are judged every minute or something.

It might be a little small, I’d try 100 and see from there

1 Like

The only practical times that you should be saving data is every few minutes, or when the player leaves.

1 Like

I’ll try it out! Thanks for the info! This issue has destroyed the ratings for my game pretty badly.

If you have lots of concurrent players then 60 seconds isn’t a good interval. Try 100-200 seconds as mentioned above.

2 Likes

For leaderboards, you dont need to save on leave. Having a small amount of delay on a leaderboard is not worth the extra requests it can call. A leaderboard will just update next time they join anyaway.

Each game server is allowed a certain number of data store requests based on the number of players present (more players means more data will be needed). Server limits are based on the kind of request being made.

GetAsync() —> 60 + numPlayers × 10

SetAsync(), IncrementAsync() , UpdateAsync(), or RemoveAsync() —> 60 + numPlayers × 10

GetSortedAsync() —> 5+ numPlayers × 10

1 Like

is numPlayers based on the game’s concurrent players, or the server’s NumPlayers?

Numplayers is based on how many people are in the server.

1 Like