local KEY_PREFIX = "userid_"
local ds = game:GetService("DataStoreService"):GetDataStore("PlayerValuesDataStore")
local profilesHolder = game.Workspace.Profiles
Debounce = true
function saveToDataStore(plr)
if Debounce == true then
Debounce = false
local key = KEY_PREFIX .. tostring(plr.userId)
local profile = profilesHolder[plr.Name]
local value = {}
for i,v in ipairs(profile:GetChildren()) do
value[v.Name] = v.Value
print(v.Name .. " = " .. tostring(v.Value))
end
ds:SetAsync(key, value)
wait(15)
print("Saved")
Debounce = true
elseif Debounce == false then
print("Not ready")
end
end
function loadFromDataStore(plr)
if Debounce == true then
Debounce = false
local key = KEY_PREFIX .. tostring(plr.userId)
local data = ds:GetAsync(key)
local profile = profilesHolder[plr.Name]
local profileItems = profile:GetChildren()
for i,v in ipairs(data) do
profileItems[i].Value = v
print(i .. " = " .. tostring(v))
end
wait(15)
print("Loaded")
Debounce = true
elseif Debounce == false then
print("Not ready")
end
end
game.Players.PlayerAdded:connect(function(player)
player.Chatted:connect(function(msg)
msg = msg:lower()
if msg == "/save" then
saveToDataStore(player)
elseif msg == "/load" then
loadFromDataStore(player)
end
end)
end)
This is supposed to go through game.Workspace.Profiles and find all the values then save them and their values to a datastore. The problem is it is not working. It will print out values just fine when it saves, but I don't know if it's actually saving the data to it. Also, it will print "loaded" when I load, but not the loaded values because there is none to load or it is not fetching them properly. Can someone please help solve this issue?
