Gameplay Ability System AttributeSet in Blueprint

I’ve been exploring the ability system recently and noticed some changes in UE5 that makes me believe it’s possible to do it entirely through Blueprints.

Pretty much everything seems available now, except that i cannot get AttributeSet and AttributeData to be accessible in my character.

Through the Ability System you can create create a child of the AttributeSet class, as well as a Attribute data table, but i cant figure out a way to “link” them, and make the attribute accessible when trying to get a value in the character.

Anyone figured it out ? is it even possible ?
if not, it seems like its the only missing step to get the whole system to work on blueprint, it would be a shame to need C++ just for this.

4 Likes

I’m working on it - there seems to have been a major change linked to the Gameplay ability set up Game Features and Modular Gameplay | Unreal Engine Documentation but all the what’s new focus is on the graphics changes. I think this is potentially as profound - changing the way games and indeed marketplace content is structured. Pleas ping me if you find any useful documentation.

or I really hope there is full access with blueprints :pray:

1 Like

It would be great to get an Inside Unreal episode on gameplay features, how it works with the gameplay ability system and how this was tackled in the Ancient demo.

1 Like

Agreed, would love to hear about the plans for GAS and UE5

Unless something has changed recently, the attributes have to be done in native code as mentioned in the docs (link below).

Out of curiosity, I tried to make a blueprint class based on AttributeSet in UE5, but it didn’t have a way to define the actual attributes, so I just did it in C++ as usual. A lot of the other parts can be done in BP. There are a number of C++ & BP examples in the Valley of the Ancient demo, but the attributes are still defined in C++.

Is there any reason that this isn’t exposed to Blueprint in-engine yet?

I noticed there’s a highly rated plugin on the Marketplace that claims to “address [this] fundamental limitation”, but I’m working on an open-source project with intent to freely distribute, so a paid plugin does not fit with my scope.

I realize that there are methods to set up the Attribute Sets in C++ first, but I’m looking for a purely Blueprint solution [at this stage], and feeling at this point like I need to reinvent the wheel and just create my own Attribute structs… but those obviously wouldn’t work out of the box with the GAS system, which is what I’m looking to do, argh…

I don’t remember where I read that GAS uses magical C++ tricks that cannot be passed to blueprints. it may be urban legend

…As I stated, “I realize there are methods to set up the Attribute Sets in C++ first”.

My point is, I can create and use Abilities fine with solely Blueprints, but once attempting to define an Attribute Set is involved, it seems C++ is required. My question: Is there a reason for this?

A number of accessors are being created during compilation phase, caused by ATTRIBUTE_ACCESSORS macro in the AttributeSet class.

1 Like