This information outlines most of the specifics required to depict some other player's character.
Someone else decides how that character is behaving and the server tells each client how to depict that behavior.
For that reason, the character is mostly for presentation purposes, rather than really being fleshed-out.
Of the inventory for this character, only the initial five weapon slots are defined.
In the "backend of the client," the character produced by this data is no different
from the kind of character that could be declared a given player's avatar.
In terms of equipment and complicated features common to an avatar character, however,
any user would find this character ill-equipped.</p></div><dlclass="paramcmts block"><dtclass="param">health</dt><ddclass="cmt"><p>the amount of health the player has, as a percentage of a filled bar;
the bar has 85 states, with 3 points for each state;
when 0% (less than 3 of 255), the player will collapse into a death pose on the ground;
while <code>is_backpack == true</code>, <code>health</code> will always report as 0;
while <code>is_seated == true</code>, <code>health</code> will (try to) report as 100</p></dd><dtclass="param">armor</dt><ddclass="cmt"><p>the amount of armor the player has, as a percentage of a filled bar;
the bar has 85 states, with 3 points for each state;
while <code>is_seated == true</code>, <code>armor</code> will always report as 0</p></dd><dtclass="param">uniform_upgrade</dt><ddclass="cmt"><p>the level of upgrade to apply to the player's base uniform</p></dd><dtclass="param">command_rank</dt><ddclass="cmt"><p>the player's command rank as a number from 0 to 5;
cosmetic armor associated with the command rank will be applied automatically</p></dd><dtclass="param">implant_effects</dt><ddclass="cmt"><p>the effects of implants that can be seen on a player's character;
the number of entries equates to the number of effects applied;
the maximu number of effects is three</p></dd><dtclass="param">cosmetics</dt><ddclass="cmt"><p>optional decorative features that are added to the player's head model by console/chat commands;
they become available at battle rank 24, but here they require the third uniform upgrade (rank 25);
these flags do not exist if they are not applicable</p></dd><dtclass="param">is_backpack</dt><ddclass="cmt"><p>this player character should be depicted as a corpse;
corpses are either coffins (defunct), backpacks (normal), or a pastry (festive);
the alternate model bit should be flipped</p></dd><dtclass="param">is_seated</dt><ddclass="cmt"><p>this player character is seated in a vehicle or mounted to some other object;
alternate format for data parsing applies</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/CharacterData.scala"target="_blank">CharacterData.scala</a></dd><dt>See also</dt><dd><spanclass="cmt"><p><code>DetailedCharacterData</code></p></span><spanclass="cmt"><p><code>Cosmetics</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.CharacterData"><span>CharacterData</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.CharacterData#<init>"group="Ungrouped"fullComment="yes"data-isabs="false"visbl="pub"><aid="<init>(health:Int,armor:Int,uniform_upgrade:net.psforever.packet.game.objectcreate.UniformStyle.Value,unk:Int,command_rank:Int,implant_effects:List[net.psforever.packet.game.objectcreate.ImplantEffects.Value],cosmetics:Option[Set[net.psforever.objects.avatar.Cosmetic]])(is_backpack:Boolean,is_seated:Boolean):net.psforever.packet.game.objectcreate.CharacterData"></a><aid="<init>:CharacterData"></a><spanclass="permalink"><ahref="../../../../../net/psforever/packet/game/objectcreate/CharacterData.html#<init>(health:Int,armor:Int,uniform_upgrade:net.psforever.packet.game.objectcreate.UniformStyle.Value,unk:Int,command_rank:Int,implant_effects:List[net.psforever.packet.game.objectcreate.ImplantEffects.Value],cosmetics:Option[Set[net.psforever.objects.avatar.Cosmetic]])(is_backpack:Boolean,is_seated:Boolean):net.psfor
the bar has 85 states, with 3 points for each state;
when 0% (less than 3 of 255), the player will collapse into a death pose on the ground;
while <code>is_backpack == true</code>, <code>health</code> will always report as 0;
while <code>is_seated == true</code>, <code>health</code> will (try to) report as 100</p></dd><dtclass="param">armor</dt><ddclass="cmt"><p>the amount of armor the player has, as a percentage of a filled bar;
the bar has 85 states, with 3 points for each state;
while <code>is_seated == true</code>, <code>armor</code> will always report as 0</p></dd><dtclass="param">uniform_upgrade</dt><ddclass="cmt"><p>the level of upgrade to apply to the player's base uniform</p></dd><dtclass="param">command_rank</dt><ddclass="cmt"><p>the player's command rank as a number from 0 to 5;
cosmetic armor associated with the command rank will be applied automatically</p></dd><dtclass="param">implant_effects</dt><ddclass="cmt"><p>the effects of implants that can be seen on a player's character;
the number of entries equates to the number of effects applied;
the maximu number of effects is three</p></dd><dtclass="param">cosmetics</dt><ddclass="cmt"><p>optional decorative features that are added to the player's head model by console/chat commands;
they become available at battle rank 24, but here they require the third uniform upgrade (rank 25);
these flags do not exist if they are not applicable</p></dd><dtclass="param">is_backpack</dt><ddclass="cmt"><p>this player character should be depicted as a corpse;
corpses are either coffins (defunct), backpacks (normal), or a pastry (festive);
the alternate model bit should be flipped</p></dd><dtclass="param">is_seated</dt><ddclass="cmt"><p>this player character is seated in a vehicle or mounted to some other object;
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;