C++ event doesn't show up for other blueprints

I have a blueprint which inherits from a c++ class. Call it BP_A.

I have another similar class which does the same thing, call it BP_B.

If I go into BP_A and create a “Custom Event” and give it a name, BP_B can find that event and fire it. BP_A receives the event and executes the blueprint code.

If I go into BP_A and create an event in C++ code, such as the following:

UFUNCTION(BlueprintImplementableEvent, Category = "QuickTest")
	virtual void OnTestA();

UFUNCTION(BlueprintImplementableEvent, Category = "QuickTest")
	void OnTestB();

UFUNCTION(BlueprintNativeEvent, Category = "QuickTest")
	void OnTestC();

All of those events are public, but are only accessible from within BP_A. I’d like to have them available to BP_B, much like the blueprint custom events in BP_A can be called by BP_B. How do I do this?

Try something like this:

UPROPERTY(Category = Gameplay, EditAnywhere, BlueprintReadWrite, meta = (AllowPrivateAccess = "true"))
		float FireRate;

Man, I spend two hours trying to figure out the answer, finally give up and write an answer hub post, and no less than a minute later, I figure it out. Now I feel embarrassed for spamming the board.

Anyways, here’s the solution in case anyone else gets stuck:

UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "QuickTest");

I was making the assumption that if I added blueprint native event or blueprint implementable event, it would automatically also be a blueprint callable event. Makes sense, right?