How can i track the Real Position of the vr controllers instead of using UserInputService?

I’m testing with a VR Game in making and whenever I set the head scale to something over 1 the hands don’t follow the real-life position of VR Controller And I’m using UserInputService to do that and they stay stuck if the player’s head scale was 1 does anyone know a fix?

When reading the CFrames of the hands and head, preform this translation and it should fix the positions perfectly!

local c = -- The CFrame to translate (run this for all the cframes)
c = (c - c.Position) + c.Position * workspace.CurrentCamera.HeadScale

The orientation doesn’t need to be changed.
All this code is doing is multiplying the position by the head scale.