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

Data As Table Not Saving. How To Fix?

This is my first time working with saving a table for multiple data types. The problem is the data doesn't save. I tried to fix this by using bind to close, but it still doesn't work.

local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")

local PlayerDataStore = DataStoreService:GetDataStore("PlayerData0.0.1")

Players.PlayerAdded:Connect(function(Player)
	local PlayerInfo = Instance.new("Folder")
	PlayerInfo.Name = "Info"
	PlayerInfo.Parent = Player
	
	local Currency = Instance.new("NumberValue")
	Currency.Name = "Coins"
	Currency.Parent = PlayerInfo
	
	local Wins = Instance.new("NumberValue")
	Wins.Name = "Wins"
	Wins.Parent = PlayerInfo
	
	local Kills = Instance.new("NumberValue")
	Kills.Name = "Kills"
	Kills.Parent = PlayerInfo
	
	local SavedData = nil
	pcall(function()
		SavedData = PlayerDataStore:GetAsync(Player.UserId)
		print("a")
	end)
	
	if SavedData ~= nil then
		Currency.Value = SavedData["Currency"]
		Wins.Value = SavedData["Wins"]
		Kills.Value = SavedData["Kills"]
		print("b")
	else
		Currency.Value = 100
		Wins.Value = 0
		Kills.Value = 0
		print("c")
	end
end)

Players.PlayerRemoving:Connect(function(Player)
	local NewData = {}
	for _, Data in pairs(Player.Info:GetChildren()) do
		NewData[Data.Name] = Data.Value
	end
	
	PlayerDataStore:SetAsync(Player.UserId, NewData)
	print("d")
end)

game:BindToClose(function()
	for _, Player in pairs(Players:GetPlayers()) do
		if Player then
			Player:Kick("This server is shutting down.")
		end
	end
	wait(1)
	print("e")
end)

1 answer

I think in your line 8, you should name it from "info" to "leaderstats" I do think that will solve your problem, if you're not seeing the saved data.

Besides, I don't see anything wrong with the Datastore script.

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