UWCGASDifficultySub is a World Subsystem that serves as the global manager for difficulty tiers in the Wonderscape GAS Ally plugin. It automatically initializes with each world (PIE, level streaming friendly), loads difficulty tier data assets from Project Settings, caches active tier information for O(1) runtime queries, broadcasts delegates on difficulty changes, and provides an internal API for other plugin subsystems to load difficulty-appropriate data.
The Difficulty Subsystem orchestrates all difficulty tier management by providing:
FWCGASDifficultyTierInfo structs for fast UI population without loading full assetsIsDifficultyAtLeast() for conditional game logic based on tier SortOrder valuesGetDataAssetForDifficulty<T>() enables other subsystems to load difficulty-specific configurationsCaptureSaveData() and LoadFromSaveStruct() with migration support and detailed result feedbackUWCGASAllySettings via GetDefault<UWCGASAllySettings>()Settings->DifficultyTiers array, loading each UWCGASDifficultyTier synchronouslyDifficultyTag and adds to RegisteredTiers TMap (Tag → SoftPtr) and LoadedTierAssets TMap (Tag → LoadedPtr)Tier->ToTierInfo() to create lightweight FWCGASDifficultyTierInfo and adds to CachedTierInfos arrayCachedTierInfos array ascending by SortOrder for UI display consistency