When MovementMode is set to PHYS_Flying, the character may unexpectedly step down by MaxStepHeight when colliding with a wall near a ceiling.
This occurs because UCharacterMovementComponent::StepUp() performs a step-down movement assuming a successful upward step, even when the upward sweep is blocked by a ceiling. As a result, the character is moved downward by up to MaxStepHeight despite no actual step-up having occurred.
Note:
UCharacterMovementComponent::StepUp() internally performs the following sequence:
When the upward sweep (step 1) is blocked by a ceiling, the actual upward movement is less than MaxStepHeight (or zero). However, the step-down phase (step 3) does not take this into account and still applies the full step-down distance.
This logic is valid for walking movement but causes unintended behavior when StepUp() is executed during PHYS_Flying in some geometry conditions.
Expected Result
Actual Result
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-360923 in the post.
| 0 |
| Component | UE - Gameplay - Player Movement |
|---|---|
| Affects Versions | 5.5, 5.6, 5.7 |
| Target Fix | 5.8 |
| Created | Jan 15, 2026 |
|---|---|
| Updated | Jan 20, 2026 |