CrimsonAbilitySystem

GAS projects only
This plugin is a layer ON TOP of Epic's Gameplay Ability System. There is no non-GAS path - if your project does not use GAS, nothing here applies. You also MUST register this plugin's globals class in Config/DefaultGame.ini before anything runs:

[/Script/GameplayAbilities.AbilitySystemGlobals]
AbilitySystemGlobalsClassName=/Script/CrimsonAbilitySystem.CrimsonAbilitySystemGlobals

Without 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

SystemKey typesPurpose
Ability System ComponentUCrimsonAbilitySystemComponentCooldown reset/reduce, tag-based and ability-specific modifiers, dynamic tag rules, effect-stack consume, tag stacks, augment slots.
Gameplay AbilityUCrimsonGameplayAbilityActivation policy + activation group, cost hooks, configurable values, ability-family tags, augment event broadcast.
Ability shapesUCrimsonGameplayAbility_WithCastTime, _Toggle, _Charges, _ChannelingFour common patterns as subclasses so you do not re-implement them.
Ability costsUCrimsonAbilityCost, UCrimsonAbilityCost_PlayerTagStackPluggable, stackable cost objects evaluated before activation.
AttributesUCrimsonAttributeSetBase attribute set with the init/clamp plumbing; you define the actual attributes.
AugmentsUCrimsonAbilityAugment, UCrimsonAugmentAction, UCrimsonStatefulAugmentBaseData assets that attach mutations, one-shot actions and stateful listeners to a single ability spec.
Ability contractsUCrimsonAbilityContractDeclares which properties an ability exposes, so augment authoring becomes dropdowns instead of free text.
Gameplay Effect componentsUCrimsonModifierGameplayEffectComponent, UCrimsonAccumulateGameplayEffectComponent, UCrimsonGameplayEffectComponent_ApplyToInstigatorEffect-side behavior without subclassing UGameplayEffect.
Game phasesUCrimsonGamePhaseAbility, UCrimsonGamePhaseSubsystemMutually-exclusive match phases modeled as abilities.
Combo system (optional)UCrimsonComboController, UCrimsonComboGraphAsset, UCrimsonComboTransitionConditionGraph-authored ability chaining with input buffering and client prediction. OFF by default.
PersistenceUCrimsonAbilityStateCarrierSubsystem, UCrimsonEffectPersistenceComponentCarry ASC state across a level transition.
Base actorsACrimsonAbilityCharacter, ACrimsonAbilityPlayerState, ACrimsonAbilityPlayerControllerOptional starting points with the PlayerState-owns-ASC pattern already wired.

Plugin dependencies

Crimson plugins

PluginWhy
Crimson pluginsNone. The plugin is fully standalone.

Engine modules and plugins

ModuleWhy
GameplayAbilitiesThe GAS runtime this plugin extends.
GameplayTasksAbility task infrastructure.
GameplayTagsTags used throughout.
EnhancedInputUInputAction identity for combo input and the combo input trigger.
DeveloperSettingsUCrimsonAbilitySystemSettings.
InputCore, GameFeatures, ModularGameplayFKey for combo modifier keys; the Add Abilities Game Feature action and component-receiver registration. (AIModule and AssetRegistry are also private dependencies.)
NetCorePrivate. FGameplayEffectContext::NetSerialize.
IrisCorePrivate. Replication support.
Attribution
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.

FeatureProvided by (CrimsonCore - requires all Crimson plugins)Without CrimsonCore
Camera mode, pawn facing, lock-on targetUCrimsonCoreAbilityCameraStatics, UCrimsonCoreAbilityExtension_PawnFacingCall your camera system from the ability, or write a UCrimsonGameplayAbilityExtension.
Fixed HUD slot per abilityUCrimsonCoreAbilityExtension_FixedSlotUI on the ability's ExtensionsWrite an extension that registers a widget with your HUD.
Named (tag) combo modifiersUCrimsonCoreComboModifierBridgeKey modifiers work standalone; bind FCrimsonAbilitySystemIntegrationHooks::ResolveHeldComboModifierTags or call SetModifierStateProvider.
Cast / channel barUCrimsonCoreCastBarWidgetBind the ASC's OnAbilityProgress (see How-To: Make a Cast-Time Ability).
Neutral defaults
Attribute-driven hooks return neutral values, not zero: GetCastSpeedModifier and GetCooldownRecoveryRate default to 1.0, so an ability with no attributes behaves exactly as if the stat were unmodified.
Using with other Crimson plugins
CrimsonAbilitySystem works alone. When you own other Crimson plugins, CrimsonCore contains the full-suite wiring for it in 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

Which path do I choose?
Quick Start stands up a working ASC, an attribute set and one activatable ability from nothing - do that first.

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.