API Reference

Every public type this plugin ships. Types owned by another module are marked.

Core types

TypeKindPurpose
UCrimsonAbilitySystemComponentComponentThe ASC. Cooldowns, modifiers, tag stacks, effect stacks, augment slots, input routing.
UCrimsonGameplayAbilityAbilityBase ability with activation policy/group, costs, configurable values, augment broadcast.
UCrimsonAbilitySystemGlobalsGlobalsMUST be registered in DefaultGame.ini. Allocates FCrimsonGameplayEffectContext.
FCrimsonGameplayEffectContextStructEffect context carrying ability source and augment provenance.
UCrimsonAttributeSetAttribute setBase for your attribute sets.
UCrimsonAbilitySystemSettingsSettingsProject Settings -> Crimson -> Crimson Ability System.
UCrimsonAbilitySystemStaticsLibraryGetSetByCallerMagnitudeFromHandle, GetAbilitySystemComponentFromTargetData, GetPredictedMontageDuration.
UCrimsonGlobalAbilitySystemSubsystemApply/remove an ability or effect across every ASC.
UCrimsonAbilityTagRelationshipMappingData assetStatic block/cancel relationships by tag.
ICrimsonAbilitySourceInterfaceInterfaceLets a damage source describe itself to calculations.

Ability subclasses

TypeKey API
UCrimsonGameplayAbility_WithCastTimeUpdateAbilityCastTime, GetCalculatedCastTime, ECrimsonAbilityCommitTime.
UCrimsonGameplayAbility_ToggleActivates and deactivates on alternating presses.
UCrimsonGameplayAbility_ChargesGetMaxCharges, GetCurrentCharges.
UCrimsonGameplayAbility_ChannelingStartChanneling, StopChanneling, SetChannelTickInterval, SetMaxChannelTime, SetCancelOnMovement.
UCrimsonGamePhaseAbilityA phase modelled as an ability. GetGamePhaseTag.

Costs

TypePurpose
UCrimsonAbilityCostBase. Override K2_CheckCost and K2_ApplyCost.
UCrimsonAbilityCost_PlayerTagStackCharges a tag-stack resource.

Augments

TypePurpose
UCrimsonAbilityAugmentThe augment data asset - mutations, actions, stateful listeners.
UCrimsonAugmentSubsystemWorld subsystem resolving augment definitions.
UCrimsonAugmentActionOne-shot action base. Override Execute.
UCrimsonStatefulAugmentBaseStateful listener base. Override Initialize, HandleAbilityEvent, OnRemoved.
UCrimsonAugmentActorActor spawned by an augment. GetOwningAbility, GetSnapshotedValue.
ICrimsonAugmentSpawnedActorInterfaceInitializeAugmentActor on spawned actors.
UCrimsonAbilityContractDeclares the properties an ability exposes.
UCrimsonAbilityTask_SpawnAugmentActorAbility task for augment-owned actors.

Shipped actions: _ApplyGameplayEffect, _Chance, _Conditional, _ConsumeEffectStacks, _FindTargets, _GrantAndActivateAbility, _ModifyContext, _ModifySetByCaller, _ModifySpecAttribute, _ReduceCooldown, _SpawnActor.

Shipped stateful listeners: _ApplyGameplayEffect, _EventTrigger, _HitCounter, _ModifyTags, _ReplaceAbility, _StackConsumer.

Gameplay Effect components

TypePurpose
UCrimsonModifierGameplayEffectComponentApplies property modifiers from an effect.
UCrimsonAccumulateGameplayEffectComponentAccumulates a value across applications.
UCrimsonGameplayEffectComponent_ApplyToInstigatorAlso applies the effect to the instigator.
UCrimsonGameplayEffectStackingSubsystemStacking bookkeeping.

Combo system

TypePurpose
UCrimsonComboControllerThe runtime driver. Add to the pawn.
UCrimsonComboGraphAssetThe authored graph - handshake, nodes, end points.
UCrimsonComboTransitionConditionPer-step observer gating a transition's augments.
UCrimsonComboEventBaseEvent base. Subclasses _Augment, _GameplayCue, _GameplayEvent, _GameplayMessage.
UCrimsonComboPathLibraryBuildComboPathTree, BuildComboPathForestFromGrants for UI.
UCrimsonInputTrigger_ComboEnhanced Input trigger with correct press/hold/release semantics.
FCrimsonComboExtensionUPROPERTY on UCrimsonGameplayAbility declaring rooted combos and the cancel window.
FCrimsonComboTransitionOne edge - input, kind, charge window, fire mode, priority, conditional augments.
FCrimsonComboRuntimeNodeOne step - ability class, phase boundaries, transition window, events.
ECrimsonComboFireModeIASA, PressBuffer, HoldBuffer.
ECrimsonComboInputKindTap, Hold, Release.
ECrimsonComboDirectionNone, Forward, Back, Left, Right, Up, Down.
ECrimsonComboResetReasonWhy a combo ended - timeout, damage, death, interruption, and so on.

