Hello! I have a game and I save data with this script:

local DSS = game:GetService("DataStoreService")
local KillsDataStore = DSS:GetDataStore("Kills4")
local DeathsDataStore = DSS:GetDataStore("Deaths4")

function playerJoined(player)
	local leaderstats = Instance.new("Folder", player)
	leaderstats.Name = "leaderstats"

	kills = Instance.new("IntValue",leaderstats)
	kills.Name = "Kills"
	kills.Value = KillsDataStore:GetAsync(player.UserId) or 0

	deaths = Instance.new("IntValue",leaderstats)
	deaths.Name = "Deaths"
	deaths.Value = DeathsDataStore:GetAsync(player.UserId) or 0

	player.CharacterAdded:connect(function(character)
		character:WaitForChild("Humanoid").Died:connect(function()
			game.Players:GetPlayerFromCharacter(character).leaderstats.Deaths.Value = game.Players:GetPlayerFromCharacter(character).leaderstats.Deaths.Value +1
		end)
	end)
end

function playerLeft(player)
	KillsDataStore:SetAsync(player.UserId, kills.Value)
	DeathsDataStore:SetAsync(player.UserId, deaths.Value)
end

function Close()
	if not game:GetService("RunService"):IsStudio() then
		for i,v in pairs(game.Players:GetPlayers())do
			KillsDataStore:SetAsync(v.UserId, kills.Value)
			DeathsDataStore:SetAsync(v.UserId, deaths.Value)
		end
	end
end

game.Players.PlayerAdded:Connect(playerJoined)
game.Players.PlayerRemoving:Connect(playerLeft)
game:BindToClose(Close)

It is really weird, data just is not saving right. Was there issues with roblox saving data recently, or did I mess something up? Help?