Seams between floor tiles produce collision/physics artifacts when rolling over them

I found a solution for this in Unity, I’m sure it’s also applicable to Unreal:

Make a giant collider on top of your “bad seams colliders”. This is the collider you will actually collide with. It can be much larger than the actual area of the If the seams collider is a Mesh collider, typically the “good collider” will be the same mesh with a convex simplification (not sure how to do this in Unreal, but it’s a checkbox on the mesh collider in Unity). Otherwise just make a giant, simplified box collider overtop of your bad seams. When your on top of a collider with seams, you collide with the “giant” collider, otherwise you fall through the giant collider.

In detail:
Put the convex/giant collider on a “seam fix” layer, and the other collider on a “seam bad” layer. Have 2 physics layers (not sure how these work in Unreal) for your player. One is the regular player layer, the other is the “player seam fix” layer. Setup your layers so your player layer collides with “seam bad” but not “seam fix” and “player seam fix” collides with “seam fix” and not “seam bad”.

In Update, use a BoxCast/SphereCast/RayCast or w/e to determine if your on top of the “seam bad” collider, if you are switch to “seam fix” else stay on player regular. Switching to player regular when your not on the “seam bad” collider ensures that you fall through the simplified collider when your not touching the “seam bad” layer.

The “seam fix” layer is a simplified collider without the seam problem, so this script essentially makes it so you only collide with the giant collider if your on top of the bad seam collider and allows you to fall through the giant collider otherwise.

It’s working very well for my game with a physx rigid body character controller.