The RaycastResult API reference has an incorrect description for the RaycastResult.Instance property:
The
BasePart
orTerrain
cell that the ray intersected.
Firstly, Terrain is a BasePart, so mentioning Terrain is unnecessary. Secondly, the Instance property can be an instance that isn’t a BasePart, by using the StudioService:GizmoRaycast method.
Example:
(BallSocketConstraint isn’t a BasePart)