The only difference is that for the MeshPart, when CollisionFidelity is “Box” (instead of “Default”) … the boat SINKS!
The MeshPart is cancollide false.
Now, when I make the motor MeshPart Massless it is fine, because now I presume it is fully removed from the buoyancy calculation. So, at least I have a way around this, but something here does seem wrong.
Expected behavior
Even though the collision fidelity is a bit different, I would expect the Box to not fall through the water like it does.
I’m not quite understanding why the expected behavior here is that the MeshPart should not cause the boat to sink. The density of a part is connected to the Material assigned to it. You mention your MeshPart has a density of 2.4 and judging by the reflection I am assuming your Material is set to Glass, which has a density of 2.403.
So to answer this question:
I think so yes, because that is the density of the material that you assigned to the MeshPart.
What exactly is this question referring to? I’m having trouble understanding the question. If the question is "Is it expected that the density of the MeshPart remains the same when switching CollisionFidelity from Default to Box?", then I would also say that that is expected behavior. Developers can specify their own densities and I would not want one property change to also affect other properties in studio. That would be poor UX.
I will say though, it is not very clear or intuitive that the mass of an object is tied to its CollisionFidelity. I’m curious if there is a way to make it more clear in studio.