Unreal has Movement Components such as CharacterMovementComponent (CMC) and FloatingPawnMovement. While especially the CMC is very flexible, it doesn’t necessarily behave exactly in the way you might want.

For creating your own, I’d recommend either inheriting from the basic MovementComponent, or creating your own Actor Component. Both methods allow implementing the physics from scratch.

Below are some links to look at for how to build your own movement physics: