Hello Darkhanis,
I tried to do a similar code as yours.
My unreal crashes too.
So I tried several things and eventually I success to do something which works.
Spawning actor in constructor seems not work so I moved the creation in the BeginPlay function.
NewObject didn’t work for me so I used [SpawnActor][1].
Here the code :
void ATestCharacter::BeginPlay()
{
APaperCharacter::BeginPlay();
// Test for Darkhanis
FTransform Tr;
Tr.SetLocation( GetActorLocation() + FVector( 150.0f, 0.0f, 0.0f ) );
m_TestPlayerShot = (APlayerShot*)GetWorld()->SpawnActor( APlayerShot::StaticClass(), &Tr );
}
The header is similar as yours :
UPROPERTY( EditAnywhere, BlueprintReadWrite, Category = Test )
class APlayerShot* m_TestPlayerShot;
TestCharacter Is a paper character, equivalent to your NPC.
APlayerShot is a child from AActor, equivalent to your pickup.
So like this I can access to my actor from a blueprint extend from my character :

I hope it will help you.
( Sorry for my bad english )