Right to Erasure request

I got a “right to erasure” request from roblox asking me to delete someone’s data in 2 games. I The only datastore I had in either of those games was Kohls Admin which is a really really big problem because I can’t get the datastore key to delete the data with a script. Is there anyway around this? (Like deleting the admin script, etc.)

Did the script even store any data for players?

Brings up a good point. People who are unexperienced will have difficulty removing data like this when they are not the one that made the data.

The datastore key related to admin saves is "KSave"
I would also check "KPrivateServers".

Here is a function you can try using to remove the save info on a specific person, but hopefully preserve all of your admins. :

local DataStoreService = game:GetService("DataStoreService")

local DataStore = DataStoreService:GetGlobalDataStore()
local Save = DataStore:GetAsync("KSave")

local function Erase(UserId)
	local NewSave = {}

	for i, Value in pairs(Save) do
		NewSave[i] = Value:gsub(UserId .. ":".."%-?%d*", "")
	end

	DataStore:SetAsync("KSave", NewSave)
end

Erase("USER_ID")

Here is the source code for the kohl’s admin save function. The admins are inside an array saved by the KSave key.

f.Cache = function(a, b)
    b = ""
    for i, v in next, a do
        if v < 0 and v > -6 then
            b = b .. " " .. i .. ":" .. v
        end
    end
    return b
end

f.unCache = function(a, b, c, d)
    b = {}
    for i in a:gmatch("%S+") do
        c, d = i:match("(.+):(.+)")
        if tonumber(d) > -6 then
            b[tonumber(c)] = tonumber(d)
        end
    end
    return b
end


f.ForceSave = function(a, b, c)
    a, b =
        wrap(
        function(a, b)
            a = {f.Cache(Admins), f.Cache(Bans)}
            if Set.IGS then
                b = {}
                for i, v in next, Set do
                    if i == "Color" then
                        b[i] = v.r .. "|" .. v.g .. "|" .. v.b
                    elseif i ~= "GroupAdmin" and i ~= "VIPAdmin" and i ~= "Permissions" then
                        b[i] = v
                    end
                end
                table.insert(a, s.HTTP:JSONEncode(b))
            end
            DS:SetAsync("KSave", a)
        end
    )
    if not a then
        print(SN .. ":\tSaving data failed!", b or "")
    end
    return a
end

1 Like