package game
- Alphabetic
- Public
- Protected
Package Members
- package objectcreate
Type Members
- final case class ActionCancelMessage(player_guid: PlanetSideGUID, object_guid: PlanetSideGUID, unk: Int) extends PlanetSideGamePacket with Product with Serializable
na
na
- player_guid
na
- object_guid
na
- unk
na
- final case class ActionProgressMessage(action: Int, unk2: Long) extends PlanetSideGamePacket with Product with Serializable
6,7,8 - Start implant initialization timer for slots 0,1,2 respectively.
6,7,8 - Start implant initialization timer for slots 0,1,2 respectively. Allowed values: 0-100 (50 will start timer at 50% complete)
- final case class ActionResultMessage(errorCode: Option[Long]) extends PlanetSideGamePacket with Product with Serializable
Is sent by the server when the client has performed an action from a menu item (i.e create character, delete character, etc...).
Is sent by the server when the client has performed an action from a menu item (i.e create character, delete character, etc...). Error messages usually are accompanied by an angry beep.
Error 0 is a common code but it doesn't do anything specific on its own.
Error 1 generates the message box: a character with that name already exists.
Error 2 generates the message box: something to do with the word filter.
Other errors during the character login screen generate a generic error message box and list the code. - final case class Additional1(unk1: String, unk2: Int, unk3: Long) extends Product with Serializable
na
na
- unk1
na
- unk2
na
- unk3
na
- final case class Additional2(unk1: Int, unk2: Long) extends Product with Serializable
na
na
- unk1
na
- unk2
na
- final case class Additional3(unk1: Boolean, unk2: Int) extends Product with Serializable
na
na
- unk1
na
- unk2
na
- final case class AggravatedDamageMessage(guid: PlanetSideGUID, damage: Long) extends PlanetSideGamePacket with Product with Serializable
Dispatched from the server to cause a damage reaction from a specific target.
Dispatched from the server to cause a damage reaction from a specific target. Infantry targets should be the primary target of this packet, as indicated by their identifier. Infantry targets display their flinch animation. All targets yelp in agony. Infantry targets use their assigned voice. Non-infantry targets use the "grizzled"(?) voice.
- guid
the target entity's global unique identifier
- damage
the amount of damsge being simulated
- final case class ArmorChangedMessage(player_guid: PlanetSideGUID, armor: types.ExoSuitType.Value, subtype: Int) extends PlanetSideGamePacket with Product with Serializable
Force a player model to change its exo-suit.
Force a player model to change its exo-suit. Set all GUI elements and functional elements to be associated with that type of exo-suit. Inventory and holster contents are discarded.
Due to the way armor is handled internally, a player of one faction may not spawn in the exo-suit of another faction. That style of exo-suit is never available through this packet. As MAX units do not get their weapon by default, all the MAX values produce the same faction-appropriate mechanized exo-suit body visually. (The MAX weapons are supplied in subsequent packets.)
Mechanized Assault Subtypes:
0 - na
1 - AI MAX
2 - AV MAX
3 - AA MAX- player_guid
the player
- armor
the type of exo-suit
- subtype
the exo-suit subtype, if any
- final case class AvatarAwardMessage(merit_commendation: types.MeritCommendation.Value, state: AwardOption, unk: Int) extends PlanetSideGamePacket with Product with Serializable
Dispatched from the server to load information about a character's merit commendation awards progress.
The three stages of a merit commendation award are: progress, qualification, and completion.Dispatched from the server to load information about a character's merit commendation awards progress.
The three stages of a merit commendation award are: progress, qualification, and completion. The progress stage and the qualification stage have their own development conditions. Ocassionally, the development is nonexistent and the award is merely an on/off switch. Occasionally, there is no qualification requirement and the award merely advances in the progress stage then transitions directly from progress to completion. Completion information is available from the character info / achievements tab and takes the form of ribbons associated with the merit commendation at a given rank and the date that rank was attained. Progress and qualification information are visible from the character info / achievements / award progress window and take the form of the name and rank of the merit commendation and two numbers that indicate the current and the goal towards the next stage. The completion stage is also visible from this window and will take the form of the same name and rank of the merit commendation indicated as "Completed" as of a date.- merit_commendation
the award and rank
- state
the current state of the award advancement
- unk
na; 0 and 1 are the possible values; 0 is the common value
- See also
MeritCommendation.Value
- final case class AvatarDeadStateMessage(state: DeadState.Value, timer_max: Long, timer: Long, pos: Vector3, faction: types.PlanetSideEmpire.Value, unk5: Boolean) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the server to manipulate the client's management of the
Player
object owned by the user as his "avatar."
The cycle of a player is generallyAlive
toDead
andDead
toRelease
andRelease
toRespawnTimer
toAlive
.Dispatched by the server to manipulate the client's management of the
Player
object owned by the user as his "avatar."
The cycle of a player is generallyAlive
toDead
andDead
toRelease
andRelease
toRespawnTimer
toAlive
. When deconstructing oneself, the user makes a jump betweenAlive
andRelease
; and, he may make a further jump fromRelease
toAlive
depending on spawning choices. BeingAlive
is the most common state. (Despite what anyone says.) BeingDead
is just a technical requirement to initialize the revive timer. The player should be sufficiently "dead" by having his health points decreased to zero. If the timer is reduced to zero, the player is sent back to their faction-appropriate sanctuary continent.
Release
causes a "dead" player to have its character model converted into a backpack or a form of pastry. This cancels the revival timer - the player may no longer be revived - and brings the user to the deployment map. From the deployment map, the user may select a place where they may respawn a new character. The options available form this spawn are not only related to the faction affinity of the bases compared to the user's player(s) but also to the fieldfaction
as is provided in the packet. If the player is converted to a state ofRelease
while being alive, the deployment map is still displayed. Their character model is not replaced by a backpack or pastry.
RespawnTimer
is likeDead
as it is just a formal distinction to cause the client to display a timer. The state indicates that the player is being resurrected at a previously-selected location in the stateAlive
.- state
avatar's mortal relationship with the world; the following timers are applicable during
Death
andRespawnTimer
;faction
is applicable mainly duringRelease
- timer_max
total length of respawn countdown, in milliseconds
- timer
initial length of the respawn timer, in milliseconds
- pos
player's last position
- faction
spawn points available for this faction on redeployment map
- unk5
na
- final case class AvatarFirstTimeEventMessage(avatar_guid: PlanetSideGUID, object_id: PlanetSideGUID, unk: Long, event_name: String) extends PlanetSideGamePacket with Product with Serializable
Dispatched to the server when the player encounters something for the very first time in their campaign.
Dispatched to the server when the player encounters something for the very first time in their campaign. For example, the first time the player rubs up against a game object with a yellow exclamation point. For example, the first time the player draws a specific weapon.
When the first time events (FTE's) are received, battle experience is awarded. Text information about the object will be displayed. A certain itemized checkbox under the "Training" tab that corresponds is marked off. The latter list indicates all "encounter-able" game objects for which a FTE exists. These effects only happen once per character/campaign. (The Motion Sensor will occasionally erroneously display the information window on repeat encounters. No additional experience is given, though.)
FTE's are recorded in a greatList
ofString
s in the middle of playerObjectCreateMessage
data. Tutorial complete events are enqueued nearby.- avatar_guid
the player
- object_id
the game object that triggers the event
- unk
na
- event_name
the string name of the event
- final case class AvatarGrenadeStateMessage(player_guid: PlanetSideGUID, state: types.GrenadeState.Value) extends PlanetSideGamePacket with Product with Serializable
Report the state of the grenade throw animation for this player.
Report the state of the grenade throw animation for this player. The default state is "held at side," though the client's avatar never has to announce this.
The throwing animation has a minor timing glitch. Causing another player to raise his arm will always result in that arm being lowered a few seconds later. This is as opposed to the client's avatar, who can seem to hold a grenade in the "prepare to throw" state indefinitely. If the avatar looks away from a player whose grenade arm is up ("prepare to throw"), however, when they look back at the player, his grenade arm will occasionally have been lowered ("held at side") again before it would normally be lowered.
A client will dispatch state 'Primed' and state 'Thrown' for the avatar's actions. A client will only react temporarily for another character other than the avatar when the given a state 'Primed'. If that internal state is not changed, however, that other character will not respond to any subsequent 'Primed' state. (This may also be a glitch.)
States:
1 - prepare to throw (grenade held back over shoulder)
2 - throwing (grenade released overhand and then reset) (avatar only)
- player_guid
the player
- state
the animation state
- final case class AvatarImplantMessage(player_guid: PlanetSideGUID, action: ImplantAction.Value, implantSlot: Int, status: Int) extends PlanetSideGamePacket with Product with Serializable
Change the state of the implant.
Change the state of the implant. Spawn messages for certain implant-related events.
The implant Second Wind is technically an invalidImplantType
for this packet. This owes to the unique activation trigger for that implant - a near-death experience of ~0HP.- player_guid
the player
- action
how to affect the implant or the slot
- implantSlot
: from 0 to 2
- status
: a value that depends on context from
ImplantAction
:
Add
- 0-9 depending on theImplantType
Remove
- any valid value; field is not significant to this action
Initialization
- 0 to revoke slot; 1 to allocate implant slot
Activation
- 0 to deactivate implant; 1 to activate implant
UnlockMessage
- 0-3 as an unlocked implant slot; display a message
OutOfStamina
- lock implant; 1 to lock; 0 to unlock; display a message
- See also
ImplantType
- final case class AvatarJumpMessage(state: Boolean) extends PlanetSideGamePacket with Product with Serializable
Tell the server that the player is is jumping.
Tell the server that the player is is jumping. This will allow it to coordinate animation with other clients.
During the jump, the avatar's "height" coordinate does change, as reported inPlayerStateMessageUpstream
.PlayerStateMessage
, however, can depict another player with a proper jumping animation without the explicit coordinate change. The server must probably account for the distance to the ground when passing along data somehow.
Exploration:
Isstate
ever nottrue
?- state
true
- final case class AvatarSearchCriteriaMessage(unk1: PlanetSideGUID, unk2: List[Int]) extends PlanetSideGamePacket with Product with Serializable
na
na
- unk1
na
- unk2
na
- final case class AvatarStatisticsMessage(stats: Statistic) extends PlanetSideGamePacket with Product with Serializable
na
na
- stats
na
- final case class AvatarVehicleTimerMessage(player_guid: PlanetSideGUID, text: String, time: Long, unk: Boolean) extends PlanetSideGamePacket with Product with Serializable
- player_guid
player guid
- text
internal name of the item or vehicle name, e.g., medkit, fury, trhev_antipersonnel
- time
cooldown/delay in seconds
- unk
unk; most likely has to do with the visibility of the timer in equipment purchasing;
false
for kit items;true
for almost everything else
- final case class AwardCompletion(value: Long) extends AwardOption with Product with Serializable
Display this award as completed.
Display this award as completed.
- value
the date (mm/dd/yyyy) that the award was achieved in POSIX seconds; that's
System.currentTimeMillis() / 1000
- sealed trait AwardOption extends AnyRef
Base class for all merit commendation advancement stages.
- final case class AwardProgress(value: Long, completion: Long) extends AwardOption with Product with Serializable
Display this award's development progress.
Display this award's development progress.
- value
the current count towards this award
- completion
the target (maximum) count
- final case class AwardQualificationProgress(value: Long) extends AwardOption with Product with Serializable
Display this award's qualification progress.
Display this award's qualification progress. The process is the penultimate conditions necessary for award completion, separate from the aforementioned progress. This is almost always a kill streak, where the user must terminate a certain numbers of enemies without dying.
- value
the current count towards this award
- final case class BattleDiagramAction(action: DiagramActionCode.Value, stroke: Option[DiagramStroke] = None) extends Product with Serializable
A particular instruction in the rendering of this battleplan's diagram entry.
A particular instruction in the rendering of this battleplan's diagram entry.
- action
the behavior of this stroke; a hint to the kind of stroke data stored, if at all, and how to use it or incorporate prior data
- stroke
the data; defaults to
None
- final case class BattleExperienceMessage(player_guid: PlanetSideGUID, experience: Long, msg: ExperienceType) extends PlanetSideGamePacket with Product with Serializable
Inform the client how many battle experience points (BEP) the player currently has earned.
The amount ofexperience
earned is an accumulating value.Inform the client how many battle experience points (BEP) the player currently has earned.
The amount ofexperience
earned is an accumulating value. Whenever the server sends this packet, the value of this field is equal to the player's current total BEP. Each packet updates to a higher BEP score and the client occasionally reports of the difference as an event message. "You have been awardedx
battle experience points." Milestone notifications that occur due to BEP gain, e.g., rank progression, will trigger naturally as the client is updated.
It is possible to award more battle experience than is necessary to progress one's character to the highest battle rank. (This must be accomplished in a single event packet.) Only the most significant notifications will be displayed in that case. If the BEP has been modified, the message in the event chat can be modified in two extra ways.- player_guid
the player
- experience
the current total experience
- msg
modifies the awarded experience message
- final case class BattleplanMessage(char_id: Long, player_name: String, zone_id: Int, diagrams: List[BattleDiagramAction]) extends PlanetSideGamePacket with Product with Serializable
Share drawn images and words on the tactical map among a group of players.
Each packet usually contains a small portion of an image, herein called a "diagram."BattleplanMessage
packets are accumulative towards a full diagram.Share drawn images and words on the tactical map among a group of players.
Each packet usually contains a small portion of an image, herein called a "diagram."BattleplanMessage
packets are accumulative towards a full diagram. Moreover, rather than theplayer_name
, each diagram is associated on a client by thechar_id
field. Only squad leaders and platoon leaders can draw on the map and share with other players in their squad or platoon.
To start drawing, a would-be artist must have all clients who will receive their diagrams acknowledge aStartDrawing
action. Thechar_id
with thisStartDrawing
will associate all diagrams submitted with the samechar_id
's portfolio. Multiple portfolio definitions may exist on a client at a given time and each will manage their own diagrams. When a given portfolio submits aStopDrawing
action that is received, the previous diagrams associated with it will be cleared. Thatchar_id
will no longer accept diagrams on that client. Other portfolios will continue to accept diagrams as initialized. When no portfolios are being accepted, the "Toggle -> Battleplan" button on that client's tactical map will be disabled. When there is at least one portfolio accepted, the "Battleplan" button will be functional and can be toggled.
To construct line segments, chainStrokeTwo
diagrams in the given packet entry. Each defined point will act like a successive vertex in a chain of segments. Any non-vertex entry in between entries, e.g., a change of line color, will break the chain of line segments. For example:
RED-A-B-C will construct red lines segments A-B and B-C.
RED-A-B-GREEN-C will only construct a red line segement A-B.
RED-A-B-GREEN-C-D will construct a red line segement A-B and a green line segment C-D.
(Default line color, if none is declared specifically, is gray.)
To construct a message, define a point to act as the center baseline for the text. The message will be written above and outwards from that point. Messages do not carry properties over from line segments - they set their own color and do not have line thickness. Any single portfolio may have only fifteen messages written to the tactical map at a time.- char_id
na; same as in
CharacterInfoMessage
- player_name
the player who contributed this battle plan
- zone_id
on which continent the battle plan will be overlaid; can identify as "no zone" 0 when performing instructions not specific to drawing
- diagrams
a list of the itemized actions that will construct this plan or are used to modify the plan
- final case class BeginZoningMessage() extends PlanetSideGamePacket with Product with Serializable
Dispatched by the client after the current map has been fully loaded locally and its objects are ready to be initialized.
Dispatched by the client after the current map has been fully loaded locally and its objects are ready to be initialized. This packet is a direct response to
LoadMapMessage
.
When the server receives the packet, for each object on that map, it sends the packets to the client:
-SetEmpireMessage
-HackMessage
-PlanetSideAttributeMessage
- ... and so forth
Afterwards, an avatar POV is declared and the remaining details about the said avatar are assigned. - final case class BindPlayerMessage(action: BindStatus.Value, bind_desc: String, display_icon: Boolean, logging: Boolean, spawn_group: SpawnGroup, zone_number: Long, unk4: Long, pos: Vector3) extends PlanetSideGamePacket with Product with Serializable
A packet dispatched to maintain a manually-set respawn location.
The packet establishes the player's ability to spawn in an arbitrary location that is not a normal local option.A packet dispatched to maintain a manually-set respawn location.
The packet establishes the player's ability to spawn in an arbitrary location that is not a normal local option. This process is called "binding one's matrix." In addition to player establishing the binding, the packet updates as conditions of the respawn location changes.
Iflogging
is turned on, packets will display different messages depending on context. The bind descriptor will be used to flavor the events chat message. As long as the event is marked to be logged, when the packet is received, a message is displayed in the events window. If the logged action is applicable, the matrixing sound effect will be played too. Not displaying events is occasionally warranted for aesthetics. The game will always note if this is your first time binding regardless of the state of this flag.
Bind Descriptors:
@amp_station
@ams
@comm_station
(interlink facility?)
@comm_station_dsp
(dropship center?)
@cryo_facility
(biolab?)
@tech_plant
Exploration:
Find other bind descriptors.- action
the purpose of the packet
- bind_desc
a text description of the respawn binding point
- display_icon
show the selection icon on the redeployment map
- logging
true, to report on bind point change visible in the events window; false, to render spawn change silently; some first time notifications will always display regardless of this flag
- spawn_group
the kind of spawn request that will be made; affects the type of icon displayed; will coincide with the value of
unk2
inSpawnRequestMessage
when the spawn option is selected- zone_number
the number of the zone in which to display this spawn option; if
zone_number
is not the current zone, and the action is positive, a small map of the alternate zone with selectable spawn point will become visible- unk4
na
- pos
coordinates for any displayed deployment map icon;
x
andy
determine the position
- final case class BroadcastWarpgateUpdateMessage(zone_id: Int, building_id: Int, tr: Boolean, nc: Boolean, vs: Boolean) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the server to promote a warp gate's broadcast functionality.
Changes the map name of a warp gate into "Broadcast" and allow a given faction to access the gate's intercontinental transport functionality to/from that gate, even if the gate is not properly owned.Dispatched by the server to promote a warp gate's broadcast functionality.
Changes the map name of a warp gate into "Broadcast" and allow a given faction to access the gate's intercontinental transport functionality to/from that gate, even if the gate is not properly owned. If an actual warp gate is not designated, nothing happens. If not set, the map name of the warp gate will default to whatever is normally written on the map. The map designation of geowarps is not affected by this packet.- zone_id
the zone ordinal number
- building_id
the warp gate map id
- tr
players belonging to the Terran Republic interact with this warp gate as a "broadcast gate"
- nc
players belonging to the New Conglomerate interact with this warp gate as a "broadcast gate"
- vs
players belonging to the Vanu Sovereignty interact with this warp gate as a "broadcast gate"
- See also
BuildingInfoUpdateMessage
- final case class BugReportMessage(version_major: Long, version_minor: Long, version_date: String, bug_type: BugType.Value, repeatable: Boolean, location: Int, zone: Int, pos: Vector3, summary: String, desc: String) extends PlanetSideGamePacket with Product with Serializable
Allow the user to report a bug they have found in the game.
Bug reports are prepended by the version of the client on which the player is encountering the issue.Allow the user to report a bug they have found in the game.
Bug reports are prepended by the version of the client on which the player is encountering the issue. The last delivered client by Sony Online Entertainment was3.15.84
with dateDec 2 2009
.
The path of bug reports submitted to the game's official server is not known.- version_major
the client's major version number
- version_minor
the client's minor version number
- version_date
the date the client was compiled
- bug_type
the kind of bug that took place
- repeatable
whether the bug is repeatable
- location
0 when "other location", 2 when "current location"
- zone
which zone the bug took place
- pos
the x y z location where the bug took place
- summary
a short explanation of the bug
- desc
a detailed explanation of the bug
- final case class BuildingInfoUpdateMessage(continent_id: Int, building_map_id: Int, ntu_level: Int, is_hacked: Boolean, empire_hack: types.PlanetSideEmpire.Value, hack_time_remaining: Long, empire_own: types.PlanetSideEmpire.Value, unk1: Long, unk1x: Option[Additional1], generator_state: types.PlanetSideGeneratorState.Value, spawn_tubes_normal: Boolean, force_dome_active: Boolean, lattice_benefit: Set[LatticeBenefit], cavern_benefit: Set[CavernBenefit], unk4: List[Additional2], unk5: Long, unk6: Boolean, unk7: Int, unk7x: Option[Additional3], boost_spawn_pain: Boolean, boost_generator_pain: Boolean) extends PlanetSideGamePacket with Product with Serializable
Update the state of map asset for a client's specific building's state.
Update the state of map asset for a client's specific building's state. The most common application of this packet is to synchronize map state during world login.
A "building" mainly constitutes any map-viewable structure that has properties or whose ownership can be asserted. This packet is valid for all major facilities, field towers, warp gates, and some static environment elements. Additional properties, if available, can be viewed by selecting the sphere of influence of a given building. The combination of continent UID and building UID ensures that all buildings are uniquely-defined. This packet can be applied on any continent and will affect the appropriate building on any other continent. As the intercontinental map is always available, all map assets will publish real time updates to all players. Map information configured by this packet is not obscured from any players, regardless of faction. (Network state updates will be delayed for, and the type of compromise will not be specified to, defenders.)
Aside from the map-viewable aspects, a few properties set by this packet also have game world effects. Additionally, though most parameters are treated as mandatory, not all buildings will be able to use those parameters. A parameter that is not applicable for a given asset, e.g., NTU for a field tower, will be ignored. A collision between some parameters can occur. For example, ifis_hacking
isfalse
, the other hacking fields are considered invalid. Ifis_hacking
istrue
but the hacking empire is also the owning empire, theis_hacking
state is invalid.- continent_id
the continent (zone)
- building_map_id
the map id of this building from the MPO files
- ntu_level
if the building has a silo, the amount of NTU in that silo; NTU is reported in multiples of 10%; valid for 0 (0%) to 10 (100%)
- is_hacked
if the building can be hacked and will take time to convert, whether the building is being hacked
- empire_hack
if the building is being hacked, the empire that is performing the hacking
- hack_time_remaining
if the building is being hacked, the amount of time remaining until the hack finishes/clears; recorded in milliseconds (ms)
- empire_own
the empire that owns the building currently
- unk1
na; value != 0 causes the next field to be defined
- unk1x
na
- generator_state
if the building has a generator, the state of the generator
- spawn_tubes_normal
if the building has spawn tubes, whether at least one of the tubes is powered and operational
- force_dome_active
if the building is a capitol facility, whether the force dome is active
- lattice_benefit
the benefits from other Lattice-linked bases does this building possess
- cavern_benefit
cavern benefits; any non-zero value will cause the cavern module icon (yellow) to appear; proper module values cause the cavern module icon to render green; all benefits will report as due to a "Cavern Lock"
- unk4
na
- unk5
na
- unk6
na
- unk7
na; value != 8 causes the next field to be defined
- unk7x
na
- boost_spawn_pain
if the building has spawn tubes, the (boosted) strength of its enemy pain field
- boost_generator_pain
if the building has a generator, the (boosted) strength of its enemy pain field
- final case class CaptureFlagUpdateMessage(zone_number: Int, flagInfoList: List[FlagInfo]) extends PlanetSideGamePacket with Product with Serializable
- zone_number
The zone number this packet applies to
- flagInfoList
The list of LLUs/Monolith units for this zone
- final case class CargoMountPointStatusMessage(cargo_vehicle_guid: PlanetSideGUID, requesting_vehicle: PlanetSideGUID, mounted_vehicle: PlanetSideGUID, dismounted_vehicle: PlanetSideGUID, slot: Int, mount_status: types.CargoStatus.Value, orientation: Int) extends PlanetSideGamePacket with Product with Serializable
na
na
- cargo_vehicle_guid
always the carrier vehicle
- requesting_vehicle
cargo vehicle that requested mounting during the mounting process; blank when the process is complete
- mounted_vehicle
cargo vehicle that requested mounting after the mounting process is complete; blank before the process is complete
- dismounted_vehicle
cargo vehicle that was mounted after disembarking; blank before disembark blank before mounting request, when packet
MountVehicleCargoMsg
is received- slot
cargo hold mount position; common values are 1 for the
lodestar
and 15 for thedropship
- mount_status
cargo mount status
- orientation
direction the cargo vehicle faces when stowed in the carrier cargo bay; 0 is "normal," front facing forward; 1 is "sideways," front facing the side of the carrier vehicle, e.g.
router
- See also
CargoStatus
MountVehicleCargoMsg
- final case class ChainLashMessage(lash_origin_target: Option[PlanetSideGUID], lash_origin_pos: Option[Vector3], projectile_type: Int, targets: List[PlanetSideGUID]) extends PlanetSideGamePacket with Product with Serializable
na
na
- lash_origin_target
na
- lash_origin_pos
na
- projectile_type
na
- targets
na
- final case class ChangeAmmoMessage(item_guid: PlanetSideGUID, unk1: Long) extends PlanetSideGamePacket with Product with Serializable
- final case class ChangeFireModeMessage(item_guid: PlanetSideGUID, fire_mode: Int) extends PlanetSideGamePacket with Product with Serializable
- final case class ChangeFireStateMessage_Start(item_guid: PlanetSideGUID) extends PlanetSideGamePacket with Product with Serializable
- final case class ChangeFireStateMessage_Stop(item_guid: PlanetSideGUID) extends PlanetSideGamePacket with Product with Serializable
- final case class ChangeShortcutBankMessage(player_guid: PlanetSideGUID, bank: Int) extends PlanetSideGamePacket with Product with Serializable
Switch the set of shortcuts displayed on the HUD's hotbar.
The hotbar contains eight slots for user shortcuts - medkits, implants, and text macros.Switch the set of shortcuts displayed on the HUD's hotbar.
The hotbar contains eight slots for user shortcuts - medkits, implants, and text macros. Next to the first slot are up and down arrow buttons with a number. By progressing through the options available from the arrows, eight sets of eight shortcut slots are revealed. Which set is visible determines the effect of the respective binding keys (the Function keys) for the hotbar. Each set is called a "bank," obviously.
This packet coordinates the bank number both as an upstream and as a downstream packet.- player_guid
the player
- bank
the shortcut bank (zero-indexed); 0-7 are the valid banks
- final case class CharacterCreateRequestMessage(name: String, headId: Int, voiceId: types.CharacterVoice.Value, gender: CharacterSex, empire: types.PlanetSideEmpire.Value) extends PlanetSideGamePacket with Product with Serializable
Is sent by the PlanetSide client on character selection completion.
- final case class CharacterInfoMessage(unk: Long, zoneId: PlanetSideZoneID, charId: Long, guid: PlanetSideGUID, finished: Boolean, secondsSinceLastLogin: Long) extends PlanetSideGamePacket with Product with Serializable
Is sent by the PlanetSide world server when sending character selection screen state.
Is sent by the PlanetSide world server when sending character selection screen state. Provides metadata about a certain character for rendering purposes (zone background, etc). Acts as an array insert for the client character list. A blank displayed character is most likely caused by either: - a mismatch between an ObjectCreateMessage GUID and the GUID from this message. - bundling CharacterInfoMessage with OCDM, they should appear one after another
- finished
True when there are no more characters to give info on
- final case class CharacterKnowledgeInfo(name: String, certifications: Set[Certification], unk1: Int, unk2: Int, zoneNumber: Int) extends Product with Serializable
- final case class CharacterKnowledgeMessage(char_id: Long, info: Option[CharacterKnowledgeInfo]) extends PlanetSideGamePacket with Product with Serializable
- final case class CharacterNoRecordMessage(unk: Long) extends PlanetSideGamePacket with Product with Serializable
- final case class CharacterRequestMessage(charId: Long, action: Type) extends PlanetSideGamePacket with Product with Serializable
Is sent by the PlanetSide client when selecting a character to play from the character selection menu.
- final case class ChatMsg(messageType: ChatMessageType, wideContents: Boolean, recipient: String, contents: String, note: Option[String]) extends PlanetSideGamePacket with Product with Serializable
Instructs client to display and/or process a chat message/command when sent server to client.
Instructs client to display and/or process a chat message/command when sent server to client. Instructs server to route and/or process a chat message/command when sent client to server.
- messageType
the type of the chat message (CMT)
- wideContents
whether the contents contains wide characters or not. This is required because Java/Scala have one String type with a charset of UTF-16. Therefore, there is no way at runtime to determine the charset of String.
- recipient
identifies the recipient of the message, such as in a tell (occasionally used as "sender" instead i.e. /note)
- contents
the textual contents of the message
- note
only used when the message is of note type
- final case class ChildObjectStateMessage(object_guid: PlanetSideGUID, pitch: Float, yaw: Float) extends PlanetSideGamePacket with Product with Serializable
Dispatched from a client when its user is controlling a secondary object whose state must be updated.
WhenChildObjectStateMessage
is being sent to the server, it replacesPlayerStateMessage
.Dispatched from a client when its user is controlling a secondary object whose state must be updated.
WhenChildObjectStateMessage
is being sent to the server, it replacesPlayerStateMessage
. The packet frequently gets hidden in aMultiPacket
, though it is not functionally essential to do that.
Note the lack of position data. The secondary object in question is updated in position through another means or is stationary. The only concern is the direction the object is facing. The angles are relative to the object's normal forward-facing and typically begin tracking at 0, 0 (forward-facing).- object_guid
the object being manipulated (controlled)
- pitch
the amount of pitch that affects orientation from forward facing (0)
- yaw
the amount of yaw that affects orientation from forward-facing (0)
- final case class CloudInfo(id: Int, unk1: Vector3, unk2: Vector3) extends Product with Serializable
Cloud data.
The remaining fields should be divided between a "location" and a "velocity" as per debug output.Cloud data.
The remaining fields should be divided between a "location" and a "velocity" as per debug output. The values are probably paired. The converted data, however, seems weird for the kind of information those fields would suggest.- id
the id of the cloud; zero-indexed counter (probably)
- unk1
na; the z-component is always
0.0f
- unk2
na; the z-component is always
0.0f
- sealed abstract class CollisionIs extends IntEnumEntry
- sealed trait ComplexStatistic extends AnyRef
na
- final case class ComponentDamageField(alarm_level: Long, damage: Long, unk: Boolean) extends Product with Serializable
The status of the component's changing condition, including the level of alert the player experiences when the change occurs.
The status of the component's changing condition, including the level of alert the player experiences when the change occurs.
- alarm_level
the klaxon sound effect associated with this damage
- damage
the amount of damage (encoded ...)
- unk
na; usually,
true
; knownfalse
states during shield generator offline and destruction conditions
- final case class ComponentDamageMessage(guid: PlanetSideGUID, component: SubsystemComponent, status: Option[ComponentDamageField]) extends PlanetSideGamePacket with Product with Serializable
Vehicles have aspects that are neither registered - do not necessarily represented unique entities of the vehicle - and are not statistical behaviors derived from the same level as the game files - modify vehicle stats but are not vehicle stats themselves.
Vehicles have aspects that are neither registered - do not necessarily represented unique entities of the vehicle - and are not statistical behaviors derived from the same level as the game files - modify vehicle stats but are not vehicle stats themselves. When these "components of the vehicle" are affected, however, such as when the vehicle has been jammed or when it has sustained damage, changes to the handling of the vehicle will occur through the said statistical mechanics.
- guid
the entity that owns this component, usually a vehicle
- component
the subsystem, or part of the subsystem, being affected
- status
specific about the component damage;
None
, when damage issues are cleared
- See also
VehicleSubsystem
VehicleSubsystemEntity
- final case class ConnectToWorldMessage(server: String, serverAddress: String, port: Int) extends PlanetSideGamePacket with Product with Serializable
Is sent in response to the PlanetSide client in order to give server information on the world server.
Is sent in response to the PlanetSide client in order to give server information on the world server.
- server
The name of the server to connect to
- serverAddress
The IP or hostname of the server to connect to
- port
The 16-bit port number to connect on
- final case class ConnectToWorldRequestMessage(server: String, token: String, majorVersion: Long, minorVersion: Long, revision: Long, buildDate: String, unk1: Int, unk2: Int) extends PlanetSideGamePacket with Product with Serializable
- final case class ContinentalLockUpdateMessage(continent_id: Int, empire: types.PlanetSideEmpire.Value) extends PlanetSideGamePacket with Product with Serializable
Create a dispatched game packet that instructs the client to update the user about continents that are conquered.
This generates the event message "The [empire] have captured [continent]." If the continent_guid is not a valid zone, no message is displayed.Create a dispatched game packet that instructs the client to update the user about continents that are conquered.
This generates the event message "The [empire] have captured [continent]." If the continent_guid is not a valid zone, no message is displayed. If empire is not a valid empire, or refers to the neutral or Black Ops forces, no message is displayed.- continent_id
identifies the zone (continent)
- empire
identifies the empire
- final case class CreateShortcutMessage(player_guid: PlanetSideGUID, slot: Int, shortcut: Option[Shortcut]) extends PlanetSideGamePacket with Product with Serializable
Facilitate a quick-use button for the hotbar.
The hotbar is the eight quick-use slots along the bottom center of the HUD.Facilitate a quick-use button for the hotbar.
The hotbar is the eight quick-use slots along the bottom center of the HUD. Each of these slots is the application of a medkit, or use of an implant, or repetition of a text macro. There are actually sixty-four of these slots, eight bound to the Function keys depending on which set is selected.
WhenaddShortcut
istrue
, the providedShortcut
will be defined and attached to the respective hotbar slot indicated byslot
. If it isfalse
, the givenslot
will be unbound. Nothing happens if theslot
selection is invalid.
This packet coordinates the shortcut both as an upstream and as a downstream packet, leaning heavily towards the latter. An interesting application is that, if the user does not already have a medkit or a medkit shortcut; but, if he places a medkit in his inventory, the shortcut will be automatically added to his hotbar. This, in turn, dispatches a packet informing the server. The prior functionality will rarely be appreciated, however, as players rarely never have their medkit shortcut unbound.- player_guid
the player
- slot
the hotbar slot number (one-indexed)
- shortcut
optional; details about the shortcut to be created
- See also
ChangeShortcutBankMessage
- final case class DamageFeedbackMessage(unk1: Int, unk2: Boolean, unk2a: Option[PlanetSideGUID], unk2b: Option[String], unk2c: Option[Int], unk3: Boolean, unk3a: Option[PlanetSideGUID], unk3b: Option[String], unk3c: Option[Int], unk3d: Option[Int], unk4: Int, unk5: Long, unk6: Int) extends PlanetSideGamePacket with Product with Serializable
na
na
- unk1
na
- unk2
if no global unique identifier (below), the alternate identification for the entity
- unk2a
the global unique identifier of the entity inflicting the damage
- unk2b
if no global unique identifier (above), the name of the entity inflicting the damage
- unk2c
if no global unique identifier (above), the object type of the entity inflicting the damage
- unk3
if no global unique identifier (below), the alternate identification for the entity
- unk3a
the global unique identifier of the entity absorbing the damage
- unk3b
if no global unique identifier (above), the name of the entity absorbing the damage
- unk3c
if no global unique identifier (above), the object type of the entity absorbing the damage
- unk3d
na
- unk4
an indicator for the target-specific vital statistic being affected
- unk5
the amount of damage
- unk6
na
- final case class DamageMessage(guid1: PlanetSideGUID, unk1: Int, guid2: PlanetSideGUID, unk2: Boolean) extends PlanetSideGamePacket with Product with Serializable
na
na
- guid1
na
- unk1
na
- guid2
na
- unk2
na
- final case class DamageWithPositionMessage(unk: Int, pos: Vector3) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the server to indicate a source of damage affecting the player.
Dispatched by the server to indicate a source of damage affecting the player. Unlike
HitHint
the damage source is defined by an actual coordinate location rather than a physical target. Setting the position to the world origin, however, can cause the damage tick mark to point towards the previous damaging entity in some situations.
The player will be shown a fading, outwards drifting, red tick mark. The location will indicate a general direction towards the source. If the optionGame/Show Damage Flash
is set, the player's screen will flash red briefly when a mark is displayed.- unk
the intensity of the damage tick marks
- pos
the position
- See also
HitHint
- final case class DataChallengeMessage(attribute: String, value: Long) extends PlanetSideGamePacket with Product with Serializable
Our packet captures contain no examples of
DataChallengeMessage
.Our packet captures contain no examples of
DataChallengeMessage
.- attribute
na
- value
na
- final case class DataChallengeMessageResp(attribute: String, value: Long) extends PlanetSideGamePacket with Product with Serializable
Our packet captures contain no examples of
DataChallengeMessageResp
.Our packet captures contain no examples of
DataChallengeMessageResp
.- attribute
na
- value
na
- final case class DeathStatistic(deaths: Long) extends Statistic with Product with Serializable
- deaths
how badly you suck, quantitatively analyzed
- final case class DelayedPathMountMsg(player_guid: PlanetSideGUID, vehicle_guid: PlanetSideGUID, u1: Int, u2: Boolean) extends PlanetSideGamePacket with Product with Serializable
na
na
- player_guid
na
- vehicle_guid
vehicle ?, turret ? Found a HART GUID for now. Need more search.
- u1
na - maybe a delay ?
- u2
na
- final case class DensityLevelUpdateMessage(zone_id: Int, building_id: Int, density: List[Int]) extends PlanetSideGamePacket with Product with Serializable
na
na
- zone_id
the continent
- building_id
the building
- density
na
- final case class DeployObjectMessage(object_guid: PlanetSideGUID, unk1: Long, pos: Vector3, orient: Vector3, unk2: Long) extends PlanetSideGamePacket with Product with Serializable
Dispatched from the client to request that an object be deployed.
Information in the packet mainly reports about the surface on which the object will be coplanar when/if placed.Dispatched from the client to request that an object be deployed.
Information in the packet mainly reports about the surface on which the object will be coplanar when/if placed. The server responds with aObjectDeployedMessage
packet with the results. If successful, that is followed by anObjectCreateMessage
packet and aDeployableObjectsInfoMessage
packet.- object_guid
the object
- unk1
na
- pos
the location where the object is to be deployed
- orient
the angle of orientation
- unk2
na
- final case class DeployRequestMessage(player_guid: PlanetSideGUID, vehicle_guid: PlanetSideGUID, deploy_state: types.DriveState.Value, unk2: Int, unk3: Boolean, pos: Vector3) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the client when the player attempts to deploy a vehicle.
Dispatched by the client when the player attempts to deploy a vehicle. Dispatched by the server to cause a specific vehicle to be deployed.
"Deployment" usually isn't enough by itself. It only changes the physical configuration of the vehicle. (It's an animation request/trigger?) Anything that can be "deployed" does so for a very specific reason, to perform a complex function. These functions are not immediately available. Attributes must be set properly for the transition between behaviors to occur properly. In addition, the recently-deployed vehicles will hang in a state of limbo if not configured properly. It will not even dispatch an un-deploy request upon command in this state.
This packet has nothing to do with ACE deployables.- player_guid
the player requesting the deployment
- vehicle_guid
the vehicle to be deployed
- deploy_state
either requests for a specific deployment state or assignment of the requested state
- unk2
na; usually 0
- unk3
na
- pos
the position where the object will deploy itself
- final case class DeployableInfo(object_guid: PlanetSideGUID, icon: DeployableIcon.Value, pos: Vector3, player_guid: PlanetSideGUID) extends Product with Serializable
The entry of a deployable item.
The entry of a deployable item.
- object_guid
the deployable item
- icon
the map element depicting the item
- pos
the position of the deployable in the world (and on the map)
- player_guid
the player who is the owner
- final case class DeployableObjectsInfoMessage(action: DeploymentAction.Value, deployables: List[DeployableInfo]) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the server to inform the client of a change in deployable items and that the map should be updated.
When this packet defines aBuild
action
, an icon of the deployable item is added to the avatar's map.Dispatched by the server to inform the client of a change in deployable items and that the map should be updated.
When this packet defines aBuild
action
, an icon of the deployable item is added to the avatar's map. The actual object referenced does not have to actually exist on the client for the map element to appear. The identity of the element is discerned from its icon rather than the actual object (if it exists). When this packet defines aDeconstruct
action
, the icon of the deployable item is removed from the avatar's map. (The map icon to be removed is located by searching for the matching UID. The item does not need to exist to remove its icon.)
All deployables have a map-icon-menu that allows for control of and some feedback about the item. At the very least, the item can be dismissed. The type of icon indicating the type of deployable item determines the map-icon-menu. Normally, the icon of a random (but friendly) deployable is gray and the menu is unresponsive. If theplayer_guid
matches the client's avatar, the icon is yellow and that marks that the avatar owns this item. The avatar is capable of accessing the item's map-icon-menu and manipulating the item from there. If the deployable item actually doesn't exist, feedback is disabled, e.g., Aegis Shield Generators lack upgrade information.- action
how the entries in the following
List
are affected- deployables
a
List
of information regarding deployable items
- final case class DestroyDisplayMessage(killer: String, killer_charId: Long, killer_empire: types.PlanetSideEmpire.Value, killer_in_vehicle: Boolean, unk: Int, method: Int, victim: String, victim_charId: Long, victim_empire: types.PlanetSideEmpire.Value, victim_in_vehicle: Boolean) extends PlanetSideGamePacket with Product with Serializable
Display a message in the event window that informs of a player death.
The message is composed of three parts:
1) killer information
2) method information
3) victim information
In the case of a player kill, the player's name will be attributed directly.Display a message in the event window that informs of a player death.
The message is composed of three parts:
1) killer information
2) method information
3) victim information
In the case of a player kill, the player's name will be attributed directly. In the case of an absentee kill, a description of the method of death will be attributed. In the case of a suicide, the player attributed is the player who was killed (message format displays only the victim).
The four bytes that follow each name seems to be important to the identification of the associated player. The same value will be seen in everyDestroyDisplayMessage
that includes that player, with respect to whether they are listed as the "killer" or as the "victim." This holds true for every entry within the same login session, at least. Blanking either of these values out does not change anything about the format of the event message. If the two ids match, the packet will interpreted as the "suicide" format, even if the names do not match. In the case of absentee kills where there is no killer listed, this field is zero'd.
When marked as being in a vehicle or a turret, the player's name will be enclosed within square brackets. The length of the player's name found at the start of the character string does not reflect whether or not there will be square brackets (fortunately). The color of the resulting icon is borrowed from the attributed killer's faction affiliation if it can be determined and the type of icon is the same as an object id. An unidentified method or a missing icon defaults to a skull and crossbones.- killer
the name of the player who did the killing
- killer_charId
same as CharacterInfoMessage
- killer_empire
the empire affiliation of the killer
- killer_in_vehicle
true, if the killer was in a vehicle at the time of the kill; false, otherwise
- unk
na; but does not like being set to 0
- method
modifies the icon in the message, related to the way the victim was killed
- victim
the name of the player who was killed
- victim_charId
same as CharacterInfoMessage
- victim_empire
the empire affiliation of the victim
- victim_in_vehicle
true, if the victim was in a vehicle when he was killed; false, otherwise
- final case class DestroyMessage(victim_guid: PlanetSideGUID, killer_guid: PlanetSideGUID, weapon_guid: PlanetSideGUID, position: Vector3) extends PlanetSideGamePacket with Product with Serializable
- sealed trait DiagramStroke extends AnyRef
A common ancestor of all the different "strokes" used to keep track of the data.
- final case class DisconnectMessage(msg: String, unk2: String, unk3: String) extends PlanetSideGamePacket with Product with Serializable
Dispatched to the client to force a disconnect.
The client's view of the game world will fade and be centered with a PlanetSide textbox with the given message.Dispatched to the client to force a disconnect.
The client's view of the game world will fade and be centered with a PlanetSide textbox with the given message. Using the button on the textbox will drop the current world session and return the player to the world select screen. Technically, they're already disconnected by the time the textbox is visible. Being disconnected like this has no client-based consequences on its own.
Exploration:
When do the other two messages appear, if at all?- msg
the displayed message
- unk2
na
- unk3
na
- final case class DismountBuildingMsg(player_guid: PlanetSideGUID, building_guid: PlanetSideGUID) extends PlanetSideGamePacket with Product with Serializable
Alert that the player is "dismounting" a building.
Paragraph in which "'dismounting' a building" is explained.Alert that the player is "dismounting" a building.
Paragraph in which "'dismounting' a building" is explained.- player_guid
the player
- building_guid
the building
- final case class DismountVehicleCargoMsg(player_guid: PlanetSideGUID, vehicle_guid: PlanetSideGUID, bailed: Boolean, requestedByPassenger: Boolean, kicked: Boolean) extends PlanetSideGamePacket with Product with Serializable
Request dismount of one vehicle (cargo) that is being ferried by another vehicle (carrier).
Request dismount of one vehicle (cargo) that is being ferried by another vehicle (carrier). The carrier has what is called a "cargo bay" which is where the cargo is being stored for ferrying.
- player_guid
GUID of the player that is rqeuesting dismount; when kicked by carrier driver, player_guid will be PlanetSideGUID(0); when exiting of the cargo vehicle driver's own accord, player_guid will be the cargo vehicle driver
- vehicle_guid
GUID of the vehicle that is requesting dismount (cargo)
- bailed
if the cargo vehicle bailed out of the cargo vehicle
- requestedByPassenger
if a passenger of the cargo vehicle requests dismount
- kicked
if the cargo vehicle was kicked by the cargo vehicle pilot
- final case class DismountVehicleMsg(player_guid: PlanetSideGUID, bailType: types.BailType.Value, wasKickedByDriver: Boolean) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the client when the player wishes to get out of a vehicle.
Dispatched by the client when the player wishes to get out of a vehicle.
- player_guid
the player
- bailType
The dismount action e.g. normal dismount, kicked by owner, bailed
- wasKickedByDriver
Seems to be true if a passenger was manually kicked by the vehicle owner
- final case class DisplayedAwardMessage(player_guid: PlanetSideGUID, ribbon: types.MeritCommendation.Value, bar: RibbonBarSlot.Value) extends PlanetSideGamePacket with Product with Serializable
Dispatched to configure a player's merit commendation ribbons.
Normally, this packet is dispatched by the client when managing merit commendations through the "Character Info/Achievements" tab.Dispatched to configure a player's merit commendation ribbons.
Normally, this packet is dispatched by the client when managing merit commendations through the "Character Info/Achievements" tab. On Gemini Live, this packet was also always dispatched once by the server during character login. It set the term of service ribbon explicitly. Generally, this was unnecessary, as the encoded character data maintains information about displayed ribbons. This behavior was probably a routine that ensured that correct yearly progression was tracked if the player earned it while offline. It never set any of the other ribbon slot positions during login.
A specific ribbon may only be set once to one slot. The last set slot is considered the valid position to which that ribbon will be placed/moved.- player_guid
the player
- ribbon
the award to be displayed
- bar
any of the four positions where the award ribbon is to be displayed
- See also
RibbonBars
MeritCommendation
- final case class DrawString(x: Float, y: Float, color: Int, channel: Int, message: String) extends DiagramStroke with Product with Serializable
Draw a string message on the tactical map.
Draw a string message on the tactical map. String messages have their own color designation and will not inherit line properties.
- x
the x-coordinate marking the bottom center of this message's text
- y
the y-coordinate marking the bottom center of this message's text
- color
the color of the message; 0 is gray (default); 1 is red; 2 is green; 3 is blue
- channel
the available "slots" in which to display messages on the map; a maximum of 16 channels/messages (0-15) are available per player; no two messages may inhabit the same channel
- message
the text to display
- final case class DropItemMessage(item_guid: PlanetSideGUID) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the client when the player's intent is to put an item down on the ground.
When a player drops an item, it normally appears right under their feet (where they are standing).Dispatched by the client when the player's intent is to put an item down on the ground.
When a player drops an item, it normally appears right under their feet (where they are standing). This part of the ground is chosen because it should be the stable. Also, those coordinates belonging to the player are the most accessible. This process, however, is not automatic. The server determines the exact position where the item gets placed.
This packet is complemented by anObjectDetachMessage
packet from the server that performs the actual "dropping."- item_guid
the item to be dropped
- sealed abstract class DroppodError extends IntEnumEntry
The types of errors that can be reported when attempting to droppod into a zone.
All codes show the preceding text in the events chat window.The types of errors that can be reported when attempting to droppod into a zone.
All codes show the preceding text in the events chat window. The typo in the message fromBlockedBySOI
can not be resolved by populating any of the greater packet's fields.ZoneFullWarpQueue
utilizes the additional packet fields to establish the warp queue prompt with the warp queue and the player's position in that queue. The zone to which the player desires transportation is defined elsewhere in the greater packet. - final case class DroppodFreefallingMessage(guid: PlanetSideGUID, pos: Vector3, vel: Vector3, pos2: Vector3, orientation1: Vector3, orientation2: Vector3) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the server to trigger a droppod's traditional behavior of plummeting from lower orbit like a rock and slowing to a gentle land, breaking apart like flower petals to introduce a soldier to the battlefield.
Only works on droppod-type vehicles.Dispatched by the server to trigger a droppod's traditional behavior of plummeting from lower orbit like a rock and slowing to a gentle land, breaking apart like flower petals to introduce a soldier to the battlefield.
Only works on droppod-type vehicles. Only works if a client avatar is mounted in the vehicle. The furthest the vehicle will fall is determined by that avatar player's interaction with the ground. The camera is maneuvered in three ways - where it starts, where it tracks the falling vehicle, where it zooms in upon landing. Only the "where it starts" portion of the camera is slightly manipulable.- guid
the global unique identifier of the droppod
- pos
the position of the droppod
- vel
how quickly the droppod is moving
- pos2
suggestion for positioning external viewpoint while observing the droppod descending; the most common offset from the model position was
Vector3(-20, 1.156f, -50)
- orientation1
na; the y-component is usually 70.3125f
- orientation2
na
- final case class DroppodLaunchInfo(guid: PlanetSideGUID, zone_number: Int, xypos: Vector3) extends Product with Serializable
Information related to this droppod event.
Information related to this droppod event.
- guid
the player using the droppod
- zone_number
the zone to which the player desires transportation
- xypos
where in the zone (relative to the ground) the player will be placed
- See also
DroppodLaunchRequestMessage
DroppodLaunchResponseMessage
- final case class DroppodLaunchRequestMessage(info: DroppodLaunchInfo, unk: Int) extends PlanetSideGamePacket with Product with Serializable
Dispatched from the client to indicate the player wishes to use an orbital droppod to rapidly deploy into a zone at a pre-approved position.
Follows after an instance of "player stasis" where they are permitted to make this sort of selection by referencing a zone from the interstellar deployment map.Dispatched from the client to indicate the player wishes to use an orbital droppod to rapidly deploy into a zone at a pre-approved position.
Follows after an instance of "player stasis" where they are permitted to make this sort of selection by referencing a zone from the interstellar deployment map. This is the conclusion of utilizing the high altitude rapid transport (HART) system though does not need to be limited only to prior use of the orbital shuttle.- info
information related to this droppod event
- unk
na; consistently 3
- See also
PlayerStasisMessage
- final case class DroppodLaunchResponseMessage(error_code: DroppodError, launch_info: DroppodLaunchInfo, queue_info: Option[WarpQueuePrompt]) extends PlanetSideGamePacket with Product with Serializable
Dispatched from the client to indicate the player wished to use an orbital droppod but the player will be denied that request for a specific reason.
Dispatched from the client to indicate the player wished to use an orbital droppod but the player will be denied that request for a specific reason. The reason manifests as text appended to the event chat window. Occasionally, a supplemental window will open with additional information about a delayed action (warp queue).
- error_code
the error reporting why the zoning through droppod use failed
- launch_info
information related to this droppod event
- queue_info
if the error invokes the warp queue, the current information about the state of the queue
- Exceptions thrown
AssertionError
if the error code requires additional fields- See also
DroppodLaunchInfo
- final case class DrowningTarget(guid: PlanetSideGUID, progress: Float, condition: OxygenState) extends Product with Serializable
Infomation about the progress bar displayed for a certain target's drowning condition.
Infomation about the progress bar displayed for a certain target's drowning condition.
- guid
the target
- progress
the remaining countdown
- condition
in what state of drowning the target is progressing
- final case class EmoteMsg(avatar_guid: PlanetSideGUID, emote: types.EmoteType.Value) extends PlanetSideGamePacket with Product with Serializable
- final case class ExperienceAddedMessage(exp: Int, unk: Boolean = true) extends PlanetSideGamePacket with Product with Serializable
Displays a message about being awarded experience points in the events chat.
This packet does not actually award any experience points.Displays a message about being awarded experience points in the events chat.
This packet does not actually award any experience points. It merely generates the message:
"You have been awarded x experience points."
... wherex
is the number of experience points that have been promised. If theBoolean
parameter istrue
,x
will be equal to the number provided followed by the word "Command." If theBoolean
parameter isfalse
,x
will be represented as an obvious blank space character. (Yes, it prints to the events chat like that.)- exp
the number of (Command) experience points earned
- unk
defaults to
true
for effect; iffalse
, the number of experience points in the message will be blanked
- final case class FacilityBenefitShieldChargeRequestMessage(vehicle_guid: PlanetSideGUID) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the client when driving a vehicle in the sphere of influence of an allied base that is an amp station facility or that possesses the lattice-connected benefit of an amp station.
Dispatched by the client when driving a vehicle in the sphere of influence of an allied base that is an amp station facility or that possesses the lattice-connected benefit of an amp station. The vehicle that is being driven will not have perfect fully-charged shields at the time.
- vehicle_guid
the vehicle whose shield is being charged
- final case class FavoritesMessage(list: types.LoadoutType.Value, player_guid: PlanetSideGUID, line: Int, label: String, armor_type: Option[Int]) extends PlanetSideGamePacket with Product with Serializable
Load the designator for an entry in the player's favorites list.
This entry defines a user-defined loadout label that appears on a "Favorites" tab list and can be selected.Load the designator for an entry in the player's favorites list.
This entry defines a user-defined loadout label that appears on a "Favorites" tab list and can be selected. A subsequent server request -ItemTransactionMessage
- must be made to retrieve the said loadout contents. Multiple separated favorites lists are present in the game. All entries are prepended with their destination list which indicates how from how that list is viewable. Different lists also have different numbers of available lines to store loadout entries.
Infantry equipment favorites are appended with a code for the type of exo-suit that they will load on a player. This does not match the same two field numbering system as inArmorChangedMessage
packets.
Armors:
1 - Agile
). Which exo-suit is associated with which index?
2 - Reinforced
4 - AA MAX
5 - AI MAX
6 - AV MAX
Exploration:
There are three unaccounted exo-suit indices - 0, 3, and 7; and, there are two specific kinds of exo-suit that are not defined - Infiltration and Standard. It is possible that one of the indices also defines the generic MAX (see- list
the destination list
- player_guid
the player
- line
the zero-indexed line number of this entry in its list
- label
the identifier for this entry
- armor_type
the type of exo-suit, if an Infantry loadout; the type of battleframe, if a Battleframe loadout;
None
, if just a Vehicle loadout
- final case class FavoritesRequest(player_guid: PlanetSideGUID, list: types.LoadoutType.Value, action: FavoritesAction.Value, line: Int, label: Option[String]) extends PlanetSideGamePacket with Product with Serializable
na
na
- player_guid
the player
- list
na
- action
the behavior of this packet
- line
what line of the applicable loadout ("Saved Favorites") list is modified
- label
applicable when a load out is being saved; this is the string that will be displayed in the list of loadouts on that line
- final case class FireHintMessage(weapon_guid: PlanetSideGUID, pos: Vector3, u1: Int, u2: Int, u3: Int, u4: Int, u5: Option[Vector3] = None) extends PlanetSideGamePacket with Product with Serializable
not sure for u1 / u2 / u3, maybe need a real brain ...
not sure for u1 / u2 / u3, maybe need a real brain ...
- weapon_guid
na
- pos
na; pos of what ?!
- u1
na
- u2
na
- u3
na
- u4
na
- u5
na; vel of what ?!
- final case class FlagInfo(u1: Int, owner_map_id: Int, target_map_id: Int, x: Float, y: Float, hack_time_remaining: Long, is_monolith_unit: Boolean) extends Product with Serializable
- u1
No effect. Faction ID perhaps?
- owner_map_id
The mapID of the base the LLU belongs to
- target_map_id
The mapID of the base the LLU must be delivered to
- x
X map position
- y
Y map position
- hack_time_remaining
Time remaining on hack - will override BuildingInfoUpdateMessage when displaying hack timer on map base details
- is_monolith_unit
Changes the icon on the map to the monolith unit icon
- final case class FrameVehicleStateMessage(vehicle_guid: PlanetSideGUID, unk1: Int, pos: Vector3, orient: Vector3, vel: Option[Vector3], unk2: Boolean, unk3: Int, unk4: Int, is_crouched: Boolean, is_airborne: Boolean, ascending_flight: Boolean, flight_time_remaining: Int, unk9: Long, unkA: Long) extends PlanetSideGamePacket with Product with Serializable
Dispatched to report and update the operational condition of a given battle frame robotics vehicle.
Dispatched to report and update the operational condition of a given battle frame robotics vehicle.
- vehicle_guid
the battleframe robotic unit
- unk1
na
- pos
the xyz-coordinate location in the world
- orient
the orientation of the vehicle
- vel
optional movement data
- unk2
na
- unk3
na
- unk4
na
- is_crouched
the battleframe unit is crouched
- is_airborne
the battleframe unit is either flying or falling (after flying)
- ascending_flight
is the battleframe unit ascending; normally reports
ascending_flight
before properly reporting asis_airborne
; continues to reportascending_flight
until begins falling- flight_time_remaining
a measure of how much longer the battleframe unit, if it can fly, can fly; reported as a 0-10 value, counting down from 10 when airborne and provided vertical thrust
- unk9
na
- unkA
na
- See also
PlacementData
- final case class Friend(name: String, online: Boolean = false) extends Product with Serializable
An entry in the list of players known to and tracked by this player.
An entry in the list of players known to and tracked by this player. They're called "friends" even though they can be used for a list of ignored players as well.
- name
the name of the player
- online
the player's current state of activity; defaults to
false
, or offline
- final case class FriendsRequest(action: types.MemberAction.Value, friend: String) extends PlanetSideGamePacket with Product with Serializable
Manage the lists of other players whose names are retained by the given player.
Players can be remembered by their names and added to a list of remembered names - the "friends list." They can also be dropped from the list.Manage the lists of other players whose names are retained by the given player.
Players can be remembered by their names and added to a list of remembered names - the "friends list." They can also be dropped from the list. A list of "ignored" player names can also be retained. Ignored players will have their comments stifled in the given player's chat window. No name will be appended or removed from any list until the response to this packet is received.
Actions that involve the "remove" functionality will locate the entered name in the local list before dispatching this packet. A complaint will be logged to the event window if the name is not found.- action
the purpose of this packet
- friend
the player name that was entered; blank in certain situations
- final case class FriendsResponse(action: types.MemberAction.Value, unk1: Int, first_entry: Boolean, last_entry: Boolean, friends: List[Friend]) extends PlanetSideGamePacket with Product with Serializable
Manage the lists of other players whose names are retained by the given player.
Friends can be remembered and their current playing status can be reported.Manage the lists of other players whose names are retained by the given player.
Friends can be remembered and their current playing status can be reported. Ignored players will have their comments stifled in the given player's chat window. This does not handle outfit member lists.- action
the purpose of the entry(s) in this packet
- unk1
na; always 0?
- first_entry
this is the first packet for this action
- last_entry
this is the last packet for this action
- friends
a list of
Friend
s
- sealed abstract class GenericAction extends IntEnumEntry
- final case class GenericActionMessage(action: GenericAction) extends PlanetSideGamePacket with Product with Serializable
Reports that something has happened, or makes something happen.
Reports that something has happened, or makes something happen.
- action
what this packet does
- final case class GenericCollisionMsg(collision_type: CollisionIs, player: PlanetSideGUID, player_health: Int, player_pos: Vector3, player_velocity: Vector3, target: PlanetSideGUID, target_health: Int, target_pos: Vector3, target_velocity: Vector3, unk1: Long, unk2: Long, unk3: Long) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the client when the player has encountered a physical interaction that would cause damage.
Collision information reports about two subjects who were involved in an altercation.Dispatched by the client when the player has encountered a physical interaction that would cause damage.
Collision information reports about two subjects who were involved in an altercation. The first is theplayer
, that is, the client's avatar. The second is thetarget
with respect to theplayer
- whatever the avatar ran into, or whatever ran into the avatar. In the case of isolated forms of collision such as fall damage thetarget
fields are blank or zero'd.- collision_type
a brief hint at the sort of interaction
- player
the player or player-controlled vehicle
- player_health
the player's health
- player_pos
the player's world coordinates
- player_velocity
the player's velocity
- target
the other party in the collision
- target_health
the target's health
- target_pos
the target's world coordinates
- target_velocity
the target's velocity
- unk1
na
- unk2
na
- unk3
na
- final case class GenericObjectActionAtPositionMessage(object_guid: PlanetSideGUID, code: Int, pos: Vector3) extends PlanetSideGamePacket with Product with Serializable
na
- final case class GenericObjectActionMessage(object_guid: PlanetSideGUID, code: Int) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the server to enact an effect on some game object.
Dispatched by the server to enact an effect on some game object. (Write more some other time.)
- object_guid
the target object
- code
the action code (0-63)
6 - Deconstructs player
7 - Start imprinting process (progress bar + character animation)
8 - Finish imprinting?
9 - Cloak
10 - Uncloak
11 - Deploy capital base shield pole with animation and broadcasts "The capitol force dome at X has been activated"
12 - Stow capital base shield pole with animation and broadcasts "The capitol force dome at X has been deactivated"
13 - Deploy capital base shield pole (instantly, unless still in the middle of the stow animation)
14 - Changes capture console to say "Facility hacked by the [Faction] LLU has been spawned." when looked at
15 - Displays "This facility's generator is under attack!"
16 - Displays "Generator has Overloaded! Evacuate Generator Room Immediately!"
17 - Displays "This facility's generator is back on line"
19 - Cause mines to explode
20 - Hit flinch? (orig, 82->80)
21 - Reset build cooldown from using an ACE
22 - ???? (Has been seen on vehicle pad objects, possibly some sort of reset flag after base faction flip / hack clear?)
23 - Plays vehicle pad animation moving downwards
24 - Makes the vehicle bounce slightly. Have seen this in packet captures after taking a vehicle through a warpgate
25 - for observed driven BFR's, model resets animation following GOAM90?
27 - Activates the router internal telepad for linking
28 - Activates the router internal telepad for linking
29 - Activates the telepad deployable (also used on the router's internal telepad)
30 - Activates the telepad deployable (also used on the router's internal telepad)
31 - Animation during router teleportation (source)
32 - Animation during router teleportation (destination)
34 - Time until item can be used ?????
38 - for BFR's, enable a disabled arm weapon
39 - for BFR's, disable an enabled arm weapon
44 - for BFR's, animates the energy shield
45 - for BFR's, energy shield dissipates
46 - for BFR's, causes an explosions on the machine's midsection
48 - for BFR's, Control Interface unstable messages
49 - for BFR's, Control Interface malfunction messages
50 - For aircraft - client shows "The bailing mechanism failed! To fix the mechanism, land and repair the vehicle!"
53 - Put down an FDU
56 - Sets vehicle or player to be black ops
57 - Reverts player from black ops
What are these values?
90? - for observed driven BFR's, model pitches up slightly and stops idle animation
29? - ??? (response to GOAM55)
55? - ??? (client responds with GOAM29)
- See also
GenericObjectActionEnum
- final case class GenericObjectStateMsg(object_guid: PlanetSideGUID, state: Long) extends PlanetSideGamePacket with Product with Serializable
- object_guid
the target object
- state
the state code 16 - open door 17 - close door
- final case class HackMessage(unk1: Int, target_guid: PlanetSideGUID, player_guid: PlanetSideGUID, progress: Int, unk5: Long, hack_state: HackState.Value, unk7: Long) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the server to control the progress of hacking.
Dispatched by the server to control the progress of hacking. While "hacking" is typically performed against enemy targets, some actions that involve ally on ally hacking can occur. In this sense, hacking can be consider change progress.
In general, the act of hacking is maintained by the server but the conclusion is managed by the client. Hacking typically locks the player into a cancellable firing animation and works as all-or-nothing. The progress bar window is displayed and updated each tick by the server; but, the client can cancel it on its own. When hacking is complete as indicated by the appropriateHackState
, the client performs the intended action upon the target. Facility amenities will temporarily ignore IFF requirements; vehicles will permanently transfer control over to the hack-starter's empire; facility turret weapons will temporarily convert to their anti-vehicle or anti-aircraft configurations; facilities will be compromised and begin the long process of converting to the hack-starter's empire; and, so forth.
As mentioned, one of the unexpected uses of this message will assist the conversion of allied facility turreted weapons to their upgraded armaments.- unk1
na; 0 commonly; 2 when performing (phalanx) upgrades; 3 for building objects during login phase; hack type? possibly player hacking level 0-3?
- target_guid
the target of the hack
- player_guid
the player
- progress
the amount of progress visible; visible range is 0 - 100
- unk5
na; often a large number; doesn't seem to be
char_id
?- hack_state
hack state
- unk7
na; 5 - boost pain field at matrixing terminal? usually, 8?
- final case class HitHint(source_guid: PlanetSideGUID, player_guid: PlanetSideGUID) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the server to indicate a target or source of damage affecting the player.
When a source is provided, and within render distance, the player will be shown a fading, outwards drifting, red tick mark.Dispatched by the server to indicate a target or source of damage affecting the player.
When a source is provided, and within render distance, the player will be shown a fading, outwards drifting, red tick mark. The location and movement of the mark will indicate a general direction towards the source. If the optionGame/Show Damage Flash
is set, the player's screen will flash red briefly when a mark is displayed.
For while some mark is being displayed, the player will also make a grunt of pain.- source_guid
the source of implied damage
- player_guid
the player
- final case class HitInfo(shot_origin: Vector3, hit_pos: Vector3, hitobject_guid: Option[PlanetSideGUID]) extends Product with Serializable
- final case class HitMessage(seq_time: Int, projectile_guid: PlanetSideGUID, unk1: Int, hit_info: Option[HitInfo], unk2: Boolean, unk3: Boolean, unk4: Option[Int]) extends PlanetSideGamePacket with Product with Serializable
- final case class HotSpotInfo(x: Float, y: Float, scale: Float) extends Product with Serializable
Information for positioning a hotspot on the continental map.
The origin point is the lowest left corner of the map grid.Information for positioning a hotspot on the continental map.
The origin point is the lowest left corner of the map grid. The coordinates of the hotspot do necessarily match up to the map's internal coordinate system - what you learn using the/loc
command. Instead, all maps use a 0 - 8192 coordinate overlay.- x
the x-coord of the center of the hotspot
- y
the y-coord of the center of the hotspot
- scale
how big the hotspot sunburst icon appears
- final case class HotSpotUpdateMessage(zone_index: Int, priority: Int, spots: List[HotSpotInfo]) extends PlanetSideGamePacket with Product with Serializable
A list of data for creating hotspots on a continental map.
A list of data for creating hotspots on a continental map. Hotspots indicate player activity, almost always some form of combat or aggressive encounter.
The hotspot system is an all-or-nothing affair. The received packet indicates the hotspots to display and the map will display only those hotspots. Inversely, if the received packet indicates no hotspots, the map will display no hotspots at all. To clear away only some hotspots but retains others, a continental list would have to be pruned selectively for the client.
Exploration:
What does (zone) priority entail?- zone_index
the zone
- priority
na
- spots
a List of HotSpotInfo
- final case class InitStatistic(category: StatisticalCategory, unk: StatisticalElement, fields: List[Long]) extends Statistic with ComplexStatistic with Product with Serializable
- category
na
- unk
na
- fields
four pairs of values that add together to produce the first columns on the statistics spreadsheet; organized as TR, NC, VS, BO (PS)
- sealed case class IntermediateStatistic(category: StatisticalCategory, unk: StatisticalElement, fields: List[Long]) extends ComplexStatistic with Product with Serializable
na
- final case class InvalidTerrainMessage(player_guid: PlanetSideGUID, vehicle_guid: PlanetSideGUID, proximity_alert: TerrainCondition.Value, pos: Vector3) extends PlanetSideGamePacket with Product with Serializable
na
na
- player_guid
the player who is driving the vehicle
- vehicle_guid
the vehicle
- proximity_alert
whether this position is invalid;
true
, for the nearby terrain being unsuitable;false
, when the vehicle has been moved back to a safe distance (place)- pos
the vehicle's current position in the game world
- final case class InventoryStateMessage(object_guid: PlanetSideGUID, unk: Int, container_guid: PlanetSideGUID, value: Long) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the server to update the value associated with an object in a specific container object.
The object indicated byobject_guid
must be associated with the inventory (container_guid
) at the time.Dispatched by the server to update the value associated with an object in a specific container object.
The object indicated byobject_guid
must be associated with the inventory (container_guid
) at the time. A common use for this packet is to update weapon data when gaining control over that weapon. For example, before boarding any kind of turret for the first time, it's ammunition component will have exactly one shot. This shot was established when the turret was first created. This information would be displayed in the holster icon across the bottom of the GUI while it is mounted. Furthermore, the mounted player will only fire the turret exactly one time. This packet can provide the turret with its correct and current amount of ammunition before the player mounts it.- object_guid
the object being affected
- unk
na; usually 0
- container_guid
the object in which
object_guid
is contained- value
an amount with which to update
object_guid
- final case class ItemTransactionMessage(terminal_guid: PlanetSideGUID, transaction_type: types.TransactionType.Value, item_page: Int, item_name: String, unk1: Int, item_guid: PlanetSideGUID) extends PlanetSideGamePacket with Product with Serializable
- final case class ItemTransactionResultMessage(terminal_guid: PlanetSideGUID, transaction_type: types.TransactionType.Value, success: Boolean, error: Int = 0) extends PlanetSideGamePacket with Product with Serializable
Dispatch to the client in response to an
ItemRequestMessage
, roughly after the request has been fulfilled.Dispatch to the client in response to an
ItemRequestMessage
, roughly after the request has been fulfilled. This TCP-like "after" behavior is typically supported by pushing this packet at the end of theMultiPacket
that fulfills the request.- terminal_guid
the terminal used
- transaction_type
the type of transaction
- success
whether the transaction was a success
- error
an error code, if applicable; no error by default
- final case class KeepAliveMessage(code: Int = 0) extends PlanetSideGamePacket with Product with Serializable
- final case class LashMessage(seq_time: Int, player: PlanetSideGUID, victim: PlanetSideGUID, bullet: PlanetSideGUID, hit_pos: Vector3, unk1: Int) extends PlanetSideGamePacket with Product with Serializable
na
na
- seq_time
na
- player
na
- victim
na
- bullet
na
- hit_pos
na
- unk1
na
- final case class LinkOverride(unk1: Int, unk2: Int, unk3: Int, unk4: Int) extends Product with Serializable
- final case class LoadMapMessage(map_name: String, zone_id: String, unk1: Int, unk2: Long, weapons_unlocked: Boolean, checksum: Long) extends PlanetSideGamePacket with Product with Serializable
Dispatched from server to client to instigate a zone change.
Dispatched from server to client to instigate a zone change. The client should respond with a
BeginZoningMessage
packet.map_name
andzone_id
should correspond or the final product will be disorienting, even if it works.- map_name
designation of the physical zone; determines the (deployment) map screen
- zone_id
designation of the entirety of the zone; determines the loading screen
- unk1
na; seems to match the initial projectile index (that can be assigned)
- unk2
na; seems to match the total number of unique projectile indices (that can be assigned) (before looping)
- weapons_unlocked
live fire is permissible; restricts all actions instigated by that key bind
- checksum
challenge number so that client can confirm server is using the correct version of this zone
- final case class LoginMessage(majorVersion: Long, minorVersion: Long, buildDate: String, username: String, password: Option[String], token: Option[String], revision: Long) extends PlanetSideGamePacket with Product with Serializable
- final case class LoginRespMessage(token: String, error: Type, stationError: Type, subscriptionStatus: Type, unkUIRelated: Long, username: String, privilege: Long) extends PlanetSideGamePacket with Product with Serializable
This message is sent from the server to the client upon reception of a LoginMessage.
This message is sent from the server to the client upon reception of a LoginMessage.
The result of the login is contained in this message. When a login is successful, a session token is returned to the client which then forwards this to the World server it chooses to connect to.
In terms of failed logins, the PS client favors errors in this order
1. LoginError 2. StationError 3. StationSubscriptionStatus
Don't try and set more than one error at the same time. Just provide a single error message to be displayed.
- token
A 'token' which acts exactly like a session cookie in a browser. Allows logins to not use a password
- error
A general login error message
- stationError
A PlanetSide Sony Online Entertainment (SOE) station result
- subscriptionStatus
A response detailing the current subscription type
- unkUIRelated
An unknown possible bitfield that controls some game variables (possibly expansions?)
- username
The login username
- privilege
If set above 10000, then the user has access to GM commands. Not sure of other values.
- final case class LongRangeProjectileInfoMessage(guid: PlanetSideGUID, pos: Vector3, vel: Option[Vector3]) extends PlanetSideGamePacket with Product with Serializable
- final case class LootItemMessage(item_guid: PlanetSideGUID, destination_guid: PlanetSideGUID) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the client when the user right-clicks on a piece of
Equipment
in an inventory that is not his own backpack in an attempt to quick-swap thatEquipment
into his inventory.Dispatched by the client when the user right-clicks on a piece of
Equipment
in an inventory that is not his own backpack in an attempt to quick-swap thatEquipment
into his inventory. Examples of this "other" inventory include: corpses, lockers, and vehicle trunks.
Compared toMoveItemMessage
, the source location whereitem
currently resides is not provided. Additionally, while the over-all destination is provided, the specific insertion point of the destination is not.- item_guid
the item being taken
- destination_guid
where the item will be placed; generally, the player is taking the item
- See also
MoveItemMessage
- final case class MailMessage(sender: String, subject: String, message: String) extends PlanetSideGamePacket with Product with Serializable
Dispatched from the server, sending a "priority message" to the given client's avatar.
Dispatched from the server, sending a "priority message" to the given client's avatar. The messaging inbox is generally accessible through the use of
alt
+i
. It is also made accessible through use of an icon in the lower right corner when there is an outstanding message.
Exploration:
How does the PlanetSide Classic mail system work? At the moment, it only seems possible to receive and read mail from the server.- sender
the name of the player who sent the mail
- subject
the subject
- message
the message
- final case class MountVehicleCargoMsg(player_guid: PlanetSideGUID, vehicle_guid: PlanetSideGUID, target_vehicle: PlanetSideGUID, unk4: Int) extends PlanetSideGamePacket with Product with Serializable
- player_guid
The guid of the player sending the request to board another vehicle with a cargo vehicle
- vehicle_guid
The guid of the vehicle for the requesting player
- target_vehicle
The cargo vehicle guid e.g. Galaxy / Lodestar
- unk4
na
- final case class MountVehicleMsg(player_guid: PlanetSideGUID, vehicle_guid: PlanetSideGUID, entry_point: Int) extends PlanetSideGamePacket with Product with Serializable
Alert that the player wishes to board a vehicle at a specific entry point.
The client will only dispatch this packet when it feels confident that the player can get into a vehicle.Alert that the player wishes to board a vehicle at a specific entry point.
The client will only dispatch this packet when it feels confident that the player can get into a vehicle. It makes its own check whether or not to display that "enter vehicle here" icon on the ground. This is called an "entry point." Entry points and mount numbers are not required as one-to-one; multiple entry points can lead to the same mount, such as the driver mount of an ANT.
The player is not allowed to board anything until the server responds in affirmation.- player_guid
the player
- vehicle_guid
the vehicle
- entry_point
the entry index that maps to a mount index, specific to the selected vehicle
- final case class MoveItemMessage(itemGuid: PlanetSideGUID, avatarGuid1: PlanetSideGUID, avatarGuid2: PlanetSideGUID, dest: Int, quantity: Int) extends PlanetSideGamePacket with Product with Serializable
- final case class NoTrade(value: Int) extends Trade with Product with Serializable
- final case class ObjectAttachMessage(parent_guid: PlanetSideGUID, child_guid: PlanetSideGUID, slot: Int) extends PlanetSideGamePacket with Product with Serializable
Change the location of an object - the child - within the inventory system for another object - the parent.
Change the location of an object - the child - within the inventory system for another object - the parent. (Where the child object was before it was moved is not specified or important.)
The data portion of this packet defines a parent object, a child object to-be, and a destination. After the packet is delivered, the child object will be expected to be a possession of the parent object in the codified inventory location. The "inventory" of the parent object is a generalization of that object's containment or installation positions. The inventory is has different referral words for these positions depending on the target parent; but, it is generally "seats" or "mounting points" for vehicles; and, it is generally "holsters" or "grid inventory positions" for players. For players, "holsters" and "grid inventory positions" have 1:1 numerical mapping. For vehicles, however, "seats" and "mounting points" are not consistently mapped and are much more context sensitive. For that reason, this installation position will hitherto be referred to as a generic "slot."
Both the client and the server can send and receive this packet. Its interplay with other packets simulate a lazy TCP-like approach to object manipulation. If the client sends this packet, it will generally have already done what it was going to do. If the server sends this packet, the client will have been waiting on confirmation of an action it previously requested.
Player inventory slots:
0x80
- 0 - pistol holster 1
0x81
- 1 - pistol holster 2
0x82
- 2 - rifle holster 1
0x83
- 3 - rifle holster 2
0x84
- 4 - knife holster
0x86
- 6 - grid (1,1)
0x00FA
- 250 - is a special dest/extra code that "attaches the item to the player's cursor"0x00FC
- 252 - special item slot e.g. LLU (Possibly also cavern modules)- parent_guid
the parent object
- child_guid
the child object
- slot
a codified location within the parent object's inventory; 8u (0 - 127 or
0x80 - 0xFF
) or 16u (128 - 32767 or0x0080 - 0x7FFF
)
- final case class ObjectCreateDetailedMessage(streamLength: Long, objectClass: Int, guid: PlanetSideGUID, parentInfo: Option[ObjectCreateMessageParent], data: ConstructorData) extends PlanetSideGamePacket with Product with Serializable
Communicate with the client that a certain object with certain properties is to be created.
Communicate with the client that a certain object with certain properties is to be created. In general,
ObjectCreateMessage
and its counterpartObjectCreateDetailedMessage
should look similar.
In normal packet data order, the parent object is specified before the actual object is specified. This is most likely a method of early correction. "Does this parent object exist?" "Is this new object something that can be attached to this parent?" "Does the parent have the appropriate attachment slot?" There is no fail-safe method for any of these circumstances being false, however, and the object will simply not be created. In instance where the parent data does not exist, the object-specific data is immediately encountered.
The object's GUID is assigned by the server. The clients are required to adhere to this new GUID referring to the object. There is no fail-safe for a conflict between what the server thinks is a new GUID and what any client thinks is an already-assigned GUID. Likewise, there is no fail-safe between a client failing or refusing to create an object and the server thinking an object has been created. (The GM-level command/sync
tests for objects that "do not match" between the server and the client. It's implementation and scope are undefined.)
Knowing the object's type is essential for parsing the specific information passed by thedata
parameter. If the object does not have encoding information or is unknown, it will not translate between byte data and a game object.- streamLength
the total length of the data that composes this packet in bits, excluding the opcode and end padding
- objectClass
the code for the type of object being constructed
- guid
the GUID this object will be assigned
- parentInfo
if defined, the relationship between this object and another object (its parent)
- data
the data used to construct this type of object; on decoding, set to
None
if the process failed
- final case class ObjectCreateMessage(streamLength: Long, objectClass: Int, guid: PlanetSideGUID, parentInfo: Option[ObjectCreateMessageParent], data: ConstructorData) extends PlanetSideGamePacket with Product with Serializable
Communicate with the client that a certain object with certain properties is to be created.
Communicate with the client that a certain object with certain properties is to be created. In general,
ObjectCreateMessage
and its counterpartObjectCreateDetailedMessage
should look similar.
ObjectCreateMessage
is capable of creating every non-environmental object in the game through the use of encoding patterns. The objects produced by this packet generally do not always fully express all the complexities of the object class. With respect to a client's avatar, all of the items in his inventory are given thorough detail so that the client can account for their interaction. The "shallow" objects produced by this packet are not like that. They express only the essential information necessary for client interaction when the client interacts with them. For example, a weapon defined by this packet may not care internally what fire mode it is in or how much ammunition it has. Such a weapon is not in the client's player's holster or inventory. It is imperceptive information to which he would not currently have access. An0x17
game object is, therefore, a game object with only the essential data exposed.
When interacting with an0x17
game object, the server will swap back and forth between it and an0x18
object. (Or it will be removed when it is placed somewhere a given client will no longer be able to see it.) The purpose of this conversion is to control network traffic and object agency. It is not necessary to keep track of all objects on every player on every client individually. This relates to the goal of this packet exposing only "essential data." One player does not need to know how much ammunition remains in a weapon belonging to another player normally. One player also does not need to know how much ammunition is used up when another player reloads their weapon. The only way the first player will know is when the weapon is transferred into his own inventory. All other clients are spared micromanagement of the hypothetical other player's weapon. Updated information is only made available when and where it is needed.
Knowing the object's type is necessary for proper parsing. If the object does not have encoding information or is unknown, it will not translate between byte data and a game object.- streamLength
the total length of the data that composes this packet in bits; exclude the opcode (1 byte) and end padding (0-7 bits); when encoding, it will be calculated automatically
- objectClass
the code for the type of object being constructed; always an 11-bit LE value
- guid
the GUID this object will be assigned
- parentInfo
if defined, the relationship between this object and another object (its parent)
- data
the data used to construct this type of object; on decoding, set to
None
if the process failed
- See also
ObjectCreateDetailedMessage
ObjectCreateMessageParent
- final case class ObjectDeleteMessage(object_guid: PlanetSideGUID, unk1: Int) extends PlanetSideGamePacket with Product with Serializable
- final case class ObjectDeployedMessage(unk: Int, desc: String, action: DeployOutcome.Value, count: Long, max: Long) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the server to generate a message in the events chat when placing deployables.
This packet does not actually modify anything in regards to deployables.Dispatched by the server to generate a message in the events chat when placing deployables.
This packet does not actually modify anything in regards to deployables. The most common form of the generated message is:
"You have placed x of a possible y thing s."
... wherex
is the current count of objects of this type that have been deployed;y
is the (reported) maximum amount of objects of this type that can be deployed; and,thing
is the token for objects of this type. If thething
is a valid string token, it will be replaced by language-appropriate descriptive text in the message. Otherwise, that text is placed directly into the message, with an obvious space between the text and the "s". "boomer," for example, is replaced by "Boomer Heavy Explosives" in the message for English language. "bullet_9mm_AP," however, is just "bullet_9mm_AP s."
When theaction
isSuccess
, the message in the chat will be shown as above. When theaction
isFailure
, the message will be:
"thing failed to deploy and was destroyed."
... where, again,thing
is a valid string token.- unk
na; usually 0?
- desc
descriptive text of what kind of object is being deployed; string token of the object, at best
- action
the form the message will take
- count
the current number of this type of object deployed
- max
the maximum number of this type of object that can be deployed
- final case class ObjectDetachMessage(parent_guid: PlanetSideGUID, child_guid: PlanetSideGUID, pos: Vector3, roll: Float, pitch: Float, yaw: Float) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the server to cause two associated objects to disentangle from one another.
ObjectDetachMessage
is the opposite ofObjectAttachMessage
.Dispatched by the server to cause two associated objects to disentangle from one another.
ObjectDetachMessage
is the opposite ofObjectAttachMessage
. When detached, the resulting freed object will be placed at the given coordinates in the game world. For detachment from some container objects, a default placement point may exist. This usually matches the position where the original mounting occurred, or is relative to the current position of the container. This mounting position overrides the input one, but other temporary side-effects may occur. For example, if a player detaches from a vehicle with coordinates for "somewhere else," the camera will temporarily be moved to that location "somewhere else" for the duration of the animation but it will soon regain the player who appeared where expected.
An object that is already dropped is a special case where the parent (container) does not technically exist. The parent also does not need to exist as the object will still be transported to the specified coordinates.- parent_guid
the container/connector object
- child_guid
the contained/connected object
- pos
where the contained/connected object will be placed after it has detached
- roll
the amount of roll that affects orientation of the dropped item
- pitch
the amount of pitch that affects orientation of the dropped item
- yaw
the amount of yaw that affects orientation of the dropped item
- final case class ObjectDetectedMessage(player_guid1: PlanetSideGUID, player_guid2: PlanetSideGUID, unk: Int, list: List[PlanetSideGUID]) extends PlanetSideGamePacket with Product with Serializable
Update a list of (new) objects that have been detected by this client in one way or another.
Update a list of (new) objects that have been detected by this client in one way or another.
- player_guid1
the player
- player_guid2
the player(?); often matches with
player_guid1
- unk
na; commonly, zero
- list
list of detected objects; normally contains at least one element
- final case class ObjectHeldMessage(avatar_guid: PlanetSideGUID, held_holsters: Int, unk1: Boolean) extends PlanetSideGamePacket with Product with Serializable
- final case class OffshoreVehicleMessage(player_guid: PlanetSideGUID, vehicle_guid: PlanetSideGUID, msg: Int) extends PlanetSideGamePacket with Product with Serializable
Dispatched from the server to indicate that the player is traveling too far from the primary battlefield and needs to return.
Dispatched from the server to indicate that the player is traveling too far from the primary battlefield and needs to return. At first the intention is to warn. After the warning, the intent is to dispose.
Do not dispatch this packet if the player is not seated in a vehicle or else the client will crash.
Messages follow:
1)WARNING: Power Link is weakening. Proceed back to the continent.
2)DANGER: Power Link is Dangerously Low. Turn back to the continent immediately!
3)Power Link lost.
Upon reception of #3, the player will lose control of their vehicle and it may explode depending on the vehicle. The "Power Link" that is mentioned is a hand-wave.- player_guid
na
- vehicle_guid
na
- msg
the number indexes of the message to be displayed by the client
- final case class OrbitalShuttleTimeMsg(model_state: HartSequence, unk0: Int, arrival_time: Long, boarding_time: Long, other_time: Long, pairs: List[PadAndShuttlePair]) extends PlanetSideGamePacket with Product with Serializable
Control the animation state transitions of the high altitude rapid transport (HART) orbital shuttle building and the accompanying orbital shuttle model.
The animation sequence is controlled primarily by the first field and goes through a strict cycle of boarding, lift shuttle, takeoff, land, lower shuttle.Control the animation state transitions of the high altitude rapid transport (HART) orbital shuttle building and the accompanying orbital shuttle model.
The animation sequence is controlled primarily by the first field and goes through a strict cycle of boarding, lift shuttle, takeoff, land, lower shuttle. All HART facilities (amenityobbasemesh
) in a given zone are controlled by this packet. Multiple systems are controlled by a single field during a given animation, e.g., the boarding gantries are retracted or extended during the same part where the shuttle is raised or lowered. Certain neutral animation states -State0
,State5
, andState7
- all behave the same way though denote different points in the sequence. Animation subsequence states are coordinated by the second field, though the specific purpose of the subsequence isn't always obvious, and the field isn't always necessary to achieve the result of the primary sequence.
The total time of the system is bound between two states: whether the shuttle has left or whether it is boarding. When separated ("has left"), the shuttle will be lifted out of the bay to atop the building and will fly off into the horizon, remaining despawned until it returns to view, perches atop the building again, and is lowered into the bay. When boarding, the shuttle is fixed in the bay and is accepting passengers via one of the boarding hallways. Upon boarding the shuttle, the time until takeoff ("has left") is displayed to all waiting passengers in the form of a progress bar. This progress bar is fixed to a full time of 60 seconds (60000 milliseconds) in the client and will start at fractions of completion for boarding times under 60 seconds.
Pairs of globally unique identifiers for the shuttle facility and the shuttle link the time fields to their function. All facilities and shuttles in a given zone are paired and enumerated for a single packet. If the HART facility identifier is missing or incorrect, the absent facility will continue to undergo correct animation state transition, but the door timer will not animate correctly and constantly display the time 10:37 and the door lights will be neither locked closed (red) or openable (green). If the shuttle identifier is missing or incorrect, the absent shuttle will continue to undergo partially correct animation state transitions, cycling between visible and invisible atop the HART facility, and the aforementioned progress bars visible by shuttle passengers will not display during the boarding phase if the shuttle is made available for boarding.- model_state
a control code that affects the over-all state of the HART system
- unk0
na
- arrival_time
the time for the orbital shuttle to return during instances when the shuttle is away; displayed on a related time near the shuttle boarding entryways; in milliseconds
- boarding_time
the time for the orbital shuttle to depart during instances when the shuttle is boarding; frequently
8000L
when not in use; in milliseconds- other_time
time field used for a variety of things; in most uses, the amount of time that has passed since the start of the event, so usually
0
(at start of event); with respects tomodel_state
andunk3
: full departure time when5
-3
(variant of7
-3
); occasionally, full departure time when0
-0
in milliseconds- pairs
a list of entries that pair a paired facility pad unique identifier and shuttle unique identifier with a control code
- final case class OrbitalStrikeWaypointMessage(guid: PlanetSideGUID, coords: Option[Waypoint] = None) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the server to tell the client to display an orbital strike waypoint somewhere in the game world.
Waypoints are kept unique by theguid
that is passed with them.Dispatched by the server to tell the client to display an orbital strike waypoint somewhere in the game world.
Waypoints are kept unique by theguid
that is passed with them. To clear a waypoint is to pass the another packet to the client with the same GUID but with no coordinates. Passing new coordinates with that GUID will update the position of the indicated waypoint. If the GUID sent with the packet belongs to the client's avatar that player will be given text overlay instructions:
"Press the fire key or button to launch an orbital strike at the waypoint."
The text will fade shortly after the waypoint has been cleared.
AllOrbitalStrikeWaypointMessage
packets sent to a client will create a waypoint that will be seen by that client. All rendered waypoints, regardless of the users who summoned them, will be seen in the faction color of the client's avatar. (Black OPs orbital strike waypoints are green, as expected.) The server should not notify the wrong clients about another faction's prepared orbital strikes; however, even if it did, those beams would be seen as a same-faction's marker.- guid
coordinates used to identify the waypoint; ostensibly, the GUID of the player who placed the waypoint
- coords
the coordinates of the waypoint;
None
if clearing a waypoint (use the sameguid
as to create it)
- final case class OutfitRequest(id: Long, info: OutfitRequestForm) extends PlanetSideGamePacket with Product with Serializable
na
na
- id
na
- info
na
- abstract class OutfitRequestForm extends AnyRef
na
- final case class OxygenStateMessage(player: DrowningTarget, vehicle: Option[DrowningTarget]) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the server to cause the player to slowly drown.
Dispatched by the server to cause the player to slowly drown. If the player is mounted in a vehicle at the time, alert the player that the vehicle may be disabled.
When a player walks too far underwater, a borderless red progress bar with a countdown from 100 (98) is displayed across the screen. The flavor text reads "Oxygen level". The countdown proceeds to zero at a fixed rate - it takes approximately 60s - and is timed with the depleting progress bar. When it reaches zero, the player will be killed. If the player is in a vehicle after a certain depth, a blue bar and countdown pair will superimpose the red indicators. It depletes much more rapidly than the red indicators - it takes approximately 5s. When it reaches zero, the vehicle will become disabled. All players in the vehicle's seats will be kicked and they will not be allowed back in.
Normally, the countdowns should be set to begin at 100 (100.0). This is the earliest the drowning GUI will appear for either blue or red indicators. Greater intervals - up to 204.8 - will start the countdown silently but the GUI will be hidden until 100.0. (The progress indicators will actually appear to start counting from 98.)- player
the player's oxygen state
- vehicle
optional oxygen state of the vehicle the player is driving; the player must be mounted in the vehicle (at start time)
- final case class PadAndShuttlePair(pad: PlanetSideGUID, shuttle: PlanetSideGUID, unk: Int) extends Product with Serializable
Paired globally unique identifier numbers, the first one being the pad (
obbasemesh
) of a HART shuttle building, the second being the shuttle itself.Paired globally unique identifier numbers, the first one being the pad (
obbasemesh
) of a HART shuttle building, the second being the shuttle itself.- pad
the HART shuttle pad
- shuttle
the HART orbital shuttle
- unk
a control code; has indeterminate purpose regardless of the phase expressed in the greater packet; frequently
20
but also frequently varies
- final case class PickupItemMessage(item_guid: PlanetSideGUID, player_guid: PlanetSideGUID, unk1: Int, unk2: Int) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the client when the player's intent is to collect an item from the ground.
When a player faces a freed item on the ground in the game world, a prompt appears that invites him to pick it up.Dispatched by the client when the player's intent is to collect an item from the ground.
When a player faces a freed item on the ground in the game world, a prompt appears that invites him to pick it up. Doing so generates this packet. The server determines the exact inventory position where the item will get placed. If the inventory has insufficient space to accommodate the item, it gets put into the player's hand (on the cursor).
This packet is complemented by anObjectAttachMessage
packet from the server that performs the actual "picking up."- item_guid
na
- player_guid
na
- unk1
na
- unk2
na
- final case class PingMsg(serverSlot: Long, ticks: Long) extends PlanetSideGamePacket with Product with Serializable
Sent periodically by the PlanetSide client when connected to the Login server.
Sent periodically by the PlanetSide client when connected to the Login server. Not encrypted
- serverSlot
Which server on the server display is the ping referring to
- ticks
The number of ticks. Usually just reflected back to the client
- case class PlanetSideZoneID(zoneId: Long) extends Product with Serializable
- final case class PlanetsideAttributeMessage(guid: PlanetSideGUID, attribute_type: Int, attribute_value: Long) extends PlanetSideGamePacket with Product with Serializable
na
Global:
50 - State initialization for amenities
na
Global:
50 - State initialization for amenities
- 0 - Normal, accessible ("Press 'e' to ...")
- 1 - Fully destroyed model, inaccessible ("foo is destroyed and can not be accessed")
51 - Common initialization for amenities, complementary to attribute 50
- 0 - Normal, accessible
- 1 - Partially destroyed model, still accessible
- 2 - Explicitly set in transition from state 1; same as state 1?
67 - ???
Global (GUID=0)
75 - Russian client region check
(value checks with bitmask& 8
)
82 - event chat message in green, "You have been Silenced by a Game Official. You can not talk in Command Chat."
83 - max boomers
84 - max he mines
85 - max disruptor mines
86 - max spitfire turrets
87 - max motion sensors
88 - max shadow turrets
89 - max cerebus turrets
90 - max Aegis shield generators
91 - max TRAPs
92 - max OMFTs
93 - max sensor disruptors
94 - boomers
95 - he mines
96 - disruptor mines
97 - spitfire turrets
98 - motion sensors
99 - shadow turrets
100 - cerebus turrets
101 - Aegis shield generators
102 - TRAPSs
103 - OMFTs
104 - sensor disruptors
112 - enable/disable festive backpacks
Players/General:
Server to client :
0 - health (setting to zero on vehicles/terminals will destroy them)
1 - healthMax
2 - stamina
3 - staminaMax
4 - armor
5 - armorMax
6 - PA_RELEASED - transform the (other) avatar in backpack on ground
7 - Sets charge level for MAX capacitor
8 - Enables empire specific max capacitor function - NC Shield, TR Overdrive, VS Jumpjets
9 - Possibly unused now - PA_SHIELDSTRENGTH in beta client
14 - Something with grief
15 - Weapon Lock. Value exemple : 600 to have 1 min lock. Max possible is 30min lock
16 - PA_DECONSTRUCTING in beta client
17 - BEP. Value seems to be the same as BattleExperienceMessage
18 - CEP.
19 - Anchors. Value is 0 to disengage, 1 to engage.
20 - Control console hacking, affects CC timer, yellow base warning lights and message "The FactionName has hacked into BaseName". Format is: Time left - 2 bytes, faction - 1 byte (1-4), isResecured - 1 byte (0-1)
- 65535 segments per faction in deciseconds (seconds * 10)
- 0-65535 = Neutral 0 seconds to 1h 49m 14s - 0x0000 to 0xFFFF
- 65536 (0x10000) - 131071 (0x1FFFF) - TR
- 131072 (0x20000) - 196607 (0x2FFFF) - NC
- 196608 (0x30000) - 262143 (0x3FFFF) - VS
- 17039360 (0x1040000) - CC Resecured
24 - Learn certification:
- 01 - Medium Assault
- 02 - Heavy Assault
- 03 - Special Assault
- 04 - Anti-Vehicular
- 05 - Sniping
- 06 - Elite Assault
- 07 - Air Cavalry, Scout
- 08 - Air Cavalry, Interceptor
- 09 - Air Cavalry, Assault
- 10 - Air Support
- 11 - ATV
- 12 - Light Scout
- 13 - Assault Buggy
- 14 - Armored Assault 1
- 15 - Armored Assault 2
- 16 - Ground Transport
- 17 - Ground Support
- 18 - BattleFrame Robotics
- 19 - Flail
- 20 - Switchblade
- 21 - Harasser
- 22 - Phantasm
- 23 - Galaxy Gunship
- 24 - BFR Anti Aircraft
- 25 - BFR Anti Infantry
- 26 - ?! Removed Cert ?
- 27 - ?! Removed Cert ?
- 28 - Reinforced ExoSuitDefinition
- 29 - Infiltration Suit
- 30 - AA MAX
- 31 - AI MAX
- 32 - AV MAX
- 33 - Uni-MAX
- 34 - Medical
- 35 - Advanced Medical
- 36 - Hacking
- 37 - Advanced Hacking
- 38 - Expert Hacking
- 39 - Data Corruption
- 40 - Electronics Expert (= Expert Hacking + Data Corruption) Must have Advanced Hacking
- 41 - Engineering
- 42 - Combat Engineering
- 43 - Fortification Engineering
- 44 - Assault Engineering
- 45 - Advanced Engineering (= Fortification Engineering + Assault Engineering) Must have Combat Engineering
25 - Forget certification: ... (see 24)
26 - Certification reset timer (in seconds)
27 - PA_JAMMED - plays jammed buzzing sound in vicinity of target, jams weapon discharge
28 - PA_IMPLANT_ACTIVE - Plays implant sounds. Valid values seem to be up to 20.
29 - PA_VAPORIZED - Visible ?! That's not the cloaked effect, Maybe for spectator mode ?. Value is 0 to visible, 1 to invisible.
31 - Looking for Squad info (marquee and ui):
- 0 - LFS
- 1 is LFSM (Looking for Squad Members)
n
is the supplemental squad identifier number; same as "LFS;" for the leader, sets "LFSM" after the first manual flagging
32 - Maintain the squad role index, when a member of a squad
35 - Battle Rank
36 - Command Rank
38 - Spawn active or not. MUST use base MapId not base GUID
43 - Info on avatar name : 0 = Nothing, 1 = "(LD)" message
45 - NTU charge bar 0-10, 5 = 50% full. Seems to apply to both ANT and NTU Silo (possibly siphons?)
46 - Sends "Generator damage is at a critical level!" message
47 - Sets base NTU level to CRITICAL.
48 - Set to 1 to send base power loss message & turns on red warning lights throughout base.
49 - Vehicle texture effects state? (>0 turns on ANT panel glow or ntu silo panel glow + orbs) (bit?)
52 - Vehicle particle effects? (>0 turns on orbs going towards ANT. Doesn't affect silo) (bit?)
53 - LFS. Value is 1 to flag LFS
54 - Player "Aura". Values can be expressed in the first byte's lower nibble:
- 0 - nothing
- 1 - plasma
- 2 - ancient
- 4 - LLU (?)
- 8 - fire
- e.g., 13 = 8 + 4 + 1 = fire and LLU and plasma
55 - "Someone is attempting to Heal you". Value is 1
56 - "Someone is attempting to Repair you". Value is 1
64 - ????? related to using router telepads
67 - Enables base shields (from cavern module/lock)
73 - "You are locked into the Core Beam. Charging your Module now.". Value is 1 to active
77 - Cavern Facility Captures. Value is the number of captures
78 - Cavern Kills. Value is the number of kills
106 - Avatar Cosmetics
116 - Apply colour to REK beam and REK icon above players
- 0 = yellow
- 1 = red
- 2 = purple
- 3 = blue
Client to Server :
106 - Custom Head
224 - Player/vehicle joins black ops
228 - Player/vehicle leaves black ops
Vehicles:
10 - Driver mount permissions
- 0 - Locked
- 1 - Group
- 3 - Empire
11 - Gunner mount(s) permissions (same)
12 - Passenger mount(s) permissions (same)
13 - Trunk permissions (same)
21 - Declare a player the vehicle's owner, by globally unique identifier
22 - Toggles gunner and passenger mount points (1 = hides, 0 = reveals; this also locks their permissions)
54 - Plays jammed buzzing sound in vicinity of target
55 - Trigger APC EMP
68 - Vehicle shield health
79 - ???
80 - Damage vehicle (unknown value)
81 - ???
113 - Vehicle capacitor - e.g. Leviathan EMP charge
- guid
the object
- attribute_type
the field
- attribute_value
the value
- final case class PlanetsideStringAttributeMessage(guid: PlanetSideGUID, string_type: Int, string_value: String) extends PlanetSideGamePacket with Product with Serializable
na
The one common use of this packet is to transmit information about the name of the player's outfit during login.na
The one common use of this packet is to transmit information about the name of the player's outfit during login. The guid will belong to the player; the "type will be 0; the outfit name will appear on the appropriate window.- guid
na
- string_type
na
- string_value
na
- final case class PlayerStasisMessage(player_guid: PlanetSideGUID, stasis: Boolean = true) extends PlanetSideGamePacket with Product with Serializable
Causes the avatar to be prepped for drop pod use.
This packet is dispatched from the server to all occupants of the HART shuttle when it has completed its take-off animation.Causes the avatar to be prepped for drop pod use.
This packet is dispatched from the server to all occupants of the HART shuttle when it has completed its take-off animation. When received by the client, that player's avatar is "removed from the world" and the Interstellar Map is displayed for them. The "Launch Drop Pod" button window is also made visible. Selecting individual continental maps for viewing and clicking on the landmasses has the expected behavior for drop pods implementation.
Being seated on the HART shuttle at the time, a player's avatar does not physically exist when the packet is received. If the packet is received while the player is outside of the HART shuttle, the state of their avatar is not known to them. "Removed from the world" merely implies that one can not leave the Interstellar Map once it has been displayed. According to packet capture, their avatar is not explicitly deconstructed until the dropped-into map is loaded.
When the packet is received on one's client, but is addressed to another player, nothing seems to happen to that player. If that player's model is outside of the HART, it will not deconstruct. Only the client's avatar can be affected by this packet.- player_guid
the player
- stasis
true
by default; nothing whenfalse
(?)
- final case class PlayerStateMessage(guid: PlanetSideGUID, pos: Vector3, vel: Option[Vector3], facingYaw: Float, facingPitch: Float, facingYawUpper: Float, timestamp: Int, is_crouching: Boolean = false, is_jumping: Boolean = false, jump_thrust: Boolean = false, is_cloaked: Boolean = false) extends PlanetSideGamePacket with Product with Serializable
The server instructs some clients to render a player (usually not that client's avatar) to move in a certain way.
This packet instructs the basic aspects of how the player character is positioned and how the player character moves.The server instructs some clients to render a player (usually not that client's avatar) to move in a certain way.
This packet instructs the basic aspects of how the player character is positioned and how the player character moves. Each client keeps track of where a character "currently" is according to that client.pos
reflects an update in regards to where the character should be moved. Data between this "currently" and "new" are interpolated over a fixed time interval. Position and velocity data is standard to normal PlanetSide ranges. All angles follow the convention that every0x1
is about 2.8125 degrees; so,0x10
is 45.0 degrees.
The avatar model normally moves from where it "currently" is topos
. Whenvel
is defined,pos
is treated as where the avatar model starts its animation. In that case, it appears to teleport topos
to carry out the interpolated movement according tovel
. After the move, it remains at essentiallypos + vel * t
. The repositioning always takes the same amount of time. The player model is left in a walking/running animation (in place) until directed otherwise.
If the model must interact with the environment during a velocity-driven move, it copes with local physics. A demonstration of this is what happens when one player "runs past"/"into" another player running up stairs. The climbing player is frequently reported by the other to appear to bounce over that player's head. If the other player is off the ground, passing too near to the observer can cause a rubber band effect on trajectory. This effect is entirely client-side to the observer and affects the moving player in no way.- guid
the avatar's guid
- pos
the position of the avatar in the world environment (in three coordinates)
- vel
an optional velocity
- facingYaw
a "yaw" angle
- 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
- timestamp
A sequential counter
- is_crouching
avatar is crouching
- is_jumping
avatar is jumping; must remain flagged for jump to maintain animation
- jump_thrust
provide a measure of vertical stability when really close to the avatar character
- is_cloaked
avatar is cloaked by virtue of an Infiltration Suit
- final case class PlayerStateMessageUpstream(avatar_guid: PlanetSideGUID, pos: Vector3, vel: Option[Vector3], facingYaw: Float, facingPitch: Float, facingYawUpper: Float, seq_time: Int, unk1: Int, is_crouching: Boolean, is_jumping: Boolean, jump_thrust: Boolean, is_cloaked: Boolean, unk2: Int, unk3: Int) extends PlanetSideGamePacket with Product with Serializable
Constantly sent from the client to the server to update player avatar properties.
Exploration:
seq_time
appears to be used in other message definitions as well.Constantly sent from the client to the server to update player avatar properties.
Exploration:
seq_time
appears to be used in other message definitions as well. It seems to represent a timestamp for ordering, e.g., player and weapon events.- avatar_guid
the player's GUID
- pos
where the player is in the world
- vel
how the player is moving
- facingYaw
a "yaw" angle
- facingPitch
a "pitch" angle; 0 for forward-facing; 75.9375 for the up-facing limit; -73.125 for the down-facing limit
- facingYawUpper
a "yaw" angle that represents the angle of the avatar's upper body with respect to its forward-facing direction; 0 for forward-facing; +/-61.875 for the clockwise/counterclockwise turn limits, respectively
- seq_time
the "time frame" according to the server; starts at 0; max value is 1023 before resetting
- unk1
na
- is_crouching
avatar is crouching
- is_jumping
avatar is jumping; must remain flagged for jump to maintain animation
- jump_thrust
provide a measure of vertical stability when really close to the avatar character
- is_cloaked
avatar is cloaked by virtue of an Infiltration Suit
- unk2
na
- unk3
na
- final case class PlayerStateShiftMessage(state: Option[ShiftState], unk: Option[Int] = None) extends PlanetSideGamePacket with Product with Serializable
Push specific motion-based stimuli on a specific character.
PlayerStateMessageUpstream
involves data transmitted from a client to the server regarding its avatar.Push specific motion-based stimuli on a specific character.
PlayerStateMessageUpstream
involves data transmitted from a client to the server regarding its avatar.PlayerStateMessage
involves data transmitted from the server to the clients regarding characters other than that client's avatar.PlayerStateShiftMessage
involves data transmitted from the server to a client about that client's avatar. It temporarily asserts itself before normal player movement and asserts specific placement and motion. An application of this packet is being/warp
ed within a zone via a non-triggering agent (like a teleporter). Another, more common, application of this packet is being thrown about when the target of an attempted roadkill.- state
if defined, the behaviors to influence the character
- unk
na
- sealed abstract class ProjectileCharacteristics extends IntEnumEntry
- final case class ProjectileStateMessage(projectile_guid: PlanetSideGUID, shot_pos: Vector3, shot_vel: Vector3, shot_original_orient: Vector3, sequence_num: Int, end: Boolean, hit_target_guid: PlanetSideGUID) extends PlanetSideGamePacket with Product with Serializable
Dispatched to deliberately control certain projectiles of a weapon on other players' clients.
This packet should be generated by firing specific weapons in specific fire modes.Dispatched to deliberately control certain projectiles of a weapon on other players' clients.
This packet should be generated by firing specific weapons in specific fire modes. For example, the Phoenix (hunterseeker
) discharged in its primary fire mode generates this packet; but, the Phoenix in secondary fire mode does not. The Striker (striker
) discharged in its primary fire mode generates this packet; but, the Striker in secondary fire mode does not. The chosen fire mode(s) are not a straight-fire projectile but one that has special control asserted over it. For the Phoenix, it is user operated (camera-guided). For the Striker, it tracks towards a valid target while the weapon's reticle hovers over that target.
This packet will continue to be dispatched by the client for as long as the projectile being tracked is in the air. All projectiles have a maximum lifespan before they will lose control and either despawn and/or explode. This number is tracked in the packet for simplicity.
This control can not be demonstrated until that projectile is physically constructed on the other clients in the same way that a player or a vehicle is constructed. A projectile that exhibits intentional construction behavior is flagged using the propertyexists_on_remote_client
. The model comes with a number of caveats, some that originate from the object construction process itself, but also some from this packet. For example, as indicated by the staticshot_original_orient
values reported by this packet. a discharged controlled projectile will not normally rotate. A minor loss of lifespan may be levied.- projectile_guid
when dispatched by the client, the client-specific local unique identifier of the projectile; when dispatched by the server, the global unique identifier for the synchronized projectile object
- shot_pos
the position of the projectile
- shot_vel
the velocity of the projectile
- shot_original_orient
the orientation of the projectile when it was discharged
- sequence_num
an incrementing index of the packet in this projectile's lifetime; suggests the "time alive" and indicates a place in packet ordering
- end
indicates the projectile has reached the end of its lifespan; usually, it should explode
- hit_target_guid
the global unique identifier of the object the projwectile collided with; will be 0 if it reached the end of its life naturally, without colliding with anything
- See also
ProjectileDefinition
RemoteProjectileData
- final case class PropertyOverrideMessage(list: List[PropertyOverrideMessage.GamePropertyScope]) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the server to alert the client about custom permissions in different zones.
The primarily way this packet was used on Gemini Live was to restrict weapons per zone.Dispatched by the server to alert the client about custom permissions in different zones.
The primarily way this packet was used on Gemini Live was to restrict weapons per zone. The Battle Island restrictions, for example, were enforced by these properties.
Exploration:
What else can you do with this packet?- list
a
List
defining scopes for the targets of internal property changes
- final case class ProximityTerminalUseMessage(player_guid: PlanetSideGUID, object_guid: PlanetSideGUID, unk: Boolean) extends PlanetSideGamePacket with Product with Serializable
The player's avatar has moved in relation to a set piece that reacts with the player due to his proximity.
Elements that exhibit this behavior include Repair/Rearm Silos in facility courtyards and various cavern crystals.The player's avatar has moved in relation to a set piece that reacts with the player due to his proximity.
Elements that exhibit this behavior include Repair/Rearm Silos in facility courtyards and various cavern crystals. The packets are only dispatched when it is appropriate for the player to be affected.
Exploration:
Packets where the bytes for the player's GUID are blank exist.- player_guid
the player
- object_guid
the object whose functionality is triggered
- unk
na
- final case class QuantityDeltaUpdateMessage(item_guid: PlanetSideGUID, quantity_delta: Int) extends PlanetSideGamePacket with Product with Serializable
Instructs client to update the quantity of an item based on a delta when sent server to client.
Instructs client to update the quantity of an item based on a delta when sent server to client.
See also QuantityUpdateMessage
- item_guid
the item to update
- quantity_delta
the change in quantity of the item
- final case class QuantityUpdateMessage(item_guid: PlanetSideGUID, quantity: Int) extends PlanetSideGamePacket with Product with Serializable
Instructs client to update the quantity of an item when sent server to client.
Instructs client to update the quantity of an item when sent server to client.
See also QuantityDeltaUpdateMessage
- item_guid
the item to update
- quantity
the quantity to update the item to
- final case class ReleaseAvatarRequestMessage() extends PlanetSideGamePacket with Product with Serializable
Packet send by client when clic on button after death https://streamable.com/4r16m
- final case class ReloadMessage(item_guid: PlanetSideGUID, ammo_clip: Long, unk1: Int) extends PlanetSideGamePacket with Product with Serializable
- final case class RepairMessage(item_guid: PlanetSideGUID, repair_value: Long) extends PlanetSideGamePacket with Product with Serializable
Dispatched to the client to report the amount of repair that is performed upon a target item.
Dispatched to the client to report the amount of repair that is performed upon a target item. On the client, a progress bar window is displayed with the appropriate repair type and amount. The item could be a player or a vehicle or a stationary game object, e.g., a terminal.
- item_guid
a game object; the kind of object influences the kind of repair
- repair_value
the percentage of maximum health that the object possesses after repairs; as the value is a percentage, it should be from 0 to 100; at 100, the progress window does not display anymore; above 100, the progress window stays displayed unless the underlying process is interrupted
- final case class ReplicationStreamMessage(behavior: Int, behavior2: Option[Int], entries: Vector[SquadListing]) extends PlanetSideGamePacket with Product with Serializable
Display the list of squads available to a given player.
The four main operations are: initializing the list, updating entries in the list, removing entries from the list, and clearing the list.Display the list of squads available to a given player.
The four main operations are: initializing the list, updating entries in the list, removing entries from the list, and clearing the list. The process of initializing the list and clearing the list actually are performed by similar behavior. Squads would just not be added after the list clears. Moreover, removing entries from the list overrides the behavior to update entries in the list. Squad list entries are typically referenced by their line index.
Though often specified with a global identifier, squads are rarely accessed using that identifier. Outside of initialization activities, the specific index of the squad listing is referenced. During the list initialization process, the entries must be in ascending order of index. The total number of entries in a packet is not known until they have all been parsed. The minimum number of entries is "no entries." The maximum number of entries is supposedly 254. The last item is always the index 255 and this is interpreted as the end of the stream.
When no updates are provided, the client loads a default (but invalid) selection of data comprising four squads:
0 Holeesh another purpose Desolation 6/7
1 Korealis another purpose Drugaskan 10/10
2 PsychoSanta blah blah blah 10/10
3 Squishling another purpose Cyssor 8/10
The last entry is entirely in green text.
Behaviors:
behavior behavior2
1 X
Update where initial entry removes a squad from the list
5 6
Clear squad list and initialize new squad list
5 6
Clear squad list (transitions directly into 255-entry)
6 X
Update a squad in the list- behavior
a required code that suggests the operations of the data in this packet
- behavior2
an optional code that suggests the operations of the data in this packet; during initialization, this code is read; it typically flags an "update" action
- entries
a
Vector
of the squad listings
- final case class RequestDestroyMessage(object_guid: PlanetSideGUID) extends PlanetSideGamePacket with Product with Serializable
- final case class RespawnAMSInfoMessage(unk1: PlanetSideGUID, unk2: Boolean, unk3: Option[RespawnInfo]) extends PlanetSideGamePacket with Product with Serializable
- final case class RespawnInfo(unk1: List[Vector3], unk2: List[Boolean]) extends Product with Serializable
- sealed abstract class ServerType extends IntEnumEntry
- final case class ServerVehicleOverrideMsg(lock_accelerator: Boolean, lock_wheel: Boolean, reverse: Boolean, unk4: Boolean, lock_vthrust: Int, lock_strafe: Int, movement_speed: Int, unk8: Option[Long]) extends PlanetSideGamePacket with Product with Serializable
Dispatched by server to assert control of a player's vehicle, usually temporarily, and to relinquish that control.
The "vehicle" counts as any mobile platform where the user's character is currently sitting.Dispatched by server to assert control of a player's vehicle, usually temporarily, and to relinquish that control.
The "vehicle" counts as any mobile platform where the user's character is currently sitting. If the player is not sitting in what the game considers a "vehicle," the packet is wasted. Either of the first two parameters -lock_accelerator
orlock_wheel
- constitutes any vehicle being overrode. Either of the latter two parameters -lock_thrust
orlock_strafe
- constitutes a flight vehicle being overrode. No message is displayed if the vehicle is placed under any form of server control. During server control, this is an acceleration value (?); during cancellable auto-drive, a constant velocity value. Vertical thrust control for aircraft is either on or off; the amount of that thrust can not be controlled.
After being controlled, when the vehicle is no longer under control, it will transition into a state of constant speed auto-drive. The message regarding the vehicle being back in the driver's control will display, unless one of the aforementionedlock_*
parameters is still set totrue
. When dismounting a bailable vehicle while it is under the server's control, the player will behave like they are bailing from it. (The vehicle actually has to be "bailable" first, of course.)
"Something like speed:"
For ground vehicles, forn
, the calculated in-game speed for the value in this packet will be at least3.45 x n
. For flight vehicles, forn
, the forward air speed for the value in this packet will be at least1.18 * n
. This approximation is not always going to be accurate but serves as a good rule of thumb.- lock_accelerator
driver has no control over vehicle acceleration
- lock_wheel
driver has no control over vehicle turning; generally, the driver never has turning control
- reverse
move in reverse 0 = forward 1 = reverse
- unk4
na; something to do with vehicle bailable speed
- lock_vthrust
pilot has no control over vertical thrust; asserts a constant positive vertical thrust; the only valid setting appears to be 1
- lock_strafe
pilot has no control over strafing thrust; 0 = not locked 1 = no strafing 2 = strafe left automatically 3 = strafe right automatically
- movement_speed
"something like speed"
- unk8
na; set
lock_wheel
totrue
to expose this value
- final case class SetChatFilterMessage(send_channel: ChatChannel.Value, origin: Boolean, whitelist: List[ChatChannel.Value]) extends PlanetSideGamePacket with Product with Serializable
Which comm.
Which comm. channels are allowed to display in the main chat window. The server sends a
SetChatFilterMessage
and the client responds with the same during login.
Nine channels exist. Their values can be modified by radio buttons found under the current chat window's "Options" pane. Each time the client updates the channel permissions, it sends this packet to the server nine times. The packet starts with the previous channel filter states and then updates each channel sequentially.
Thesend_channel
and thechannel_filter
values are in the following order:
Unknown, Tells, Local, Squad, Outfit, Command, Platoon, Broadcast, Squad Leader
The first channel is unlisted.- send_channel
automatically select the fully qualified channel to which the user sends messages
- origin
where this packet was dispatched;
true
, from the server;false
, from the client- whitelist
each channel permitted to post its messages; when evaluated from a packet, always in original order
- final case class SetCurrentAvatarMessage(guid: PlanetSideGUID, unk1: Int, unk2: Int) extends PlanetSideGamePacket with Product with Serializable
- final case class SetEmpireMessage(object_guid: PlanetSideGUID, empire: types.PlanetSideEmpire.Value) extends PlanetSideGamePacket with Product with Serializable
The object_guid space for SetEmpireMessage is continent specific.
The object_guid space for SetEmpireMessage is continent specific. SetEmpireMessage is usually followed by HackMessage (indicating the hack disposition of the same object_guid)
- final case class ShiftState(unk: Int, pos: Vector3, viewYawLim: Float, vel: Option[Vector3]) extends Product with Serializable
Instructs an avatar to be stood, to look, and to move, in a certain way.
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.Instructs an avatar to be stood, to look, and to move, in a certain way.
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.
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.- unk
na
- pos
the position to move the character to in the world environment
- viewYawLim
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
viewYawLimit +/- 61.8215
;- vel
if defined, the velocity to apply to to the character at the given position
- See also
PlayerStateMessageUpstream.facingYawUpper
PlayerStateMessage.facingYawUpper
- abstract class Shortcut extends AnyRef
Details regarding this shortcut.
The parameterspurpose
andtile
are closely related.Details regarding this shortcut.
The parameterspurpose
andtile
are closely related. These two fields are consistent for all shortcuts of the same type.purpose
indicates the purpose of the shortcut.tile
is related to what kind of graphic is displayed in this shortcut's slot on the hotbar based on its purpose. The parameterseffect1
andeffect2
are exclusive to text macro shortcuts and are defaulted to emptyString
s.
Theshortcut_macro
setting displays a word bubble superimposed by the (first three letters of)effect1
text.
Implants and the medkit should have self-explanatory graphics.
Tile - Code
advanced_regen
(regeneration) - 2
audio_amplifier
- 2
darklight_vision
- 2
medkit
- 0
melee_booster
- 2
personal_shield
- 2
range_magnifier
- 2
second_wind
- 2
shortcut_macro
- 1
silent_run
(sensor shield) - 2
surge
- 2
targeting
(enhanced targeting) - 2 - final case class SimDataChallenge(unk1: List[Long], unk2: Boolean, unk3: Int, unk4: Long, unk5: Boolean) extends PlanetSideGamePacket with Product with Serializable
na
na
- unk1
na
- unk2
na
- unk3
na
- unk4
na
- unk5
na
- final case class SimDataChallengeResp(unk1: List[Long], unk2: List[Long], unk3: Boolean) extends PlanetSideGamePacket with Product with Serializable
na
na
- unk1
na
- unk2
na
- unk3
na
- final case class SpawnRequestMessage(unk1: Int, spawn_type: SpawnGroup, unk3: Int, unk4: Int, zone_number: Int) extends PlanetSideGamePacket with Product with Serializable
na
na
- unk1
when defined, na; non-zero when selecting the sanctuary option from a non-sanctuary continent deployment map
- spawn_type
the type of spawn point destination
- unk3
na
- unk4
na
- zone_number
when defined, the zone number
- final case class SplashHitMessage(unk1: Int, projectile_uid: PlanetSideGUID, projectile_pos: Vector3, unk2: Int, unk3: Int, projectile_vel: Option[Vector3], unk4: Option[Int], targets: List[SplashedTarget]) extends PlanetSideGamePacket with Product with Serializable
Dispatched to the server when a type of effect that influence multiple targets activates.
Splash does not refer to the effect upon an applicable target.Dispatched to the server when a type of effect that influence multiple targets activates.
Splash does not refer to the effect upon an applicable target. Splash denotes the fixed radius wherein a said effect exerts temporary influence. Being damaged is the most common splash effect; the jammering effect is another. A pain field does not count because it is an environmental constant. Lashing is considered different because it is a type of inheritable influence.
Valid targets for splash are all interactive game objects that maintain a GUID. This includes: players, of course; vehicles, of course; doors; terminals; spawn tubes; and, such objects. Not all targets listed will actually be influenced by the effect carried by splash.
The effect commonly modifies the visual depiction of the splash. Being able to "see" splash also does not necessarily mean that one will be influenced by it. Visually and spatially, it may seem to bleed through surfaces on occasion. The effect will not be carried, however. Splash will also respect the game's internal zoning and not pass through temporary obstacles like closed doors. Not being able to see splash also does not stop a target from being affected. The radius of influence is typically a bit larger than the visual indication.
All sources of splash damage herein will be called "grenades" for simplicity.- unk1
na
- projectile_uid
the grenade's object
- projectile_pos
the position where the grenade landed (where it is)
- unk2
na; frequently 42
- unk3
na; frequently 0
- projectile_vel
the velocity of the grenade when it landed
- unk4
na
- targets
a
List
of all targets influenced by the splash
- final case class SplashedTarget(uid: PlanetSideGUID, pos: Vector3, unk1: Long, unk2: Option[Int]) extends Product with Serializable
An entry of the target that was hit by splash damage.
An entry of the target that was hit by splash damage.
- uid
the target's uid
- pos
the target's position (when hit)
- unk1
na
- unk2
na
- abstract class SquadAction extends AnyRef
The generic superclass of a specific behavior for this type of squad definition action.
The generic superclass of a specific behavior for this type of squad definition action. All behaviors have a "code" that indicates how the rest of the data is parsed.
- final case class SquadDefinitionActionMessage(squad_guid: PlanetSideGUID, line: Int, action: SquadAction) extends PlanetSideGamePacket with Product with Serializable
Manage composition and details of a player's current squad, or the currently-viewed squad.
Theaction
code indicates the format of the remainder data in the packet.Manage composition and details of a player's current squad, or the currently-viewed squad.
Theaction
code indicates the format of the remainder data in the packet. The following formats are translated; their purposes are listed:
(None)
0
- Display Squad
1
- Answer Squad Join Request
2
- UNKNOWN
3
- Save Squad Favorite
4
- Load Squad Favorite
5
- Delete Squad Favorite
6
- UNKNOWN
8
- Request List Squad
9
- Stop List Squad
16
- Associate with Squad
17
- Set List Squad (ui)
18
- UNKNOWN
26
- Reset All
32
- UNKNOWN
35
- Cancel Squad Search
39
- No Squad Search Results
41
- Cancel Find
42
- UNKNOWN
43
- UNKNOWN
Boolean
28
- Auto-approve Requests for Invitation
29
- UNKNOWN
30
- UNKNOWN
31
- Location Follows Squad Leader
Int
10
- Select this Role for Yourself
11
- UNKNOWN
20
- (Squad leader) Change Squad Zone
21
- (Squad leader) Close Squad Member Position
22
- (Squad leader) Add Squad Member Position
33
- Decorate a Squad in the List of Squads with Color
40
- Find LFS Soldiers that Meet the Requirements for this Role
Long
13
- UNKNOWN
14
- UNKNOWN
15
- Select this Role for Yourself
37
- UNKNOWN
String
7
- List Squad Favorite
19
- (Squad leader) Change Squad Purpose
Int :: Long
12
- UNKNOWN
25
- (Squad leader) Change Squad Member Requirements - Weapons
38
- Assign Squad Member To Role
Int :: String
23
- (Squad leader) Change Squad Member Requirements - Role
24
- (Squad leader) Change Squad Member Requirements - Detailed Orders
Long :: Long
36
- UNKNOWN
String :: Long :: Int :: Int
34
- Search for Squads with a Particular Role- squad_guid
the unique identifier of the squad, if non-zero
- line
the original listing line number, if applicable
- action
the purpose of this packet; also decides the content of the parameter fields
- final case class SquadDetail(guid: Option[Int], unk2: Option[Int], leader_char_id: Option[Long], outfit_id: Option[Long], leader_name: Option[String], task: Option[String], zone_id: Option[PlanetSideZoneID], unk7: Option[Int], member_info: Option[List[SquadPositionEntry]]) extends Product with Serializable
Information regarding a squad's position as a series of common fields.
Information regarding a squad's position as a series of common fields. When parsed in an itemized way, only the important fields are represented. When parsed in a continuous manner, all of the fields are populated. All fields are optional for that reason.
The squad leader does not necessarily have to be a person from themember_info
list.- guid
na; must be non-zero when parsed in a FullSquad pattern
- unk2
na; not associated with any fields during itemized parsing
- leader_char_id
he unique character identification number for the squad leader
- outfit_id
na
- leader_name
the name of the player who is the squad leader
- task
the suggested responsibilities or mission statement of the squad
- zone_id
the suggested area of engagement for this squad's activities; can also indicate the zone of the squad leader
- unk7
na
- member_info
a list of squad position data
- final case class SquadDetailDefinitionUpdateMessage(guid: PlanetSideGUID, detail: SquadDetail) extends PlanetSideGamePacket with Product with Serializable
A compilation of the fields that communicate detailed information about squad structure and composition as a complement to the packet
ReplicationStreamMessage
and the packetSquadDefinitionActionMessage
.A compilation of the fields that communicate detailed information about squad structure and composition as a complement to the packet
ReplicationStreamMessage
and the packetSquadDefinitionActionMessage
. The information communicated by theSquadDefinitionActionMessage
packets allocates individual fields of the squad's structure and theReplicationStreamMessage
packet reports very surface-level information about the squad to other players. TheSquadDetailDefinitionUpdateMessage
packet serves as a realization of the field information reported by the former and a fully fleshed-out explanation of the information presented by the latter.
Squads are generally referenced by their own non-zero globally unique identifier that is valid server-wide. A zero GUID squad is also accessible for information related to the local unpublished squad that exists on a specific client. Only one published squad can have its information displayed at a time. While imperfect squad information can be shown, two major formats for the data in this packet are common. The first format lists all of the squad's fields and data and is used as an initialization of the squad locally. This format is always used the first time information about the squad is communicated to the client. The second format lists specific portions of the squad's fields and data and is used primarily for simple updating purposes.- guid
the globally unique identifier of the squad
- detail
information regarding the squad
- final case class SquadInfo(leader: Option[String], task: Option[String], zone_id: Option[PlanetSideZoneID], size: Option[Int], capacity: Option[Int], squad_guid: Option[PlanetSideGUID] = None) extends Product with Serializable
Maintain squad information for a given squad's listing.
Maintain squad information for a given squad's listing. Only certain information will be transmitted depending on the purpose of the packet.
- leader
the name of the squad leader, usually the first person in the squad member list;
None
if not applicable- task
the task the squad is trying to perform as a wide character string;
None
if not applicable- zone_id
the continent on which the squad is acting;
None
if not applicable- size
the current size of the squad; "can" be greater than
capacity
, though with issues;None
if not applicable- capacity
the maximum number of members that the squad can tolerate; normal count is 10; maximum is 15 but naturally can not be assigned that many;
None
if not applicable- squad_guid
a GUID associated with the squad, used to recover the squad definition; sometimes it is defined but is still not applicable;
None
if not applicable (rarely applicable)
- final case class SquadInvitationRequestMessage(squad_guid: PlanetSideGUID, slot: Int, char_id: Long, name: String) extends PlanetSideGamePacket with Product with Serializable
A message for communicating squad invitation.
A message for communicating squad invitation. When received by a client, the event message "You have invited
name
to join your squad" is produced and aSquadMembershipRequest
packet of typeInvite
usingchar_id
as the optional unique character identifier field is dispatched to the server. The message is equivalent to a dispatched packet of typeSquadMembershipResponse
with anInvite
event with the referral field set totrue
.- squad_guid
the squad's GUID
- slot
a potentially valid slot index; 0-9; higher numbers produce no response
- char_id
the unique character identifier
- name
the character's name; frequently, though that does not produce a coherent message, the avatar's own name is supplied in the event message instead of the name of another player
- See also
SquadMembershipResponse
- final case class SquadListing(index: Int = 255, listing: Option[SquadInfo] = None) extends Product with Serializable
An indexed entry in the listing of squads.
An indexed entry in the listing of squads.
- index
the listing entry index for this squad; zero-based; 255 is the maximum index and is reserved to indicate the end of the listings for the packet
- listing
the squad data;
None
when the index is 255, or when invoking a "remove" action on any squad at a known index
- final case class SquadMemberEvent(action: MemberEvent.Value, unk2: Int, char_id: Long, position: Int, player_name: Option[String], zone_number: Option[Int], outfit_id: Option[Long]) extends PlanetSideGamePacket with Product with Serializable
- final case class SquadMembershipRequest(request_type: types.SquadRequestType.Value, char_id: Long, unk3: Option[Long], player_name: String, unk5: Option[Option[String]]) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the client as manipulation protocol for squad and platoon members.
Dispatched by the client as manipulation protocol for squad and platoon members. Answerable by a
SquadMembershipResponse
packet.- request_type
the purpose of the request
- char_id
a squad member unique identifier; usually, the player being addresses by thie packet
- unk3
na
- player_name
name of the player being affected, if applicable
- unk5
na
- final case class SquadMembershipResponse(request_type: types.SquadResponseType.Value, unk1: Int, unk2: Int, char_id: Long, other_id: Option[Long], player_name: String, unk5: Boolean, unk6: Option[Option[String]]) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the server as message generation protocol for squad and platoon members.
Dispatched by the server as message generation protocol for squad and platoon members. Prompted by and answers for a
SquadMembershipRequest
packet.- request_type
the purpose of the request
- unk1
na
- unk2
na
- char_id
a squad member unique identifier; usually, the player being addresses by thie packet
- other_id
another squad member's unique identifier; may be the same as
char_id
- player_name
name of the player being affected, if applicable
- unk5
adjusts the nature of the request-type response based on the message recipient
- unk6
na; the internal field, the
Option[String]
, never seems to be set
request_type
(enum value) /unk5
state (false
/true
)
----------------------------------------Invite
(0)
false => [PROMPT] "player_name
has invited you into a squad." [YES/NO]
true => "You have invitedplayer_name
to join your squad."ProximityInvite
(1)
false => n/a
true => n/aAccept
(2)
false => "player_name
has accepted your invitation to join into your squad.
"You have formed a squad and are now that squad's commander." (if first time)
true => "You have accepted an invitation to join a squad."
"You have successfully joined a squad for the first time." (if first time)Reject
(3)
false => "player_name
does not want to join your squad at this time."
true => "You have declined an invitation to join a squad."Cancel
(4)
false => "player_name
has withdrawn his invitation."
true => "You have canceled your invitation toplayer_name
."Leave
(5)
false => "The Squad Leader has kicked you out of the squad."
true => "You have kickedplayer_name
out of the squad."Disband
(6)
false => "The squad has been disbanded."
true => "You have disbanded the squad."PlatoonInvite
(7)
false => [PROMPT] "player_name
has invited you into a platoon." [YES/NO]
true => "You have invitedplayer_name
's squad to join your platoon."PlatoonAccept
(8) false => "player_name
has accepted your invitation to join into your platoon.
"You have formed a platoon and are now that platoon commander." (if first time)
true => "You have accepted an invitation to join a platoon."
"You have successfully joined a platoon for the first time." (if first time)PlatoonReject
(9)
false => "player_name
does not want to join your platoon at this time."
true => "You have declined an invitation to join a platoon."PlatoonCancel
(10)
false => "player_name
has withdrawn his invitation."
true => "You have declined your invitation toplayer_name
." (nonsense?)PlatoonLeave
(11)
false => "The Platoon Leader has kicked you out of the platoon."
true => "You have kickedplayer_name
's squad out of the platoon."PlatoonDisband
(12)
false => "The platoon has been disbanded."
true => "You have disbanded the platoon."
- final case class SquadPositionDetail(is_closed: Option[Boolean], role: Option[String], detailed_orders: Option[String], requirements: Option[Set[Certification]], char_id: Option[Long], name: Option[String]) extends Product with Serializable
Information regarding a squad's position as a series of common fields.
Information regarding a squad's position as a series of common fields. When parsed in an itemized way, only the important fields are represented. When parsed in a continuous manner, all of the fields are populated. All fields are optional for that reason.
- is_closed
availability, whether the position can be occupied by a player; an unavailable position is referenced as "Closed" and no other position detail is displayed; an available unoccupied position is "Available"
- role
the title of the position
- detailed_orders
the suggested responsibilities of the position
- requirements
the actual responsibilities of the position
- char_id
the unique character identification number for the player that is occupying this position
- name
the name of the player who is occupying this position
- final case class SquadPositionEntry(index: Int, info: Option[SquadPositionDetail]) extends Product with Serializable
A container for squad position field data associating what would be the ordinal position of that field data in full squad data.
A container for squad position field data associating what would be the ordinal position of that field data in full squad data.
- index
the index for this squad position; expected to be a number 0-9 or 255; when 255, this indicated the end of enumerated squad position data and the data for that position is absent
- info
the squad position field data
- final case class SquadState(guid: PlanetSideGUID, info_list: List[SquadStateInfo]) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the server to update a squad member's representative icons on the continental maps and the interstellar map.
This packet must be preceded by the correct protocol to assign any character who is defined bychar_id
ininfo_list
as a member of this client's player's assigned squad by means of associating that saidchar_id
.Dispatched by the server to update a squad member's representative icons on the continental maps and the interstellar map.
This packet must be preceded by the correct protocol to assign any character who is defined bychar_id
ininfo_list
as a member of this client's player's assigned squad by means of associating that saidchar_id
. The said preceding protocol also assigns the player's current zone (continent) and their ordinal position in the squad.- guid
the squad's unique identifier; must be consistent per packet on a given client; does not have to be the global uid of the squad as according to the server
- info_list
information about the members in this squad who will be updated
- See also
SquadMemberEvent
- final case class SquadStateInfo(char_id: Long, health: Int, armor: Int, pos: Vector3, unk4: Int, unk5: Int, unk6: Boolean, unk7: Int, unk8: Option[Int], unk9: Option[Boolean]) extends Product with Serializable
Information about a specific squad member.
Information about a specific squad member.
- char_id
the character's unique identifier
- health
the character's health value percentage, divided into 64 units
- armor
the character's armor value percentage, divided into 64 units
- pos
the world coordinates of the character
- unk4
na; usually, 2
- unk5
na; usually, 2
- unk6
na; usually, false
- unk7
na
- unk8
na; if defined, will be defined with unk9
- unk9
na; if defined, will be defined with unk8
- final case class SquadWaypointEvent(event_type: WaypointEventAction.Value, unk: Int, char_id: Long, waypoint_type: SquadWaypoint, unk5: Option[Long], waypoint_info: Option[WaypointEvent]) extends PlanetSideGamePacket with Product with Serializable
- final case class SquadWaypointRequest(request_type: WaypointEventAction.Value, char_id: Long, waypoint_type: SquadWaypoint, unk4: Option[Long], waypoint_info: Option[WaypointInfo]) extends PlanetSideGamePacket with Product with Serializable
na
na
- request_type
the action to be performed
- char_id
the unique id of player setting the waypoint
- waypoint_type
the waypoint being updated; 0-3 for the standard squad waypoints numbered "1-4"; 4 for the squad leader experience waypoint; cycles through 0-3 continuously
- unk4
na
- waypoint_info
essential data about the waypoint
- sealed abstract class Statistic extends AnyRef
na
- final case class StormInfo(loc: Vector3, intensity: Int, radius: Int) extends Product with Serializable
Storm data.
Storm data.
- loc
the location of the storm; the z-component is always
0.0f
- intensity
na
- radius
na; 100 is about 819.2
- class StreamLengthToken extends AnyRef
A container that should be used to keep track of the current length of a stream of bits.
- final case class StrokeFive(x: Float, y: Float, unk: Float) extends DiagramStroke with Product with Serializable
na
na
- x
the x-coordinate of this point
- y
the y-coordinate of this point
- unk
na; 1024.0f - 0.0f
- final case class StrokeSeven(unk: Int) extends DiagramStroke with Product with Serializable
na
na
- unk
na
- final case class Style(thickness: Float, color: Int) extends DiagramStroke with Product with Serializable
Set style properties for the line segemnt(s) to be drawn.
Set style properties for the line segemnt(s) to be drawn. Color and thickness can not vary within a given line and will only apply to the subsequent line segments. Attempting to list a change in between coordinate points will invalidate that segment.
- thickness
the line width in pixels; 0.0f - 16.0f; 3.0f is about normal and 0.0f is smaller than the map grid lines
- color
the color of the line; 0 is gray (default); 1 is red; 2 is green; 3 is blue
- final case class TargetInfo(target_guid: PlanetSideGUID, health: Float, armor: Float = 0f) extends Product with Serializable
An entry regarding a target's health and, if applicable, any secondary defensive option they possess, hitherto, "armor."
An entry regarding a target's health and, if applicable, any secondary defensive option they possess, hitherto, "armor."
- target_guid
the target
- health
the amount of health the target has, as a percentage of a filled bar scaled between 0f and 1f inclusive
- armor
the amount of armor the target has, as a percentage of a filled bar scaled between 0f and 1f inclusive; defaults to 0f
- final case class TargetRequest(target_guid: PlanetSideGUID, unk: Boolean) extends Product with Serializable
An entry regarding a specific target.
An entry regarding a specific target.
- target_guid
the target
- unk
na
- final case class TargetingImplantRequest(target_list: List[TargetRequest]) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the client when the advanced targeting implant activates to collect status information from the server.
This packet is answered by aTargetingInfoMessage
withList
entries of thed corresponding UIDs.Dispatched by the client when the advanced targeting implant activates to collect status information from the server.
This packet is answered by aTargetingInfoMessage
withList
entries of thed corresponding UIDs.- target_list
a
List
of targets
- final case class TargetingInfoMessage(target_list: List[TargetInfo]) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the server to update status information regarding the listed targets.
This packet is often in response to a client-sentTargetingImplantRequest
packet, when related to the implant's operation.Dispatched by the server to update status information regarding the listed targets.
This packet is often in response to a client-sentTargetingImplantRequest
packet, when related to the implant's operation. It can also arrive independent of a formal request and will operate even without the implant. The enumerated targets report their status as two "progress bars" that can be empty (0f) or filled (1f). When this packet is received, the client will actually update the current fields associated with those values for the target. For example, for0x17
player characters, the values are assigned to their health points and armor points respectively. Allied player characters will have their "progress bar" visuals updated immediately; the implant is still necessary to view enemy target progress bars, if they will be visible.
This function can be used to update fields properly. The value between 0 and 255 (0f to 1f) can be inserted directly intoObjectCreateMessage
creations as it matches the scale. The target will be killed or destroyed as expected when health is set to zero.- target_list
a list of targets
- final case class TimeOfDayMessage(time: Long, unk: Long = 1092616192L) extends PlanetSideGamePacket with Product with Serializable
Sets Auraxis time for a continent (zone) on the client.
Sets Auraxis time for a continent (zone) on the client. Use the slash-command
/time
to view the current time in the event window. Auraxis time is represented as a standard military twenty-four hour clock, displayed in hours and minutes.
Time is set per zone on map loading. Time affects, primarily, ambient light on surfaces. It goes from full daylight, to twilights, to slightly darker nights, though the actual intensity will differ by zone.
Auraxis time is weird. The data from the server is deconstructed into both a current time and a rate of progression. The lower the value, the lower the rate; the greater the value, the greater the rate. The rate is the product of the number of "cycles" between the current time and an origin time and a base interval. The current time is constrained to a looping twenty-four hour interval.
If no time is set, the client starts counting from 10:00 at an initial rate of about one Auraxis minute every four or five real seconds. Setting the current time to 1107296256 sets the current time to 00:00 with an indeterminate, but slow, rate. Time is normally initialized somewhere within an interval between 1174405120 and 1207959296. Setting the current time extremely high (near the numerical maximum) can cause psychedelic rendering. (Setting the time to 4294967040 exactly will reduce the rendering system to gibberish.)
The interval from 1178164736 (~03:18) to 1203765248 (03:18) is about a full twenty-four hours. That is a count of 25600512.- time
Auraxis time
- unk
consistently 1092616192; does nothing?
- sealed trait Trade extends AnyRef
- final case class TradeFour(value: Int, unk: Int) extends Trade with Product with Serializable
- final case class TradeMessage(trade: Trade) extends PlanetSideGamePacket with Product with Serializable
- final case class TradeOne(value: Int, unk1: PlanetSideGUID, unk2: PlanetSideGUID, unk3: PlanetSideGUID) extends Trade with Product with Serializable
- final case class TradeThree(value: Int, unk: PlanetSideGUID) extends Trade with Product with Serializable
- final case class TradeTwo(value: Int, unk1: PlanetSideGUID, unk2: PlanetSideGUID) extends Trade with Product with Serializable
- final case class TrainingZoneMessage(zone: PlanetSideGUID, unk: Int = 0) extends PlanetSideGamePacket with Product with Serializable
Dispatched when the player wants to go to the training zones.
Dispatched when the player wants to go to the training zones. When a player enters the virtual reality hallways behind sanctuary spawn rooms and walks to the base of the ramp, he is presented with a prompt. From the prompt, the player accepts either "Shooting Range" or "Vehicle Training Area."
Both sets of training zones utilize the same map for their type -map14
for shooting andmap15
for vehicles. The factions are kept separate so there are actually six separated zones - two each - to accommodate the three factions. There is no global map notation, i.e.,map##
, for going to a faction-instance training zone map. The zone modifier is used in conjunction with theLoadMapMessage
packet to determine the faction-instance of the training map.
Players are sent to their respective empire's area by default. A TR player utilizing the virtual reality hallway in the NC sanctuary and will still only be offered the TR virtual reality areas. Black OPs do not have normal access to virtual reality areas.
Zone:
17 -11
- TR Shooting Range
18 -12
- NC Shooting Range
19 -13
- VS Shooting Range
20 -14
- TR Vehicle Training Area
21 -15
- NC Vehicle Training Area
22 -16
- VS Vehicle Training Area- zone
the virtual reality zone to send the player
- unk
na; always 0?
- final case class TriggerEffectMessage(object_guid: PlanetSideGUID, effect: String, unk: Option[TriggeredEffect] = None, location: Option[TriggeredEffectLocation] = None) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the server to cause a client to display a special graphical effect.
The effect being triggered can be based around a specific game object or replayed freely, absent of an anchoring object.Dispatched by the server to cause a client to display a special graphical effect.
The effect being triggered can be based around a specific game object or replayed freely, absent of an anchoring object. If object-based then the kinds of effects that can be activated are specific to the object. If unbound, then a wider range of effects can be displayed. Regardless, one category will rarely ever be activated under the same valid conditions of the other category. For example, the effect "on" will only work on objects that accept "on" normally, like a deployedmotionalarmsensor
. The effect "spawn_object_effect" can be applied anywhere in the environment; but, it can not be activated in conjunction with an existing object.- object_guid
an object that accepts the effect
- effect
the name of the effect
- unk
na; when activating an effect on an existing object
- location
an optional position where the effect will be displayed; when activating an effect independently
- final case class TriggerEnvironmentalDamageMessage(unk1: Int, target_guid: PlanetSideGUID, unk2: Long) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the server to render a "damage cloud" around a target.
Exploration:
This is not common but it happened while on Gemini Live.Dispatched by the server to render a "damage cloud" around a target.
Exploration:
This is not common but it happened while on Gemini Live. Why does it happen?- unk1
na; usually 2; when 2, will generate a short dust cloud around the
target_guid
; if a player, will cause the "damage grunt animation" to occur, whether or not there is a dust cloud- target_guid
the target around which to generate the temporary damage effect
- unk2
na; usually 5L
- final case class TriggerSoundMessage(sound: TriggeredSound.Value, pos: Vector3, unk: Int, volume: Float) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the server to cause a sound to be played at a certain location in the world.
Dispatched by the server to cause a sound to be played at a certain location in the world.
- sound
the kind of sound
- pos
the location where the sound gets played
- unk
na; may be radius
- volume
the volume of the sound at the origin (0.0f - 1.0f)
- final case class TriggeredEffect(unk1: Boolean, unk2: Long) extends Product with Serializable
na
na
- unk1
na;
true
to apply the effect usually- unk2
na
- final case class TriggeredEffectLocation(pos: Vector3, orient: Vector3) extends Product with Serializable
Activate an effect that is not directly associated with an existing game object.
Activate an effect that is not directly associated with an existing game object. Without a game object from which to inherit position and orientation, those explicit parameters must be provided.
- pos
the position in the game world
- orient
the angle of orientation
- final case class UnuseItemMessage(player_guid: PlanetSideGUID, item_guid: PlanetSideGUID) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the client when its player is done using something.
The common example is sifting through backpacks, an activity that only one player is allowed to do at a time.Dispatched by the client when its player is done using something.
The common example is sifting through backpacks, an activity that only one player is allowed to do at a time. When a backpack is accessed by one player, other players are blocked. When the first player is done accessing the backpack, this packet informs the server so other players may be allowed access.- player_guid
the player
- item_guid
the item
- final case class UpdateStatistic(category: StatisticalCategory, unk: StatisticalElement, fields: List[Long]) extends Statistic with ComplexStatistic with Product with Serializable
- category
na
- unk
na
- fields
four pairs of values that add together to produce the first column(s) on the statistics spreadsheet; organized as TR, NC, VS, BO (PS)
- final case class UseItemMessage(avatar_guid: PlanetSideGUID, item_used_guid: PlanetSideGUID, object_guid: PlanetSideGUID, unk2: Long, unk3: Boolean, unk4: Vector3, unk5: Vector3, unk6: Int, unk7: Int, unk8: Int, object_id: Long) extends PlanetSideGamePacket with Product with Serializable
(Where the child object was before it was moved is not specified or important.)
(Where the child object was before it was moved is not specified or important.)
- avatar_guid
the player
- item_used_guid
the item used; e.g. a REK to hack or a medkit to heal.
- object_guid
the object affected; e.g., door when opened, terminal when accessed, avatar when medkit used
- unk2
na; when upgrading phalanx turrets, 1 for
AVCombo
and 2 forFlakCombo
- unk3
using tools, e.g., a REK or nano-dispenser
- unk4
seems to be related to T-REK viruses. 0 - unlock all doors 1 - disable linked benefits 2 - double ntu drain 3 - disable enemy radar 4 - access equipment terminals
- unk6
na
- unk7
na; 25 when door 223 when terminal
- unk8
na; 0 when door 1 when use rek (252 then equipment term)
- object_id
the object id
object_guid
's object
- See also
Definition.ObjectId
TurretUpgrade
- final case class VNLWorldStatusMessage(welcomeMessage: String, worlds: Vector[WorldInformation]) extends PlanetSideGamePacket with Product with Serializable
- final case class VehicleStateMessage(vehicle_guid: PlanetSideGUID, unk1: Int, pos: Vector3, ang: Vector3, vel: Option[Vector3], flying: Option[Int], unk3: Int, unk4: Int, wheel_direction: Int, is_decelerating: Boolean, is_cloaked: Boolean) extends PlanetSideGamePacket with Product with Serializable
Dispatched to report and update the operational condition of a given vehicle.
Dispatched to report and update the operational condition of a given vehicle.
- vehicle_guid
the vehicle
- unk1
na
- pos
the xyz-coordinate location in the world
- ang
the orientation of the vehicle
- vel
optional movement data
- flying
flight information, valid only for a vehicle that can fly when in flight;
Some(7)
, when in a flying state (vertical thrust unnecessary to unlock movement);Some(10) - Some(15)
, used by the HART during landing and take-off, in repeating order: 13, 14, 10, 11, 12, 15;None
, when landed and for all vehicles that do not fly- unk3
na
- unk4
na; 0 by default; for mosquito, can become various numbers during collision damage
- wheel_direction
for ground vehicles, whether and how much the wheels are being turned; 15 for straight; 0 for hard right; 30 for hard left; values in between are possible; vehicles that hover also influence this field as expected
- is_decelerating
If the vehicle is decelerating (in any direction), i.e. if the brake lights are on.
- is_cloaked
vehicle is cloaked by virtue of being a Wraith or a Phantasm
- See also
PlacementData
- final case class VehicleSubStateMessage(vehicle_guid: PlanetSideGUID, player_guid: PlanetSideGUID, vehicle_pos: Vector3, vehicle_ang: Vector3, vel: Option[Vector3], unk1: Boolean, unk2: Option[List[Boolean]]) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the client of a driver who is involved in a collision with another vehicle that has no driver.
Dispatched by the client of a driver who is involved in a collision with another vehicle that has no driver. May be supplemented with
GenericCollisionMsg
packets that call out both vehicles. Multiple packets may be generated for a single event representing either entanglement, escalation, or a lack of resolution.- vehicle_guid
the vehicle that was collided with
- player_guid
the player who drove into the vehicle
- vehicle_pos
the xyz-coordinates of the displaced collision vehicle in reference to the player's client
- vehicle_ang
the orientation of the displaced collision vehicle in reference to the player's client
- vel
optional velocity (unknown)
- unk1
na
- unk2
na
- final case class Vertex(x: Float, y: Float) extends DiagramStroke with Product with Serializable
Indicate coordinates on the tactical map.
Indicate coordinates on the tactical map. Any adjacent sets of coordinates will be connected with a line segment.
- x
the x-coordinate of this point
- y
the y-coordinate of this point
- final case class VoiceHostInfo(player_guid: PlanetSideGUID, data: ByteVector) extends PlanetSideGamePacket with Product with Serializable
Used by PlanetSide in conjunction with wiredred/pscs.exe to establish local platoon/squad voice chat.
Used by PlanetSide in conjunction with wiredred/pscs.exe to establish local platoon/squad voice chat. We are not focusing on implementation of this feature. This packet should not be generated because
VoiceHostRequest
will be ignored.- player_guid
the player who sent this info (the originator of voice chat?)
- data
everything else
- final case class VoiceHostKill() extends PlanetSideGamePacket with Product with Serializable
Used by PlanetSide in conjunction with wiredred/pscs.exe to establish local platoon/squad voice chat.
Used by PlanetSide in conjunction with wiredred/pscs.exe to establish local platoon/squad voice chat. We are not focusing on implementation of this feature. As a precaution, all attempts at sending
VoiceHostRequest
should be replied to with aVoiceHostKill
. This packet seems to publish no data. - final case class VoiceHostRequest(unk: Boolean, player_guid: PlanetSideGUID, data: ByteVector) extends PlanetSideGamePacket with Product with Serializable
Used by PlanetSide in conjunction with wiredred/pscs.exe to establish local platoon/squad voice chat.
Used by PlanetSide in conjunction with wiredred/pscs.exe to establish local platoon/squad voice chat. We are not focusing on implementation of this feature. At the most, we will merely record data about who requested it.
- unk
na
- player_guid
the player who sent this request
- data
everything else
- final case class WarpQueuePrompt(queue_size: Long, place: Long) extends Product with Serializable
Information displayed on the zone warp queue in terms of queue size and queue progression.
Information displayed on the zone warp queue in terms of queue size and queue progression.
- queue_size
the number of players trying to warp to this zone in the queue ('b' if a/b)
- place
the player's spot in the queue ('a' if a/b)
- final case class WarpgateLinkOverrideMessage(links: List[LinkOverride]) extends PlanetSideGamePacket with Product with Serializable
- final case class WarpgateRequest(from_zone: PlanetSideGUID, from_gate_guid: PlanetSideGUID, to_gate_mapid: PlanetSideGUID, to_zone: PlanetSideGUID, unk1: Int, unk2: Int) extends PlanetSideGamePacket with Product with Serializable
Alert the server that a player wishes to engage in warp gate transport.
This packet is dispatched after a player interacts with the transportation beam in the center of a warp gate.Alert the server that a player wishes to engage in warp gate transport.
This packet is dispatched after a player interacts with the transportation beam in the center of a warp gate. The player has either chosen a destination from the Interstellar Map or was assigned a fixed destination. When the the destination is limited to a specific continent and warp gate - "fixed" - the destination fields can be blanked. Otherwise, they must be specified. The process of gate transportation should not start until the server responds to this packet.
Exploration 1:
Does this packet apply to geowarp transport as well?- from_zone
the continent (zone)
- from_gate_guid
the warp gate
- to_gate_mapid
the destination warp gate
- to_zone
the destination continent (zone)
- unk1
na; always zero?
- unk2
na; always zero?
- final case class Waypoint(x: Float, y: Float) extends Product with Serializable
The position of a waypoint in the game world.
The position of a waypoint in the game world. Only two coordinates are required as the beam travels from a specific height to ground level.
- x
the x-coordinate of the waypoint
- y
the y-coordinate of the waypoint
- final case class WaypointEvent(zone_number: Int, pos: Vector3, unk: Int) extends Product with Serializable
- final case class WaypointInfo(zone_number: Int, pos: Vector3) extends Product with Serializable
na
na
- zone_number
the zone
- pos
the continental map coordinate location of the waypoint; the z-coordinate is almost always 0.0
- final case class WeaponDelayFireMessage(seq_time: Int, weapon_guid: PlanetSideGUID) extends PlanetSideGamePacket with Product with Serializable
WeaponDelayFireMessage seems to be sent when a weapon has a delayed projectile after firing, such as the knife.
WeaponDelayFireMessage seems to be sent when a weapon has a delayed projectile after firing, such as the knife.
See PlayerStateMessageUpstream for explanation of seq_time.
- final case class WeaponDryFireMessage(weapon_guid: PlanetSideGUID) extends PlanetSideGamePacket with Product with Serializable
Instructs client to play a weapon's dryfire sound when sent server to client.
Instructs client to play a weapon's dryfire sound when sent server to client.
The particular sound played depends on the type of weapon that the guid is (likely from adb gamedata). See also WeaponJammedMessage
- weapon_guid
the weapon that is dry firing
- final case class WeaponFireMessage(seq_time: Int, weapon_guid: PlanetSideGUID, projectile_guid: PlanetSideGUID, shot_origin: Vector3, unk1: Int, spread_a: Int, spread_b: Int, max_distance: Int, unk5: Int, projectile_type: ProjectileCharacteristics, thrown_projectile_vel: Option[Option[Vector3]]) extends PlanetSideGamePacket with Product with Serializable
Dispatched form the client each time a weapon discharges.
Dispatched form the client each time a weapon discharges.
- seq_time
see PlayerStateMessageUpstream for explanation of seq_time
- weapon_guid
the weapon of discharge; when dispatched to a client, an unreferenced entity results in the projectile not being rendered
- projectile_guid
the (client-local) projectile unique identifier; when dispatched to a client, can be unreferenced (or blanked)
- shot_origin
the position where the projectile is first spawned
- unk1
na; always 0?
- spread_a
related to the spread of the discharge; works with
spread_b
field in unknown way; the unmodified value is high (65535) when accurate, low (0) when not- spread_b
related to the spread of the discharge; works with
spread_a
field in unknown way- max_distance
maximum travel distance (m), with exceptions, e.g., decimator rockets are always 0
- unk5
na; always 255?
- projectile_type
the sort of projectile produced
- thrown_projectile_vel
if a thrown projectile, its velocity
- final case class WeaponJammedMessage(weapon_guid: PlanetSideGUID) extends PlanetSideGamePacket with Product with Serializable
Instructs client to play the weapon jammed sound when sent server to client.
Instructs client to play the weapon jammed sound when sent server to client.
Appears to have the same functionality and sound regardless of guid, as long as the client has that item in inventory. See also WeaponDryFireMessage
- weapon_guid
the weapon that is jammed
- final case class WeaponLazeTargetPositionMessage(weapon_uid: PlanetSideGUID, player_pos: Vector3, lazed_pos: Vector3) extends PlanetSideGamePacket with Product with Serializable
Dispatched to the server when a position is being marked by a laze pointer tool.
When the laze tool is used, a progress bar window is displayed, along with the text "Acquiring Target Position." The player using the tool constantly sends packets to the server for as long as the progress bar is filling.Dispatched to the server when a position is being marked by a laze pointer tool.
When the laze tool is used, a progress bar window is displayed, along with the text "Acquiring Target Position." The player using the tool constantly sends packets to the server for as long as the progress bar is filling. In all, about fifty packets are sent. (Measured during low-load testing. The actual number of packets may be related to network load.)
While firing, the player's movement is locked for the duration. The weapon fire can be aborted at any time, returning control.- weapon_uid
the laze pointer tool
- player_pos
the position of (the player holding the) laze pointer
- lazed_pos
position of the tip of the laze pointer's beam, or where it intersects something
- final case class WeatherMessage(clouds: List[CloudInfo], storms: List[StormInfo]) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the server to update weather conditions.
Dispatched by the server to update weather conditions. On former live (Gemini), the server sent a new packet to connected clients once every ~60s.
Information about the fields in this packet come from extracted debug information. It is not necessarily "correct" but it is the best approximation for now.
Message type: %d (%s)\n length: %d\n
Number of Clouds : %d\n
Cloud ID: %d\n
\tCloud Location: %f %f\n
\tCloud Velocity: %f %f\n
Number of Storms : %d\n
Storm:\n
\tStorm Location: %f %f\n
\tStorm Intensity: %d\n
\tStorm Radius: %d\n
- clouds
a list of cloud data; typically, just one entry
- storms
a list of storm data; typically, fluctuates between nine and eleven entries
- final case class WorldConnectionInfo(address: InetSocketAddress) extends Product with Serializable
- final case class WorldInformation(name: String, status: WorldStatus.Value, serverType: ServerType, connections: Vector[WorldConnectionInfo], empireNeed: types.PlanetSideEmpire.Value) extends Product with Serializable
- final case class ZipLineMessage(player_guid: PlanetSideGUID, forwards: Boolean, action: Int, path_id: Long, pos: Option[Vector3] = None) extends PlanetSideGamePacket with Product with Serializable
Dispatched by the client when the player is interacting with a zip line.
Dispatched by the client when the player is interacting with a zip line. Dispatched by the server to instruct the client to use the zip line. Cavern teleportation rings also count as "zip lines" as far as the game is concerned, in that they use this packet.
Action:
0 - Attach to a node
1 - Arrived at destination
2 - Forcibly detach from zip line in mid-transit
- player_guid
the player
- forwards
true if the player is travelling in the direction of the light pulses
- action
how the player interacts with the zip line
- path_id
the path id that this zipline belongs to, from the relevant .zpl file
- pos
the coordinates of the point where the player is interacting with the zip line; "optional," in theory
- final case class ZoneForcedCavernConnectionsMessage(zone: Int, unk: Int) extends PlanetSideGamePacket with Product with Serializable
Dispatched to the client in regards to cavern connections via geowarp gates.
Dispatched to the client in regards to cavern connections via geowarp gates.
- zone
the zone
- unk
determines the number and composition of cavern links assuming two geowarps per continent the logic seems to be roughly: 0 - gate A disabled, B active 1 - gate A active, B disabled 2 - gate A and B active 3 - same as 2 (no change in destination) Destinations also change (north/south/east/west), but seemingly only to two of the currently active caverns can be linked to?
- final case class ZoneInfoMessage(zone: Int, empire_status: Boolean, lock_time: Long) extends PlanetSideGamePacket with Product with Serializable
Change the "Empire Status" text in the Interstellar Map zone description for the specified zone.
Change the "Empire Status" text in the Interstellar Map zone description for the specified zone. The Empire Incentives window also displays the changed information.
TheLong
value is applicable to the caverns. It indicates how long the given cavern will remain locked until at least one of their geowarps will open during normal rotation. As thus, when a cavern has its status as "inactive," this number will always be a non-zero. On normal continents, this number is always zero, though a non-zero number will not have any effect anyway.- zone
the zone id
- empire_status
true
displays the queue availability for the avatar's empire;false
displays "Inactive"- lock_time
how long until the continent naturally unlocks (in ms); only applicable to caverns
- See also
ZonePopulationUpdateMessage
for information on population and queues
- final case class ZoneLockInfoMessage(zone: Int, lock_status: Boolean, unk: Boolean) extends PlanetSideGamePacket with Product with Serializable
Change the "Empire Status" text in the Interstellar Map zone description for the specified zone.
Change the "Empire Status" text in the Interstellar Map zone description for the specified zone. The Empire Incentives window also displays the changed information.
- zone
the zone id
- lock_status
true
displays "Locked;"false
displays the queue availability for the avatar's empire- unk
na; usually
true
- final case class ZonePopulationUpdateMessage(zone_id: Int, zone_queue: Long, tr_queue: Long, tr_pop: Long, nc_queue: Long, nc_pop: Long, vs_queue: Long, vs_pop: Long, bo_queue: Long = 0L, bo_pop: Long = 0L) extends PlanetSideGamePacket with Product with Serializable
Report the raw numerical population for a zone (continent).
Populations are displayed as percentages of the three main empires against each other.Report the raw numerical population for a zone (continent).
Populations are displayed as percentages of the three main empires against each other. Populations specific to a zone will be displayed in the Incentives window for that zone. Populations in all zones will contribute to the Global Population window and the Incentives window for the server. The Black OPs population does not show up in the Incentives window for a zone but will be indirectly represented in the other two windows. This packet also shifts the flavor text for that zone.
The size of zone's queue is the final upper population limit for that zone. Common values for the zone queue fields are 0 (locked) and 414 positions. When a continent can not accept any players at all, a lock icon will appear over its view pane in the Interstellar View. Setting the zone's queue to zero will also render this icon.
The individual queue fields set the maximum empire occupancy for a zone that is represented in the zone Incentives text. Common values for the empire queue fields are 0 (locked population), 138 positions, and 500 positions. Zone Incentives text, however, will never report more than a "100+" vacancy. The actual limits are probably set based on server load. The latter queue value is typical for VR area zones.
The value of the zone queue trumps the sum of all individual empire queues. Regardless of individual queues, once total zone population matches the zone queue size, all populations will lock. For normal zones, if the individual queues are not set properly, whole empires can even be locked out of a zone for this reason. In the worst case, other empires are allowed enough individual queue vacancy that they can occupy all the available slots. Sanctuary zones possess strange queue values that are occasionally zero'd. They do not have a lock icon and may not limit populations the same way as normal zones.- zone_id
the continent
- zone_queue
the maximum population of all three (four) empires that can join this zone
- tr_queue
the maximum number of TR players that can join this zone
- tr_pop
the current TR population in this zone
- nc_queue
the maximum number of NC players that can join this zone
- nc_pop
the current NC population in this zone
- vs_queue
the maximum number of VS players that can join this zone
- vs_pop
the VS population in this zone
- bo_queue
the maximum number of Black OPs players that can join this zone
- bo_pop
the current Black OPs population in this zone
Value Members
- object ActionCancelMessage extends Marshallable[ActionCancelMessage] with Serializable
- object ActionProgressMessage extends Marshallable[ActionProgressMessage] with Serializable
- object ActionResultMessage extends Marshallable[ActionResultMessage] with Serializable
- object AggravatedDamageMessage extends Marshallable[AggravatedDamageMessage] with Serializable
- object ArmorChangedMessage extends Marshallable[ArmorChangedMessage] with Serializable
- object AvatarAwardMessage extends Marshallable[AvatarAwardMessage] with Serializable
- object AvatarDeadStateMessage extends Marshallable[AvatarDeadStateMessage] with Serializable
- object AvatarFirstTimeEventMessage extends Marshallable[AvatarFirstTimeEventMessage] with Serializable
- object AvatarGrenadeStateMessage extends Marshallable[AvatarGrenadeStateMessage] with Serializable
- object AvatarImplantMessage extends Marshallable[AvatarImplantMessage] with Serializable
- object AvatarJumpMessage extends Marshallable[AvatarJumpMessage] with Serializable
- object AvatarSearchCriteriaMessage extends Marshallable[AvatarSearchCriteriaMessage] with Serializable
- object AvatarStatisticsMessage extends Marshallable[AvatarStatisticsMessage] with Serializable
- object AvatarVehicleTimerMessage extends Marshallable[AvatarVehicleTimerMessage] with Serializable
- object BattleDiagramAction extends Serializable
- object BattleExperienceMessage extends Marshallable[BattleExperienceMessage] with Serializable
- object BattleplanMessage extends Marshallable[BattleplanMessage] with Serializable
- object BeginZoningMessage extends Marshallable[BeginZoningMessage] with Serializable
- object BindPlayerMessage extends Marshallable[BindPlayerMessage] with Serializable
- object BindStatus extends Enumeration
The purpose of the
BindPlayerMessage
packet.
Bind
andUnbind
are generally manual actions performed by the player.The purpose of the
BindPlayerMessage
packet.
Bind
andUnbind
are generally manual actions performed by the player.Available
is applied to automatic Advanced Mobile Spawn points and other "Bound" points at the time of redeployment.Lost
andUnavailable
remove the status of being bound and have slightly different connotations. Each generates a different a events chat message if logging it turned on. - object BroadcastWarpgateUpdateMessage extends Marshallable[BroadcastWarpgateUpdateMessage] with Serializable
- object BugReportMessage extends Marshallable[BugReportMessage] with Serializable
- object BugType extends Enumeration
An
Enumeration
of the kinds of bugs applicable to the reporting system. - object BuildingInfoUpdateMessage extends Marshallable[BuildingInfoUpdateMessage] with Serializable
- object CaptureFlagUpdateMessage extends Marshallable[CaptureFlagUpdateMessage] with Serializable
- object CargoMountPointStatusMessage extends Marshallable[CargoMountPointStatusMessage] with Serializable
- object ChainLashMessage extends Marshallable[ChainLashMessage] with Serializable
- object ChangeAmmoMessage extends Marshallable[ChangeAmmoMessage] with Serializable
- object ChangeFireModeMessage extends Marshallable[ChangeFireModeMessage] with Serializable
- object ChangeFireStateMessage_Start extends Marshallable[ChangeFireStateMessage_Start] with Serializable
- object ChangeFireStateMessage_Stop extends Marshallable[ChangeFireStateMessage_Stop] with Serializable
- object ChangeShortcutBankMessage extends Marshallable[ChangeShortcutBankMessage] with Serializable
- object CharacterCreateRequestMessage extends Marshallable[CharacterCreateRequestMessage] with Serializable
- object CharacterInfoMessage extends Marshallable[CharacterInfoMessage] with Serializable
- object CharacterKnowledgeMessage extends Marshallable[CharacterKnowledgeMessage] with Serializable
- object CharacterNoRecordMessage extends Marshallable[CharacterNoRecordMessage] with Serializable
- object CharacterRequestAction extends Enumeration
- object CharacterRequestMessage extends Marshallable[CharacterRequestMessage] with Serializable
- object ChatChannel extends Enumeration
An
Enumeration
of the valid chat channels. - object ChatMsg extends Marshallable[ChatMsg] with Serializable
- object ChildObjectStateMessage extends Marshallable[ChildObjectStateMessage] with Serializable
- object CollisionIs extends IntEnum[CollisionIs]
- object ComponentDamageField extends Serializable
- object ComponentDamageMessage extends Marshallable[ComponentDamageMessage] with Serializable
- object ConnectToWorldMessage extends Marshallable[ConnectToWorldMessage] with Serializable
- object ConnectToWorldRequestMessage extends Marshallable[ConnectToWorldRequestMessage] with Serializable
- object ContinentalLockUpdateMessage extends Marshallable[ContinentalLockUpdateMessage] with Serializable
- object CreateShortcutMessage extends Marshallable[CreateShortcutMessage] with Serializable
- object DamageFeedbackMessage extends Marshallable[DamageFeedbackMessage] with Serializable
- object DamageMessage extends Marshallable[DamageMessage] with Serializable
- object DamageWithPositionMessage extends Marshallable[DamageWithPositionMessage] with Serializable
- object DataChallenge
- object DataChallengeMessage extends Marshallable[DataChallengeMessage] with Serializable
- object DataChallengeMessageResp extends Marshallable[DataChallengeMessageResp] with Serializable
- object DeadState extends Enumeration
An
Enumeration
of the various states aPlayer
may possess in the cycle of nanite life and death. - object DelayedPathMountMsg extends Marshallable[DelayedPathMountMsg] with Serializable
- object DensityLevelUpdateMessage extends Marshallable[DensityLevelUpdateMessage] with Serializable
- object DeployObjectMessage extends Marshallable[DeployObjectMessage] with Serializable
- object DeployOutcome extends Enumeration
An
Enumeration
for the forms of the event chat message produced by this packet. - object DeployRequestMessage extends Marshallable[DeployRequestMessage] with Serializable
- object DeployableIcon extends Enumeration
An
Enumeration
of the map element icons that can be displayed based on the type of deployable item. - object DeployableObjectsInfoMessage extends Marshallable[DeployableObjectsInfoMessage] with Serializable
- object DeploymentAction extends Enumeration
An
Enumeration
of the actions that can be performed upon a deployable item. - object DestroyDisplayMessage extends Marshallable[DestroyDisplayMessage] with Serializable
- object DestroyMessage extends Marshallable[DestroyMessage] with Serializable
- object DiagramActionCode extends Enumeration
A
Codec
for the actions that each layer of the diagram performs.A
Codec
for the actions that each layer of the diagram performs.Style
,Vertex
,Action5
,DrawString
, andAction7
have additionalDiagramStroke
input data. - object DisconnectMessage extends Marshallable[DisconnectMessage] with Serializable
- object DismountBuildingMsg extends Marshallable[DismountBuildingMsg] with Serializable
- object DismountVehicleCargoMsg extends Marshallable[DismountVehicleCargoMsg] with Serializable
- object DismountVehicleMsg extends Marshallable[DismountVehicleMsg] with Serializable
- object DisplayedAwardMessage extends Marshallable[DisplayedAwardMessage] with Serializable
- object DropItemMessage extends Marshallable[DropItemMessage] with Serializable
- object DroppodError extends IntEnum[DroppodError]
- object DroppodFreefallingMessage extends Marshallable[DroppodFreefallingMessage] with Serializable
- object DroppodLaunchInfo extends Serializable
- object DroppodLaunchRequestMessage extends Marshallable[DroppodLaunchRequestMessage] with Serializable
- object DroppodLaunchResponseMessage extends Marshallable[DroppodLaunchResponseMessage] with Serializable
- object DrowningTarget extends Serializable
- object EmoteMsg extends Marshallable[EmoteMsg] with Serializable
- object ExperienceAddedMessage extends Marshallable[ExperienceAddedMessage] with Serializable
- object FacilityBenefitShieldChargeRequestMessage extends Marshallable[FacilityBenefitShieldChargeRequestMessage] with Serializable
- object FavoritesAction extends Enumeration
- object FavoritesMessage extends Marshallable[FavoritesMessage] with Serializable
- object FavoritesRequest extends Marshallable[FavoritesRequest] with Serializable
- object FireHintMessage extends Marshallable[FireHintMessage] with Serializable
- object FlagInfo extends Marshallable[FlagInfo] with Serializable
- object FrameVehicleStateMessage extends Marshallable[FrameVehicleStateMessage] with Serializable
- object Friend extends Marshallable[Friend] with Serializable
- object FriendsRequest extends Marshallable[FriendsRequest] with Serializable
- object FriendsResponse extends Marshallable[FriendsResponse] with Serializable
- object GamePropertyScope
- object GamePropertyTarget
- object GenericAction extends IntEnum[GenericAction]
- object GenericActionMessage extends Marshallable[GenericActionMessage] with Serializable
- object GenericCollisionMsg extends Marshallable[GenericCollisionMsg] with Serializable
- object GenericObjectActionAtPositionMessage extends Marshallable[GenericObjectActionAtPositionMessage] with Serializable
- object GenericObjectActionEnum extends Enumeration
- object GenericObjectActionMessage extends Marshallable[GenericObjectActionMessage] with Serializable
- object GenericObjectStateMsg extends Marshallable[GenericObjectStateMsg] with Serializable
- object HackMessage extends Marshallable[HackMessage] with Serializable
- object HackState extends Enumeration
An
Enumeration
of the various states and activities of the hacking process.An
Enumeration
of the various states and activities of the hacking process. These values are closely tied to the condition of the hacking progress bar and/or the condition of the hacked object.
Start
initially displays the hacking progress bar.
Ongoing
is a neutral state that keeps the progress bar displayed while its value updates. (unconfirmed?)
Finished
disposes of the hacking progress bar. It does not, by itself, mean the hack was successful.
Hacked
modifies the target of the hack.
HackCleared
modifies the target of the hack, opposite ofHacked
. - object HitHint extends Marshallable[HitHint] with Serializable
- object HitMessage extends Marshallable[HitMessage] with Serializable
- object HotSpotInfo extends Marshallable[HotSpotInfo] with Serializable
- object HotSpotUpdateMessage extends Marshallable[HotSpotUpdateMessage] with Serializable
- object ImplantAction extends Enumeration
An
Enumeration
for all the actions that can be applied to implants and implant slots. - object InvalidTerrainMessage extends Marshallable[InvalidTerrainMessage] with Serializable
- object InventoryStateMessage extends Marshallable[InventoryStateMessage] with Serializable
- object ItemTransactionMessage extends Marshallable[ItemTransactionMessage] with Serializable
- object ItemTransactionResultMessage extends Marshallable[ItemTransactionResultMessage] with Serializable
- object KeepAliveMessage extends Marshallable[KeepAliveMessage] with Serializable
- object LashMessage extends Marshallable[LashMessage] with Serializable
- object LoadMapMessage extends Marshallable[LoadMapMessage] with Serializable
- object LoginMessage extends Marshallable[LoginMessage] with Serializable
- object LoginRespMessage extends Marshallable[LoginRespMessage] with Serializable
- object LongRangeProjectileInfoMessage extends Marshallable[LongRangeProjectileInfoMessage] with Serializable
- object LootItemMessage extends Marshallable[LootItemMessage] with Serializable
- object MailMessage extends Marshallable[MailMessage] with Serializable
- object MemberEvent extends Enumeration
- object MountVehicleCargoMsg extends Marshallable[MountVehicleCargoMsg] with Serializable
- object MountVehicleMsg extends Marshallable[MountVehicleMsg] with Serializable
- object MoveItemMessage extends Marshallable[MoveItemMessage] with Serializable
- object NoTrade extends Serializable
- object ObjectAttachMessage extends Marshallable[ObjectAttachMessage] with Serializable
- object ObjectCreateDetailedMessage extends Marshallable[ObjectCreateDetailedMessage] with Serializable
- object ObjectCreateMessage extends Marshallable[ObjectCreateMessage] with Serializable
- object ObjectDeleteMessage extends Marshallable[ObjectDeleteMessage] with Serializable
- object ObjectDeployedMessage extends Marshallable[ObjectDeployedMessage] with Serializable
- object ObjectDetachMessage extends Marshallable[ObjectDetachMessage] with Serializable
- object ObjectDetectedMessage extends Marshallable[ObjectDetectedMessage] with Serializable
- object ObjectHeldMessage extends Marshallable[ObjectHeldMessage] with Serializable
- object OffshoreVehicleMessage extends Marshallable[OffshoreVehicleMessage] with Serializable
- object OrbitalShuttleTimeMsg extends Marshallable[OrbitalShuttleTimeMsg] with Serializable
- object OrbitalStrikeWaypointMessage extends Marshallable[OrbitalStrikeWaypointMessage] with Serializable
- object OutfitRequest extends Marshallable[OutfitRequest] with Serializable
- object OutfitRequestForm
- object OxygenStateMessage extends Marshallable[OxygenStateMessage] with Serializable
- object PickupItemMessage extends Marshallable[PickupItemMessage] with Serializable
- object PingMsg extends Marshallable[PingMsg] with Serializable
- object PlanetSideZoneID extends Serializable
- object PlanetsideAttributeEnum extends Enumeration
- object PlanetsideAttributeMessage extends Marshallable[PlanetsideAttributeMessage] with Serializable
- object PlanetsideStringAttributeMessage extends Marshallable[PlanetsideStringAttributeMessage] with Serializable
- object PlayerStasisMessage extends Marshallable[PlayerStasisMessage] with Serializable
- object PlayerStateMessage extends Marshallable[PlayerStateMessage] with Serializable
- object PlayerStateMessageUpstream extends Marshallable[PlayerStateMessageUpstream] with Serializable
- object PlayerStateShiftMessage extends Marshallable[PlayerStateShiftMessage] with Serializable
- object ProjectileCharacteristics extends IntEnum[ProjectileCharacteristics]
Characteristics about the projectile being produced by a
WeaponFireMessage
packet.Characteristics about the projectile being produced by a
WeaponFireMessage
packet. Not really useful outside ofWeaponFireMessage
? - object ProjectileStateMessage extends Marshallable[ProjectileStateMessage] with Serializable
- object PropertyOverrideMessage extends Marshallable[PropertyOverrideMessage] with Serializable
- object ProximityTerminalUseMessage extends Marshallable[ProximityTerminalUseMessage] with Serializable
- object QuantityDeltaUpdateMessage extends Marshallable[QuantityDeltaUpdateMessage] with Serializable
- object QuantityUpdateMessage extends Marshallable[QuantityUpdateMessage] with Serializable
- object ReleaseAvatarRequestMessage extends Marshallable[ReleaseAvatarRequestMessage] with Serializable
- object ReloadMessage extends Marshallable[ReloadMessage] with Serializable
- object RepairMessage extends Marshallable[RepairMessage] with Serializable
- object ReplicationStreamMessage extends Marshallable[ReplicationStreamMessage] with Serializable
- object RequestDestroyMessage extends Marshallable[RequestDestroyMessage] with Serializable
- object RespawnAMSInfoMessage extends Marshallable[RespawnAMSInfoMessage] with Serializable
- object RibbonBarSlot extends Enumeration
An
Enumeration
of the slots for award ribbons on a player'sRibbonBars
. - object ServerType extends IntEnum[ServerType]
- object ServerVehicleOverrideMsg extends Marshallable[ServerVehicleOverrideMsg] with Serializable
- object SetChatFilterMessage extends Marshallable[SetChatFilterMessage] with Serializable
- object SetCurrentAvatarMessage extends Marshallable[SetCurrentAvatarMessage] with Serializable
- object SetEmpireMessage extends Marshallable[SetEmpireMessage] with Serializable
- object ShiftState extends Serializable
- object Shortcut extends Marshallable[Shortcut]
- object SimDataChallenge extends Marshallable[SimDataChallenge] with Serializable
- object SimDataChallengeResp extends Marshallable[SimDataChallengeResp] with Serializable
- object SpawnRequestMessage extends Marshallable[SpawnRequestMessage] with Serializable
- object SplashHitMessage extends Marshallable[SplashHitMessage] with Serializable
- object SplashedTarget extends Marshallable[SplashedTarget] with Serializable
- object SquadAction
- object SquadDefinitionActionMessage extends Marshallable[SquadDefinitionActionMessage] with Serializable
- object SquadDetail extends Serializable
- object SquadDetailDefinitionUpdateMessage extends Marshallable[SquadDetailDefinitionUpdateMessage] with Serializable
- object SquadHeader
An object that contains all of the logic necessary to transform between the various forms of squad information found in formulaic packet data structures and a singular
SquadInfo
object with only the important data fields that were defined. - object SquadInfo extends Serializable
- object SquadInvitationRequestMessage extends Marshallable[SquadInvitationRequestMessage] with Serializable
- object SquadListing extends Serializable
- object SquadMemberEvent extends Marshallable[SquadMemberEvent] with Serializable
- object SquadMembershipRequest extends Marshallable[SquadMembershipRequest] with Serializable
- object SquadMembershipResponse extends Marshallable[SquadMembershipResponse] with Serializable
- object SquadPositionDetail extends Serializable
- object SquadPositionEntry extends Serializable
- object SquadState extends Marshallable[SquadState] with Serializable
- object SquadStateInfo extends Serializable
- object SquadWaypointEvent extends Marshallable[SquadWaypointEvent] with Serializable
- object SquadWaypointRequest extends Marshallable[SquadWaypointRequest] with Serializable
- object TargetInfo extends Serializable
- object TargetingImplantRequest extends Marshallable[TargetingImplantRequest] with Serializable
- object TargetingInfoMessage extends Marshallable[TargetingInfoMessage] with Serializable
- object TerrainCondition extends Enumeration
An
Enumeration
of the two conditions of the terrain - safe and unsafe. - object TimeOfDayMessage extends Marshallable[TimeOfDayMessage] with Serializable
- object TradeFour extends Serializable
- object TradeMessage extends Marshallable[TradeMessage] with Serializable
- object TradeOne extends Serializable
- object TradeThree extends Serializable
- object TradeTwo extends Serializable
- object TrainingZoneMessage extends Marshallable[TrainingZoneMessage] with Serializable
- object TriggerEffectMessage extends Marshallable[TriggerEffectMessage] with Serializable
- object TriggerEnvironmentalDamageMessage extends Marshallable[TriggerEnvironmentalDamageMessage] with Serializable
- object TriggerSoundMessage extends Marshallable[TriggerSoundMessage] with Serializable
- object TriggeredSound extends Enumeration
An
Enumeration
of the sounds triggered by this packet.An
Enumeration
of the sounds triggered by this packet. Twenty-one possible sounds are available for playback. - object UnuseItemMessage extends Marshallable[UnuseItemMessage] with Serializable
- object UseItemMessage extends Marshallable[UseItemMessage] with Serializable
- object VNLWorldStatusMessage extends Marshallable[VNLWorldStatusMessage] with Serializable
- object VehicleStateMessage extends Marshallable[VehicleStateMessage] with Serializable
- object VehicleSubStateMessage extends Marshallable[VehicleSubStateMessage] with Serializable
- object VoiceHostInfo extends Marshallable[VoiceHostInfo] with Serializable
- object VoiceHostKill extends Marshallable[VoiceHostKill] with Serializable
- object VoiceHostRequest extends Marshallable[VoiceHostRequest] with Serializable
- object WarpgateLinkOverrideMessage extends Marshallable[WarpgateLinkOverrideMessage] with Serializable
- object WarpgateRequest extends Marshallable[WarpgateRequest] with Serializable
- object WaypointEventAction extends Enumeration
Actions that can be requested of the specific waypoint.
- object WeaponDelayFireMessage extends Marshallable[WeaponDelayFireMessage] with Serializable
- object WeaponDryFireMessage extends Marshallable[WeaponDryFireMessage] with Serializable
- object WeaponFireMessage extends Marshallable[WeaponFireMessage] with Serializable
- object WeaponJammedMessage extends Marshallable[WeaponJammedMessage] with Serializable
- object WeaponLazeTargetPositionMessage extends Marshallable[WeaponLazeTargetPositionMessage] with Serializable
- object WeatherMessage extends Marshallable[WeatherMessage] with Serializable
- object WorldStatus extends Enumeration
- object ZipLineMessage extends Marshallable[ZipLineMessage] with Serializable
- object ZoneForcedCavernConnectionsMessage extends Marshallable[ZoneForcedCavernConnectionsMessage] with Serializable
- object ZoneInfoMessage extends Marshallable[ZoneInfoMessage] with Serializable
- object ZoneLockInfoMessage extends Marshallable[ZoneLockInfoMessage] with Serializable
- object ZonePopulationUpdateMessage extends Marshallable[ZonePopulationUpdateMessage] with Serializable