So here is what I have so far(local script in a text label):

local plr = game.Players.LocalPlayer
local exp = plr:WaitForChild("Stats"):WaitForChild("Exp")
local max = plr:WaitForChild("Stats"):WaitForChild("MaxExp")
script.Parent.Text = exp.Value.."/"..max.Value.." EXP"
exp:GetPropertyChangedSignal("Value"):Connect(function()
	script.Parent.Text = exp.Value.."/"..max.Value.." EXP"
	local inct = plr:WaitForChild("Stats"):WaitForChild("MaxExp") - plr:WaitForChild("Stats"):WaitForChild("Exp") --I am just very stuck here
end)
max:GetPropertyChangedSignal("Value"):Connect(function()
	script.Parent.Text = exp.Value.."/"..max.Value.." EXP"
end)

I don't know how to how to make the EXP bar fit correctly relative to the max EXP and background GUI object size. The EXP bar's size at 0 is {0, 0},{0.113, 0} and the background EXP bar's size is {0.296, 0},{0.113, 0}. There are two IntValues in a folder called "Stats" every player instance in the game. One IntValue is called "Exp" which is the player's EXP. And the other one is called "MaxExp" which is the max EXP which should get bigger when a player gets to a new level. Please could someone point me in the right direction?