Raycast
Client
Server
A raycast builder — you don't construct it directly, you get one from Cast:Ray(origin, direction). Chain filters (Ignore/Force) and options (WithColor/WithNormal/…), then call :Run() for the first hit or :RunAll() for all hits:
local hit = Cast:Ray(pos, dir):Ignore(self.obj):Run()