Quick Start
By the end of this page you'll have a pawn that owns an ability system, is granted an ability set, and activates an ability from an input press - on both server and clients.
CrimsonAbilitySystem plugin is installed, your project uses Enhanced Input, and you have a UCrimsonAbilitySet data asset (or follow How-To: Grant an Ability Set to make one).1. Enable the plugin
Open Edit -> Plugins, type Crimson in the search box, tick CrimsonAbilitySystem's checkbox (and CrimsonCommon, its dependency), and restart the editor when prompted. For a Blueprint project that's the entire install - you never hand-edit the .uproject or any .Build.cs.
Images/CrimsonAbilitySystem/qs-enable-plugin.png.uproject or .Build.cs to edit. The editor writes the plugin entry for you. The C++ step below is needed only when you reference Crimson types from your own C++ code.C++ projects: after enabling the plugin above, add its module to your build file so your game code can use its types:
// YourGame.Build.csPublicDependencyModuleNames.Add("CrimsonAbilitySystem");
2. Use the Player State that owns the ASC
Set your game mode's Player State class to ACrimsonAbilityPlayerState (or a subclass). The ASC lives here so it survives pawn respawns.
Images/CrimsonAbilitySystem/qs-gamemode-playerstate.png3. Use the ability-ready Character
Use ACrimsonAbilityCharacter (or a subclass) as your pawn. It calls InitAbilityActorInfo on both server and client via PossessedBy / OnRep_PlayerState.
Images/CrimsonAbilitySystem/qs-default-pawn.pngGetAbilitySystemComponent() returns a valid UCrimsonAbilitySystemComponent.4. Grant an ability set
On the server, after the ASC initializes, grant a UCrimsonAbilitySet. It bundles abilities, effects, and attribute sets in one call.
Images/CrimsonAbilitySystem/qs-grant-set.png5. Bind input to ability tags
Abilities are driven by gameplay tags. Forward Enhanced Input events to the ASC, then flush the input queue each frame with ProcessAbilityInput (the ability player controller does this for you in PostProcessInput).
Images/CrimsonAbilitySystem/qs-bind-input.png