I already know that parts and things such as that cannot be saved in a DataStore!

  • I am new (Today new) at Data Stores so I'll probably have "newb" mistakes.* I am basically testing DataStores to see if I know how to even do them yet I'm getting and error. I have 3 scripts, 1 that will save data when you leave, one that uses the data when you join(if any) and the last one that uses OnClose so I can keep the server open when it's suppose to shutdown for Data Saving.

Here's the Added script:



game.Players.PlayerAdded:connect(function(plr)
	local DS = game:GetService("DataStoreService"):GetDataStore(plr.Name)
	game.Players:WaitForChild("leaderstats"):WaitForChild("Stage")
	if DS:GetAsync(plr.Name) ~= 0 then
		plr.leaderstats.Stage.Value = DS:GetAsync(plr.Name)
	else
		print(plr.Name.."Doesn't Need Data Transfer")	
	end
end)

Here's the Leaving script:


game.Players.PlayerRemoving:connect(function(plr)
	local DS = game:GetService("DataStoreService"):GetDataStore(plr.Name)
	local Key = plr.Name
	if plr.leaderstats.Value == 0 then
		print("Ignore Data Save For "..plr.Name)
	elseif plr.leaderstats.Value >= 1 then
		DS:SetAsync(Key, plr.leaderstats.Stage.Value)
	end
end)

Here's the OnClose script:

game.OnClose = function()
	wait(3)
end

Please don't shy from sharing information so I may better myself in Data Stores.

2 comments

0

Shouldn't it be player.UserId, instead of plr.Name?

1

In the loading script you are accessing leaderstats through Game.Players and not the player