# Integrating with Gameplay Ability System (GAS)

[Gameplay Ability System](https://docs.unrealengine.com/5.1/en-US/gameplay-ability-system-for-unreal-engine/) is an official plugin for building various types of character abilities and attributes that you can use to define character actions in your games. It is a flexible, though with a little tricky complexity system that comes up with the core concepts of Gameplay Tag, Gameplay Attribute, Gameplay Event and Gameplay Ability. The `Gameplay Ability` class is where you implement the ability logic, play montage and do collision detection, etc.

If your character is casting an ability using GAS and you want to call a nice ability camera while handling ability interruption and ability end, you should explicitly call the original camera in the `OnEndAbility` event, which already provides you with a boolean value `Was Cancelled`. This value helps you distinguish whether this ability is normally ended or is interrupted by other abilities or actions.

<figure><img src="https://1253177398-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIc7aRtmwmEkkqEJZORmC%2Fuploads%2FfLKLeKi6FelHQxnqOK7Q%2Fonendability.png?alt=media&#x26;token=58800cf9-8ef1-415d-b2ce-00dc617315a8" alt=""><figcaption></figcaption></figure>

In the future I will give a complete toy example to shed light on integrating GAS and ComponentCameraSystem.
