So I updated it, I added PrimaryComponentTick.TickGroup = TG_PrePhysics; under the bCanEverTick and I made sure the SetWorldRotation was a TeleportPhysics but still it’s causing the jittering effect
if (PhysicsBody == nullptr) { return; }
if (EnableGravityOrientation == true) {
const FVector objectDown = -PhysicsBody->GetUpVector();
const FQuat deltaQuat = FQuat::FindBetweenVectors(objectDown, GravityDirection);
const FQuat targetQuat = deltaQuat * PhysicsBody->GetComponentQuat();
PhysicsBody->SetWorldRotation(FQuat::Slerp(PhysicsBody->GetComponentQuat(), targetQuat, DeltaTime* 1.0f), false, nullptr, ETeleportType::TeleportPhysics);
GEngine->AddOnScreenDebugMessage(0, 0.5f, FColor::Yellow, deltaQuat.ToString());
}
PhysicsBody->AddForce(GravityDirection * 980.0f, NAME_None, true);