The PathfindingService (both ComputeRawPathAsync and ComputeSmoothPathAsync) ignores parts that have meshes. This appears to occur both in Studio and in game servers.
This includes:
CylinderMesh
BlockMesh if Scale is not (1, 1, 1) – bigger or smaller
SpecialMesh (Head)
I can’t think of a reason this would be desirable – it’s not the case that the pathfinding service evaluates things at all visually:
does acknowledge invisible parts
ignores opaque but CanCollide false parts
Currently it has the undesirable behavior of
ignores parts that appear smaller (with a BlockMesh)
ignores parts that appear bigger (with a BlockMesh)
Pathfinding - same as the lighting system - is using the spatial acceleration structure the physics engine uses to gather parts for voxelization. If the part physical extents mismatches the visual extents we can’t find it by visual extents, so we choose to just ignore this. We could still voxelize it if the scale reduced the visual representation, but we can’t do it if the scale is more than 1.
Why do you need to use the aforementioned meshes? You could always use blocks instead of block meshes and cylinders instead of cylinder meshes?