GAS (Gameplay Ability System) powered Combo System with a node-based editor, that lets you focus on Combo / Combat design with a custom graph to deliver a fast, flexible and enjoyable developer experience.
Last Update: June 5th, 2022 (1.2.1 for 5.0) / February 23th, 2022 (1.1.0 for 4.26 / 4.27)
Combo Graph is an Unreal plugin based on GAS (Gameplay Ability System) that lets you focus on Combo / Combat design with a Custom Graph and node-based Editor to deliver a fast, flexible and enjoyable developer experience.
The main idea behind this plugin is to try to cut down iteration times as much as possible when designing and prototyping a new combat system / combos.
Paired with good animation packs, this plugin hopefully has everything a gameplay developer needs to quickly and efficiently build their own melee combat system.
Built with integration in mind
Built from the ground up with integration in mind, you don't need to know GAS to use or integrate Combo Graph. It uses GAS and Enhanced Input at its core to play combo animations and setup input transitions between each nodes, in an accessible and approachable way. A Combo Graph asset can be run from a Gameplay Ability via an Ability Task or elsewhere via a Gameplay Task, like from within a Character Blueprint or Behavior Tree Task.
Building off the foundation of GAS and Enhanced Input, replication and multiplayer support were an integrant part of the plugin design and development process. Combo Graphs running within a Gameplay Ability, and using Ability Tasks to handle animation montage, you get proper local prediction and replication out of the bat.
Just know that while you can use Animation Sequences directly within Combo Graphs (more information below), those are not properly replicated unlike Animation Montages. See the disclaimer section.
Combo Graph assets can be created in the Content Browser and can be edited inside a special Combo Graph Editor. It is a node-based editor (similar to Behavior Trees) where you can add any number of Combo nodes to produce combo strings, add your desired Input Actions to transition between those nodes, and configure each nodes to optionally apply Gameplay Effects Containers (or Damages for non GAS users) upon receiving successful hits notifications, Gameplay Effect costs, as well as Gameplay Cue Containers (for VFX / SFX to apply on hit impacts).
Combo Graph supplies two types of Combo Node: Montage based and Sequence based, however you can create your own custom Combo Nodes through Blueprint to provide additional logic.
While it is not the core focus of the plugin, Combo Graph does have a built in collision component. But it is not tightly integrated with the combo system. Combo Graph instead relies on gameplay events that your hit collision system sends to the owner of combo abilities when a hit is registered, along with proper payload information such as instigator / targets and hit result with target data.
Doing so, it is fairly straight forward to integrate with third party collision system, or your own mechanism.
ComboGraphCollisionComponent is an Actor Component providing basic collision detection mechanism for registered meshes using traces. It implements simple logic for hit detection not meant to replace more robust solutions such as Combat Components or AGR Pro (Combat Manager in v4), but rather to provide a quick and easy way to handle collision for those not having or not willing to use aforementioned plugins, or not having a game-specific custom collision system already in place.
Additionally, setting up animations to use in a combo system usually relies on a lot of Animation Notify States (ANS) for each Animation Montage, such as setting up Combo or Collision Windows. This plugin comes with an "Auto Setup" feature which lets you configure a set of Notify States to trigger when montages are playing, without having to edit each and every animation assets. However, you still have the possibility to further tune how those Notify States are used by defining them in animation assets like you would usually do (Auto Setup for a given ANS only takes place if the anim doesn't define it in its timeline).
This is great for prototyping and saves a lot of time.
Combo Graph comes with a built Behavior Tree Task implemented in c++ to easily run a Combo Graph asset from within Behavior Trees.
Both the demo project and documentation demonstrates how you can easily create your own Behavior Tree Task using the provided gameplay task, which includes all the necessary delegates for you to react to graphs ending their execution, as well as helpers to simulate combo inputs.
Size Map Friendly
Montages / Sequences / Icons and VFX / SFX assets all using soft object references and handled in cpp (so that the abilities or characters using them doesn't explode in size).
VFX / SFX assets in Cue Containers are specifically loaded asynchronously to avoid stall your main thread for too long, which could cause hitches and small freezes the first time they're loaded.
Number of Blueprints: 0
Number of C++ Classes: 60
Network Replicated: Yes
Supported Development Platforms: Windows
Supported Target Build Platforms: Win64 / Win 32
Version: 1.2.1 (5.0) / 1.1.0 (4.26 / 4.27)
Important/Additional Notes: This plugin has been tested exclusively on Windows on 4.26 / 4.27 / 5.0 early access versions of the engine.