So I am making an obby with a leader board which has 2 values: Coins and Checkpoints. Once a player touches a coin, it adds a coin to their leader board. Let's say a player has 4 coins, and then the player leaves the game and then if they join again, they still have 4 coins.

But if the player get's another coin, the coins increase from 4 to 5, but once they rejoin the game, they have 4 coins not 5.

Why is this so?

Here is the script which saves the leaderboard. It is located in ServerScriptService:

local DataStoreService = game:GetService("DataStoreService")
local myDataStore = DataStoreService:GetDataStore("myDataStore")


game.Players.PlayerAdded:Connect(function(player)
	local leaderstats = Instance.new("Folder", player)
	leaderstats.Name = "leaderstats"
	
	local Checkpoint = Instance.new("IntValue", leaderstats)
	Checkpoint.Name = "Checkpoint"
	Checkpoint.Value = 1
	
	local coins = Instance.new("IntValue", leaderstats)
	coins.Name = "Coins"
	coins.Value = 0
	
	--Checkpoint Section
	player.CharacterAdded:Connect(function(character)
		
		repeat wait() until player.character ~= nil
		local checkpoint = game.Workspace.Checkpoints:FindFirstChild(Checkpoint.Value)
		character:WaitForChild("HumanoidRootPart").CFrame = CFrame.new(checkpoint.Position + Vector3.new(0, 2, 0))
		
	end)
	
	-- Data Store Section
	
	local playerUserId = "Player_"..player.UserId
	print(playerUserId)
	
	-- Load Data
	
	local data
	local success, errormessage = pcall(function()
		 data = myDataStore:GetAsync(playerUserId)
	
	end)
		
		
	if success then
		if data then
		coins.Value = data.Coins
		Checkpoint.Value = data.Checkpoint
		-- Set our data equal to the current Coins
		end
	end
	
end)

game.Players.PlayerRemoving:Connect(function(player)
	local playerUserId = "Player_"..player.UserId
	
	local data = {
	
	Coins = player.leaderstats.Coins.Value;
	Checkpoint = player.leaderstats.Checkpoint.Value;
	
	}
	
	local success, errormessage = pcall(function()
		myDataStore:SetAsync(playerUserId, data)
	end)
		
		if success then
			print("Data successfully saved!")
	    else
			print("There was an error saving the data!")
			warn(errormessage)	
		end
	
end)

Please help me.

Thanks