#
Changelog
#
[1.0.1] — 2026-03-26
#
Fixed
Bug Fixes
Widget initial display — UAP_AttributeWidgetBase initial OnDisplayUpdated now defers to NativeConstruct, fixing blank progress bars when BindToAttribute is called before or after Add Child.
Quick Start panel wiring — Added multi-attribute panel setup instructions with correct BindToAttribute wiring. Use GetOwner on the component parameter for Target Actor — do not use GetBoundActor() as the actor reference may not be available yet on clients.
#
[1.0.0] — 2026-03-26
#
Initial Release
UAP_AttributeSuiteComponent— server-authoritative attribute management with full multiplayer replication- FastArray-replicated attribute state — CurrentValue, BaseValue, MinValue, EffectiveMax replicate to clients
UAP_AttributeSetDataAsset — data-driven attribute definitions with no code required- Gameplay Tag-keyed attribute identification
- Three modifier types:
Additive,Multiplicative,Override - Timed modifiers with configurable auto-expiry duration
FAP_AttributeModifierHandle— Blueprint-safe handle for targeted modifier removalAddModifier,RemoveModifier,RemoveAllModifiers- Override type: only one active per attribute — adding a second removes the first automatically
- Per-attribute regeneration configured in the DataAsset —
bRegenEnabled,RegenRatePerSecond,RegenDelay - Regen runs at 10 Hz server-side — no actor Tick dependency
SetRegenEnabledfor runtime override- Regen delay resets on negative delta (damage)
OnAttributeChanged— fires on server and client with OldValue and NewValueOnAttributeDepleted— edge-detected, fires only on transition to minimumOnAttributeRestored— edge-detected, fires only on transition above minimumOnModifierAdded— server only, fires with modifier handleOnModifierRemoved— server only, fires on manual removal or timer expiry
GetCurrentValue,GetBaseValue,GetMaxValue,GetMinValue,GetNormalizedValueHasAttribute,GetAllAttributeTags- All query functions
BlueprintPure— safe on any machine
UAP_AttributeStatics— zero-setup access from any BlueprintGetAttributeValue,GetNormalizedAttributeValue— one-liner shorthandsGetAttributeComponent,HasAttributeComponent— actor-level component lookup- Falls back to
FindComponentByClassif interface not implemented
UAP_AttributeWidgetBase— C++ base class supporting two usage patterns- Single-attribute bar via
BindToAttribute+OnDisplayUpdated - Multi-attribute panel via
InitForActor+OnActorInitialized CurrentValue,MaxValue,NormalizedValueexposed as Blueprint-readable properties
IAP_AttributeInterface— optional interface for typed checking and custom component resolution- Default implementation uses
FindComponentByClass - Override
GetAttributeComponentfor custom routing or multi-component actors
GetSnapshot— full state dump of all attributes, callable on any machineDebugPrint— logs all attribute values and modifier counts to Output Log
- Pre-registered Gameplay Tags:
AP.Attribute.Health,AP.Attribute.Stamina,AP.Attribute.Mana,AP.Attribute.Shield - Extend with your own tags via Project Settings or
Config/AP_AttributeTags.ini
AfterPrime Systems — Building the Gameplay Foundation