diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 795587c1f49..ee3af2f8431 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -1671,6 +1671,13 @@ void WorldObject::UpdateAllowedPositionZ(float x, float y, float &z) const if (z < ground_z) z = ground_z; } + + // Creatures that are simulating flight effects or actual flight should use HoverHeight + if (ToUnit() && (ToUnit()->IsFlying() || ToUnit()->IsHovering() || ToUnit()->IsLevitating())) + { + uint32 hoverHeight = GetFloatValue(UNIT_FIELD_HOVERHEIGHT); + z += hoverHeight; + } break; } case TYPEID_PLAYER: