Subsystems Are Exposed To Blueprints By Default
Our goal in this tutorial is to disable this default setting. To hide a subsystem in unreal engine from blueprints you need to add the UCLASS specifier “NotBlueprintType” to the macro. Example
UCLASS(NotBlueprintType)
This will hide the Subsystem with the above macro specifier from Blueprint nodes.
Why Hide A Subsytem
The introduction of unreal engine subsystems is great. It takes away a lot of the unnecessary complexities of the unreal engine API. By Default Subsystems are always accessible from any Blueprint in the editor. Most of the time this is the desired outcome but sometimes we would like to use Subsystems in C++ but not expose them to blueprints by default. Sometimes our Designers do not need to know of any functions in the Subsystem.
The UCLASS Macro
The UCLASS() Macro in Unreal Engine is very useful for reflection-related settings. Unreal Engine Uses Reflection to show C++ classes in the editor or Blueprints and the UCLASS() macro has the settings to modify this behavior.