Skip to content

GAS Quick Reference

A condensed reference for the Gameplay Ability System concepts used by Motion. For in-depth explanations, see the full GAS primer.

The 5 Core Concepts

ASC

The AbilitySystemComponent manages GAS state. In Motion, it commonly lives on PlayerState and is discovered through IAbilitySystemInterface.

Attributes

Attributes are numeric values such as speed and stamina. Motion commonly uses WalkSpeed, Stamina, MaxStamina, and JumpVelocity.

Effects

GameplayEffects change attributes and grant tags. Motion uses them for sprint speed boosts, stamina drain, stamina regeneration, and movement state.

Tags

GameplayTags are hierarchical state labels. Motion uses tags such as Motion.State.Sprinting and Motion.State.Crouching.

Abilities

Abilities are input-triggered actions in GAS. Motion's movement is component-driven, but it still uses GAS state for replication and coordination.

Quick Setup Checklist

text
1. PlayerState implements IAbilitySystemInterface
2. PlayerState owns AbilitySystemComponent
3. PlayerState owns AttributeSet, or Motion discovers attributes by name
4. GameMode uses your PlayerState class
5. Motion components auto-discover ASC

Motion Gameplay Tags

State Tags

  • Motion.State.WantsToSprint: sprint input intent.
  • Motion.State.Sprinting: active sprinting state.
  • Motion.State.WantsToCrouch: crouch input intent.
  • Motion.State.Crouching: active crouching state.
  • Motion.State.WantsToJump: jump input intent.
  • Motion.State.Jumping: in air from jump.
  • Motion.State.HoldingItem: character is holding a first-person item.
  • Motion.State.StaminaDepleted: sprint stamina is exhausted.
  • Motion.State.StaminaRegenBlocked: stamina regeneration is on cooldown.
  • Motion.State.Walking: character has movement velocity.
  • Motion.State.MovementHalted: character movement is completely halted.
  • Motion.State.StaminaRegenerating: stamina is actively regenerating.

Ability Tags

  • Motion.Ability.CanJump: character can perform jump actions.
  • Motion.Ability.CanCrouch: character can perform crouch actions.
  • Motion.Ability.CanSprint: character can perform sprint actions.

Camera Tags

  • Motion.Camera.BreathingActive: camera breathing effect is active.
  • Motion.Camera.DisableShake: camera shake effects are temporarily disabled.

Attribute Tags

  • Attribute.Movement.WalkSpeed: walk speed.
  • Attribute.Movement.SprintSpeed: sprint speed modifier.
  • Attribute.Movement.JumpVelocity: jump velocity.
  • Attribute.Stamina.Current: current stamina.
  • Attribute.Stamina.Max: maximum stamina.
  • Attribute.Stamina.RegenRate: stamina regeneration rate.

SetByCaller Magnitude Tags

  • SetByCaller.Magnitude.WalkSpeed: walk speed modification.
  • SetByCaller.Magnitude.CrouchSpeed: crouch speed modification.
  • SetByCaller.Magnitude.SprintSpeed: sprint speed modification.
  • SetByCaller.Magnitude.JumpVelocity: jump velocity modification.
  • SetByCaller.Magnitude.StaminaCost: stamina cost amount.
  • SetByCaller.Magnitude.StaminaDrain: stamina drain rate.
  • SetByCaller.Magnitude.StaminaRegen: stamina regeneration rate.

Motion Gameplay Effects

Movement Effects

  • GE_Motion_SprintSpeed: infinite effect that adds sprint walk speed.
  • GE_Motion_CrouchSpeed: infinite effect that applies crouch walk speed reduction.

Stamina Effects

  • GE_Motion_SprintStaminaDrain: infinite effect that drains stamina while sprinting.
  • GE_Motion_SprintStaminaRegen: infinite effect that regenerates stamina when not sprinting.
  • GE_Motion_SprintStaminaRegenDelay: duration effect that blocks regeneration after exhaustion.

Tag Effects

  • GE_Motion_WantsToSprint: grants Motion.State.WantsToSprint.
  • GE_Motion_Sprinting: grants Motion.State.Sprinting.
  • GE_Motion_WantsToCrouch: grants Motion.State.WantsToCrouch.
  • GE_Motion_Crouching: grants Motion.State.Crouching.
  • GE_Motion_WantsToJump: grants Motion.State.WantsToJump.
  • GE_Motion_Jumping: grants Motion.State.Jumping.

Motion Attributes

  • WalkSpeed: default 600; current effective walking speed. With MotionWalkComponent, the base value is initialized from the assigned walk profile's BaseWalkSpeed.
  • Stamina: default 5.0; current stamina.
  • MaxStamina: default 5.0; maximum stamina.
  • StaminaDrainRate: default 1.0; drain per second.
  • StaminaRegenRate: default 1.0; regeneration per second.
  • JumpVelocity: default 420; base jump velocity.

Effect Duration Types

  • Instant: permanent change, such as damage.
  • Duration: temporary change with a timer, such as a 10-second speed buff.
  • Infinite: active until manually removed, such as sprint speed while sprinting.

Common Patterns

Checking Tags in Blueprint

text
Has Gameplay Tag (Actor, Tag) -> Boolean

Checking Tags in C++

cpp
UMotionAbilitySystemHelper::ActorHasGameplayTag(Actor, Tag)

Applying Effects

Apply effects on the server.

cpp
FGameplayEffectContextHandle Context = ASC->MakeEffectContext();
FGameplayEffectSpecHandle Spec = ASC->MakeOutgoingSpec(EffectClass, 1.0f, Context);
ASC->ApplyGameplayEffectSpecToSelf(*Spec.Data.Get());

Removing Effects

cpp
ASC->RemoveActiveGameplayEffect(EffectHandle);

Debugging Commands

console
showdebug abilitysystem
log LogAbilitySystem Verbose
log LogGameplayTags Verbose
log LogMotionAbilitySystem Verbose

Common Issues

  • Tags are not replicating: use a GameplayEffect to grant tags instead of relying only on loose tags.
  • Attributes are not syncing: apply effects on the server with HasAuthority().
  • ASC is not found: implement IAbilitySystemInterface on the PlayerState or another discoverable owner.
  • Effects do not apply: make sure the expected AttributeSet exists on the ASC.

Next steps

Use the reference as a lookup, then move to the deeper conceptual or implementation pages.

Motion - Advanced First Person Character Controller