If I make the component blueprintable and make a new blueprint based on it, the event appears, however that defeats the purpose of having it as an optional component to attach to other blueprints.
So it’s definitely related to it being a component and not the base class of the blueprint.
UCLASS(Blueprintable, ClassGroup = (Custom), meta = (BlueprintSpawnableComponent))
class TRIBESMEN_API UInteractionComponent : public UBoxComponent
// Sets default values for this component's properties
UInteractionComponent(const FObjectInitializer& ObjectInitializer);
// Called when the game starts
virtual void BeginPlay() override;
// Called every frame
virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
//UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = Collision)
// UBoxComponent* CollisionComp;
UFUNCTION(BlueprintImplementableEvent, Category = "Interaction")
Edit: I was finally able to work around it, but it seems rather excessive and “hacky”.
Instead of using a blueprintable event, I made a delegate that I broadcast, and bound the delegate (which luckily showed up) to a custom event.
But it feels inefficient to make a function that constantly listens for a broadcast, instead of just having it trigger on use.