you can use something like getpartsinpart for each part with high tolerance in the overlapparams if you want very accurate hitboxes
i think to get good performance you have to make an approximation of the hitbox with shapecasts, and then to detect collisions with them shapecast hitbox might work or you can implement it yourself