What problem does it solve? Choosing the right lifetime and ownership for a service or manager class in Unreal Engine is error-prone: hand-rolled singletons leak, manager actors get deleted, and GameInstance overrides conflict with plugins. This Skill provides the correct patterns for Unreal's Subsystem framework so services are created, initialized, and destroyed automatically by the engine. ## Core Features & Use Cases - Five subsystem types by lifetime: UEngineSubsystem (process), UGameInstanceSubsystem (session, survives level loads), UWorldSubsystem (per level), UTickableWorldSubsystem (per level with Tick), and ULocalPlayerSubsystem (per split-screen player). - Lifecycle and dependency management: Initialize/Deinitialize hooks, ShouldCreateSubsystem for conditional creation, and InitializeDependency for ordered initialization within a collection. - Decision guidance: Tables and deep-dive references for choosing between a subsystem, manager actor, GameInstance override, component, or replicated state on GameState/PlayerState. - Use Case: Building a save system that must persist across level loads — implement it as a UGameInstanceSubsystem with BlueprintCallable functions, access it via GetSubsystem<T>(), and skip creation on dedicated servers via ShouldCreateSubsystem. ## Quick Start Ask the agent to create a UGameInstanceSubsystem-based save system in Unreal C++ with proper Initialize, Deinitialize, and Blueprint exposure.