Because the Vector3 orientation is in something called world space, meaning it’s relative to the world and not the CFrame object.
You can think of the CFrame as a tilted Y axis due to the initial CFrame.lookAt line. We then want to apply a rotation along this axis rather than along the Y axis in world space which points upwards.
You apply a change in rotation by using the ApplyRotation function I sent previously. Just remember that the rotation is in radians and must be converted if you input the rotation in degrees with math.rad(degrees).
local cframe = CFrame.new(raypos) * CFrame.fromAxisAngle(raynormal, math.rad( ? )) -- is this supposed to be like math.pi or something?
local cframe = CFrame.lookAt(raypos, raypos + raynormal) -- if i use one i dont need the other?
cframe *= CFrame.fromOrientation(0, math.pi,0)
local radx, rady, radz = cframe:ToOrientation()
Just because they’re both vectors, doesn’t mean that their values mean the same. The rotation is represented in something called Euler angles, while the lookVector is a directional unit vector (has a magnitude of 1) pointing in the direction that the CFrame is facing. There’s a significant difference, don’t mix them.