Browse by type
[!IMPORTANT] PredictedMovement offers several shells usually with a derived
UCharacterMovementComponentandACharacterwhich form a single net predicted movement state.[!NOTE] For BP users the
single-cmcbranch contains a feature-richACharacteryou can use right away.
Get the Demo content from Releases
Check out the Demo content in the plugin's content folder or read more about it here.
[!NOTE] Read the Wiki to learn how to use Predicted Movement
Similar functionality as crouching. Also supports change in radius. Has a lock timer, to prevent early exit from prone.
Compatible with crouching, and should switch properly between Crouch➜Prone, Stand➜Prone, Prone➜Crouch, etc.
A shell intended for switching to / from a strafe mode, however the actual functionality is not implemented as it is project-dependent. This is useful for duplicating into your own movement states, e.g. Aiming Down Sights
It makes you sprint by changing your movement properties when activated.
Net predicted stamina and drain state. It also includes a correction mechanism.
Modifiers are similar to states such as sprinting, however instead of a single on/off state, they contain multiple levels, e.g. Boost Level 1-5.
Included Modifiers: Boost, Snare, SlowFall. The single-cmc branch includes also Slow and Haste (boost, but only affects Sprint).
Modifiers come in three formats: Local Predicted, Local Predicted + Corrections, and Server Initiated. Read about the differences here.
Furthermore, Server Initiated modifiers include a functional and production tested client authority solution, that allows limited/partial location authority for the client when the server applies a Modifier to your character, to prevent problematic de-sync. You can read about this here.
The included modifiers can be duplicated to achieve plenty of other effects.
single-cmc includes Stroll, Walk, Run, Sprint gait modes as well as AimDownSights.
Stroll was added for the sake of NPCs who are not doing anything, but you don't want them to remain completely stationary.
I use PredictedMovement in my own projects, here you can see the character sprinting, consuming stamina, strafing, and proning with high latency (>220ms) and p.netshowcorrections 1. As you can see, there is no desync. This was from version 1 of PredictedMovement and it has only improved since.
https://youtu.be/SHVm57AMruc
UStaminaMovementsingle-cmc IsStaminaRecovered() marked as virtualDrawStaminaValues cvar (fixes packaging error)SetStamina(), AddStamina(), SetMaxStamina(), AddMaxStamina(), SetStaminaDrained()single-cmcNotifyModifierChanged<uint8> instead of inferring for the sake of clangsingle-cmcLocalPredicted, ServerInitiated, but also LocalPredicted_WithCorrectionsingle-cmc branch added with full BP support and demo contentuint32:1 to uint8:1CanSprintInCurrentState() no longer checks IsSprintWithinAllowableInputAngle()IsSprintWithinAllowableInputAngle() exposed for BP (ASprintCharacter) and should be checked individually for when considered sprintingIsSprintingInEffect() that checks both IsSprintingAtSpeed() && IsSprintWithinAllowableInputAngle()if (IsSprintingAtSpeed()) becomes if (IsSprintingInEffect())MaxInputAngleSprint which was previously 50.fUE_INLINE_GENERATED_CPP_BY_NAME to all relevant .cppbUseMaxAccelerationSprintingOnlyAtSpeed) for using MaxAccelerationSprinting when IsSprintingAtSpeed() is falseUStaminaMovement::ServerCheckClientError added by PR from vorixobForceIWYUFSavedMove_Character_Prone::PrepMoveFor to use Super instead of FSavedMove_CharacterIsSprintingAtSpeed() check for USprintMovement::GetMaxSpeed()IsSprintWithinAllowableInputAngleVelocityCheckMitigatorSprinting(Thanks to cedric & vori for the code review)
$ claude mcp add PredictedMovement \
-- python -m otcore.mcp_server <graph>