When implementing an interface on a UObject (or other) in C++, we don’t need to provide overrides to default functionality if we so wish. The official interface documentation states as much. This is true for even BlueprintNativeEvent interface functions, which is hugely convenient and cuts down on boilerplate implementation while exposing those behaviours to Blueprints. However, when adding the same interface to a BP directly without deriving that class from a C++ Object implementing said Interface first, we lose all access to the default functions we set up inside the interface’s CPP file. Meaning, anytime we use that interface on a BP we need to set the default behaviour for each function every time, bloating the object and completely invalidating our default behaviours.
Is there any way to ensure BPs implementing a C++ interface will execute the default functions of that interface if they’re not overridden?