Roll, Pitch, Yaw rotations - Strange Behavior

First off, the docs say SetActorRotation(link):

bool AActor::SetActorRotation(FRotator NewRotation)
{
    if (RootComponent)
    {
        return RootComponent->MoveComponent( FVector::ZeroVector, NewRotation, true );
    }
 
    return false;
}

So if we look at MoveComponent, the docs say (link):

NewRotation Parameter ==> The new desired rotation in world space.

So this function you are using sets the new rotation relative to world space coordinates.

Here are two suggestions for what you are trying to do:

Use AddActorLocalRotation (link).

void APickup::Tick(float DeltaTime)
{
    Super::Tick(DeltaTime);

    this->AddActorLocalRotation(this->RotationRate * DeltaTime, false);

}

Hopefully this fixes the problem for you =)

Edit: I initially had two functions to choose from for modifying local rotation… I haven’t tested one so I removed it from the answer. The remaining one should work fine as I currently use it this way.