Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

[SOLVED] Saving player data is not working?

Asked by 3 years ago
Edited 3 years ago

The overall goal of this is that I am making a Halloween update for my game, and the amount of candy a player owns will be saved. API Services are enabled, but the :SetAsync() function wouldn't work. The script will print "Saving..." but never says saved afterward; thus meaning the data didn't save.

Here is the script:

local year = tonumber(math.floor(os.time()/60/60/24/365.25+1970))
local dss = game:GetService("DataStoreService")
local candySave = dss:GetDataStore("HalloweenCandy-".. tostring(year))
local broomSave = dss:GetDataStore("HalloweenBroom-".. tostring(year)) 

game.Players.PlayerRemoving:Connect(function(plr)
    if plr:FindFirstChild("HalloweenData") then
        local hd = plr:FindFirstChild("HalloweenData")
        if plr:FindFirstChild("HalloweenData"):FindFirstChild("CandyCorn") and plr:FindFirstChild("HalloweenData"):FindFirstChild("OwnsBroomstick") then
            local cc = plr:FindFirstChild("HalloweenData"):FindFirstChild("CandyCorn")
            local ob = plr:FindFirstChild("HalloweenData"):FindFirstChild("OwnsBroomstick")
            print("Saving...")
            candySave:SetAsync(plr.UserId, tonumber(cc.Value))
            print("Saved")
        end
    end
end)

Thank you in advance!

1
Are you sure the game isn't shutting down before it gets the chance to save? evaera 8028 — 3y
0
Should I assume that were the case (which is most likely true), how would I allow it to save before it closes? Correct me if I am wrong, but :BindToClose should not be used when run in Studio (I am testing in Studio). CreationNation1 459 — 3y

Answer this question