Sorry for the confusion.
Unless there’s something I’m missing, here’s how you should need to set up your function as a BlueprintNativeEvent:
Header:
UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = Firing)
void FiringSetup(const FString& directionFace);
Source (.cpp):
void AProjectileBase::FiringSetup_Implementation(const FString& directionFace) {
// Default implementation code goes here
}
Note that in the .cpp file, the function name is changed to include the _Implementation suffix. Without this suffix, you’ll get the “already defined” compiler errors.
Hope that clears things up.