Hey, looking back at this I think that initialization of ASC and Attributes in BeginPlay() in PlayerState may be too late. I recommend looking at: GitHub - tranek/GASDocumentation: My understanding of Unreal Engine 5's GameplayAbilitySystem plugin with a simple multiplayer sample project. as this approach of creating AbilitySystemComponent and AttributeSet is better than what I’ve done here, alternatively you can try to initialize it in the constructor or switch to your Character class for binding the delegates if you’re okay with the clutter. Anyway imo it will be best to look at the GASDocumentation as this approach seems to be the best (Epic also uses it in Fortnite).