CrimsonAbilitySystem
Config/DefaultGame.ini before anything runs:[/Script/GameplayAbilities.AbilitySystemGlobals]AbilitySystemGlobalsClassName=/Script/CrimsonAbilitySystem.CrimsonAbilitySystemGlobalsWithout that line,
MakeEffectContext returns the engine context instead of FCrimsonGameplayEffectContext and every feature that reads Crimson context data breaks. Quick Start does this in step 1.CrimsonAbilitySystem is the foundation layer for GAS-based combat. It gives you an UCrimsonAbilitySystemComponent with cooldown manipulation, tag-driven modifiers, effect-stack helpers and tag stacks; a UCrimsonGameplayAbility base with activation policies, activation groups, cost hooks and a configurable-value API; four ready-made ability shapes (cast time, toggle, charges, channeling); a data-asset-driven Augment system that mutates individual ability specs at runtime; and an optional graph-authored Combo system that chains abilities into branching, client-predicted sequences.
It ships no game-specific content - no attributes, no abilities, no tags beyond the plumbing ones. You bring those. Every recipe in this wiki builds what it needs from scratch.
What's included
| System | Key types | Purpose |
|---|---|---|
| Ability System Component | UCrimsonAbilitySystemComponent | Cooldown reset/reduce, tag-based and ability-specific modifiers, dynamic tag rules, effect-stack consume, tag stacks, augment slots. |
| Gameplay Ability | UCrimsonGameplayAbility | Activation policy + activation group, cost hooks, configurable values, ability-family tags, augment event broadcast. |
| Ability shapes | UCrimsonGameplayAbility_WithCastTime, _Toggle, _Charges, _Channeling | Four common patterns as subclasses so you do not re-implement them. |
| Ability costs | UCrimsonAbilityCost, UCrimsonAbilityCost_PlayerTagStack | Pluggable, stackable cost objects evaluated before activation. |
| Attributes | UCrimsonAttributeSet | Base attribute set with the init/clamp plumbing; you define the actual attributes. |
| Augments | UCrimsonAbilityAugment, UCrimsonAugmentAction, UCrimsonStatefulAugmentBase | Data assets that attach mutations, one-shot actions and stateful listeners to a single ability spec. |
| Ability contracts | UCrimsonAbilityContract | Declares which properties an ability exposes, so augment authoring becomes dropdowns instead of free text. |
| Gameplay Effect components | UCrimsonModifierGameplayEffectComponent, UCrimsonAccumulateGameplayEffectComponent, UCrimsonGameplayEffectComponent_ApplyToInstigator | Effect-side behavior without subclassing UGameplayEffect. |
| Game phases | UCrimsonGamePhaseAbility, UCrimsonGamePhaseSubsystem | Mutually-exclusive match phases modeled as abilities. |
| Combo system (optional) | UCrimsonComboController, UCrimsonComboGraphAsset, UCrimsonComboTransitionCondition | Graph-authored ability chaining with input buffering and client prediction. OFF by default. |
| Persistence | UCrimsonAbilityStateCarrierSubsystem, UCrimsonEffectPersistenceComponent | Carry ASC state across a level transition. |
| Base actors | ACrimsonAbilityCharacter, ACrimsonAbilityPlayerState, ACrimsonAbilityPlayerController | Optional starting points with the PlayerState-owns-ASC pattern already wired. |
Plugin dependencies
Crimson plugins
| Plugin | Why |
|---|---|
| Crimson plugins | None. The plugin is fully standalone. |
Engine modules and plugins
| Module | Why |
|---|---|
GameplayAbilities | The GAS runtime this plugin extends. |
GameplayTasks | Ability task infrastructure. |
GameplayTags | Tags used throughout. |
EnhancedInput | UInputAction identity for combo input and the combo input trigger. |
DeveloperSettings | UCrimsonAbilitySystemSettings. |
InputCore, GameFeatures, ModularGameplay | FKey for combo modifier keys; the Add Abilities Game Feature action and component-receiver registration. (AIModule and AssetRegistry are also private dependencies.) |
NetCore | Private. FGameplayEffectContext::NetSerialize. |
IrisCore | Private. Replication support. |
UCrimsonAbilitySet - the data asset you grant abilities with - ships with this plugin (AbilitySystem/CrimsonAbilitySet.h), as do ICrimsonAbilitySystemOwner and ICrimsonAbilityInputRouter. The integration actors derive from the engine's ACharacter, APlayerState and APlayerController and register as ModularGameplay component receivers themselves.Optional integrations
No other Crimson plugin is required. Everything below is optional: the features are always present on the ability and degrade to a silent no-op when nothing provides the other half. None can crash, and none log an error.
| Feature | Provided by (CrimsonCore - requires all Crimson plugins) | Without CrimsonCore |
|---|---|---|
| Camera mode, pawn facing, lock-on target | UCrimsonCoreAbilityCameraStatics, UCrimsonCoreAbilityExtension_PawnFacing | Call your camera system from the ability, or write a UCrimsonGameplayAbilityExtension. |
| Fixed HUD slot per ability | UCrimsonCoreAbilityExtension_FixedSlotUI on the ability's Extensions | Write an extension that registers a widget with your HUD. |
| Named (tag) combo modifiers | UCrimsonCoreComboModifierBridge | Key modifiers work standalone; bind FCrimsonAbilitySystemIntegrationHooks::ResolveHeldComboModifierTags or call SetModifierStateProvider. |
| Cast / channel bar | UCrimsonCoreCastBarWidget | Bind the ASC's OnAbilityProgress (see How-To: Make a Cast-Time Ability). |
GetCastSpeedModifier and GetCooldownRecoveryRate default to 1.0, so an ability with no attributes behaves exactly as if the stat were unmodified.Source/CrimsonCore/{Public,Private}/Integration/AbilitySystem/: UCrimsonCoreComboModifierBridge (named combo modifiers), UCrimsonCoreAbilityExtension_FixedSlotUI (fixed HUD slots) and UCrimsonCoreAbilityCameraStatics (camera modes and lock-on from abilities). To wire it yourself, read CrimsonCommon -> Concept: Connecting Crimson Plugins; for everything CrimsonCore installs, read CrimsonCore -> Concept: The Integration Layer.Where to go next
How-To: Get the Building Blocks is the lookup page for "how do I get the ASC / the settings / the subsystem from here" and every other page assumes it.
After that, pick by need: How-To: Make a Cast-Time Ability for ability shapes, How-To: Create and Equip an Augment for runtime ability mutation, or How-To: Author a Combo for attack chaining.