So here I have a problem with my Leaderdatastore it only saves 2 of my 4 data and I can not fix my problem

My code:

local players = game:GetService("Players")
local datastore = game:GetService("DataStoreService")
local ds1 = datastore:GetDataStore("StepsValueSaver")
local ds2 = datastore:GetDataStore("GemsValueSaver")
local ds3 = datastore:GetDataStore("PrestigeValueSaver")
local ds4 = datastore:GetDataStore("levelValueSaver")

players.PlayerAdded:connect(function(player)
	local folder = Instance.new("Folder")
	folder.Name = "leaderstats"
	folder.Parent = player
	
	local Steps = Instance.new("IntValue")
	Steps.Name = "Steps"
	Steps.Parent = player.leaderstats
	Steps.Value = ds1:GetAsync(player.UserId) or 0
	ds1:SetAsync(player.UserId, Steps.Value)
	
	local Gems = Instance.new("IntValue")
	Gems.Name = "Gems"
	Gems.Parent = player.leaderstats
	Gems.Value = ds2:GetAsync(player.UserId) or 0
	ds2:SetAsync(player.UserId, Gems.Value)
	
	local Prestige = Instance.new("IntValue")
	Prestige.Name = "Prestige"
	Prestige.Parent = player.leaderstats
	Prestige.Value = ds3:GetAsync(player.UserId) or 0
	ds3:SetAsync(player.UserId, Prestige.Value)
	
	local level = Instance.new("IntValue")
	level.Name = "level"
	level.Parent = player.leaderstats
	level.Value = ds3:GetAsync(player.UserId) or 0
	ds4:SetAsync(player.UserId, level.Value)
	
	local multi = Instance.new("IntValue")
	multi.Name = "multi"
	multi.Parent = player
	multi.Value = 1
	
end)

players.PlayerRemoving:connect(function(player)
	    local Steps = player.leaderstats.Steps
	    local level = player.leaderstats.level
	    local Gems = player.leaderstats.Gems
	    local Prestige = player.leaderstats.Prestige
	
	    ds1:SetAsync(player.UserId, Steps.Value)
	
		ds2:SetAsync(player.UserId, Gems.Value)
		
		ds3:SetAsync(player.UserId, Prestige.Value)
		
		ds4:SetAsync(player.UserId, level.Value)
end)

2 comments

0

Use :Connect instead of :connect, :connect is deprecated

0

Just a question, why re you setting async when the data loads?