falling trough the ground usualy happens when you move 2 meshes towards eachother with no updateworld between the two movements. Could it be your ship is going up and down on waves? But even if it doesn't, there may be rounding errors that may result in the same effect. Then again, Ross' solution sounds robust and practical. And it's a real-world-like solution, when you consider friction of your feet as some kind of X/Z parenting, as long as you're not jumping.