How to fix transform/velocity issue when possessing a moving pawn?

I found the problem in the character movement component (UCharacterMovementComponent::UpdateBasedMovement). It seems like they simply didn’t think about the case of switching pawns on a moving platform, which results in a large over-correction, but there’s overall some pretty dodgy stuff going on so it’s nice that it works at all. Bad news is that you can’t fix this in Blueprint. Good news is that the function has an early return when not on a dynamic base so you can work around the issue by setting the mobility of your elevator to static immediately after possessing, and setting the mobility to movable before you update the elevator’s position again. Do the same for detaching/unpossessing.

I have updated my test blueprint, it’s messy but you’ll get the idea.