Detect slope steepness and adjust speed accordingly?

characters don’t care about gravity when they are on the ground.

in C++ you could override UCharacterMovementComponent::SimulateMovement() on a child class of character, then you can tell it to apply gravity to velocity whether you are walking or not.

or if you want to use only blueprints, you could turn off gravity and make your own gravity by launching the character on tick in a negative Z direction. since your gravity applies whether walking or not, it should adjust your speed on slopes.