Feedback Needed: Comprehensive Hit Bone System Utilizing GAS Attributes and Gameplay Effects

// about your approach
First, the scheme as is on the first glance: it should work, and even work properly with multiplayer.

But it isn’t very clear to me how you going to ApplyDamageToBone to proper attribute via GE, as iirc GE can only affect predefined attributes. Is the from a given DataAsset comment means that you’ll have GE_DamageBone1, GE_DamageBone2, etc? If so, It will work, though looks weird.

// the suggestion\idea:
… I was going to suggest to use the several of the same AttributeSets despite the doc says otherwise, but after a second thought i understand that it indeed will be a problem while trying to apply GE to particular “bone”.

Nevertheless, the third thought is: as an option you may use individual ASC per bone, which should works fine in all means, including multiplayer.

Considering you already going to store mapping bone->n'th health attribute - instead you may make mapping bone->ASC.

The pros of this are:

  • it’ll looks more natural;
  • it’ll simplify the damage logic: you’ll only need the only GE_Damage GE, just apply it to proper ASC.
  • you’ll still have full power of attribute sets on each bone, not limited to just health and without any needs to copypaste code to add more attributes\bones.

The cons are:

  • You’ll have more components, so a bit more of abstractions to keep in mind, but it still shouldn’t affect nor perfomance nor readability.

So probably there are no real cons.

And if you still need the ASC on character with AttributeSet specific to character - you still can add all this above bones’s ASCs.

Anyway, i didn’t try it, so it’s just an idea. If anyone can add something on this - i’d like to hear about it.

minor upd:
definitely the cons of idea:

  • it will be harder to debug several AttributeSets\ASCs than a single one like in your case;
  • probably overengineering.
1 Like