There's more...

You can code in definitions of GameplayEffects, which will be things that act on the AbilitySystemComponent's AttributeSet collections. You can also write GameplayTasks for generic functions that run at specific times or follow particular events, or even in response to a tag addition (GameplayTagResponseTable.cpp). You can define GameplayTags to modify GameplayAbility behavior, as well as select and match gameplay units during play.