How-To: Create and Equip an Augment

Goal: make a data asset that changes one ability - more damage, an extra target, a chance to refund cooldown - and equip it onto a single ability spec at runtime.

Prerequisites
Quick Start, and How-To: Get the Building Blocks step 3.

What an augment is

An augment attaches to one ability spec, not to the character. Three things can live on it:

PartTypeDoes
MutationsFCrimsonAugmentStatMutation and friendsChange a declared property of the ability - a damage scalar, a target count, a class reference.
ActionsUCrimsonAugmentActionOne-shot work on an event - apply an effect, spawn an actor, reduce a cooldown.
Stateful listenersUCrimsonStatefulAugmentBasePersistent objects that accumulate across events - hit counters, stack consumers.

1. Create the augment asset

Content Browser -> right-click -> Crimson -> Ability System -> Ability Augment. Set its Slot Category (one of the Augment.Category.* tags) - this decides which slots it can occupy.

Verify
The asset exists and reports a valid Slot Category.

2. Add an action

Actions run on an augment event tag. The plugin ships nine.

ActionDoes
_ApplyGameplayEffectApplies an effect to the target or the instigator.
_ChanceRuns its children with a probability.
_ConditionalRuns its children when a tag query passes.
_ConsumeEffectStacksSpends stacks of an effect.
_FindTargetsGathers targets for the actions after it.
_GrantAndActivateAbilityGrants an ability and activates it immediately.
_ModifyContextEdits the effect context (crit flags, source data).
_ModifySetByCallerChanges a SetByCaller magnitude on the outgoing spec.
_ModifySpecAttributeChanges an attribute-backed value on the spec.
_ReduceCooldownShortens a cooldown by tag.
_SpawnActorSpawns an actor tied to the ability lifetime.
Pick the event tag deliberately
Actions are keyed to tags like Augment.Event.OnHit, Augment.Event.OnCrit, Augment.Event.OnKill and the defensive ones (OnOwnerDodge, OnOwnerBlock, OnOwnerDamageTaken). The ability must actually broadcast the tag for the action to run.
Verify
Equip the augment and trigger its event. The action runs.

3. Equip it

Equipping is server-authoritative. Slots are per-ability and come in two pools: Fixed slots declared by the ability, and Temp slots used for transient grants like combo rewards.

On the ASC: Equip Augment To First Free Slot (simplest), Try Equip Augment To Slot (a specific index), or Equip Augment To Temp Slot. Query first with Get Available Slots For Ability.

Remove with Unequip Augment From Slot or Unequip Augment By Slot Address.

Verify
Play As Client. The augment's effect is visible on the client, proving it replicated rather than only applying on the server.

See also

  • How-To: Declare an Ability Contract
  • How-To: Write a Stateful Augment
  • Concept: Augment System