ZBrushCentral

[ISet,Tool:Geometry:X Position] not working correctly

im trying to move something in a loop to test things but im running into an issue where my input values and the ones being read out are different

[VarSet, i, 0]
[Loop, 180,

  [VarDef, newWPosX, 0]
  [VarDef, newWPosY, 0]
  [VarDef, newWPosZ, 0]
  
  [VarSet, currentX, [IGet, Tool:Geometry:X Position]]
  [VarSet, currentY, [IGet, Tool:Geometry:Y Position]]
  [VarSet, currentZ, [IGet, Tool:Geometry:Z Position]]

  [ISet,Tool:Geometry:X Position, newWPosX]
  [ISet,Tool:Geometry:Y Position, newWPosY]
  [ISet,Tool:Geometry:Z Position, newWPosZ]
  
  [Note, [StrMerge,  
  	"\nCurrent Position:\nX: ", currentX, 
  	"\nY: ", currentY, 
  	"\nZ: ", currentZ,
  	"\nNew Position:\nX: ", newWPosX, 
  	"\nY: ", newWPosY,
  	"\nZ: ", newWPosZ
  ]
  ]

,i]
]

while the value should always be 0 with this code the values seem to be
x:0 y:0 z:0 for iteration 0
x:0.741163 Y:0.745111 Z:0.441316 for iteration 1
x:1.482327 Y:1.49022 Z:0.882633 for iteration 2
x:2.223490 Y:2.235332 Z:1.323949 for iteration 3

the value thats being added for each iteration is the original position the object was in while i expect the slider to just be the input value?

to make it more straight forward even just this code has the same behavior

	[Loop, 180,
		[ISet,Tool:Geometry:X Position, 0]
		[ISet,Tool:Geometry:Y Position, 0]
		[ISet,Tool:Geometry:Z Position, 0]
	]

Bit more testing and its not just in loops
consecutive calls of [ISet,Tool:Geometry:X Position, whatever value] will break it for some reason where it doesnt replace the value with whats there in the script
a “fix” i found is to use a mirror twice before the actions

[Loop, 180,

  [IModSet,Tool:Deformation:Mirror,7]
  [IPress,Tool:Deformation:Mirror]
  [IPress,Tool:Deformation:Mirror]
  
  [ISet,Tool:Geometry:X Position, 0]
  [ISet,Tool:Geometry:Y Position, 0]
  [ISet,Tool:Geometry:Z Position, 0]

]