Quick Start Guide
This guide covers the essential steps to get started with Motion 2.0 Preview 2, featuring universal compatibility with ANY ACharacter subclass and a modular component architecture.
Universal Compatibility
Motion 2.0 works with ANY ACharacter subclass - no inheritance requirements! Add Motion components to your existing characters or use the pre-made example character.
Setup
Add the Plugin to Your Project
- Download Motion 2.0 Preview 2 from Motion's Fab.com page.
INFO
For the Preview, I recommend installing the Plugin into your project directly, as you're more likely to want to edit its source code.

- Copy the
MotionCorefolder to your project'sPluginsdirectory - Restart the Unreal Editor
- Enable the plugin in Edit → Plugins → Motion Core
Configure Your GameMode (Required for GAS)
- Set your GameMode's PlayerStateClass to
AMotionPlayerState::StaticClass() - This provides the Gameplay Ability System integration needed for Motion
- Set your GameMode's PlayerStateClass to
INFO
The final version of Motion 2.0 will allow you to use your own PlayerState. The MotionPlayerState just ensures that you have a PlayerState with GAS.
- Load the Demonstration Map
- Open the default demonstration map at
Plugins/MotionCore/Content/Motion/Maps/Default
- Open the default demonstration map at
Using the Pre-made Character
Find the Demo Character
INFO
If you have not copied Motion into your project, and instead use the version, as-is, from the launcher, you may have to enable "Show Plugin Content" first.

- Locate
B_MotionCharacterinPlugins/MotionCore/Content/Motion/Blueprints - This character demonstrates all Motion components pre-configured
- Drag it into your level or set it as the default pawn in your GameMode
Preview
The blueprint shown in B_MotionCharacter is not final and is likely to change before the release of 2.0. It acts as simple example on how to register the necessary inputs and components. I invite you to implement Input, ASC registration in whatever way works for your project!

Play the Demo
Press Play to test the character with all movement components:
Basic Controls:
- WASD: Movement
- Space: Jump
- Shift: Sprint
- Ctrl: Crouch
- Mouse: Look around
Known Issue
The camera collision prevention is not functional in Preview 2.
Exploring Pre-made Components
The B_MotionCharacter includes these pre-configured C++ components:
Movement Components
- MotionWalkComponent: Base walking speed and acceleration management
- MotionSprintingComponent: Sprint mechanics with stamina management
- MotionCrouchingComponent: Smooth crouching with collision detection
- MotionJumpComponent: Enhanced jump mechanics with landing detection
Support Components
- MotionCameraComponent: First-person camera with camera animation curves
- MotionBreathingComponent: Camera animation when standing still
- MotionMovementSoundComponent: Surface-aware footsteps and movement audio
GAS Integration
- MotionAttributeSet: Movement attributes (speed, acceleration, etc.)
Network Features
- Test with multiple players:
Play->Number of Players: 2 - Select
Play as ClientinNet Modeto test client-side prediction - Movement states properly replicate across clients

Adding Motion to Your Own Character
Motion 2.0's universal compatibility means you can add Motion components to ANY existing ACharacter:
Option 1: Blueprint Setup
- Open your existing character Blueprint
- Add Motion components from the Components panel:
- Search for
Motionto see all available components - Add the components you need (Walk, Sprint, Crouch, etc.)
- Search for
- Configure Enhanced Input bindings to trigger abilities
- Motion components automatically find and integrate with your CharacterMovementComponent

Option 2: C++ Setup
// In your character constructor
MotionWalkComponent = CreateDefaultSubobject<UMotionWalkComponent>(TEXT("MotionWalk"));
MotionSprintComponent = CreateDefaultSubobject<UMotionSprintingComponent>(TEXT("MotionSprint"));
MotionCameraComponent = CreateDefaultSubobject<UMotionCameraComponent>(TEXT("MotionCamera"));
// Add other components as neededConfigure Input Bindings
Motion uses Enhanced Input with Gameplay Abilities:
- Create Input Actions for movement abilities or use the ones that ship with Motion.
- Call
Add Mapping Contexton theEnhancedInputof your player controller. - Use
Bind{ComponentName}Inputto bind inputs

Customization
Adjust Movement Parameters
Each Motion component exposes properties for customization:
- Sprint Walk Speed Modifier: Adjust sprint speed relative to walk speed
- Crouch Walk Speed Modifier: Control movement speed while crouched
- Jump Velocity Modifier: Modify jump height
Camera Curves
The MotionCameraComponent uses curves for procedural effects:
- Location curves for camera position offsets
- Rotation curves for camera angle adjustments
- Access via
MotionCameraComponent->Add{...})functions

Surface Sounds
Configure the MotionMovementSoundComponent:
- Edit
DT_MotionMovementSoundsDataTable for surface-specific sounds - Supports MetaSound integration for dynamic audio

Next Steps
Create Custom Abilities
- Design new movement abilities using the Gameplay Ability System
- Create Gameplay Effects to modify movement attributes
- Implement custom input bindings for your abilities
Extend Components
- Inherit from Motion components to add custom behavior
- Override virtual functions for specialized logic
- Add new curves for unique camera effects
Optimize for Your Project
- Remove unused Motion components to reduce overhead
- Configure logging verbosity:
log LogMotionCore Verbose
Test Multiplayer
- Enable dedicated server mode for production testing
- Monitor replication with
showdebug net - Validate attribute synchronization across clients
Troubleshooting
Common Issues
Character doesn't move:
- Ensure GameMode uses
AMotionPlayerState - Check that Motion components are added to your character
- Verify Enhanced Input is configured
GAS not working:
- Confirm Gameplay Abilities plugin is enabled
- Check that AbilitySystemComponent is initialized
- Verify attributes are properly granted
Camera issues:
- Ensure MotionCameraComponent is attached to character
- Check curve assets are properly referenced
Debug Commands
log LogMotionCore Verbose // Enable detailed logging
showdebug abilitysystem // View GAS stateLearn More
- Architecture Overview - Understand Motion's component system
- Movement Components - Detailed component documentation
- Changelog - What's new in Preview 2
Need Help?
Join the community Discord for support!