Not replicating spawned actor when using StaticClass

When I spawn my actor on the server normally everything is fine.

AVWeaponPickup* NewWeaponPickup = GetWorld()->SpawnActor<AVWeaponPickup>(CurrentWeapon->WeaponPickupClass, SpawnLocation, FRotator::ZeroRotator, SpawnInfo);

But I am trying to create the pickup dynamically and when spawning with a StaticClass it is not replicating to clients. It works on the server and is purely a replication issue with spawning using AVWeaponPickup::StaticClass()

AVWeaponPickup* NewWeaponPickup = GetWorld()->SpawnActor<AVWeaponPickup>(AVWeaponPickup::StaticClass(), SpawnLocation, FRotator::ZeroRotator, SpawnInfo);

if (NewWeaponPickup)
		{
			NewWeaponPickup->SetOwner(this);
			NewWeaponPickup->GetMeshComponent()->SetStaticMesh(CurrentWeapon->WeaponItemClass->GetDefaultObject<UVWeaponItemData>()->Mesh);
			NewWeaponPickup->WeaponClass = CurrentWeapon->GetClass();
}

I read somewhere it’s a owner issue and I tried setting the owner but it is not helping.

What is parent class for AVWeaponPickup ?
Whether AVWeaponPickup has set bReplicates = true; in native constructor ?

Everything replicates just fine, until I spawn it using the StaticClass();
So yes, is has bReplicates = true.

Are you explicitly setting it? If you’re not, it’s probably not replicating like you think it is. This needs to be in your constructor:

SetRemoteRoleForBackwardsCompat(ROLE_SimulatedProxy);
bReplicates = true;
bReplicateMovement = true;

edit: maybe not bReplicateMovement if you’re not replicating movement.