Table of Contents

Class CharacterReconcileDataDeltaSerializer

Namespace
FishMMO.Shared
Assembly
FishMMO.Shared.dll

Custom delta serializers for CharacterReconcileData.

Delta serializer: Writes a 2-byte bitmask (12 bits for 12 fields) followed by delta-encoded values for only the changed fields. The nested KinematicCharacterController.KinematicCharacterMotorState and CharacterAttributeResourceState use their own delta serializers, so savings compound. Cooldowns, buffs, and non-resource attributes use index-delta compression via CooldownReconcileEntry, BuffReconcileEntry, and AttributeReconcileEntry.

public static class CharacterReconcileDataDeltaSerializer
Inheritance
CharacterReconcileDataDeltaSerializer
Inherited Members

Methods

ReadCharacterReconcileData(Reader)

Custom full deserializer: reads all fields of CharacterReconcileData. Must read in the same order as WriteCharacterReconcileData(Writer, CharacterReconcileData).

public static CharacterReconcileData ReadCharacterReconcileData(this Reader reader)

Parameters

reader Reader

Returns

CharacterReconcileData

WriteCharacterReconcileData(Writer, CharacterReconcileData)

Custom full serializer: writes all fields of CharacterReconcileData. Nested types use their full serializers. Arrays write count + entries.

public static void WriteCharacterReconcileData(this Writer writer, CharacterReconcileData value)

Parameters

writer Writer
value CharacterReconcileData

Remarks

Framed by a byte count, the same shape the four WritePayload implementations use and for the same reason. FishNet packs every predicted behaviour's reconcile into one StateUpdate reader, so a reader that stops early does not merely lose its own state — every behaviour after it decodes from the wrong offset.

ReadCharacterReconcileData(Reader) has four defensive aborts for array counts that cannot be trusted, and no way to drain past them: the per-entry sizes it would need to skip are derived from the count it just rejected. The length recorded here is what lets it resynchronise instead. Four bytes, and only on the absolute form — which FishNet emits once per second per owner, not on the per-tick deltas.