I have 3 objects linked together: root, child1, child2. The default behavior of rotation functions and functions returning position and orientation info is to return those in either World (region-relative) coordinates or Local (root-relative) coordinates. This is useful for rotation about the region's origin or the root. What I want to achieve instead is to rotate child2 around child1. Unfortunately when I do the necessary calculations (transform child2's position to child1's basis, rotate child2, transform hild2's position back to region coords) and invoke llSetPos() in the child2's script, it doesn't change it's position. Calculations are correct cause I checked the outputs and the pre-transform and post-transform values are different so even if there was a mistake, llSetPos() should've at least move the object somewhere. But nothing happens. Child2 stays where it is.