In general, this packet is used to describe other players.<br>
<br>
Divisions exist to make the data more manageable.
The first division defines the player's location within the game coordinate system.
The second division defines features of the character
that are shared by both the <code>ObjectCreateDetailedMessage</code> version of a controlled player character
and the <code>ObjectCreateMessage</code> version of a player character (this).
The third field provides further information on the appearance of the player character, albeit condensed.
The fourth field involves the player's <code>Equipment</code> holsters and their inventory.
The hand that the player has exposed is last.
One of the most compact forms of a player character description is transcribed using this information.<br>
<br>
The presence or absence of position data as the first division creates a cascading effect
causing all of fields in the other two divisions to gain offset values.
These offsets exist in the form of <code>String</code> and <code>List</code> padding.</p></div><dlclass="paramcmts block"><dtclass="param">pos</dt><ddclass="cmt"><p>the optional position of the character in the world environment</p></dd><dtclass="param">basic_appearance</dt><ddclass="cmt"><p>common fields regarding the the character's appearance</p></dd><dtclass="param">character_data</dt><ddclass="cmt"><p>the class-specific data that explains about the character</p></dd><dtclass="param">inventory</dt><ddclass="cmt"><p>the player's inventory;
typically, only the tools and weapons in the equipment holster slots</p></dd><dtclass="param">drawn_slot</dt><ddclass="cmt"><p>the holster that is initially drawn</p></dd><dtclass="param">position_defined</dt><ddclass="cmt"><p>used by the <code>Codec</code> to seed the state of the optional <code>pos</code> field</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/objectcreate/PlayerData.scala"target="_blank">PlayerData.scala</a></dd><dt>See also</dt><dd><spanclass="cmt"><p><code>CharacterData</code><br>
typically, only the tools and weapons in the equipment holster slots</p></dd><dtclass="param">drawn_slot</dt><ddclass="cmt"><p>the holster that is initially drawn</p></dd><dtclass="param">position_defined</dt><ddclass="cmt"><p>used by the <code>Codec</code> to seed the state of the optional <code>pos</code> field</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/objectcreate/PlayerData.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/objectcreate/PlayerData.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/objectcreate/PlayerData.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/objectcreate/PlayerData.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="net.psforever.packet.game.objectcreate.PlayerData#basic_appearance"group="Ungrouped"fullComment="no"data-isabs="false"visbl="pub"><aid="basic_appearance:net.psforever.packet.game.objectcreate.CharacterAppearanceData"></a><aid="basic_appearance:CharacterAppearanceData"></a><spanclass="permalink"><ahref="../../../../../net/psforever/packet/game/objectcreate/PlayerData.html#basic_appearance:net.psforever.packet.game.objectcreate.CharacterAppearanceData"title="Perm
<br>
The calculation reflects the <code>scodec Codec</code> definition rather than the explicit parameter fields.</p><divclass="fullcomment"><divclass="comment cmt"><p>Performs a "sizeof()" analysis of the given object.<br>
<br>
The calculation reflects the <code>scodec Codec</code> definition rather than the explicit parameter fields.
For example, a traditional <code>Int</code> is normally a 32-bit number, often rendered as a <code>32u</code> number.
When parsed with a <code>uintL(7)</code>, it's length will be considered 7 bits (<code>7u</code>).
(Note: being permanently signed, an <code>scodec</code> value of <code>32u</code> or longer must fit into a <code>Long</code> type.)</p></div><dlclass="paramcmts block"><dt>returns</dt><ddclass="cmt"><p>the number of bits necessary to measure an object of this class;