GAS Companion

mklabs - Code Plugins - Apr 23, 2021

Ever wanted to use GAS without any C++ knowledge ? Leveraging the power of the Gameplay Ability System, this plugin provides a starting template and a robust foundation to speed up the creation and development of GAS based projects.

  • Supported Platforms
  • Supported Engine Versions
    4.24 - 4.27, 5.0 - 5.1
  • Download Type
    Engine Plugin
    This product contains a code plugin, complete with pre-built binaries and all its source code that integrates with Unreal Engine, which can be installed to an engine version of your choice then enabled on a per-project basis.

Documentation / Discord Server / Example Project / Changelog


Last Update: August 16th, 2022 (5.3.0 for 5.0) / April 4th, 2022 (3.4.0 for 4.27)


GAS Companion aims to be a general base for GAS powered projects without making any game design choices. The various parts of the system are intended to be subclassed and customized per project needs.


It includes the necessary initial C++ setup, helpers and additional features to get started on a new project that aims to use Epic's GAS plugin (used namely in Fortnite and Paragon, and showcased in Action RPG project)


It enables non C++ developers to work with GAS using only Blueprints. Even non BP friendly, c++ required parts of GAS like Gameplay Attributes can be handled with a custom C++ generation Wizard for Attribute Sets.


Similarly, GAS Companion can help existing projects that are considering the use of GAS and accelerate the implementation, or provide guidance.

  • Support for Modular Gameplay and Game Features (5.0 / 4.27 only)
  • Enhanced Input Integration (5.0 / 4.27 only)
  • Provided as a Plugin to easily share code between projects
  • Blueprint Friendly, no need to dive into the cpp side, you can implement Abilities right away
  • C++ Friendly too! You can easily extend from the provided C++ class and / or modify the plugin source.
  • Not Game Specific The plugin doesn't make any assumptions about your game design and decisions, and was built to be generic enough to be used in any kind of game.
  • Flexible AttributeSet / Attributes framework Generate custom Attributes from the Editor with a hand-crafted AttributeSet Wizard.
  • Ability Queue System (with a Debug Widget! more information below)
  • Ignore Ability Cost feature (Possibility to "loosely" check cost for Abilities, more information here)
  • Melee Combo System Easy way to define melee abilities with combo capabilities
  • Gameplay Ability / Effects Definitions Data Driven way to specify common parent GA / GE classes that are accessible through File Menu
  • Straightforward UI framework with HUD UserWidget able to react to GAS related events (Support for custom attributes and events to listen for GameplayTags, GameplayEffects and CooldownStart / End)
  • AttributeSet default setup with most commonly used Attributes (Health, Stamina, Mana)
  • ASC on PlayerState (for Player characters) or on Pawns (for AI / NPC Characters)
  • AI Tasks Activate Abilities by Tags or Class from Behavior Trees


Features


Ability Queue System

  • Store failed abilities and re-trigger when the previous running ability ends


Custom AbilitySystemComponent and GameplayAbility

  • Support for startup Attributes, Effects and Abilities
  • Activate abilities by Class / Tags (and return the activated ability)
  • Abilities with onAbilityEnded delegate (useful for Behavior Tree Tasks)
  • Abilities with Gameplay Effect Containers (inspired by Action RPG project)


Modular Gameplay Actors

  • Supports extension by Game Features and implements IAbilitySystemInterface


Component based Most of the API is provided by Actor Components (Core / Combo / Ability Queue)

  • Ability System helpers (Ability activation, Checking for GameplayTags, ...)
  • Ability, Attributes and Character lifecycle Events (OnAbilityActivated / Commit / Ended / Failed, OnAttributeChange, OnDamage, OnDeath, OnGameplayTagChange, OnGameplayEffectStackChange, OnCooldownStart / End, ...)

Technical Details

Code Modules:

  • GASCompanion (Runtime)
  • GASCompanionEditor (Editor)
  • GASCompanionDeveloper (UncookedOnly)
  • ModularGASCompanion (Runtime) - 4.27 only (removed in 5.0)
  • ModularGASCompanionEditor (Editor) - 4.27 only (removed in 5.0)


Number of Blueprints: 19

Number of C++ Classes: 103

Network Replicated: Yes

Version: 5.3.0 (5.0)

  • Supported Development Platforms: Windows, Mac, Linux
  • Supported Target Build Platforms: Windows, Mac, Linux

Version: 3.4.0 (4.27) / 2.1.1 (4.26) / 1.1.2 (4.24-4.25)

  • Supported Development Platforms: Windows / Mac
  • Supported Target Build Platforms: Windows, Mac, Xbox One, PS4


Important/Additional Notes: Although it should support all the mentioned platforms above, this plugin has been tested exclusively on Windows.