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
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, ...)