//AbilitySystem.DebugAttribute

//showdebug abilitysystem

Where to enable:
[YourProject]/Config/DefaultGame.ini

Script:
[/Script/GameplayAbilities.AbilitySystemGlobals]
bUseDebugTargetFromHud = true

The Gameplay Ability System (GAS) is a versatile framework designed for both programmers and designers. It allows any gameplay-related action to be implemented as an ability. The system is built with multiplayer compatibility in mind and is designed to be well-distributed, making it efficient and easy to use in large team environments.

Ability System Component

  • Manages everything related to this plugin inside a single actor.

Gameplay Ability

  • Gameplay Logic: Core logic of the ability.
  • Low-level Base, High-level Asset: The system allows for complex abilities built on simple foundations.
  • Every Action Can Be an Ability: Any gameplay-related action can be implemented as an ability.

Gameplay Effect

  • A Data Asset: Contains the details of effects.
  • Attributes and Tags: Changes attributes and applies tags; can stack.
  • Grant or Remove Abilities: Can dynamically alter abilities.

Attribute Set

  • Linked Actor Properties: Properties of the actor are connected to the Ability System.
  • Replication: Attributes can be replicated across the network.
  • Modified by Effects: Attributes can be modified by gameplay effects.
  • Complex Mechanics: Attribute calculations can be overridden in C++ to create complex mechanics, such as:
    • Effect Executors
    • PostGameplayEffectFeature in AttributeSet

Gameplay Tags

  • Interaction Management: Handles interactions between abilities and effects.
  • Effect Identification: Identifies and categorizes effects.
  • Powerful Tool: Manages cooldowns, timers, and immunities; can activate, interrupt, or block the activation of abilities.

Gameplay Cue

  • Visual and Audio Representation: Provides visual and audio feedback for gameplay effects.

Gameplay Event

  • Messaging System: Sends messages to actors with a specific tag, along with any associated data.

Gameplay Task

Asynchronous Actions: Allows for asynchronous actions within gameplay abilities, acting as building blocks for ability scripts.

Risks and Reality

  • Steep Learning Curve: The system can be complex and difficult to learn initially.
  • Difficulty in Tracking Interactions: It can be challenging to keep track of all interactions involving tags.
  • Large Number of Files: The system generates and relies on a significant number of files, which can be overwhelming.
  • One-Way Communication: Communications between the Gameplay Ability System and other systems are generally one-way, usually driven by the Ability System.
  • Event-Driven: The system is event-driven, which can make it difficult to determine the current actual state.’

  • Though complicated, it provides more options and safety.
  • Handling the most challenging client-server interactions is built-in.
  • It allows you to focus on making a game instead of developing your own engine.
  • Statistically, it makes development faster and support easier.