The position defines a coordinate location in the avatar's current zone to which the avatar is immediately moved
This movement is instantaneous and has no associated animation.
If velocity is defined, the avatar is provided an "external force" that "pushes" the avatar in a given direction.
This external force is not accumulative.
Also, the external force is only applied once the avatar is set to the provided position.<br>
<br>
The angle defines the center of a range of angles that count as "in front of the avatar."
Specifically, this range is the upper body's turn limit.
A stationary player may look left and right, rotating their upper body only, until they hit a certain angle.
Normally, the player's whole body will then turn to accommodate turning further than this angle.
This packet marks that limit as a hard limit for rotation and will reset the player's model and camera if necessary.
While it is in effect, the player will not turn their whole body once they can no longer turn their upper body.</p></div><dlclass="paramcmts block"><dtclass="param">unk</dt><ddclass="cmt"><p>na</p></dd><dtclass="param">pos</dt><ddclass="cmt"><p>the position to move the character to in the world environment</p></dd><dtclass="param">viewYawLim</dt><ddclass="cmt"><p>the center of the range of upper body angles, the player's actual yaw;
if this value is beyond its angular limit values,
the model will attempt to snap to what it considers the closest upper body turning limit angle;
the actual range is approximately <code>viewYawLimit +/- 61.8215</code>;</p></dd><dtclass="param">vel</dt><ddclass="cmt"><p>if defined, the velocity to apply to to the character at the given position</p></dd></dl><dlclass="attributes block"><dt>Source</dt><dd><ahref="https://github.com/psforever/PSF-LoginServer/blob/master//home/runner/work/PSF-LoginServer/PSF-LoginServer/src/main/scala/net/psforever/packet/game/PlayerStateShiftMessage.scala"target="_blank">PlayerStateShiftMessage.scala</a></dd><dt>See also</dt><dd><spanclass="cmt"><p><code>PlayerStateMessageUpstream.facingYawUpper</code></p></span><spanclass="cmt"><p><code>PlayerStateMessage.facingYawUpper</code></p></span></dd></dl><divclass="toggleContainer"><divclass="toggle block"><span>Linear Supertypes</span><divclass="superTypes hiddenContent"><ahref="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html#java.io.Serializable"name="java.io.Serializable"id="java.io.Serializable"class="extype">Serializable</a>, <spanname="scala.Product"class="extype">Product</span>, <spanname="scala.Equals"class="extype">Equals</span>, <spanname="scala.AnyRef"class="extype">AnyRef</span>, <spanname="scala.Any"class="extype">Any</span></div></div></div></div><divid="mbrsel"><divclass="toggle"></div><divid="memberfilter"><iclass="material-icons arrow"></i><spanclass="input"><inputplaceholder="Filter all members"id="mbrsel-input"type="text"accesskey="/"/></span><iclass="clear material-icons"></i></div><divid="filterby"><divid="order"><spanclass="filtertype">Ordering</span><ol><liclass="alpha in"><span>Alphabetic</span></li><liclass="inherit out"><span>By Inheritance</span></li></ol></div><divclass="ancestors"><spanclass="filtertype">Inherited<br/></span><olid="linearization"><liclass="in"name="net.psforever.packet.game.ShiftState"><span>ShiftState</span></li><liclass="in"name="java.io.Serializable"><span>Serializable</span></li><liclass="in"name="scala.Product"><span>Product</span></li><liclass="in"name="scala.Equals"><span>Equals</span></li><liclass="in"name="scala.AnyRef"><span>AnyRef</span></li><liclass="in"name="scala.Any"><span>Any</span></li></ol></div><divclass="ancestors"><spanclass="filtertype"></span><ol><liclass="hideall out"><span>Hide All</span></li><liclass="showall in"><span>Show All</span></li></ol></div><divid="visbl"><spanclass="filtertype">Visibility</span><ol><liclass="public in"><span>Public</span></li><liclass="protected out"><span>Protected</span></li></ol></div></div></div><divid="template"><divid="allMembers"><divid="constructors"class="members"><h3>Instance Constructors</h3><ol><liclass="indented0 "name="net.psforever.packet.game.ShiftState#<init>"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="<init>(unk:Int,pos:net.psforever.types.Vector3,viewYawLim:Float,vel:Option[net.psforever.types.Vector3]):net.psforever.packet.game.ShiftState"></a><aid="<init>:ShiftState"></a><spanclass="permalink"><ahref="../../../../net/psforever/packet/game/ShiftState.html#<init>(unk:Int,pos:net.psforever.types.Vector3,viewYawLim:Float,vel:Option[net.psforever.types.Vector3]):net.psforever.packet.game.ShiftState"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier"></span><spanclass="kind">new</span></span><spanclass="symbol"><spanclass="name">ShiftState</span><spanclass="params">(<spanname="unk">unk: <spanname="scala.Int"class="extype">Int</span></span>, <spanname="pos">pos: <ahref="../../types/Vector3.html"name="net.psforever.types.Vector3"id="net.psforever.types.Vector3"class="extype">Vector3</a></span>, <spanname="viewYawLim">viewYawLim: <spanname="scala.Float"class="extype">Float</span></span>, <spanname="vel">vel: <spanname="scala.Option"class="extype">Option</span>[<ahref="../../types/Vector3.html"name="net.psforever.types.Vector3"id="net.psforever.types.Vector3"class="extype">Vector3</a>]</span>)</span></span><pclass="shortcommentcm
if this value is beyond its angular limit values,
the model will attempt to snap to what it considers the closest upper body turning limit angle;
the actual range is approximately <code>viewYawLimit +/- 61.8215</code>;</p></dd><dtclass="param">vel</dt><ddclass="cmt"><p>if defined, the velocity to apply to to the character at the given position</p></dd></dl></div></li></ol></div><divclass="values members"><h3>Value Members</h3><ol><liclass="indented0 "name="scala.AnyRef#!="group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="!=(x$1:Any):Boolean"></a><aid="!=(Any):Boolean"></a><spanclass="permalink"><ahref="../../../../net/psforever/packet/game/ShiftState.html#!=(x$1:Any):Boolean"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier">final </span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name"title="gt4s: $bang$eq">!=</span><spanclass="params">(<spanname="arg0">arg0: <spanname="scala.Any"class="extype">Any</span></span>)</span><spanclass="result">: <spanname="scala.Boolean"class="extype">Boolean</span></span></span><divclass="fullcomment"><dlclass="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><liclass="indented0 "name="scala.AnyRef###"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="##:Int"></a><spanclass="permalink"><ahref="../../../../net/psforever/packet/game/ShiftState.html###:Int"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier">final </span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name"title="gt4s: $hash$hash">##</span><spanclass="result">: <spanname="scala.Int"class="extype">Int</span></span></span><divclass="fullcomment"><dlclass="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><liclass="indented0 "name="scala.AnyRef#=="group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="==(x$1:Any):Boolean"></a><aid="==(Any):Boolean"></a><spanclass="permalink"><ahref="../../../../net/psforever/packet/game/ShiftState.html#==(x$1:Any):Boolean"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier">final </span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name"title="gt4s: $eq$eq">==</span><spanclass="params">(<spanname="arg0">arg0: <spanname="scala.Any"class="extype">Any</span></span>)</span><spanclass="result">: <spanname="scala.Boolean"class="extype">Boolean</span></span></span><divclass="fullcomment"><dlclass="attributes block"><dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div></li><liclass="indented0 "name="scala.Any#asInstanceOf"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="asInstanceOf[T0]:T0"></a><spanclass="permalink"><ahref="../../../../net/psforever/packet/game/ShiftState.html#asInstanceOf[T0]:T0"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier">final </span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">asInstanceOf</span><spanclass="tparams">[<spanname="T0">T0</span>]</span><spanclass="result">: <spanname="scala.Any.asInstanceOf.T0"class="extype">T0</span></span></span><divclass="fullcomment"><dlclass="attributes block"><dt>Definition Classes</dt><dd>Any</dd></dl></div></li><liclass="indented0 "name="scala.AnyRef#clone"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="prt"><aid="clone():Object"></a><aid="clone():AnyRef"></a><spanclass="permalink"><ahref="../../../../net/psforever/packet/game/ShiftState.html#clone():Object"title="Permalink"><iclass="material-icons"></i></a></span><spanclass="modifier_kind"><spanclass="modifier"></span><spanclass="kind">def</span></span><spanclass="symbol"><spanclass="name">clone</span><spanclass="params">()</span><spanclass="result">: <spanname="scala.AnyRef"class="extype">AnyRef</span></span></span><divclass="fullcomment"><dlclass="attributes block"><dt>Attributes</dt><dd>p