Step Interaction
Updated: Nov 6, 2025
What is a Step Interaction?
A Step in Locomotion terms, is a discrete movement in the ground plane for the length of an average human step, like moving backwards or sideways 50-80cms instantly.
Discrete Steps allow users to do small adjustments in their position without having to do a Teleport or a controlled slide movement. Steps are particularly useful when the user wants to reposition themselves to be part of a large group of players interacting with each other, like taking a quick step back after a teleport to the group of people so they can see each other.
How does a Step Interaction work?
Step locomotion can be performed by sending a Translation.RelativeLocomotionEvent with the desired direction and magnitude expressed as the position vector. To perform a 80cm forward step one could broadcast the following event: new LocomotionEvent(Identifier, Vector3.forward * 0.8, LocomotionEvent.TranslationType.Relative).
The LocomotionHandler will respond to the event and apply the movement to the player.
StepLocomotionBroadcaster
The
StepLocomotionBroadcaster already implements the generation of steps in any of the four relative directions of the player (forward, backwards, left and right).
By calling
StepForward(),
StepLeft(), etc. it will broadcast the locomotion event to be consumed by the handler.
One particularity of Steps as well as
SlideLocomotionBroadcaster is defining what
forwards means. In most experiences this is the direction of the
head, but it could also be the direction of the
hand, the estimated
chest, the
world forward direction... The StepLocomotionBroadcaster references a Transform to be used as the coordinate system for the steps generated.
Notice that unlike Teleport interactions, Steps are not performed via an Interactor-Interactable pair, it is merely a LocomotionEventBroadcaster as there are no candidates to Hover or Select.