How-To: Get the Building Blocks

Goal: get a reference to every object the rest of this wiki assumes you already have - the Ability System Component, the project settings, the augment and phase subsystems, the combo controller, and the currently-executing ability. Every other page links back here instead of repeating this.

Prerequisites
Quick Start through step 3, so an ASC actually exists on your PlayerState.
Only this plugin's types
Everything on this page is a CrimsonAbilitySystem type or an engine type. Where a task genuinely needs another plugin, that page says so and treats it as a swappable example.

1. The Ability System Component

There are three ways in, in order of preference.

From an actor that owns it - if you derived from the plugin's base classes, each exposes a typed getter: Get Crimson Ability System Component on ACrimsonAbilityCharacter, ACrimsonAbilityPlayerState and ACrimsonAbilityPlayerController.

From any actor, generically - Get Ability System Component (the engine node from IAbilitySystemInterface), then Cast To CrimsonAbilitySystemComponent. Use this when you do not control the actor's class.

From inside an ability - Get Crimson Ability System Component From Actor Info.

Verify
Print the result. Non-null on both server and owning client during Play As Client.

2. Project settings

UCrimsonAbilitySystemSettings is a UDeveloperSettings, so it is a CDO you read directly - never construct one. It holds the combo master switch and every combo tuning value.

Get Default Object is not needed - use the Get Class Defaults node with CrimsonAbilitySystemSettings selected, then pull the property you want. The settings are also editable at Project Settings -> Crimson -> Crimson Ability System.

Verify
Read bEnableComboSystem and print it. It is false until you turn it on.

3. The augment subsystem

UCrimsonAugmentSubsystem is a world subsystem. It resolves augment definitions and backs the augment slot machinery on the ASC.

Get World Subsystem with CrimsonAugmentSubsystem selected. Any Blueprint with a world context works.

Verify
Non-null during PIE. Null in the editor outside PIE - world subsystems only exist with a world.

4. The game phase subsystem

UCrimsonGamePhaseSubsystem is also a world subsystem, and every mutating call on it is BlueprintAuthorityOnly - it does nothing on a client.

Get World Subsystem with CrimsonGamePhaseSubsystem. The nodes you will use are Start Phase, When Phase Starts or Is Active, When Phase Ends and Is Phase Active.

Verify
Call Is Phase Active with any tag. It returns false rather than erroring.

5. The combo controller

UCrimsonComboController is an actor component you add to the pawn, not the PlayerState - it is tied to the thing being controlled. It only does anything when the combo master switch is on.

On the pawn: Get Component By Class with CrimsonComboController. To add it, open the pawn Blueprint and use Add Component -> Crimson Combo Controller.

Verify
With the combo system enabled, Is Combo Active returns false (not an error) on a fresh pawn.

6. The currently-executing ability

Inside a UCrimsonGameplayAbility you already have this. These are the accessors you will use most - all of them are Blueprint nodes with the same names.

AccessorReturns
GetCrimsonAbilitySystemComponentFromActorInfoThe owning UCrimsonAbilitySystemComponent.
GetPawnFromActorInfo / GetCharacterFromActorInfoThe avatar.
GetControllerFromActorInfo / GetPlayerControllerFromActorInfoThe controller.
GetAbilitySpecHandleThis instance's FGameplayAbilitySpecHandle - the identity augments and combos key off.
GetActivationPolicy / GetActivationGroupHow this ability activates and what it blocks.
Verify
In an ability, print GetAbilitySpecHandle. It is valid from ActivateAbility onward.

7. Turn on the combo system

Everything combo-related is gated behind one switch, off by default.

  1. Open Project Settings -> Crimson -> Crimson Ability System.
  2. Tick Enable Combo System.
  3. Restart the editor when prompted.
Project Settings with Enable Combo System ticked.
The rest of the combo settings are hidden until this is on
Editor registration for the combo asset type, its graph editor, the Combo category on gameplay abilities and the Combo dev-tools tab all read this switch once at module startup. That is why it needs a restart, and why you will not find any of them before you flip it.
Verify
After restarting, Content Browser -> right-click -> Crimson -> Ability System lists Crimson Combo Graph Asset, and the Combo tuning settings are visible.

See also

  • Quick Start - stands up the ASC these accessors return.
  • Concept: Ability System Component - what the ASC adds over the engine one.
  • How-To: Author a Combo - the first thing to do after enabling combos.