Combo controller functions

FunctionPurpose
HandleInputActionPressed / ReleasedRoute input. The third parameter marks a press defensive.
IsComboActive / IsInCancelWindowState queries.
GetCurrentCombo / GetCurrentNodeID / GetCurrentStepHandleWhat is running now.
GrantDynamicCombo / RevokeComboGrant / UnlockComboGrant / LockComboGrantRuntime grant management. Server only.
IsComboGranted / GetGrantedCombosForGrant queries.
GrantAugmentWithLifetime / RemoveAugmentFromCurrentStep / RemoveAllAugmentsFromCurrentStepStep-scoped augment control.
AddDynamicEventToNode / RemoveDynamicEvent / RemoveDynamicEventsBySourceRuntime event overlay.
ResetComboEnd the current combo with a reason.
GetActiveHolds / GetAvailableComboInputsUI-facing state - charge bars, input prompts.
GetSaveData / ApplySaveDataPersist dynamic grants and events.
SetMoveInputProviderC++ only. Supplies directional intent.

Persistence

TypePurpose
UCrimsonAbilityStateCarrierSubsystemGame instance subsystem holding a snapshot across travel.
UCrimsonEffectPersistenceComponentPer-effect persistence bookkeeping.
UCrimsonAbilityStatePersistenceSettingsProject Settings -> Crimson -> Ability State Persistence.
FCrimsonAbilitySystemStateSnapshotThe captured state.

Base actors

TypeDerives fromPurpose
ACrimsonAbilityCharacterACrimsonModularCharacter (CrimsonCommon)Character with ASC access and init callbacks.
ACrimsonAbilityPlayerStateACrimsonModularPlayerState (CrimsonCommon)Owns the ASC - the recommended pattern.
ACrimsonAbilityPlayerControllerACrimsonModularPlayerController (CrimsonCommon)Typed ASC accessor.
ACrimsonTaggedActorAActorActor carrying gameplay tags.

Settings

SettingDefaultPurpose
bEnableComboSystemfalseMaster switch. Editor restart to apply.
ComboInputMappingContextunsetThe IMC catalog the combo input picker reads.
MoveInputActionunsetSampled at press time for ECrimsonComboDirection.
DefaultInputBufferTTL0.1Last resort in the buffer TTL chain.
DefaultInputBufferCapacity8Ring buffer size.
MoveInputDeadZone0.3Below this, direction resolves to None.
ServerPingLeniencyCapSeconds0.08Cap on server window tolerance.
bDefaultResetOnDamageTakentrueSeeded into new combo assets.
TapMaxHoldDuration0.18Tap/Hold disambiguation threshold.
RecentlyEndedBannerSeconds1.5Dev-tools cosmetic only.

Gameplay tags this plugin defines

These are native tags declared by this plugin - you can rely on them existing.

GroupTags
Activation failureAbility.ActivateFail.Cooldown, .Silenced, .IsDead, .ActivationGroup, .Charge.OutOfCharges
Ability stateAbility.State.Casting, .Channeling, .Interrupted, .Stunned, .Silenced, .Changed, .AbilityHandleChanged
Ability propertiesAbility.Property.Cooldown, Ability.Property.PrimaryTargetCount
Ability behaviorAbility.Behavior.SurvivesDeath
Augment eventsAugment.Event.OnActivate, .OnHit, .OnCrit, .OnKill, .OnEnd, .OnGranted, .OnRemoved, .OnOwnerDodge, .OnOwnerBlock, .OnOwnerDamageTaken
Augment categoriesAugment.Category.Default, .Stat, .Behavior, .Defensive, .Trigger, .Visual
PersistenceCrimson.Persistence.Persist, Crimson.Persistence.DoNotPersist
StatusStatus.Death, Status.Cheat.Invulnerable, Gameplay.AbilityInputBlocked
Augment.Event.OnActivate does not reach combo conditions
It is broadcast during the step ability's activation, before the combo controller has registered that step - so the spec filter drops it. Use OnObservationBegin instead. How-To: Gate Combo Branches with Conditions documents the full reasoning and the workarounds.

Types owned by other modules

Listed for orientation. These are not shipped by this plugin.

TypeHomeNote
UCrimsonAbilitySetCrimsonCommonThe data asset used to grant abilities, effects and attribute sets.
FCrimsonAbilitySet_GrantedHandlesCrimsonCommonRevoke handle returned by a grant.
ICrimsonAbilitySystemOwnerCrimsonCommonInterface the PlayerState implements.
ACrimsonModularCharacter / PlayerState / PlayerControllerCrimsonCommonBase classes this plugin's actors extend.
UCrimsonHeroComponentCrimsonCore (requires all Crimson plugins)Turnkey input routing including the defensive-input entry points. How-To: Tune Combo Input Feel shows the standalone equivalent.