A raycast can tell you where it hit (I think if you use workspace:Raycast()), like this:
local result = workspace:Raycast(position, direction, RaycastParams) -- raycast
if result then -- if the ray intersected something
print(result.Position) -- intersected point
end
If you want to get the Intersected face, you would add the Normal Vector:
very simple. we can simply use the position value:
local raycast = workspace:Raycast(script.Parent.Position,script.Parent.CFrame.LookVector * 10)
if raycast then
workspace.point.Position = raycast.Position
end
position is intersected point between ray for elaboration or just intersected point in this case