World Subsystem

A World Subsystem is an Unreal Engine class that acts as a singleton tied to a UWorld. The engine creates one instance automatically when the world starts and destroys it when the world ends. You don’t place it in the level, you don’t manage its lifetime — it’s just there.

You access it from anywhere with:

GetWorld()->GetSubsystem<UMySubsystem>()

This makes it a good fit for systems that need to exist once per level and be globally accessible — things like object pools, scoring systems, or quest managers.

UE5 has several subsystem types (UGameInstanceSubsystem, ULocalPlayerSubsystem, etc.), each scoped to a different lifetime. World Subsystems live and die with the level.

Further Reading

  • Unreal Engine Documentation — Programming Subsystems (docs.unrealengine.com)
  • Alex Forsythe’s “Unreal Engine C++ Fundamentals” video series covers subsystems in practical context