package objectcreate
- Alphabetic
- Public
- Protected
Type Members
- final case class AegisShieldGeneratorData(deploy: CommonFieldDataWithPlacement, health: Int) extends ConstructorData with Product with Serializable
A representation of the aegis shield generator deployed using an advanced adaptive construction engine.
A representation of the aegis shield generator deployed using an advanced adaptive construction engine.
- deploy
data common to objects spawned by the (advanced) adaptive construction engine
- health
the amount of health the object has, as a percentage of a filled bar
- final case class BasicCharacterData(name: String, faction: types.PlanetSideEmpire.Value, sex: CharacterSex, head: Int, voice: types.CharacterVoice.Value) extends Product with Serializable
A part of a representation of the avatar portion of
ObjectCreateMessage
packet data.
This partition of the data stream contains information used to represent how the player's avatar is presented.A part of a representation of the avatar portion of
ObjectCreateMessage
packet data.
This partition of the data stream contains information used to represent how the player's avatar is presented. This appearance coincides with the data available from theCharacterCreateRequestMessage
packet.- name
the unique name of the avatar; minimum of two characters
- faction
the empire to which the avatar belongs
- sex
whether the avatar is
Male
orFemale
- head
the avatar's face and hair; by row and column on the character creation screen, the high nibble is the row and the low nibble is the column
- voice
the avatar's voice selection
- See also
PlanetSideEmpire
CharacterSex
- final case class BattleFrameRoboticsData(pos: PlacementData, data: CommonFieldData, health: Int, shield: Int, unk1: Int, unk2: Boolean, no_mount_points: Boolean, driveState: Int, proper_anim: Boolean, unk3: Int, show_bfr_shield: Boolean, unk4: Option[Boolean], inventory: Option[InventoryData] = None) extends ConstructorData with Product with Serializable
A representation of a battle frame robotics vehicle.
A representation of a battle frame robotics vehicle.
- pos
where the vehicle is and how it is oriented in the game world
- data
common vehicle field data
- health
the amount of health the vehicle has, as a percentage of a filled bar (255)
- shield
the strength of the shield the vehicle has, as a percentage of a filled bar (255)
- unk1
na
- unk2
na
- no_mount_points
do not display entry points for the seats
- driveState
a representation for the current mobility state; various vehicles also use this field to indicate "deployment," e.g., the advanced mobile spawn
- proper_anim
na; I forget what this does
- unk3
na
- show_bfr_shield
display the swirling shield of the battle frame
- unk4
na
- inventory
the seats, mounted weapons, and utilities (such as terminals) that are currently included; will also include trunk contents; the driver is the only valid seat entry (more will cause the access permissions to act up)
- final case class CaptureFlagData(pos: PlacementData, faction: types.PlanetSideEmpire.Value, owningBaseGuid: Int, targetBaseGuid: Int, milliseconds_remaining: Long) extends ConstructorData with Product with Serializable
A representation of the capture flag portion of
ObjectCreateDetailedMessage
packet data.A representation of the capture flag portion of
ObjectCreateDetailedMessage
packet data. This creates what is known as a lattice logic unit, or LLU. It is originally spawned in the base object called the lattice link socket during certain base captures.
Players can not directly interact with the capture flag. Whenever an applicable player is nearby, that client will rapidly fire offItemUseMessage
packets to the server. The capture flag will be picked-up by the player and stored in a special slot that is not part of their inventory. A special dropping keybind has been prepared to relinquish the capture flag back to the game world.- pos
the position + orientation + velocity of the LLU where it is dropped/spawned
- faction
the empire whose players may interact with this capture flag
- owningBaseGuid
The GUID of the base that this LLU belongs to
- targetBaseGuid
The GUID of the base that this LLU must be taken to
- milliseconds_remaining
The number of milliseconds left on the timer for this LLU - should match the CC timer
- final case class CharacterAppearanceA(app: BasicCharacterData, data: CommonFieldData, exosuit: types.ExoSuitType.Value, unk5: Int, char_id: Long, unk7: Int, unk8: Int, unk9: Int, unkA: Int)(name_padding: Int) extends StreamBitSize with Product with Serializable
A part of a representation of the avatar portion of
ObjectCreateDetailedMessage
packet data.A part of a representation of the avatar portion of
ObjectCreateDetailedMessage
packet data.- app
the player's cardinal appearance settings
- data
common field data
-bops - this vehicle belongs to the Black Ops, regardless of the faction field; activates the green camo and adjusts permissions
-destroyed - flagged when using a model that is not the standard player in some stance
-jammered - the player has been caught in an EMP blast recently; creates a jammered sound effect that follows the player around and can be heard by others
-player_guid - does nothing?- exosuit
the type of exo-suit the avatar will be depicted in; for Black OPs, the agile exo-suit and the reinforced exo-suit are replaced with the Black OPs exo-suits
- char_id
a unique character reference identification number
- See also
CharacterData
DetailedCharacterData
ExoSuitType
- final case class CharacterAppearanceB(outfit_id: Long, outfit_name: String, outfit_logo: Int, unk1: Boolean, backpack: Boolean, unk2: Boolean, unk3: Boolean, unk4: Boolean, facingPitch: Float, facingYawUpper: Float, lfs: Boolean, grenade_state: types.GrenadeState.Value, is_cloaking: Boolean, unk5: Boolean, unk6: Boolean, charging_pose: Boolean, unk7: Boolean, on_zipline: Option[ZiplineData])(alt_model: Boolean, name_padding: Int) extends StreamBitSize with Product with Serializable
A part of a representation of the avatar portion of
ObjectCreateDetailedMessage
packet data.A part of a representation of the avatar portion of
ObjectCreateDetailedMessage
packet data.- outfit_name
the name of the outfit to which this player belongs; if the option is selected, allies with see either "[
outfit_name
]" or "{No Outfit}" under the player's name- outfit_logo
the decal seen on the player's exo-suit (and beret and cap) associated with the player's outfit; if there is a variable color for that decal, the faction-appropriate one is selected
- facingPitch
a "pitch" angle
- facingYawUpper
a "yaw" angle that represents the angle of the avatar's upper body with respect to its forward-facing direction; this number is normally 0 for forward facing; the range is limited between approximately 61 degrees of center turned to left or right
- lfs
this player is looking for a squad; all allies will see the phrase "[Looking for Squad]" under the player's name
- grenade_state
if the player has a grenade
Primed
; should beGrenadeStateState.None
if nothing special- is_cloaking
avatar is cloaked by virtue of an Infiltration Suit
- charging_pose
animation pose for both charging modules and BFR imprinting
- on_zipline
player's model is changed into a faction-color ball of energy, as if on a zip line
- See also
CharacterData
DetailedCharacterData
ExoSuitType
GrenadeState
RibbonBars
http://www.planetside-universe.com/p-outfit-decals-31.htm
- final case class CharacterAppearanceData(a: CharacterAppearanceA, b: CharacterAppearanceB, ribbons: RibbonBars)(name_padding: Int) extends StreamBitSize with Product with Serializable
A part of a representation of the avatar portion of
ObjectCreateDetailedMessage
packet data.
This is a shared partition of the data used to represent how the player's avatar is presented.A part of a representation of the avatar portion of
ObjectCreateDetailedMessage
packet data.
This is a shared partition of the data used to represent how the player's avatar is presented. It is utilized by both0x17 ObjectCreateMessage CharacterData
and0x18 ObjectCreateDetailedMessage DetailedCharacterData
. This can be considered the data that goes into creating the player's model.
Only a few changes would occur depending on which packet would deal with the data. One example isfacingYawUpper
which, when depicting avatars, can be set to represent non-trivial turning angles. When depicting other players, it is limited to a small range of angles in the direction of that model's forward-facing. Another example is the outfit information: not usually represented for avatars; but, always represented for other players.
One way the player's model can be changed dramatically involves being depicted as "released." In this form, their body appears as a backpack (or pumpkin or pastry) that can be looted for the equipment carried while alive. Companion data will describe how the player is represented while he is "dead," usually a requirement for being "released." Without that requirement here, it is possible to depicte the player as a "living backpack." The said equipment is also defined elsewhere. Another dramatic change replaces the player's model with a ball of plasma that masks the player while riding zip lines.
Exploration:
How do I crouch?- ribbons
the four merit commendation ribbon medals
- See also
CharacterData
DetailedCharacterData
- final case class CharacterData(health: Int, armor: Int, uniform_upgrade: UniformStyle, unk: Int, command_rank: Int, implant_effects: List[ImplantEffects.Value], cosmetics: Option[Set[Cosmetic]])(is_backpack: Boolean, is_seated: Boolean) extends ConstructorData with Product with Serializable
A representation of a portion of an avatar's
ObjectCreateDetailedMessage
packet data.
This information outlines most of the specifics required to depict some other player's character.A representation of a portion of an avatar's
ObjectCreateDetailedMessage
packet data.
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.- health
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
is_backpack == true
,health
will always report as 0; whileis_seated == true
,health
will (try to) report as 100- armor
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
is_seated == true
,armor
will always report as 0- uniform_upgrade
the level of upgrade to apply to the player's base uniform
- command_rank
the player's command rank as a number from 0 to 5; cosmetic armor associated with the command rank will be applied automatically
- implant_effects
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 maximum number of effects is three
- cosmetics
optional decorative features that are added to the player's head model by console/chat commands; they become available at battle rank 24; these flags do not exist if they are not applicable
- is_backpack
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
- is_seated
this player character is seated in a vehicle or mounted to some other object; alternate format for data parsing applies
- See also
DetailedCharacterData
Cosmetics
- final case class CommonFieldData(faction: types.PlanetSideEmpire.Value, bops: Boolean, alternate: Boolean, v1: Boolean, v2: Option[CommonFieldDataExtra], jammered: Boolean, v4: Option[Boolean], v5: Option[Int], guid: PlanetSideGUID) extends ConstructorData with Product with Serializable
Data that is common to a number of game object serializations.
Data that is common to a number of game object serializations.
- faction
faction affinity
NEUTRAL
when not required to be any specific value- bops
usually indicates black ops affiliation
- alternate
usually indicates variance in model from default (e.g., vehicle is destroyed, player has released, etc.); when set on a tool, that tool will be rendered nonfunctional instead (though it can still be equipped)
- v1
na
- v2
na; optional data whose reading is triggered in unknown conditions
- jammered
flag as "jammered;" set on most game objects, that object will produce the characteristic jammered buzz
- v4
na; a field used by a second encoding format for this data
- v5
na; previously considered to flag as "jammered"
- guid
usually indicates another active game object that placed/leverages/[action]s this object
- final case class CommonFieldDataExtra(unk1: Option[Int], unk2: Boolean) extends StreamBitSize with Product with Serializable
- final case class CommonFieldDataWithPlacement(pos: PlacementData, data: CommonFieldData) extends ConstructorData with Product with Serializable
Data that is common to a number of game object serializations, plus position information
Data that is common to a number of game object serializations, plus position information
- pos
the location, orientation, and potential velocity of the object
- data
the common fields
- See also
DroppedItemData
- abstract class ConstructorData extends StreamBitSize
The base type for the representation of any data used to produce objects from
ObjectCreateMessage
packet data.The base type for the representation of any data used to produce objects from
ObjectCreateMessage
packet data. There is no reason to instantiate this class as-is. Children of this class are expected to be able to translate throughscodec
operations into packet data.
The object data is uncoupled from the object class as multiple classes use the same format for their data. For example, both the Suppressor and the Gauss will use a "weapon data" format. For example, both 9mm bullets and energy cells will use an "ammunition data" format. - final case class DCDExtra1(unk1: String, unk2: Int) extends StreamBitSize with Product with Serializable
na
na
- unk1
na
- unk2
na
- final case class DestroyedVehicleData(pos: PlacementData) extends ConstructorData with Product with Serializable
A representation of the charred husk of a destroyed vehicle.
This is a hand-craftedCodec
and was not based on something found on Gemini Live.A representation of the charred husk of a destroyed vehicle.
This is a hand-craftedCodec
and was not based on something found on Gemini Live.- pos
where and how the object is oriented;
pos.vel
existing is fine
- final case class DetailedAmmoBoxData(data: CommonFieldData, magazine: Int) extends ConstructorData with Product with Serializable
A representation of the ammunition portion of
ObjectCreateDetailedMessage
packet data.A representation of the ammunition portion of
ObjectCreateDetailedMessage
packet data. This data will help construct a "box" of that type of ammunition when standalone. It can also be constructed directly inside a weapon as its magazine.
The maximum amount of ammunition that can be stored in a single box is 65535 units. Regardless of the interface, however, the number will never be fully visible. Only the first three digits or the first four digits may be represented.- data
na
- magazine
the number of rounds available
- See also
DetailedWeaponData
- final case class DetailedCharacterA(bep: Long, cep: Long, unk1: Long, unk2: Long, unk3: Long, healthMax: Int, health: Int, unk4: Boolean, armor: Int, unk5: Long, staminaMax: Int, stamina: Int, max_field: Option[Long], unk6: Int, unk7: Int, unk8: Long, unk9: List[Int], certs: List[Certification]) extends StreamBitSize with Product with Serializable
A representation of a portion of an avatar's
ObjectCreateDetailedMessage
packet data.A representation of a portion of an avatar's
ObjectCreateDetailedMessage
packet data.- bep
the avatar's battle experience points, which determines his Battle Rank
- cep
the avatar's command experience points, which determines his Command Rank
- healthMax
for
x / y
of hitpoints, this is the avatar'sy
value; range is 0-65535- health
for
x / y
of hitpoints, this is the avatar'sx
value; range is 0-65535- armor
for
x / y
of armor points, this is the avatar'sx
value; range is 0-65535; the avatar'sy
armor points is tied to their exo-suit type- staminaMax
for
x / y
of stamina points, this is the avatar'sy
value; range is 0-65535- stamina
for
x / y
of stamina points, this is the avatar'sx
value; range is 0-65535- max_field
unk; this field exists only when the player is wearing a mechanized assault exo-suit
- certs
the
List
of certifications
- See also
CharacterData
CertificationType
- final case class DetailedCharacterB(unk1: Option[Long], implants: List[ImplantEntry], unk2: List[DCDExtra1], unk3: List[DCDExtra1], firstTimeEvents: List[String], tutorials: List[String], unk4: Long, unk5: Long, unk6: Long, unk7: Long, unk8: Long, imprinting: Option[ImprintingProgress], unkA: List[Long], unkB: List[String], unkC: Boolean, cosmetics: Option[Set[Cosmetic]])(bep: Long, pad_length: Option[Int]) extends StreamBitSize with Product with Serializable
A representation of a portion of an avatar's
ObjectCreateDetailedMessage
packet data.A representation of a portion of an avatar's
ObjectCreateDetailedMessage
packet data.- implants
the
List
of implant slots currently possessed by this avatar- firstTimeEvents
the list of first time events performed by this avatar; the size field is a 32-bit number; the first entry may be padded
- tutorials
the
List
of tutorials completed by this avatar; the size field is a 32-bit number; the first entry may be padded- cosmetics
optional decorative features that are added to the player's head model by console/chat commands; they become available at battle rank 24; these flags do not exist if they are not applicable
- See also
CharacterData
Cosmetics
- final case class DetailedCharacterData(a: DetailedCharacterA, b: DetailedCharacterB)(pad_length: Option[Int]) extends ConstructorData with Product with Serializable
A representation of a portion of an avatar's
ObjectCreateDetailedMessage
packet data.
This densely-packed information outlines most of the specifics required to depict a character as an avatar.A representation of a portion of an avatar's
ObjectCreateDetailedMessage
packet data.
This densely-packed information outlines most of the specifics required to depict a character as an avatar. It goes into depth about information related to the given character in-game career that is not revealed to other players. To be specific, it passes more thorough data about the character that the client can display to the owner of the client. For example, health is a full number, rather than a percentage, as is the case withCharacterData
. Just as prominent is the list of first time events and the list of completed tutorials. Additionally, a full inventory, as opposed to the initial five weapon slots.- See also
CharacterData
- final case class DetailedCommandDetonaterData(data: CommonFieldData) extends ConstructorData with Product with Serializable
A representation of the command uplink device.
- final case class DetailedConstructionToolData(data: CommonFieldData, mode: Int) extends ConstructorData with Product with Serializable
A representation of the construction item portion of
ObjectCreateDetailedMessage
packet data.A representation of the construction item portion of
ObjectCreateDetailedMessage
packet data. This creates what is known as a construction tool item (or,ConstructionItem
) which is a game world object that is manipulated by the player to construct other game world objects which are known as combat engineering deployables (or, justDeployable
s). None of the information about theDeployable
objects are maintained here and are instead implicit to the type ofConstructionItem
. That aspect of the entity is adjusted through fire modes and ammunition types much like conventional weaponry (Tool
s), though the initial fire mode can be indicated.- See also
ConstructionItem
Deployable
FireModeSwitch
- final case class DetailedLockerContainerData(data: CommonFieldData, inventory: Option[InventoryData]) extends ConstructorData with Product with Serializable
A representation of the inventory portion of
ObjectCreateDetailedMessage
packet data that contains the items in the avatar's locker space.
Although these items are technically always loaded and registered with globally unique identifiers for the current zone, the actual container for them, in grid format, can only be accessed by interacting with locker objects in the game world.A representation of the inventory portion of
ObjectCreateDetailedMessage
packet data that contains the items in the avatar's locker space.
Although these items are technically always loaded and registered with globally unique identifiers for the current zone, the actual container for them, in grid format, can only be accessed by interacting with locker objects in the game world. Items are generally added and removed in the same way as with any other opened inventory. Unlike other inventories, however, locker space is personal to an avatar and can not be accessed by other players.- data
na
- inventory
the items in this inventory
- final case class DetailedPlayerData(pos: Option[PlacementData], basic_appearance: CharacterAppearanceData, character_data: DetailedCharacterData, inventory: Option[InventoryData], drawn_slot: DrawnSlot.Value)(position_defined: Boolean) extends ConstructorData with Product with Serializable
A representation of an
avatar
player for theObjectCreateDetailedMessage
packet.A representation of an
avatar
player for theObjectCreateDetailedMessage
packet. As an avatar, the character created by this data is expected to be controllable by the client that gets sent this data.
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 theavatar
that are shared by both theObjectCreateDetailedMessage
version of a controlled player character (this) and theObjectCreateMessage
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.
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 ofString
andList
padding.- pos
the optional position of the character in the world environment
- basic_appearance
common fields regarding the the character's appearance
- character_data
the class-specific data that discusses the character
- inventory
the player's full or partial (holsters-only) inventory
- drawn_slot
the holster that is depicted as exposed, or "drawn"
- position_defined
used to seed the state of the optional position fields
- See also
CharacterAppearanceData
DetailedCharacterData
InventoryData
DrawnSlot
- final case class DetailedREKData(data: CommonFieldData, unk: Int = 0) extends ConstructorData with Product with Serializable
A representation of the REK portion of
ObjectCreateDetailedMessage
packet data.A representation of the REK portion of
ObjectCreateDetailedMessage
packet data. This data will help construct the "tool" called a Remote Electronics Kit.
Of note is the first portion of the data which resembles theDetailedWeaponData
format.- data
na
- unk
na
- final case class DetailedWeaponData(data: CommonFieldData, fire_mode: Int, ammo: List[InternalSlot], unk: Boolean = false) extends ConstructorData with Product with Serializable
A representation of a class of weapons that can be created using
ObjectCreateDetailedMessage
packet data.A representation of a class of weapons that can be created using
ObjectCreateDetailedMessage
packet data. This data will help construct a "loaded weapon" such as a Suppressor or a Gauss.
The data for the weapons nests information for the default (current) type and number of ammunition in its magazine. This ammunition data essentially is the weapon's magazines as numbered slots. An "expected" number of ammunition slot data can be passed into the function.- data
field common to multiple game objects
- fire_mode
the current fire mode
- ammo
data regarding the currently loaded ammunition type(s) and quantity(ies)
- See also
DetailedAmmoBoxData
WeaponData
- final case class DroppedItemData[T <: ConstructorData](pos: PlacementData, obj: T) extends ConstructorData with Product with Serializable
Provide information that positions a given object on the ground in the game world.
Provide information that positions a given object on the ground in the game world.
- T
a subclass of
ConstructorData
that indicates what type the object is- pos
where and how the object is oriented
- obj
the object on the ground
- final case class DroppodData(basic: CommonFieldDataWithPlacement, health: Int, burn: Boolean, unk: Boolean) extends ConstructorData with Product with Serializable
A representation of a droppod that is dropped from the HART shuttle and ferries the player into battle.
A representation of a droppod that is dropped from the HART shuttle and ferries the player into battle. Droppods are also used when a player has activated Instant Action.
When the server first spawns the droppod, it will be placed at the world ceiling - 1024.0f. It is placed under control via another packet that sends it hurtling to the ground. Upon hitting the ground, it opens up, releasing the player, and despawns.
Although the droppod is not technically a vehicle, it is treated as such by the game. A spawned and unoccupied droppod can be entered and exited, as expected (the mount is 0). There is no entry animation. The exit animation is the droppod flowering open as usual. Even in its spread open state, the droppod can be re-entered, though it will remain spread open. The player's character will disappear once "inside." Upon exiting again, the droppod will snap shut and spread open.
Exploration: Whenbasic.player_guid
is defined, the droppod will not be at the world ceiling anymore and its boosters will be activate. Does thisbasic.player_guid
actually represent the player who is in the pod?- basic
data common to objects
- health
the amount of health the object has, as a percentage of a filled bar
- burn
whether the boosters are ignited
- See also
DroppodLaunchRequestMessage
DroppodLaunchResponseMessage
- final case class HandheldData(data: CommonFieldData, mode: Int, unk: Int) extends ConstructorData with Product with Serializable
A representation of a number of simplified objects that the user can hold in their hands, including: the advanced construction engine (
ace
), the field deployable unit (advanced_ace
), the boomer trigger apparatus, the remote telepad (not deployed), the flail laser pointer (flail_targeting_laser
), and the command uplink device (command_detonater
).A representation of a number of simplified objects that the user can hold in their hands, including: the advanced construction engine (
ace
), the field deployable unit (advanced_ace
), the boomer trigger apparatus, the remote telepad (not deployed), the flail laser pointer (flail_targeting_laser
), and the command uplink device (command_detonater
).- data
fields that are common to this game object
- v4 - not used, i.e., the simple format
CommonFieldData
object is employed - v5 - for the telepad, this field is expected to be the GUID of the associated Router
- v4 - not used, i.e., the simple format
- final case class ImplantEntry(implant: ImplantType, initialization: Option[Int], active: Boolean) extends StreamBitSize with Product with Serializable
An entry in the
List
of valid implant slots inDetailedCharacterData
.An entry in the
List
of valid implant slots inDetailedCharacterData
.- implant
the type of implant
- initialization
the amount of time necessary until this implant is ready to be activated; technically, this is unconfirmed
- active
whether this implant is turned on; technically, this is unconfirmed
- See also
ImplantType
- final case class ImprintingProgress(cavern_captures: Int, cavern_kills: Int) extends StreamBitSize with Product with Serializable
na
na
- cavern_captures
the number of facility captures in a cavern zone; five are needed before imprinting in vanilla
- cavern_kills
the number of unique player kills in a cavern zone; seventy-five are needed before imprinting in vanilla
- final case class InternalSlot(objectClass: Int, guid: PlanetSideGUID, parentSlot: Int, obj: ConstructorData) extends StreamBitSize with Product with Serializable
An intermediate class for the primary fields of
ObjectCreate*Message
with an implicit parent-child relationship.
Any object that is contained in a "slot" of another object will useInternalSlot
to hold the anchoring data.An intermediate class for the primary fields of
ObjectCreate*Message
with an implicit parent-child relationship.
Any object that is contained in a "slot" of another object will useInternalSlot
to hold the anchoring data. This prior object will clarify the identity of the "parent" object that owns the givenparentSlot
. As the name implies, this should never have to be used in the representation of a non-child object.
Try to avoid exposing this class in the process of implementing common object code. Provide overrode constructors that mask the creation ofInternalSlot
where applicable.- objectClass
the code for the type of object being constructed
- guid
the GUID this object will be assigned
- parentSlot
a parent-defined slot identifier that explains where the child is to be attached to the parent
- obj
the data used as representation of the object to be constructed
- See also
ObjectClass.selectDataCodec
ObjectClass.selectDataDetailedCodec
- final case class InventoryData(contents: List[InventoryItem] = List.empty) extends StreamBitSize with Product with Serializable
A representation of the inventory portion of
ObjectCreate*Message
packet data for avatars.
The inventory is a temperamental thing.A representation of the inventory portion of
ObjectCreate*Message
packet data for avatars.
The inventory is a temperamental thing. Items placed into the inventory must follow their proper encoding schematics to the letter. The slot number refers to the position occupied by the item. In icon format, all-encompassing slots are absolute positions; and, grid-distributed icons use the upper-left corner. No values are allowed to be misplaced and no unexpected regions of data can be discovered. If there is even a minor failure, the remainder of the inventory will fail to translate.
Inventories are usually prefaced with a single bit value not accounted for here to switch them "on."- contents
the items in the inventory
- See also
InventoryItemData
- final case class LargeDeployableData(deploy: CommonFieldDataWithPlacement, health: Int, internals: Option[InventoryData] = None) extends ConstructorData with Product with Serializable
This class currently is unused but is based on the
SmallTurretData
Codec
class. - final case class LittleBuddyProjectileData(data: CommonFieldDataWithPlacement, u2: Int, u4: Boolean) extends ConstructorData with Product with Serializable
- final case class LockerContainerData(inventory: Option[InventoryData]) extends ConstructorData with Product with Serializable
A representation for a game object that can contain items.
For whatever reason, these "lockers" are typically placed at the origin coordinates.A representation for a game object that can contain items.
For whatever reason, these "lockers" are typically placed at the origin coordinates.- inventory
the items inside this locker
- final case class ObjectCreateMessageParent(guid: PlanetSideGUID, slot: Int) extends Product with Serializable
The parent information of a created object.
In normal packet data order, there are two ways the parent object can be assigned.The parent information of a created object.
In normal packet data order, there are two ways the parent object can be assigned. The first is an implicit association between a parent object and a child object that are both created at the same time. A player character object, for example, is initialized in the same breath as the objects in his inventory are initialized. A weapon object is constructed with an ammunition object already included within itself. The second is an explicit association between the child and the parent where the parent exists before the child is created. When a new inventory object is produced, it is usually assigned to some other existing object's inventory. That is the relationship to the role of "parent" that this object defines. As such, only its current unique identifier needs to be provided. If the parent can not be found, the child object is not created.
A third form of parent object to child object association involves the impromptu assignment of an existing child to an existing parent. Since no objects are being created, that is unrelated toObjectCreateMessage
. Refer toObjectAttachMessage
,MountVehicleMsg
, andMountVehicleCargoMsg
.
When associated, the child object is "attached" to the parent object at a specific location called a "slot." "Slots" are internal to the object and are (typically) invisible to the player. Any game object can possess any number of "slots" that serve specific purposes. Player objects have equipment holsters and grid inventory capacity. Weapon objects have magazine feed positions. Vehicle objects have seating for players and trunk inventory capacity.- guid
the GUID of the parent object
- slot
a parent-defined slot identifier that explains where the child is to be attached to the parent; encoded as the length field of a Pascal string
- final case class OneMannedFieldTurretData(deploy: CommonFieldDataWithPlacement, health: Int, internals: Option[InventoryData] = None) extends ConstructorData with Product with Serializable
A representation of the player-mountable large field turrets deployed using an advanced adaptive construction engine.
Field turrets are divided into the turret base, the mounted turret weapon, and the turret's ammunition.A representation of the player-mountable large field turrets deployed using an advanced adaptive construction engine.
Field turrets are divided into the turret base, the mounted turret weapon, and the turret's ammunition. The ammunition is always the same regardless of which faction owns the turret. Turret bases and turret weapons are generally paired by the faction.
If the turret has nohealth
, it is rendered as destroyed. If the turret has no internal weapon, it is safest rendered as destroyed. Trying to fire a turret with no internal weapon will soft-lock the PlanetSide client.- deploy
data common to objects spawned by the (advanced) adaptive construction engine
- health
the amount of health the object has, as a percentage of a filled bar
- internals
data regarding the mountable weapon
- final case class OrbitalShuttleData(faction: types.PlanetSideEmpire.Value, pos: Option[PlacementData] = None) extends ConstructorData with Product with Serializable
A representation of the high altitude rapid transport (HART) shuttle that ferries the player into battle.
A representation of the high altitude rapid transport (HART) shuttle that ferries the player into battle. This
Codec
is different depending on whether the shuttle is the child of a parent or independent.
Three HART shuttles dock with the three HART buildings in the three sanctuaries for short periods on a timed schedule. When one is landed, players may board the shuttle using designated hallways in the lobbies of the HART building. After the shuttle leaves the sanctuary, it transports those players up into orbit above the continents. The shuttle docks again, this time with space stations that orbit the planet. It allows infantry to use droppods to land on the continents by pinpointing locations on that continent's tactical map.
The previous explanation is smoke and mirrors nonsense. Lore-wise, the separation of Auraxis during the Bending rendered it impossible for the shuttle to visit all of the continents. The orbital stations - even if they multiplied one per planet - don't really exist. (They almost existed but all assets for them were cut from the game.) The HART shuttle also isn't a traditional vehicle. It isn't even tangible. The game just treats it like a vehicle for the purpose of allowing players to access the controllable droppod system.
When accessible to the player, the shuttle has an access point called a "trunk." Trying to access it yields the brief message "OSMustBeDockedToMount."- faction
empire the object is affiliated with
- pos
optional; where and how the object is oriented
- See also
DroppodLaunchRequestMessage
DroppodLaunchResponseMessage
OrbitalShuttleTimeMsg
- final case class PlacementData(coord: Vector3, orient: Vector3, vel: Option[Vector3] = None) extends StreamBitSize with Product with Serializable
A specific location and heading in game world coordinates and game world measurements.
A specific location and heading in game world coordinates and game world measurements.
- coord
the xyz-coordinate location in the world
- orient
the ijk-orientation around the object's center
- vel
optional movement data (that occurs upon placement)
- final case class PlayerData(pos: Option[PlacementData], basic_appearance: CharacterAppearanceData, character_data: CharacterData, inventory: Option[InventoryData], drawn_slot: DrawnSlot.Value)(position_defined: Boolean) extends ConstructorData with Product with Serializable
A representation of another player's character for the
ObjectCreateMessage
packet.A representation of another player's character for the
ObjectCreateMessage
packet. In general, this packet is used to describe other players.
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 theObjectCreateDetailedMessage
version of a controlled player character and theObjectCreateMessage
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'sEquipment
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.
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 ofString
andList
padding.- pos
the optional position of the character in the world environment
- basic_appearance
common fields regarding the the character's appearance
- character_data
the class-specific data that explains about the character
- inventory
the player's inventory; typically, only the tools and weapons in the equipment holster slots
- drawn_slot
the holster that is initially drawn
- position_defined
used by the
Codec
to seed the state of the optionalpos
field
- See also
CharacterData
InventoryData
DrawnSlot
- final case class REKData(data: CommonFieldData, unk1: Int, unk2: Int) extends ConstructorData with Product with Serializable
na
na
- data
na
- unk1
na; defaults to 0
- See also
DetailedREKData
- final case class RadiationCloudData(pos: PlacementData, faction: types.PlanetSideEmpire.Value) extends ConstructorData with Product with Serializable
A representation of a stationary projectile field.
A representation of a stationary projectile field.
- pos
where the vehicle is and how it is oriented in the game world
- faction
faction affinity
- final case class RemoteProjectileData(common_data: CommonFieldDataWithPlacement, u1: Int, u2: Int, unk3: FlightPhysics.Value, unk4: Int, unk5: Int) extends ConstructorData with Product with Serializable
A representation of a projectile that the server must intentionally convey to players other than the shooter.
A representation of a projectile that the server must intentionally convey to players other than the shooter.
- common_data
common game object information
- u1
na; first part of the canned remote projectile data
- u2
na; second part of the canned remote projectile data
- unk3
na; does something to how the projectile flies
- unk4
na
- unk5
na
- final case class RibbonBars(upper: types.MeritCommendation.Value = MeritCommendation.None, middle: types.MeritCommendation.Value = MeritCommendation.None, lower: types.MeritCommendation.Value = MeritCommendation.None, tos: types.MeritCommendation.Value = MeritCommendation.None) extends StreamBitSize with Product with Serializable
Enumerate the player-displayed merit commendation awards granted for excellence (or tenacity) in combat.
Enumerate the player-displayed merit commendation awards granted for excellence (or tenacity) in combat. These are the medals players wish to brandish on their left pauldron.
- upper
the "top" configurable merit ribbon
- middle
the central configurable merit ribbon
- lower
the lower configurable merit ribbon
- tos
the top-most term of service merit ribbon
- See also
MeritCommendation
DisplayedAwardMessage
- final case class SmallTurretData(deploy: CommonFieldDataWithPlacement, health: Int, internals: Option[InventoryData] = None) extends ConstructorData with Product with Serializable
A representation of the Spitfire-based small turrets deployed using an adaptive construction engine.
The turret may contain substructure defining a weapon is a turret weapon contained within the turret itself.A representation of the Spitfire-based small turrets deployed using an adaptive construction engine.
The turret may contain substructure defining a weapon is a turret weapon contained within the turret itself. Furthermore, that turret-like weapon is loaded with turret-like ammunition. In other words, this outer turret can be considered a weapons platform for the inner turret weapon.
If the turret has nohealth
, it is rendered as destroyed. If the turret has no internal weapon, it is safest rendered as destroyed.- deploy
data common to objects spawned by the (advanced) adaptive construction engine
- health
the amount of health the object has, as a percentage of a filled bar
- internals
data regarding the mounted weapon
- sealed abstract class SpecificVehicleData extends StreamBitSize
A basic
Trait
connecting all of the vehicle data formats (exceptingNormal
/None
). - trait StreamBitSize extends AnyRef
Apply this
trait
to a class that needs to have its size in bits calculated. - final case class TRAPData(deploy: CommonFieldDataWithPlacement, health: Int) extends ConstructorData with Product with Serializable
A representation of the tactical resonance area protection unit deployed using an advanced adaptive construction engine.
A representation of the tactical resonance area protection unit deployed using an advanced adaptive construction engine. Three metal beams, erect and tangled, block passage to enemies and their vehicles.
- deploy
data common to objects spawned by the (advanced) adaptive construction engine
- health
the amount of health the object has, as a percentage of a filled bar
- final case class TelepadDeployableData(data: CommonFieldData, unk1: Int, unk2: Int) extends ConstructorData with Product with Serializable
A representation of simple objects that are spawned by the adaptive construction engine.
A representation of simple objects that are spawned by the adaptive construction engine.
- data
data common to game objects
- unk1
na
- unk2
na
- final case class UtilityVehicleData(unk: Int) extends SpecificVehicleData with Product with Serializable
The format of vehicle data for the type of vehicles that are considered "utility." The vehicles in this category are two: the advanced nanite transport, and the advanced mobile station.
The format of vehicle data for the type of vehicles that are considered "utility." The vehicles in this category are two: the advanced nanite transport, and the advanced mobile station.
- unk
na
- final case class VariantVehicleData(unk: Int) extends SpecificVehicleData with Product with Serializable
A common format variant of vehicle data.
A common format variant of vehicle data. This category includes all flying vehicles and the ancient cavern vehicles.
- unk
na
- final case class VehicleData(pos: PlacementData, data: CommonFieldData, unk3: Boolean, health: Int, unk4: Boolean, no_mount_points: Boolean, driveState: types.DriveState.Value, unk5: Boolean, unk6: Boolean, cloak: Boolean, vehicle_format_data: Option[SpecificVehicleData], inventory: Option[InventoryData] = None)(vehicle_type: VehicleFormat = VehicleFormat.Normal) extends ConstructorData with Product with Serializable
A representation of a generic vehicle.
A representation of a generic vehicle.
- pos
where the vehicle is and how it is oriented in the game world
- data
common vehicle field data:
-bops - this vehicle belongs to the Black Ops, regardless of the faction field; activates the green camo and adjusts permissions
-destroyed - this vehicle has ben destroyed; health should be less than 3/255, or 0%
-jammered - vehicles will not be jammered by setting this field
-player_guid the vehicle's (official) owner; a living player in the game world on the same continent as the vehicle who may mount the driver mount- unk3
na
- health
the amount of health the vehicle has, as a percentage of a filled bar (255)
- unk4
na
- no_mount_points
do not display entry points for the seats
- driveState
a representation for the current mobility state; various vehicles also use this field to indicate "deployment," e.g., the advanced mobile spawn
- unk5
na
- unk6
na
- cloak
if a vehicle (that can cloak) is cloaked
- vehicle_format_data
extra information necessary to implement special-type vehicles; see
vehicle_type
- inventory
the seats, mounted weapons, and utilities (such as terminals) that are currently included; will also include trunk contents; the driver is the only valid mount entry (more will cause the access permissions to act up)
- vehicle_type
a modifier for parsing the vehicle data format differently; see
vehicle_format_data
; defaults toNormal
- final case class WeaponData(data: CommonFieldData, fire_mode: Int, ammo: List[InternalSlot], unk: Boolean = false) extends ConstructorData with Product with Serializable
A representation of a class of weapons that can be created using
ObjectCreateMessage
packet data.A representation of a class of weapons that can be created using
ObjectCreateMessage
packet data. This data will help construct a "loaded weapon" such as a Suppressor or a Gauss. Common uses include items deposited on the ground and items in another player's visible inventory (holsters).
The data for the weapons nests information for the default (current) type of ammunition and number of ammunitions in its magazine(s). This ammunition data essentially is the weapon's magazines as numbered slots. An "expected" number of ammunition slot data can be passed into the class for the purposes of validating input.- data
na; commonly 8
- fire_mode
the current mode of weapon's fire; zero-indexed
- ammo
data regarding the currently loaded ammunition type(s)
- See also
AmmoBoxData
Value Members
- object AegisShieldGeneratorData extends Marshallable[AegisShieldGeneratorData] with Serializable
- object AmmoBoxData
A representation of ammunition that can be created using
ObjectCreateMessage
packet data.A representation of ammunition that can be created using
ObjectCreateMessage
packet data. This data will help construct a "box" of that type of ammunition when standalone. It can also be constructed directly inside a weapon as its magazine.
This ammunition object ompletely ignores the capacity field, normal to detailed ammunition objects. Creating an object of this type directly and picking it up or observing it (in a weapon) will reveals single round.- See also
DetailedAmmoBoxData
- object BattleFrameRoboticsData extends Marshallable[BattleFrameRoboticsData] with Serializable
- object CaptureFlagData extends Marshallable[CaptureFlagData] with Serializable
- object CharacterAppearanceData extends Marshallable[CharacterAppearanceData] with Serializable
- object CharacterData extends Marshallable[CharacterData] with Serializable
- object CommonFieldData extends Marshallable[CommonFieldData] with Serializable
- object CommonFieldDataExtra extends Serializable
- object CommonFieldDataWithPlacement extends Marshallable[CommonFieldDataWithPlacement] with Serializable
- object ConstructorData
- object DestroyedVehicleData extends Marshallable[DestroyedVehicleData] with Serializable
- object DetailedAmmoBoxData extends Marshallable[DetailedAmmoBoxData] with Serializable
- object DetailedCharacterData extends Marshallable[DetailedCharacterData] with Serializable
- object DetailedCommandDetonaterData extends Marshallable[DetailedCommandDetonaterData] with Serializable
- object DetailedConstructionToolData extends Marshallable[DetailedConstructionToolData] with Serializable
- object DetailedLockerContainerData extends Marshallable[DetailedLockerContainerData] with Serializable
- object DetailedPlayerData extends Marshallable[DetailedPlayerData] with Serializable
- object DetailedREKData extends Marshallable[DetailedREKData] with Serializable
- object DetailedWeaponData extends Marshallable[DetailedWeaponData] with Serializable
- object DrawnSlot extends Enumeration
Values for the equipment holster slot whose contained ("held") equipment can be drawn.
Values for the equipment holster slot whose contained ("held") equipment can be drawn. The values for these Enums match the slot number by index for Infantry weapons.
None
is not a kludge. While any "not a holster" number can be used to indicate "no weapon drawn," seven is the value PlanetSide is looking for. Using five or six delays the first weapon draw while the client corrects its internal state. - object DroppedItemData extends Serializable
- object DroppodData extends Marshallable[DroppodData] with Serializable
- object FlightPhysics extends Enumeration
- object HandheldData extends Marshallable[HandheldData] with Serializable
- object ImplantEffects extends Enumeration
Values for the implant effects on a character model.
Values for the implant effects on a character model. The effects are not additive and this value is not a bitmask.
RegenEffects
is a reverse-flagged item - inactive when the corresponding bit is set. For that reason, every other effect isn + 1
, whileNoEffects
is1
andRegenEffects
is0
. - object ImplantEntry extends Serializable
- object InternalSlot extends Serializable
- object InventoryData extends Serializable
- object InventoryItemData
Mask the use of
InternalSlot
using a fake class called anInventoryItemData
. - object LargeDeployableData extends Marshallable[LargeDeployableData] with Serializable
- object LittleBuddyProjectileData extends Marshallable[LittleBuddyProjectileData] with Serializable
- object LockerContainerData extends Marshallable[LockerContainerData] with Serializable
- object MountItem
Mask the use of
InternalSlot
using a fake class called aMountItem
. - object MountableInventory
- object ObjectClass
A reference between all object class codes and the name of the object they represent.
A reference between all object class codes and the name of the object they represent. Object class types are defined by an 11-bit (
0xB
) value. - object ObjectCreateBase
- object OneMannedFieldTurretData extends Marshallable[OneMannedFieldTurretData] with Serializable
- object OrbitalShuttleData extends Marshallable[OrbitalShuttleData] with Serializable
- object PlacementData extends Marshallable[PlacementData] with Serializable
- object PlayerData extends Marshallable[PlayerData] with Serializable
- object Prefab
A compilation of the common
*Data
objects that would be used for stock game objects.A compilation of the common
*Data
objects that would be used for stock game objects. Each function is named after theObjectClass
name (internal name) it creates. NoPrefab
assumes empire allegiance or initial health. This file is more useful for reference, rather than application. - object REKData extends Marshallable[REKData] with Serializable
- object RadiationCloudData extends Marshallable[RadiationCloudData] with Serializable
- object RemoteProjectileData extends Marshallable[RemoteProjectileData] with Serializable
- object RemoteProjectiles
- object RibbonBars extends Marshallable[RibbonBars] with Serializable
- object SmallTurretData extends Marshallable[SmallTurretData] with Serializable
- object StreamBitSize
- object TRAPData extends Marshallable[TRAPData] with Serializable
- object TelepadDeployableData extends Marshallable[TelepadDeployableData] with Serializable
- object TerminalData
A representation of an object that can be interacted with when using a variety of terminals.
A representation of an object that can be interacted with when using a variety of terminals. This object is generally invisible.
- object VehicleData extends Marshallable[VehicleData] with Serializable
- object WeaponData extends Marshallable[WeaponData] with Serializable