if locale == true and p2m == false then
			if pFolder:FindFirstChild("Portal1") == nil then
				print("Made 1")
				Portal1.Parent = pFolder
				Portal1.Position = previous
			else
				print("Remade 1")
				Portal1.Position = previous
			end
		elseif locale == true and p2m == true then
			if pFolder:FindFirstChild("Portal2") == nil then
				print("Made 2")
				Portal2.Parent = pFolder
				Portal2.Position = previous
			else
				print("Remade 2")
				Portal2.Position = previous
			end
		elseif p2m == true and p3m == true then
			if pFolder:FindFirstChild("Portal3") == nil then
				print("Made 3")
				Portal3.Parent = pFolder
				Portal3.Position = previous
			else
				print("Remade 4")
				Portal3.Position = previous
			end

I'm trying to make it so that the player can place up to three portals by pressing Z. If they press Z again after making three portals, it'd move the first portal, then the second, and so on. However, it just refuses to move them. They all work the first time around, but they never get moved.

This is the LocalScript's code.

if portal1made == false then
						print("First Portal Made!")
						globalCD = false
						portal1made = true
						portal2made = false
						portal1 = Player.Character.Torso.Position
						Player.Character.Humanoid.WalkSpeed = 0
						task.wait(.2)
						slam:Play()
						Remote:FireServer("Create", rightArm.Position, rightArm.Rotation, portal1, portal1made, portal2made, portal3made)
						task.wait(2)
						Player.Character.Humanoid.WalkSpeed = 16
						task.wait(3)
						globalCD = true
					elseif portal1made == true and portal2made == false then
						print("Second Portal Made!")
						globalCD = false
						portal2made = true
						portal3made = false
						portal2 = Player.Character.Torso.Position
						Player.Character.Humanoid.WalkSpeed = 0
						task.wait(.2)
						slam:Play()
						Remote:FireServer("Create", rightArm.Position, rightArm.Rotation, portal2, portal1made, portal2made, portal3made)
						task.wait(2)
						Player.Character.Humanoid.WalkSpeed = 16
						task.wait(3)
						globalCD = true
					elseif portal2made == true and portal3made == false then
						print("Third Portal Made!")
						globalCD = false
						portal3made = true
						portal1made = false
						portal3 = Player.Character.Torso.Position
						Player.Character.Humanoid.WalkSpeed = 0
						task.wait(.2)
						slam:Play()
						Remote:FireServer("Create", rightArm.Position, rightArm.Rotation, portal3, portal1made, portal2made, portal3made)
						task.wait(2)
						Player.Character.Humanoid.WalkSpeed = 16
						task.wait(3)
						globalCD = true
					end

"Previous" refers to "portal1", "portal2", and "portal3", all of which refer to,

local portal1 = nil
local portal2 = nil
local portal3 = nil

These change to the player's current position every time they press z, and by themselves work just fine, with positions being changed on the fourth use as they should. Additionally, when printing "previous" on the fourth use, it does print the new location, so that's not the issue. The objects simply won't move.