How to duplicate Blueprints easier

I was holding ALT and dragging from one of the arrows on the editor. It makes a visual copy… but copies of the original dragged from the content browser do not fire off the blueprints collision event for each object copied?

If I go and drag the blueprint from my content browser each time I want a new Blueprint placed… Each one dragged seems to correctly instantiate the Blueprints events and it works correctly…

What is the difference between Alt and drag and dragging from the content browser?

The blueprint is based off of this code which may be why it’s not working but I thought each blueprint would create a new instance of my PickupBase:

.h


UCLASS()
class ***_API APickupBase : public AActor
{
	GENERATED_UCLASS_BODY()

	virtual void Tick(float deltaTime) override;

	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Powerup)
		TSubobjectPtr<USphereComponent> CollisionSphere;

	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Powerup)
		float RotationSpeed;

	UFUNCTION()
		void CollisionOccured(AActor* actor);
};

.cpp


#include "PickupBase.h"


APickupBase::APickupBase(const class FPostConstructInitializeProperties& PCIP)
	: Super(PCIP)
{
	PrimaryActorTick.bCanEverTick = true;
	CollisionSphere = PCIP.CreateDefaultSubobject<USphereComponent>(this, TEXT("CollisionSphereComponent"));
	CollisionSphere->bGenerateOverlapEvents = true;
	CollisionSphere->SetSphereRadius(20.f, false);

	TScriptDelegate<FWeakObjectPtr> delegateFunction;
	delegateFunction.BindUFunction(this, "CollisionOccured");
	CollisionSphere->OnComponentBeginOverlap.Add(delegateFunction);

	RootComponent = CollisionSphere;

	RotationSpeed = 100.0f;
}

void APickupBase::Tick(float deltaTime)
{
	Super::Tick(deltaTime);
	FRotator currentrotation = GetActorRotation();
	//currentrotation.Yaw += RotationSpeed * deltaTime;
	currentrotation.Pitch += RotationSpeed * deltaTime;
	SetActorRotation(currentrotation);
}

void APickupBase::CollisionOccured(AActor* actor)
{
	Destroy();
}