Description

Since we implicitly create new function graphs for non-event functions when an interface is implemented, that code path marks the function as callable by default. In other words it's not required to add 'BlueprintCallable' to the UFUNCTION() markup inside the native interface class header file.

Whereas dropping an interface event node into the Event Graph in order to implement it does not implicitly mark it as callable, and thus the user is required to add 'BlueprintCallable' to the UFUNCTION() markup in that case.

In addition, for interfaces created in the editor (i.e. non-native), all functions appear to be callable by default. So there's a minor inconsistency there that could lead to some confusion with native interfaces. Perhaps to be consistent with non-interface native functions, we should not implicitly make native interface function graphs callable by default? And thus require 'BlueprintCallable' for all native interface functions?

Community References

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-21004 in the post.

1
Login to Vote

Won't Fix
CreatedSep 11, 2015
ResolvedAug 18, 2021
UpdatedAug 18, 2021