My script gives me a result that "works" but is not doing what I expect

hey everyone, I am new to LUA and scripting in general. I want to make a script that when you press T the game tells you how far you have traveled from when you hit T.
[3:46 PM]
I have that all working, but the result seems to be an exponential amount and not linear. I am using .scaleSquared to get the difference between two "vector three" values. and If I use just .scale it doesn't work anymore. should I be using some other method for calculating the difference between the two vector points?

Here is the script:

local player = Game.GetLocalPlayer()
local isposition1 = 0 
local p1 = player:GetWorldPosition()
local p2 = player:GetWorldPosition()
local MapScale = 25000

local function ExecuteOnBind(player, keyPress)
	if player == player then
		if keyPress == "ability_extra_24" then
		--set position1 on first keypress then alternate to second postion 
			if isposition1 == 0 
			then
			p1 = player:GetWorldPosition()
			isposition1 =1
				for i = 1, 60 do
					p2 = player:GetWorldPosition()
					local distanceTraveled = (p1-p2).sizeSquared
					local StringVector = tostring(math.floor(distanceTraveled/MapScale))
					UI.PrintToScreen(StringVector)
					Task.Wait(0.2)
				end
			end	
			isposition1 = 0
			--calculate the distance traveled and display the change
			local distanceTraveled = (p1-p2).size
			local StringVector = tostring(math.floor(distanceTraveled/MapScale))
			UI.PrintToScreen(StringVector)
		end
	end
end
player.bindingPressedEvent:Connect(ExecuteOnBind)

Thanks to Koala and Czinczar in the Discord Server This has been solved.

local player = Game.GetLocalPlayer()
local isposition1 = 0 
local p1 = player:GetWorldPosition()
local p2 = player:GetWorldPosition()
local MapScale = 150

local function ExecuteOnBind(player, keyPress)
	if player == player then
		if keyPress == "ability_extra_24" then
		--set position1 on first keypress then alternate to second postion 
			if isposition1 == 0 
			then
			p1 = player:GetWorldPosition()
			isposition1 =1
				for i = 1, 60 do
					--calculate the distance traveled and display the change
					p2 = player:GetWorldPosition()
					local distanceTraveled = (p1.size-p2.size)
					local StringVector = tostring(math.floor(distanceTraveled/MapScale))
					UI.PrintToScreen(StringVector)
					Task.Wait(0.2)
				end
			end	
			isposition1 = 0
		end
	end
end
player.bindingPressedEvent:Connect(ExecuteOnBind)