Overview
WCGASAbilityLibrarySub is a Game Instance Subsystem that serves as the central repository and query engine for all ability metadata in the Wonderscape GAS Ally plugin. It automatically initializes at game start, loads Ability Books from Project Settings, builds a fast-lookup cache indexed by Ability Identifier tags, and provides comprehensive query functions for filtering abilities by category, tier, school, activation type, and character access restrictions across the entire library.
Purpose
The Ability Library Subsystem orchestrates ability organization and discovery by providing:
- Automatic Initialization: Loads all registered Ability Books from Project Settings and builds lookup caches at startup
- Book Registry: Tracks all loaded Ability Books with duplicate identifier detection and validation
- Fast Ability Lookups: Maintains an
AbilityLookupCache map (AbilityTag → Book/Page/Index) for O(1) ability queries
- Hierarchical Queries: Supports queries at Book, Page, and Ability levels with consistent filtering patterns
- Character-Based Filtering: Evaluates page access restrictions (race, class, blessing, required/forbidden tags) against actor's ASC tags
- Category/Tier/School Filtering: Provides specialized queries for organizing abilities by game-design classifications
- Context-Aware Lookups: Returns not just ability data, but also the containing Page and Book for full context
- UI Support: Provides statistics and structured data for building spellbook/ability catalog interfaces
- Event Broadcasting: Notifies game systems when the library loads or reloads via multicast delegates
- Hot-Reload Support: Allows manual library reload for development iteration without restarting
How It Works
Initialization Flow
- Subsystem Startup: When the GameInstance initializes, the subsystem automatically starts via UE's subsystem lifecycle
- Load Books From Settings: Retrieves
AbilityBookAssets array from UWCGASAllySettings (Project Settings)