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

Data store does not save data?

I'm trying to save a player's data, but it does not appear to save. It gives no errors, and also used to work. It just randomly stopped working

local Data = game:GetService("DataStoreService"):GetDataStore("Cash")
game.Players.PlayerAdded:Connect(function(plr)
	local Folder = Instance.new("Folder",game.ServerStorage)
	Folder.Name = plr.Name
	local Cash = Instance.new("IntValue",Folder)
	Cash.Name = "Cash"
	local Levels = Instance.new("IntValue",Folder)
	Levels.Name = "Levels"
	local SavedItems = Data:GetAsync(plr.userId)
	wait(.1)
	if SavedItems then
		Cash.Value = SavedItems.Cash or 0
		Levels.Value = SavedItems.Levels or 0
	else
		Cash.Value = 0
		Levels.Value = 0
	end
end)

game.Players.PlayerRemoving:Connect(function(plr)
	local Saving = {
		["Cash"] = game.ServerStorage:FindFirstChild(plr.Name).Cash.Value;
		["Levels"] = game.ServerStorage:FindFirstChild(plr.Name).Levels.Value}
	Data:SetAsync(plr.userId,Saving)
end)

1 comment

0

do you have API services on?

1 answer

This is probably because the player's UserId is a 64-bit integer. GlobalDataStore:SetAsync() requires a string key.

You can convert the UserId to a string using the tostring() function, like this:

Data:SetAsync(tostring(plr.UserId), Saving)

Or, you can concatenate the UserId to a string, like this:

Data:SetAsync("user_" ..plr.UserId, Saving)

#1 is untested. #2 is tested.

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