Datastore not working

Recently I made a XP System and the datastore isn’t saving. Here is a snippet of the code:

local DatastoreService = game:GetService("DataStoreService")
local EXPData = DatastoreService:GetDataStore("EXPData")

game.Players.PlayerAdded:Connect(function(plr)
	game.ReplicatedStorage.Remotes.expUpdate:FireClient(plr)
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = plr
	
	local Cash = Instance.new("IntValue")
	Cash.Name = "Cash"
	Cash.Parent = leaderstats
	
	local EXP = Instance.new("IntValue")
	EXP.Parent = leaderstats
	EXP.Name = "EXP"
	
	local lvl = Instance.new("IntValue")
	lvl.Parent = leaderstats
	lvl.Name = "Level"
	
	local Maxlvl = Instance.new("IntValue")
	Maxlvl.Parent = plr
	Maxlvl.Name = "Maxlevel"
	Maxlvl.Value = 200
	
	
	local data
	local success, errormessage = pcall(function()
		data = EXPData:GetAsync(plr.UserId.."-Level")
	end)
	
	if success then
		plr.leaderstats.EXP.Value = data
	else
		print("There was an error while giving Player Data.")
		warn(errormessage)
	end
end)

game.Players.PlayerRemoving:Connect(function(plr)
	local data = plr.leaderstats.EXP.Value
	
	local success, errormessage = pcall(function()
		EXPData:SetAsync(plr.UserId.."-Coins", plr.leaderstats.EXP.Value)
	end)
	
	if success then
		print("Player Data successfully saved! "..plr.UserId)
	else
		print("There was an error while saving Player Data.")
		warn(errormessage)
	end
	
end)

Any help is appreciated!

You are referencing the wrong key key on the saving part, it should be plr.UserId…“-Level” and not Coins. Also I would recommend using UpdateAsync instead of SetAsync