unreal-character-movement

Design, tune, and network Character Movement Component systems in Unreal Engine 5.8.

Updated May 28, 2023
One-click install
npx skills add https://github.com/steveulrich/ProjectB --skill unreal-character-movement-steveulrich
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: unreal-character-movement
Source: https://github.com/steveulrich/ProjectB/tree/main/.cursor/skills/unreal-character-movement
Command: npx skills add https://github.com/steveulrich/ProjectB --skill unreal-character-movement-steveulrich

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Character movement in Unreal Engine involves dozens of coupled parameters, rotation ownership conflicts, and a client-prediction networking model that breaks silently when custom state is not serialized. This Skill provides a structured workflow for selecting the right movement framework, tuning movement feel in dependency order, and verifying networked behavior before polishing. ## Core Features & Use Cases - Framework Selection: Choose between ACharacter with UCharacterMovementComponent, MOVE_Custom sub-modes, Root Motion Sources, GAS ability tasks, or the experimental Mover plugin based on project requirements. - Ordered Parameter Tuning: Tune MaxWalkSpeed, acceleration, braking, friction, rotation, jump, gravity, and air control as coupled groups with measurable feel targets. - Network Prediction Design: Extend FSavedMove_Character and FCharacterNetworkMoveData so custom movement state reproduces correctly on the server, with a full verification matrix for latency, packet loss, and corrections. - Use Case: A gameplay programmer needs a networked dash ability. The Skill guides them to implement it as a Root Motion Source or custom movement mode, serialize the dash state through saved moves, and test it under simulated latency on a dedicated server. ## Quick Start Use the unreal-character-movement skill to design and tune a sprint and crouch system with server-authoritative networking for my Unreal Engine 5.8 character.

Frequently Asked Questions about unreal-character-movement

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I tune character movement feel in Unreal Engine 5?▼

Tune character movement by declaring measurable targets like time to speed and stopping distance, then adjusting MaxWalkSpeed, MaxAcceleration, braking deceleration, and GroundFriction together. Speed alone does not define feel, so measure time to 90% speed and direction reversal separately on a flat test lane.

How do I add a custom movement mode to CharacterMovementComponent?▼

Add a custom movement mode by allocating a sub-mode byte, entering with SetMovementMode(MOVE_Custom, SubMode), and overriding PhysCustom in a custom CMC. MOVE_Custom suspends standard physics, so you must implement gravity, swept collision, velocity, and exit rules explicitly.

Should I use Mover or CharacterMovementComponent in Unreal Engine 5.8?▼

Use CharacterMovementComponent for standard capsule-based networked locomotion because it is the mature default. Epic labels Mover Experimental in UE 5.8, so choose it only when its layered-move architecture materially benefits the project and you accept the shipping risk.

Why does my custom movement cause constant server corrections?▼

Server corrections occur when custom state that changes physics is not serialized to the server. Extend FSavedMove_Character and FCharacterNetworkMoveData with the new state, install a custom move data container, and prevent incompatible saved moves from combining.

How do I implement a networked dash in Unreal Engine?▼

Implement a networked dash using a Root Motion Source applied through ApplyRootMotionSource, or a GAS root-motion Ability Task when an ability owns activation. These participate in Character network prediction, unlike client-side SetActorLocation which is not predicted movement.

Why does my character slide after releasing input?▼

Sliding after input release means braking deceleration or effective braking friction is too low. Raise BrakingDecelerationWalking deliberately and check the interaction between bUseSeparateBrakingFriction, BrakingFriction, and BrakingFrictionFactor.