Different signature used in parent class? BP native event derived from C++

So im getting an issue when just adding the event override node for a function in C++.

// h
	UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
		void Shoot(FVector Start, FVector Direction, AActor* Self);

// cpp

void AGun::Shoot_Implementation(FVector Start, FVector Direction, AActor* Self)
	if (!bIsShooting && bCanShootAgain)
		FCollisionQueryParams CQP = FCollisionQueryParams(FName(TEXT("CQP")));
		CQP.bTraceAsyncScene = true;
		CQP.bTraceComplex = true;
		FHitResult HitResult(ForceInit);
		FVector End = Start + Direction * FiringDistance;
		GetWorld()->LineTraceSingleByChannel(HitResult, Start, End, ECC_Visibility, CQP);
		if (HitResult.Actor != NULL)
			APlayerCharacter* PlayerCharacter = Cast<APlayerCharacter>(HitResult.GetActor());
			if (PlayerCharacter != NULL)
		bIsShooting = true;
		bCanShootAgain = false;
	Shoot(Start, Direction, Self); 

Then I add a node to override it and when I compile blueprint I get an error. No c++ errors. I think this is because before this, it was crashing due to not having the node and screwing up the binaries, but I cleared .vs, binaries, saved and intermediate and nothing. Any suggestions?

Hi there,

I didn’t do a lot from C++ to Blueprint, but regarding to this docs Exposing Gameplay Elements to Blueprints Visual Scripting in Unreal Engine | Unreal Engine 5.1 Documentation it seems you are missing a UPARAM() macro for your Self param.


Might be an old topic, but what solved it for me was recreating the blueprint off of the same class.