Allow us to store data locally (to the ROBLOX directory)

TL;DR Allow developers to save data to the client’s computer - in the ROBLOX file directory, as a .txt

As a Roblox developer, it is currently too hard to save and load data on a pretty massive scale, considering a game is single-player. A campaign game requires a lot of data saving to do, such as whether certain events have been triggered, when, but also - especially in freeroam games - vehicles/weapons dropped by the player, his last position, how far into the game the player is, whether certain missions have been finished or not, certain unlocked outfits, tons of perks, and hundreds of stats, or looking at it from a more minecraft-esque perspective, saving hundreds of chunks of procedurally generated terrain which can be modified in runtime and saved. All of this can be done by saving it to the cloud datastore, but it will require a lot of unneccessary compression and, as all online services, simply fail to load and possibly erase hundreds of hours of gameplay. Not to mention the fact that eventually the datastore will be capped and data saving of all that info will no longer be possible.

If Roblox is able to address this issue, it would improve my development experience because:

  • it would unlock a basically infinite datastore which could be used offline
  • games could be played in offline mode (like actual singleplayer games)
  • it would provide significantly faster and safer data loading
  • singleplayer games could be more viable and fun, because no longer would data be capped at a limit requiring compression and take forever to load
  • games could become more versatile and powerful as the game engine grows and supports better graphical adjustments, which could mean huge open world games - all on ROBLOX

A possible solution would be an API that would create/remove a .txt file. This could not be used for malicious purposes, because the .txt couldn’t be turned into a command file by itself.

13 Likes

Currently, the only features we have for local file saving is Plugin Settings, which save in JSON, not raw text

The Studio:PromptExport functions are not implemented however in their current stay they may only allow exporting as rbxm, rbxmx and lua.

This is a big yes from me.

2 Likes

It wouldn’t be an “infinite datastore”, as you’d suddenly be bound by the user’s available storage. A developer could misuse it and fill the computer storage full of rubbish.

When would it clear? Why should my pc be full of data from a game I played once and never intend to play again? What if I play once, leave for a year, then come back and want my data to still be correct?

Many Roblox users are not computer experts and wouldn’t understand how to clear old data or why their computer suddenly won’t work.

Then, you have to consider that people have multiple devices, or might get a new computer. Their old computer might have died so they have no way of retrieving the save file. I don’t want to start a new save file on each device I play on.

I think it would need to be limited in size, time based, require permission per game, and a few other limitations, which I think would make it difficult to use in some of your scenarios. The benefit of cloud is that it’s consistent and the limit is constant. Using local storage is far from infinite and in many cases would be more restrictive than cloud storage.

17 Likes

Is this in the wrong category? It’s in Studio Features right now, but it looks like you mean for this to be used to store player data locally on their devices, not just in Studio. So it should be in Engine Features.

I think it would be neat to be able to store game-specific settings on a user’s device. I don’t think player data should ever be stored locally for reasons explained above, you’d want that to travel between devices.

5 Likes

Until there is ‘local singleplayer’ support for games (which probably won’t happen), there is no purpose for this feature since games, as is, depend on DataStores.

Cloud Datastores are gaurenteed safe (no client manipulation), have essentially no limits on your part as a developer, and have strong reliability since they are backed and provided by Roblox.