GDPR and CCPA requests

Hi guys, I’ve recently had a question about these requests. Can, or does Roblox in any way access your Experience’s DataStore and remove it manually / automatically, or do you have to do that yourself?

1 Like

You have to do that yourself. To remove any existing data, you’d need to use DataKey:RemoveAsync(PlayerKey).

A player key looks like this, depending on how you programmed it: Player_292811 (numbers being their userID).

1 Like

Is there any occasion in which Roblox has ever edited a DataStore?

Pretty sure no, but if Roblox ever resets their servers (FULL RESET). then its all gone. You’re going to have to technically manually add the data your self (the data you want to store).

Hello All,

The inefficiency of GDPR messaging is a known issue, we are working on a fix that will allow requests to be sent via email or sent as payloads via Webhooks. Stay tuned for a late-March early-April release.


That’s nice, however, I won’t support a feature in which Roblox deletes data automatically, if you ever add it, because it could be game breaking. If you have data, like ban data inside a user’s data, and it gets deleted, it may allow them to get back inside.

Webhooks would deliver User ID and Experience ID of requesting Users to the Creator. How they want to handle those parameters is up to them, as long as it falls within the legal parameters set out by GDPR. I advise keeping a back-up of ban data else where if you’re currently storing ban data in user data.


I really don’t think it’s a problem if they make a change to their servers, I just use UpdateAsync
to avoid the loss of data but the truth is that what they are planning seems very good

I think an event in the PlayerService would be good, like this:

local Players = game:GetService("Players")


end) -- Would get new removal requests through the Roblox API itself, no need to set a webhook by yourself.

Players:GetRemovalRequestsAsync() -- Table which would have all the current removal requests with each userId, up-to-date, by fetching it like a :GetAsync() but with no cache

The reason why these should return userIds is because they might not be inside a game as a player when their request goes through Roblox Support.

You can think of :GetRemovalRequestsAsync() sort of :GetAsync() from a DataStore (but it would be important that it doesn’t cache)

.OnRemovalRequest as the deprecated .OnUpdate DataStore event

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.