I know that you can get the surface using the third argument in the ray.
Is there a clean way to set that up?
I've looked through many different websites and I can't find anything even somewhat close. What I have now works fine until I cast it at a rotated part Somone know?
local x,y,z = norm.X, norm.Y, norm.Z
print(x,y,z)
local surf = 'Front'
if x ~= 0 and (y == 0 and z == 0) then
if x > 0 then
surf = 'Right'
else
surf = 'Left'
end
elseif y ~= 0 and (x == 0 and z == 0) then
if y > 0 then
surf = 'Top'
else
surf = 'Bottom'
end
elseif z ~= 0 and (x == 0 and y == 0) then
if z > 0 then
surf = 'Back'
else
surf = 'Front'
end
end

4 comments
if u really want to u could go to https://scriptinghelpers.org/questions/15273/how-can-i-detect-a-surface-a-part-hit
I'm pretty sure that Rays have lookVectors.
Hmm, I'll check that out and let you know. Thanks!
Yeah I appreciate that.. I just tried it lol and yeah it seems that doesn't work with rotated parts either xD