A recent issue that is believed to have caused DataStore calls to return nil and that led games to inadvertently wipe their players’ data has re-ignited the developer community’s attention and scrutiny towards DataStores as a service.
This isn’t really new. Poor reliability with DataStores is an issue we’ve been fighting for a long time. A lot of developers don’t realize that DataStore issues are far more common than they might think. DataStores quietly fail whenever there is a large spike of traffic to Roblox.
During these outages, players can lose much of the time and sometimes even money that they’ve put into our games.
Here’s a chart that I made while I was an Incubator at Roblox:
Using GameAnalytics, I tracked the amount of users affected by DataStore loading issues (how many players were delayed or could not get into the game at all due to DataStore issues. Errors saving data not included) and then divided it by the total player counts for each day to get:
Around 9/15, almost 12% of players had difficulty entering my game due to DataStore issues throughout the entire day. This outage only lasted a couple hours, so that rate was certainty much higher during the outage.
A lot of top developers are starting to notice these increasingly massive DataStore outages, usually on weekends or holidays. @callmehbob was forced to implement an external web server for her game Royale High to hook up to using HttpService whenever DataStores start failing:
https://twitter.com/nightbarbie/status/1071579451303972864
This is unacceptable. With the revenue split that Roblox has in place, these vital services that are offered to developers HAVE to work. Something as crucial as player data saving can’t fail this frequently.
As developers, we need to be able to reliably save and access our player’s data without having to purchase and maintain an external database.
Please address these long-standing reliability issues.
Developers: please comment your experiences below. Have you received reports from players about data wipes or data loss? Do you track DataStore errors?