C++-only interfaces

Use meta=(CannotImplementInBlueprint) to declare an interface C++-only.

Using interfaces in other modules

The template for creating C++ interfaces doesn’t include the MYGAME_API macro in the UInterface declaration. This can cause errors during compilation if you try to use the interface in a different module such as an Editor Module.

To fix the error, add the missing MYGAME_API so the code looks something like this:

class MYGAME_API UYourInterface : public UInterface

Example error

0>KotItemDefinitionActorFactory.cpp.obj: Error  : LNK2019: unresolved external symbol "private: static class UClass * __cdecl UKotItemInterface::GetPrivateStaticClass(void)" (?GetPrivateStaticClass@UKotItemInterface@@CAPEAVUClass@@XZ) referenced in function "public: virtual class UObject * __cdecl UKotItemDefinitionActorFactory::GetAssetFromActorInstance(class AActor *)" (?GetAssetFromActorInstance@UKotItemDefinitionActorFactory@@UEAAPEAVUObject@@PEAVAActor@@@Z)