I am in an early state of designing a datastore system for my building game. I am wondering if it is a good idea to make a userid to only be used inside of the game universe.
For example, when a player first joins a game, the server assigns them a custom uuid. From then on, any builds that they save to slots or any items they upload to the workshop would be associated to that game-oriented-userid.
What is the use case?
If the user sends a data takedown request, my game would remove the association between their userid and their game-oriented-userid. Then, any content they have uploaded would be viewable from a menu, but trying to load in their data would return an error.
Why would I do this?
In the current iteration of my game, if a player sends a data removal request, it can take a while to remove all of their data (each save slot is its own datastore key). The program to remove data might have to be run multiple times to ensure that everything is fully removed. If I only have to delete two datastore keys (key: userid, value: game-oriented-id), (key: game-oriented-id, value: userid), then it would make things much easier.
Main question
So, would this be allowed? I know “data removal request” is pretty self explanatory, and the data should be removed fully instead of the associations. However, I am looking for as many potential easier ways to do things as possible before it is too late. As long as I am not displaying the data to anybody, would this method be okay to use?
As an alternative method, I could make it so whenever the server comes across data that has no associated userid to it anymore, it could delete the data. This would make it go away over time.
If anybody has any comments on this, please let me know. Have a good day.
Read my second and third paragraph. For some additional information, players right now have access to 101 save slots in my game and an infinite amount of workshop uploads.
Wait reading it again, each build you save is it’s own datastore key? Yeah def make 1 key and then save each individual build with a uuid under that 1 key then
About that, I have been looking into compression. I have tried out zib/deflate, but their system creates a string that doesn’t support datastores. The other solutions seem to only have a 20%-30% compression amount which doesn’t seem like too much.
Thank’s for your reply. Do you know if I can find any sources? I don’t mean to be rude, I just want to make sure since it’s on the more serious side of things.
I’m sorry. I don’t know if I replied to this properly. The data removal system is stated as very important by Roblox, and we’re obligated to respond to those requests. I want to know if the idea I thought of is pushing Roblox’s requirements.