This Blueprint Function Library provides read-only attribute simulation and preview without modifying live ASC state. It enables designers to show "what-if" scenarios for stat allocation, equipment comparison, and level-up previews by calculating direct changes and all cascading effects through dependency chains. Perfect for building informative UI tooltips that display attribute deltas (e.g., "Strength: 10 → 11 (+1), MaxHealth: 200 → 205 (+5)") before players commit to changes. Uses the same formula calculation logic as the live modification system for 100% accuracy.
Any Blueprint context with access to an Ability System Component (ASC) and World Context Object. Functions are pure read-only simulations that never create temporary effects or modify ASC state. Ideal for use in UI widgets (stat allocation panels, equipment tooltips, skill trees), inventory systems (gear comparison), character customization screens, and level-up menus. Works with WC GAS Ally's attribute registry and modification system to simulate cascading effects through multi-tier dependency chains.
| Blueprint Name | C++ Name | Pins | Brief Description of Purpose |
|---|---|---|---|
| Simulate Stat Increase | SimulateStatIncrease |
Input: World Context, ASC, Attribute To Change, Delta Value (float)<br>Output: Out Result (Preview Result ref), Return (bool) | Primary simulation function showing direct change and all cascading effects for single attribute modification |
| Simulate Multiple Stat Changes | SimulateMultipleStatChanges |
Input: World Context, ASC, Pending Changes (TMap Tag→Float)<br>Output: Out Result (Preview Result ref), Return (bool) | Batch simulation for multiple simultaneous stat changes with merged cascading effects |
| Compare Equipment | CompareEquipment |
Input: World Context, ASC, Current Item Modifiers (TMap), New Item Modifiers (TMap)<br>Output: Out Result (Preview Result ref), Return (bool) | Equipment comparison showing net attribute differences between currently equipped and new item |
| Can Simulate Attribute | CanSimulateAttribute |
Input: World Context, ASC, Attribute Tag<br>Output: Return (bool) | Validation check for UI to disable buttons when simulation would fail due to invalid attribute or ASC |
| Get Attribute Display Name For Preview | GetAttributeDisplayNameForPreview |
Input: World Context, Attribute Tag<br>Output: Return (Text) | Retrieves human-readable display name from definition for UI labels instead of tag path |
| Sort Preview Deltas | SortPreviewDeltas |
Input: Result (Preview Result), Sort By Magnitude (bool)<br>Output: Return (Array of Preview Deltas) | Sorts changed attributes by absolute magnitude (largest first) or alphabetically for cleaner UI layout |
| Filter Deltas By Category | FilterDeltasByCategory |
Input: Result (Preview Result), Category Filter, Match Any (bool)<br>Output: Return (Array of Preview Deltas) | Filters preview deltas to show only specific attribute categories (e.g., only Vital stats in tooltip) |
UObject* - Required for accessing the WC GAS Ally attribute registry subsystemUAbilitySystemComponent* - The Ability System Component to simulate changes on (read-only, never modified)