As an avatar, the character created by this data is expected to be controllable by the client that gets sent this data.<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 <code>avatar</code>
that are shared by both the <code>ObjectCreateDetailedMessage</code> version of a controlled player character (this)
and the <code>ObjectCreateMessage</code> version of a player character.
The third field expands on the nature of the character and this avatar's campaign.
Expansive information about previous interactions, the contents of their inventory, and equipment permissions are included.<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 offsets.
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 discusses the character</p></dd><dtclass="param">inventory</dt><ddclass="cmt"><p>the player's full or partial (holsters-only) inventory</p></dd><dtclass="param">drawn_slot</dt><ddclass="cmt"><p>the holster that is depicted as exposed, or "drawn"</p></dd><dtclass="param">position_defined</dt><ddclass="cmt"><p>used to seed the state of the optional position fields</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/DetailedPlayerData.scala"target="_blank">DetailedPlayerData.scala</a></dd><dt>See also</dt><dd><spanclass="cmt"><p><code>CharacterAppearanceData</code></p></span><spanclass="cmt"><p><code>DetailedCharacterData</code></p></span><spanclass="cmt"><p><code>InventoryData</code></p></span><spanclass="cmt"><p><code>DrawnSlot</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>, <ahref="ConstructorData.html"name="net.psforever.packet.game.objectcreate.ConstructorData"id="net.psforever.packet.game.objectcreate.ConstructorData"class="extype">ConstructorData</a>, <ahref="StreamBitSize.html"name="net.psforever.packet.game.objectcreate.StreamBitSize"id="net.psforever.packet.game.objectcreate.StreamBitSize"class="extype">StreamBitSize</a>, <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.objectcreate.DetailedPlayerData"><span>DetailedPlayerData</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="net.psforever.packet.game.objectcreate.ConstructorData"><span>ConstructorData</span></li><liclass="in"name="net.psforever.packet.game.objectcreate.StreamBitSize"><span>StreamBitSize</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.objectcreate.DetailedPlayerData#<init>"group="Ung
<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;