Moving object keeps on multiplying pos

What do you want to achieve? I would want to move a model 4 studs. but The Issue is that it keeps on multiplying so 4, then 8. I don’t know why?

if a == "Up" then
			local v = CFrame.new(plr.Primary.Position.X - 4, plr.Primary.Position.Y, plr.Primary.Position.Z)
			
			print(v)
			
			plr:SetPrimaryPartCFrame(v)
		elseif a == "Down" then
			local v = CFrame.new(plr.Primary.Position.X + 4, plr.Primary.Position.Y, plr.Primary.Position.Z)
			
			print(v)
			
			plr:SetPrimaryPartCFrame(v)
		elseif a == "Left" then
			local v = CFrame.new(plr.Primary.Position.X, plr.Primary.Position.Y, plr.Primary.Position.Z - 4)
			
			print(v)
			
			plr:SetPrimaryPartCFrame(v)
		elseif a == "Right" then
			local v = CFrame.new(plr.Primary.Position.X, plr.Primary.Position.Y, plr.Primary.Position.Z + 4)
			
			print(v)
			
			plr:SetPrimaryPartCFrame(v)
		end

There’s no logic issues in the if that you’re showing. Your issue is most probably running the if more than once when you don’t want to.

I have cards, so when you use the card it runs it pops up with 4 options, and when you select one it moves the object once.