Table of Contents

Struct PartyMemberVitalsEntry

Namespace
FishMMO.Shared
Assembly
FishMMO.Shared.dll

One party member's live state, as observed on a scene server.

public struct PartyMemberVitalsEntry
Inherited Members

Remarks

Only sent for members the sending scene server hosts in the same Unity scene as the recipient. A member the recipient cannot be standing next to — different zone, different dungeon instance, different scene server, or offline — is absent from the payload entirely, and the client greys their row out rather than drawing values it has no reason to believe. Absence is therefore meaningful: see PartyMemberVitalsUpdateBroadcast.

Quantised. Fractions travel as one byte (0..255) and rates as an unsigned short, because a party bar is a few dozen pixels wide and a meter readout is rounded to the unit anyway; the previous four-byte floats carried precision nothing rendered. Use PartyVitalsQuantiser to convert in both directions.

Fields

Buffs

The buffs and debuffs the member is showing, exactly as the SERVER chose them.

public ObservedBuffEntry[] Buffs

Field Value

ObservedBuffEntry[]

Remarks

The same server-filtered list the target frame draws from — already stripped of nothing beyond what any observer already sees, carrying no tick-domain state and no template hooks. Buffs and debuffs travel together and are split by the client on the template's own IsDebuff flag, because that flag is a property of the template rather than of the wire format and duplicating it into two arrays would let the two disagree.

RemainingSeconds is re-based to the moment this payload was built rather than to the last observed-buff push, so the client's local countdown starts from a current figure however long ago the buff was applied.

Only meaningful when BuffsChanged is true. Null means "none".

BuffsChanged

True when Buffs is authoritative for this entry. False means the buff set has not changed since the last payload that carried it, and Buffs is null and must not be applied.

public bool BuffsChanged

Field Value

bool

Remarks

The buff list is by far the largest part of the payload and by far the least often changed. Sending it only on change is what takes this message from "every second" to "when something happened". A client that receives its first payload for a member always gets the set, because the server tracks what it last sent per scene group and a member new to a group has nothing sent yet.

CharacterID

Character ID of the member.

public long CharacterID

Field Value

long

DamagePerSecond

Damage the member has dealt in the current encounter, divided by its elapsed length, rounded and clamped to 0..65535.

public ushort DamagePerSecond

Field Value

ushort

Remarks

Zero once the encounter has timed out — the meter is per-encounter, not per-session, so it must not carry a number from the last fight into the lull after it.

HealPerSecond

Healing the member has done in the current encounter, per second, clamped to 0..65535.

public ushort HealPerSecond

Field Value

ushort

HealthPCT

The member's health fraction, quantised to 0..255.

public byte HealthPCT

Field Value

byte

ManaPCT

The member's mana fraction, quantised to 0..255.

public byte ManaPCT

Field Value

byte

StaminaPCT

The member's stamina fraction, quantised to 0..255.

public byte StaminaPCT

Field Value

byte