Kaos Gameplay and System Utilities

This is the basic WIP documentation for the Kaos GAS Utilities plugin.

  1. Getting Started

1.Download the plugin from Github: https://github.com/KaosSpectrum/KaosGASUtilities and place in YourProject/Plugins/ folder.

2.Add the plugin to your build.cs file (if you plan to extend or use the plugin in code, highly recommended)

		PublicDependencyModuleNames.AddRange(new string[]
		{
			"GameplayAbilities",
			"GameplayTasks",
			"GameplayTags",
			"KaosGASUtilities"
		});

I added the recommended ones for using ability system also.

3. Add the plugin in your project uproject. Open the editor and go plugins and ensure Kaos GAS Utilities is ticked.

4. I highly recommend subclassing the following from the plugin:
UKaosAbilitySystemComponent
UKaosGameplayAbility
UKaosAbilitySystemGlobals

This will allow you add your own specialization for the above classes.

5. You will need to modify your games DefaultGame.ini, below is the recommended

[/Script/GameplayAbilities.AbilitySystemGlobals]
AbilitySystemGlobalsClassName=/Script/YourGame.YourAbilitySystemGlobals
GlobalGameplayCueManagerClass=/Script/KaosGASUtilities.KaosGameplayCueManager
PredictTargetGameplayEffects=false
bUseDebugTargetFromHud=true
ActivateFailIsDeadName=AbilityActivate.Fail.IsDead
ActivateFailCooldownName=AbilityActivate.Fail.Cooldown
ActivateFailCostName=AbilityActivate.Fail.Cost
ActivateFailTagsBlockedName=AbilityActivate.Fail.TagsBlocked
ActivateFailTagsMissingName=AbilityActivate.Fail.TagsMissing
ActivateFailNetworkingName=AbilityActivate.Fail.Networking
+GameplayCueNotifyPaths=/Game/GameplayCueNotifies
+GameplayCueNotifyPaths=/Game/GameplayCues
+GameplayCueNotifyPaths=/Game/Abilities

Of course, if you did not subclass the abilitysystem globals, you can use the one from the plugin directly:

AbilitySystemGlobalsClassName=/Script/KaosGASUtilities.KaosAbilitySystemGlobals

6. Restart the editor and you should be now fully up and running with the plugin.

2. Core Features

The core features of the plugin:

  • Extra exposed functions for Gameplay Ability System via KaosAbilitySystemComponent
  • Modified Attribute Initter to support Primary with Secondary Category
  • AbilityCosts to allow for additional costs for an ability
  • Async Tasks to help with Gameplay Abilities and improve usability
  • Behaviour Tree Tasks, Decorators and Services to help interface with Gameplay Abilities
  • Custom Targeting stuff for the Targeting System plugin
  • Ability Gameplay Tag relationship table to help with managing ability tags with blocking, activation and requirements.
  • Gameplay Ability Set to help organise and provide a nice way to add/remove abilities and gameplay effects from a player/ai/actor.
  • Animation Notifies to help interface with the Gameplay Abilities system.
  • Some Math functions for common Math related stuff
  • Some blueprint exposed statics for dealing with AI and AI Teams
  • Some statics to help with Gameplay Cues
  • Some blueprint exposed statics to help with Gameplay Ability system.
  • More to come soon. Plugin is very WIP.