This is how it looks in an helicopter (sorry I couldn’t fly it properly )
You can see that it’s imperfect, especially when the surface height difference is high.
If you try adding the code to a helicopter, make sure to change the line
raycastParams.FilterDescendantsInstances = {script.Parent}
so that includes the whole model. Also, in best case attach the script and all parts to a part of the helicopter that flies with it (in my case I inserted it to the Engine). I changed it to
raycastParams.FilterDescendantsInstances = {script.Parent.Parent}