Why doesn't this work?

You can write your topic however you want, but you need to answer these questions:

  1. What do you want to achieve? Keep it simple and clear!

Trying to make a little teleport effect that moves

  1. What is the issue? Include screenshots / videos if possible!

It doesn’t teleport me once it reaches 20 units up

humrp.Anchored = true
		
		local clonedEffect = TeleportEffect:Clone()
		clonedEffect.Name = player.Name.."'s teleport effect"
		clonedEffect.Position = player.Character:WaitForChild("LowerTorso").Position
		clonedEffect.Parent = workspace.World:WaitForChild("PlayersEffects")
		
		local clonedEffect2 = TeleportEffect:Clone()
		clonedEffect2.Name = player.Name.."'s teleport effect 2"
		clonedEffect2.Position = player.Character:WaitForChild("Head").Position
		clonedEffect2.Parent = workspace.World:WaitForChild("PlayersEffects")
		
		local isTeleporting = false
		
		local RoundedX = math.round(humrp.Position.X)
		local RoundedY = math.round(humrp.Position.Y)
		local RoundedZ = math.round(humrp.Position.Z)
		
		
		
		while isTeleporting == false do
			wait()
			if RoundedX ~= Vector3.new(math.round(-22), CFrame.Y, CFrame.Z) and RoundedZ ~= Vector3.new(CFrame.X, CFrame.Y, math.round(-803)) then
				if clonedEffect2.Position ~= Vector3.new(clonedEffect2.Position.X, 20, clonedEffect2.Position.Z) then
					clonedEffect.Position = clonedEffect.Position + Vector3.new(0, 0.1, 0)
					clonedEffect2.Position = clonedEffect2.Position + Vector3.new(0, 0.1, 0)
				elseif clonedEffect2.Position == Vector3.new(clonedEffect2.Position.X, 20, clonedEffect2.Position.Z) then
					humrp.Position = Vector3.new(-22, 84, -803)
				end
				
			else
				clonedEffect:Destroy()
				clonedEffect2:Destroy()
				isTeleporting = true
			end
		end