Appearance
GAS concepts in Motion
Motion uses the Gameplay Ability System (GAS) for movement state, attributes, GameplayEffects, and multiplayer replication. This page explains the GAS concepts that Motion uses and their relationships.
Why Motion uses GAS
GAS gives Motion a standard Unreal method to represent state and attribute changes:
- GameplayTags describe states such as sprinting, crouching, jumping, and stamina depletion.
- Attributes store values such as walk speed, jump velocity, stamina, and stamina regeneration rate.
- GameplayEffects modify attributes and grant or block tags.
- The AbilitySystemComponent replicates applicable state between the server and clients.
Core parts
AbilitySystemComponent
The ASC controls active effects, owned tags, attributes, and replication. Motion finds it through UMotionAbilitySystemHelper. The helper does a check of IAbilitySystemInterface and ASC-component fallbacks on the supplied actor or its PlayerState. For a local PlayerController fallback, the helper searches the PlayerState of the controller.
Attributes
Attributes are numeric values. The default Motion AttributeSet gives WalkSpeed, JumpVelocity, Stamina, MaxStamina, StaminaRegenRate, and StaminaDrainRate. Components find attributes by name. The current MotionJumpComponent gets its jump velocity from its profile. The JumpVelocity attribute is not necessary for this component.
Attributes have a base value and a current value. Instant GameplayEffects make a one-time base-value change. Duration and infinite modifiers contribute to the current value. Motion can synchronize applicable attributes with CharacterMovementComponent properties.
GameplayEffects
GameplayEffects are the server-owned method to change replicated Motion state. Motion uses separate effects for the sprint-speed modifier and the active Motion.State.Sprinting tag. A stamina drain effect can periodically decrease Stamina.
Motion also uses loose tags for predicted input intent and local presentation state. These tags can give immediate local animation or gameplay query results. Components control camera feedback directly. Server-applied GameplayEffects control replicated movement state.
GameplayTags
GameplayTags describe state in a way that other systems can query. Motion uses tags for movement state, input intent, camera state, and SetByCaller magnitudes.
Parent tags permit broader checks. For example, a system can query the Motion.State.Sprinting tag or the full Motion.State family.
Intent tags and active state tags have different contracts. Motion.State.WantsToSprint shows that the player requested sprinting. Motion.State.Sprinting shows that sprinting is active. Read active state tags for animation, camera, and held-pose selection.
How Motion uses GAS
Motion uses components for movement behavior and GAS for state and attributes:
This design lets Motion use regular Unreal character classes and GAS replication in networked projects.
The local visual path reads the same tags. On the owning client, movement components can predict input intent with WantsTo* loose tags. Components can control local feedback directly. Server-applied GameplayEffects confirm authoritative active movement tags.
Initialization flow
Why this matters
With the GAS model, a character base class is not necessary for Motion. Your project can keep its character, PlayerState, and AttributeSet. Motion must be able to find the ASC and the necessary attributes.
Feature components bind their attributes after the shared ASC setup is ready. They also synchronize attributes and apply effects.
Clients can predict input intent and local presentation. The server-owned ASC supplies authoritative GameplayEffects, replicated tags, and replicated attributes.
Next steps
Continue with the GAS page for your task.