Navigation
Unreal Engine C++ API Reference > Runtime > Engine > Subsystems
Inheritance Hierarchy
- UObjectBase
- UObjectBaseUtility
- UObject
- USubsystem
- UDynamicSubsystem
- UAudioEngineSubsystem
- UAudioBusSubsystem
- UAudioGameplayVolumeSubsystem
- UEditorSubsystem
- UActorEditorContextSubsystem
- UAssetEditorSubsystem
- UAssetEditorUISubsystem
- UBaseCharacterFXEditorUISubsystem
- UExampleCharacterFXEditorUISubsystem
- UUVEditorUISubsystem
- UAssetReferencingPolicySubsystem
- UBrushEditingSubsystem
- UCinePrestreamingEditorSubsystem
- UClassTemplateEditorSubsystem
- UContentBrowserDataSubsystem
- UContentBundleEditorSubsystem
- UDataLayerEditorSubsystem
- UEditorActorSubsystem
- UEditorAssetSubsystem
- UEditorConfigSubsystem
- UEditorElementSubsystem
- UEditorGeometryGenerationSubsystem
- UEditorInteractiveGizmoSubsystem
- UEditorMetadataOverrides
- UEditorUtilitySubsystem
- UEditorValidatorSubsystem
- UEnhancedInputEditorSubsystem
- UExampleCharacterFXEditorSubsystem
- UFoliageEditorSubsystem
- UGeneratedNaniteDisplacedMeshEditorSubsystem
- UImportSubsystem
- ULayersSubsystem
- ULevelEditorSubsystem
- ULevelSequenceEditorSubsystem
- UMassActorEditorSubsystem
- UMassEntityEditorSubsystem
- UMeshPaintModeSubsystem
- UMetaSoundEditorSubsystem
- UMoviePipelineQueueSubsystem
- UMVVMEditorSubsystem
- UPanelExtensionSubsystem
- UPlacementSubsystem
- USkeletalMeshEditorSubsystem
- UStallLogSubsystem
- UStaticMeshEditorSubsystem
- UStatusBarSubsystem
- UStylusInputSubsystem
- UToolPresetAssetSubsystem
- UTypedElementDataStorageCompatibilitySubsystem
- UTypedElementDataStorageSubsystem
- UTypedElementDataStorageUiSubsystem
- UUnrealEditorSubsystem
- UUserToolboxSubsystem
- UUVEditorSubsystem
- UVPScoutingSubsystem
- UWaterEditorSubsystem
- UWaveFunctionCollapseSubsystem
- UWebAPIEditorSubsystem
- UEngineSubsystem
- UAssetTagsSubsystem
- UAudioAnalyzerSubsystem
- UAudioDeviceNotificationSubsystem
- UAudioWidgetSubsystem
- UCameraCalibrationSubsystem
- UContentBundleEngineSubsystem
- UDataDrivenCVarEngineSubsystem
- UDataRegistrySubsystem
- UDMXPixelMappingSubsystem
- UDMXSubsystem
- UGameFeaturesSubsystem
- UGameViewportSubsystem
- UGerstnerWaterWaveSubsystem
- UHLODEngineSubsystem
- UInputDeviceSubsystem
- ULevelSnapshotsEngineSubsystem
- UMassTestEngineSubsystem
- UMediaIOCoreSubsystem
- UMeshPaintingSubsystem
- UMetaSoundAssetSubsystem
- UMetaSoundBuilderSubsystem
- UMoviePipelineQueueEngineSubsystem
- UMQTTSubsystem
- UMVVMSubsystem
- URCPropertyContainerRegistry
- USlateScreenReaderEngineSubsystem
- USubobjectDataSubsystem
- UTextToSpeechEngineSubsystem
- UTimedDataMonitorSubsystem
- UUICommandsScriptingSubsystem
- UVCamPixelStreamingSubsystem
- UVirtualCameraSubsystem
- UVirtualProductionRolesSubsystem
- UWebAPIStaticTypeRegistry
- UWebAPISubsystem
- UXRCreativeSubsystem
- UGameInstanceSubsystem
- UCommonUISubsystemBase
- UGameFrameworkComponentManager
- UMassTestGameInstanceSubsystem
- UMVVMGameSubsystem
- UReplaySubsystem
- USoundscapeSubsystem
- ULocalPlayerSubsystem
- UCommonInputSubsystem
- UCommonUIActionRouterBase
- UCommonUIVisibilitySubsystem
- UEnhancedInputLocalPlayerSubsystem
- UMassTestLocalPlayerSubsystem
- UVCamSubsystem
- UInputVCamSubsystem
- UWorldSubsystem
- UActorPartitionSubsystem
- UCameraAnimationSequenceSubsystem
- UColorCorrectRegionsSubsystem
- UConversationRegistry
- UDataLayerSubsystem
- UDisplayClusterWorldSubsystem
- UEnhancedInputWorldSubsystem
- UGameplayBehaviorSubsystem
- UGameplayCamerasSubsystem
- UGeometryCollectionISMPoolSubSystem
- UGPULightmassSubsystem
- UHLODSubsystem
- ULevelInstanceSubsystem
- ULevelStreamingPersistenceManager
- ULevelStreamingProfilingSubsystem
- UMassActorSpawnerSubsystem
- UMassCrowdSpawnerSubsystem
- UMassLWIClientActorSpawnerSubsystem
- UMassActorSubsystem
- UMassAgentSubsystem
- UMassCrowdSubsystem
- UMassDebuggerSubsystem
- UMassEntitySubsystem
- UMassLWISubsystem
- UMassNavigationSubsystem
- UMassReplicationSubsystem
- UMassRepresentationSubsystem
- UMassCrowdRepresentationSubsystem
- UMassLWIRepresentationSubsystem
- UMassSimulationSubsystem
- UMassSpawnerSubsystem
- UMassStateTreeSubsystem
- UMassTestWorldSubsystem
- UMoviePipelineRenderLayerSubsystem
- UNetworkPhysicsSystem
- UNetworkPredictionWorldManager
- UNetworkSubsystem
- UObjectTraceWorldSubsystem
- USmartObjectSubsystem
- USmartObjectTestSubsystem
- UTickableWorldSubsystem
- UAutoDestroySubsystem
- ULandscapeSubsystem
- UMassComponentHitSubsystem
- UMassLODSubsystem
- UMassSignalSubsystem
- UMetaSoundOutputSubsystem
- UPCGSubsystem
- UQuartzSubsystem
- UWaterSubsystem
- UWorldPartitionSubsystem
- UZoneGraphAnnotationSubsystem
- UZoneGraphSubsystem
- UViewportStatsSubsystem
References
Module | Engine |
Header | /Engine/Source/Runtime/Engine/Public/Subsystems/Subsystem.h |
Include | #include "Subsystems/Subsystem.h" |
Syntax
class USubsystem : public UObject
Remarks
Subsystems are auto instanced classes that share the lifetime of certain engine constructs
Currently supported Subsystem lifetimes are: Engine -> inherit UEngineSubsystem Editor -> inherit UEditorSubsystem GameInstance -> inherit UGameInstanceSubsystem World -> inherit UWorldSubsystem LocalPlayer -> inherit ULocalPlayerSubsystem
Normal Example: class UMySystem : public UGameInstanceSubsystem Which can be accessed by: UGameInstance* GameInstance = ...; UMySystem* MySystem = GameInstance->GetSubsystem
or the following if you need protection from a null GameInstance UGameInstance* GameInstance = ...; UMyGameSubsystem* MySubsystem = UGameInstance::GetSubsystem
You can get also define interfaces that can have multiple implementations. Interface Example : MySystemInterface With 2 concrete derivative classes: MyA : public MySystemInterface MyB : public MySystemInterface
Which can be accessed by: UGameInstance* GameInstance = ...; const TArray
Constructors
Type | Name | Description | |
---|---|---|---|
![]() |
USubsystem () |
Functions
Type | Name | Description | |
---|---|---|---|
![]() ![]() |
void | Deinitialize () |
Implement this for deinitialization of instances of the system |
![]() ![]() |
void | Initialize
(
FSubsystemCollectionBase& Collection |
Implement this for initialization of instances of the system |
![]() ![]() ![]() |
bool | ShouldCreateSubsystem
(
UObject* Outer |
Override to control if the Subsystem should be created at all. |
Overridden from UObject
Type | Name | Description | |
---|---|---|---|
![]() ![]() |
int32 | GetFunctionCallspace
(
UFunction* Function, |
Overridden to check global network context |