Engine Source SkillSystem Explanation


I look at every code update for this system. :smiley: I have no idea what it does for most part or why it is the way it is, but it was huge help in looking how pros are doing it :D, and drawing some inspiration from :D.

Any news/update on this?

Any new/update on this? Would really like to get my hands on it.

For anyone reading this thread, here are a few tips I’ve discovered.

  1. In general, SkillSystem has been renamed to GameplayAbilities. So when updating build files, add GameplayAbilities instead of SkillSystem (or GameplayAbilitiesEditor in UnrealEd.Build.cs)
  2. The updated config info for DefaultEngine.ini is:


  1. There is a thread with additional tips on setup - GameplayAbilities questions - C++ Gameplay Programming - Unreal Engine Forums
  • Shawn

Any update on when GameplayAbilities will be ready for “prime time”? It’s been in development for almost two years now… :slight_smile:
Should a game team start using it or build something on their own to do the same thing?

An update on this would be helpful for me too.

It’s usable right now, if you want to use it. But you’ll need at least one dedicated programmer to support it for the rest of your team. It can help you accomplish a lot of things, but it also requires technical knowledge of several parts of UE4 to understand it and use it in your game. It will require a non-trivial amount of C++ to get it working in your game, and you’ll also need to build custom tools to feed it stats data. There are examples in some comments in the code to get you started within powering it from data from Excel/CSV.

Here is some cautionary advice. If your programmer is not able to understand the system as it currently exists from its source code and comments, they will probably become overwhelmed trying to support the system in your game. This may change in the future, though, if Epic changes or amends the design of the GameplayAbilities system in order to make it more approachable for smaller or less technical/experienced teams. But, due to the necessary complexity of building solutions for these kinds of problems in networked multiplayer games, there is only so much that can be done.

The system is complicated and touches a lot of different aspects of games and multiplayer networking: network prediction for lag reduction on clients, a system for triggering decoupled artist-defined effects and rolling them back if a network prediction was incorrect, traffic size reduction for networking (gameplay tags), data-driven game balance (Excel/CSV to popular attribute sets), optimization to minimize load on servers, automated testing, etc. However, these features don’t come completely for free. You have to understand how they work and how to build your game and your customization of the abilities system to work together.

It was designed around building something like a MOBA (Fornite and Paragon), so if your game is not too similar to a MOBA, it may have features that get in your way.

I gave it a shot in my game, but it wasn’t a perfect fit for what I was trying to accomplish, so I ended up making my own more simple and limited system. Good luck!

Cancel, thanks for the update!

I’ve been spending the last week or so wrapping my head around this module and bridging between it and our game. So far, I agree with both your cautions and assessment. Right now, I’m still optimistic that it will be largely on target with our needs. Sometimes, the biggest challenge has been building my understanding and acceptance of its strategies when it doesn’t align with how I’ve done it in the past. Adjusting to another solution has been a bit hard - especially with relatively little documentation.

I don’t see many posts about this module in the forums - or anywhere really. I would love to see a bit of a community of developers working on clarifying and improving this module together. I will start some threads as I see questions and topics that would be relevant to others…

Would pull requests for changes to this module be welcomed? (At minimum, I’d love to be able to override some functions that aren’t currently virtual…)

@epic, can we have an update on the Status of this features? I bet you are now pretty stable on this due Paragon state, can we expect something on 4.11 or 4.12 with some documentation?


I stepped away from using these systems. The lack of documentation and mismatches between it and our game scared me away.

Any updates on this?

Litlle bump on this as 4.12 just went out and nothing have changed in source code since 6 months. Is it stable and ready to use? Any starting doc planned?


yeah, for something as simple and game-specific as a skill-system, I’d say it’s much better to make your own custom solution anyway

Plus, it’s the kind of thing that’s always fun to code (to me, at least)