I don’t want to use Player:GetMouse() since it seems to be advised against using.
Though using UserInputService is a bit difficult as I need this run in a loop and the best I can seem to do with UserInputService is use the UserInputService.InputChanged event and get the InputObject.Position.
If I do this though and the character moves while the mouse doesn’t, the 3D position that was last updated for the mouse relative to the camera/screen would be wrong, wouldn’t it?