Player movement is controlled through the MovementManager component, which holds a MovementSettings instance with 61 configurable parameters.
MovementManager movement = store . getComponent ( ref, MovementManager . getComponentType ()) ;
MovementSettings settings = movement . getSettings () ;
See Entity Components for details on store and component access patterns.
MovementSettings settings = movement . getSettings () ;
Player player = store . getComponent ( ref, Player . getComponentType ()) ;
movement . update ( player . getPlayerRef () . getPacketHandler ()) ;
MovementSettings settings = movement . getSettings () ;
// base walking speed (default: 5.5)
settings . baseSpeed = 8.0f ;
// sprint multiplier (default: 1.65)
settings . forwardSprintSpeedMultiplier = 2.0f ;
movement . update ( player . getPlayerRef () . getPacketHandler ()) ;
MovementSettings settings = movement . getSettings () ;
// jump force (default: 11.8)
settings . jumpForce = 20.0f ;
movement . update ( player . getPlayerRef () . getPacketHandler ()) ;
// reset to world defaults and sync to client
movement . resetDefaultsAndUpdate ( ref, store ) ;
// or reset without syncing
movement . applyDefaultSettings () ;
To check what a player is currently doing (flying, sprinting, crouching, etc.), read the MovementStatesComponent:
MovementStatesComponent statesComponent = store . getComponent ( ref,
MovementStatesComponent . getComponentType ()) ;
MovementStates states = statesComponent . getMovementStates () ;
// player is currently in flight
All fields are public booleans on MovementStates:
Field Description idleNot moving horizontalIdleNo horizontal movement jumpingCurrently jumping flyingCurrently in flight walkingWalking (slow movement) runningRunning (normal movement) sprintingSprinting (fast movement) crouchingCrouching forcedCrouchingForced crouch (e.g., under low ceiling) fallingFalling climbingClimbing a surface inFluidIn fluid (water/lava) swimmingSwimming swimJumpingJumping while swimming onGroundOn solid ground mantlingMantling an edge slidingSliding mountingMounting an entity rollingRolling sittingSitting glidingGliding sleepingSleeping
All fields are public and directly modifiable on MovementSettings.
Field Default Description baseSpeed5.5 Base movement speed acceleration0.1 Movement acceleration forwardRunSpeedMultiplier1.0 Forward run speed multiplier backwardRunSpeedMultiplier0.65 Backward run speed multiplier strafeRunSpeedMultiplier0.8 Strafe run speed multiplier forwardSprintSpeedMultiplier1.65 Sprint speed multiplier forwardWalkSpeedMultiplier0.3 Walk speed multiplier backwardWalkSpeedMultiplier0.3 Backward walk multiplier strafeWalkSpeedMultiplier0.3 Strafe walk multiplier forwardCrouchSpeedMultiplier0.55 Crouch speed multiplier backwardCrouchSpeedMultiplier0.4 Backward crouch multiplier strafeCrouchSpeedMultiplier0.45 Strafe crouch multiplier
Field Default Description jumpForce11.8 Jump force swimJumpForce10.0 Jump force while swimming fallJumpForce7.0 Jump force when falling jumpBufferDuration0.3 Jump buffer window (seconds) jumpBufferMaxYVelocity3.0 Max Y velocity for jump buffer variableJumpFallForce35.0 Fall force for variable jump height
Field Default Description canFlyfalse* Whether player can fly (*true in Creative) horizontalFlySpeed10.32 Horizontal flight speed verticalFlySpeed10.32 Vertical flight speed
Field Default Description airSpeedMultiplier1.0 Air movement speed multiplier airDragMin0.96 Minimum air drag airDragMax0.995 Maximum air drag airDragMinSpeed6.0 Speed for minimum drag airDragMaxSpeed10.0 Speed for maximum drag airFrictionMin0.02 Minimum air friction airFrictionMax0.045 Maximum air friction airFrictionMinSpeed6.0 Speed for minimum friction airFrictionMaxSpeed10.0 Speed for maximum friction airControlMinSpeed0.0 Speed for minimum air control airControlMaxSpeed3.0 Speed for maximum air control airControlMinMultiplier0.0 Minimum air control airControlMaxMultiplier3.13 Maximum air control comboAirSpeedMultiplier1.05 Air speed during combos
Field Default Description climbSpeed0.035 Climb speed climbSpeedLateral0.035 Lateral climb speed climbUpSprintSpeed0.045 Sprint climb up speed climbDownSprintSpeed0.055 Sprint climb down speed
Field Default Description minSlideEntrySpeed8.5 Minimum speed to start sliding slideExitSpeed2.5 Speed at which slide ends
Field Default Description minFallSpeedToEngageRoll21.0 Minimum fall speed to trigger roll maxFallSpeedToEngageRoll31.0 Maximum fall speed for roll rollStartSpeedModifier2.5 Speed modifier at roll start rollExitSpeedModifier1.5 Speed modifier at roll exit rollTimeToComplete0.9 Roll duration (seconds)
Field Default Description autoJumpDisableJumpingtrue Disable manual jump during auto-jump autoJumpObstacleSpeedLoss0.95 Speed loss on auto-jump autoJumpObstacleSprintSpeedLoss0.75 Speed loss when sprinting autoJumpObstacleEffectDuration0.2 Effect duration (seconds) autoJumpObstacleSprintEffectDuration0.1 Sprint effect duration (seconds) autoJumpObstacleMaxAngle45.0 Maximum angle for auto-jump
Field Default Description mass1.0 Player mass (from PhysicsValues) dragCoefficient0.5 Drag coefficient (from PhysicsValues) invertedGravityfalse Invert gravity (from PhysicsValues) velocityResistance0.242 Velocity resistance collisionExpulsionForce0.04 Force when colliding
Field Default Description fallEffectDuration0.6 Fall effect duration (seconds) fallMomentumLoss0.1 Momentum loss on landing
Movement prediction parameters for client-side smoothing.
Field Default Description wishDirectionGravityX0.5 Horizontal direction gravity wishDirectionGravityY0.5 Vertical direction gravity wishDirectionWeightX0.5 Horizontal direction weight wishDirectionWeightY0.5 Vertical direction weight
Field Default Description maxSpeedMultiplier1000.0 Maximum speed multiplier cap minSpeedMultiplier0.1 Minimum speed multiplier cap
For physics properties (mass, drag, gravity), use the separate PhysicsValues component:
PhysicsValues physics = store . getComponent ( ref, PhysicsValues . getComponentType ()) ;
physics . scale ( 2.0f ) ; // double all values
physics . replaceValues ( new PhysicsValues ( 2.0 , 0.8 , false )) ;
physics . resetToDefault () ;
Movement configurations can be defined as JSON assets and applied via MovementConfig:
// get preset from asset store
MovementConfig config = MovementConfig . getAssetMap () . getAsset ( " my_movement_preset " ) ;
MovementManager movement = store . getComponent ( ref, MovementManager . getComponentType ()) ;
Player player = store . getComponent ( ref, Player . getComponentType ()) ;
PhysicsValues physics = store . getComponent ( ref, PhysicsValues . getComponentType ()) ;
// apply preset as new defaults
movement . setDefaultSettings ( config . toPacket () , physics, player . getGameMode ()) ;
movement . applyDefaultSettings () ;
movement . update ( player . getPlayerRef () . getPacketHandler ()) ;
The default preset ID is "BuiltinDefault". The active preset can be set per-world via GameplayConfig - Player .
MovementConfig has additional fields that affect fall damage but aren’t synced to clients. Fall damage is applied through the damage pipeline with DamageCause.FALL.
Field Default Description fallDamagePartialMitigationPercent33.0 Percent of fall damage mitigated by rolling maxFallSpeedRollFullMitigation25.0 Max fall speed for full roll mitigation
These are only configurable via JSON presets, not at runtime via MovementSettings.