I have 2 scripts, one for storing the data and one for the actual level system itself. (both in server script storage) I would like to have both in the same script if possible, and make it so that the level cap is 100.

Data store code /

local DataSaveService = game:GetService("DataStoreService")
local stat = DataSaveService:GetDataStore("Stats")

game.Players.PlayerAdded:Connect(function(plr)
	local status = Instance.new("Folder", plr)
	status.Name = "leaderstats"
	local exp = Instance.new("IntValue", status)
	exp.Name = "Exp"
	local level = Instance.new("NumberValue", status) 
	level.Name = "Level"

	local exps
	local levels

	local success, errormsg = pcall(function()
		exps = stat:GetAsync(plr.UserId.."-Exp")
		levels = stat:GetAsync(plr.UserId.."-Level")
	end)
	if success then
		exp.Value = exps
		level.Value = levels
		print("Data saved")
	else
		print("Data didn't load correctly") 
		warn(errormsg) 
	end
	local expreq = (105 * (level.Value + 1))
	spawn(function()
		while wait() do
			if exp.Value >= expreq then
				exp.Value = exp.Value - expreq 
				level.Value = level.Value + 1
			end
		end
	end)
end)

game.Players.PlayerRemoving:Connect(function(plr)
	local success, errormsg = pcall(function()
		stat:SetAsync(plr.UserId.."-Level", plr.leaderstats.Level.Value)
		stat:SetAsync(plr.UserId.."-Exp", plr.leaderstats.Exp.Value)
	end)
	if success then
		print("Player data got saved")
	else
		print("Failed at saving data")
		warn(errormsg)
	end
end)

Level system code /

game.Players.PlayerAdded:Connect(function(player)
	local level = Instance.new("IntValue", player)
	level.Name = "Level"
	level.Value = 1
	
	local exp = Instance.new("IntValue", level)
	exp.Name = "Current"
	exp.Value = 0
	
	local maxExp = Instance.new("IntValue", level)
	maxExp.Name = "Max"
	maxExp.Value = 100
	
	
	exp.Changed:Connect(function(val)
		if exp.Value >= maxExp.Value then

			
			level.Value = level.Value + 1
			exp.Value = 0
			maxExp.Value = maxExp.Value * 1.05
		end
	end)
end)

workspace:WaitForChild("EXPcoin").ClickDetector.MouseClick:Connect(function(player)
	player.Level.Current.Value = player.Level.Current.Value + 500
end)