Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

How to get my save system to save?

local dataStore = game:GetService("DataStoreService"):GetDataStore("randommeusumtime")

game.Players.PlayerAdded:Connect(function(plr)

	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = plr

	local points = Instance.new("IntValue")
	points.Name = "Time" 
	points.Value = dataStore:GetAsync(plr.UserId)
	points.Parent = leaderstats
	while true do
		wait(1)
		points.Value = points.Value + 1
	end

end)

game:BindToClose(function()
	for _,plr in pairs(game.Players:GetPlayers()) do
		dataStore:SetAsync(plr.UserId, plr.leaderstats.Time.Value)
	end   
end)

API Services are also activated, dont know why this isn't saving, as there is no errors.

1 answer


local dataStore = game:GetService("DataStoreService"):GetDataStore("randommeusumtime")
game.Players.PlayerAdded:Connect(function(plr)

    local leaderstats = Instance.new("Folder")
    leaderstats.Name = "leaderstats"
    leaderstats.Parent = plr

    local points = Instance.new("IntValue")
    points.Name = "Time" 
    points.Value = dataStore:GetAsync(plr.UserId) or 0
    points.Parent = leaderstats
	-- Here's where you actually messed up, running a while loop pauses the whole thread. Using spawn function creates a separate thread to run the loop.
	spawn(function()
    while true do
        wait(1)
        points.Value = points.Value + 1
    end
end)
end)

game:BindToClose(function()
    for _,plr in pairs(game.Players:GetPlayers()) do
        dataStore:SetAsync(plr.UserId, plr:WaitForChild('leaderstats'):WaitForChild('Time').Value)
    end   
end)

Hope this helps!

This discussion is preserved as it was. New answers, comments, and votes are closed.