Binding C++ events to event dispatcher

It seems like you’re missing “BlueprintCallable” in your UFUNCTION macros. That’s why you can’t call these function directly after receiving input.

Also, BlueprintCallable requires you to setup a category for your function. So to fix this, just replace this:

UFUNCTION(BlueprintNativeEvent) 
void AddFuel(int32 FCount);
virtual void AddFuel_Implementation(int32 FCount);

UFUNCTION(BlueprintNativeEvent) 
void DouseWithWater(); //Call in blueprint
virtual void DouseWithWater_Implementation();

UFUNCTION(BlueprintNativeEvent) 
void EndBurn();
virtual void EndBurn_Implementation();

with this:

UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "Yours Category") 
void AddFuel(int32 FCount);
virtual void AddFuel_Implementation(int32 FCount);

UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "Yours Category") 
void DouseWithWater(); //Call in blueprint
virtual void DouseWithWater_Implementation();

UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "Yours Category") 
void EndBurn();
virtual void EndBurn_Implementation();

That way, you should be able to get rid of your dispatchers and directly call these functions in blueprints.

Cheers.