Skip to content
Version 2.11.0
↓ Get the launcher

Wire coverage

Every protobuf message a framework reader documents, field by field. Exposed fields reach plugins through the public API; skipped fields are sent by the server but not decoded yet — each one is an open contribution.generated from reader sources

Exposed to plugins71of 117 documented fields
Decoded, internal only15read but not public yet
Skipped31waiting for a contributor

AoiSyncToMeDelta

Documented in AoiSyncToMeDeltaReader.cs ↗

#FieldTypeStatusPlugins get it as
1BaseDeltaoptional AoiSyncDeltaExposedthe local player's attrs, skill events, damage and buffs, same path as the near-entity delta (see AttrCollection, EventDataList, SkillEffect)
2SyncHateIdsrepeated int64Skipped—
3SyncSkillCDsrepeated SkillCDInfoExposedICombatSnapshot.LocalCooldowns
4FightResCDsrepeated FightResCDSkipped—
5Uuidoptional int64ExposedICombatSnapshot.LocalEntityId

Attr

Documented in AttrCollectionReader.cs ↗

#FieldTypeStatusPlugins get it as
1Idint32ExposedCombatEvent.EntityAttributesChanged (AttrValue.AttrId); selects which ICombatLookup / IEntityDetail value an attr feeds
2RawDatabytesExposedCombatEvent.EntityAttributesChanged (AttrValue.Value), ICombatLookup.GetEntityName / GetVitals / GetTeamId / GetFightPoint / GetSkillLevels, IEntityDetail

AttrCollection

Documented in AttrCollectionReader.cs ↗

#FieldTypeStatusPlugins get it as
1Uuidoptional int64Decoded—
decoded but not read by any consumer; the entity id comes from the enclosing delta / entity uuid
2Attrsrepeated AttrExposedsee Attr

DisappearEntity

Documented in SyncNearEntitiesReader.cs ↗

#FieldTypeStatusPlugins get it as
1uuidint64ExposedEntityId
2typeEDisappearTypeExposedEntityDisappearReason

DungeonFlowInfo

Documented in DungeonSyncReader.cs ↗

#FieldTypeStatusPlugins get it as
1stateEDungeonStateExposedIDungeonState.CurrentFlowState / FlowStateVersion
2active_timeint32ExposedIDungeonState.RunTimerStartMs (last-resort approximate source)
3ready_timeint32Decoded—
decoded; logged by the dungeon diagnostics only
4play_timeint32ExposedIDungeonState.RunTimerStartMs (fallback source)
5end_timeint32Decoded—
decoded; logged by the dungeon diagnostics only
6settlement_timeint32Decoded—
decoded; logged by the dungeon diagnostics only
7dungeon_timesint32Decoded—
decoded; logged by the dungeon diagnostics only
8resultint32ExposedIDungeonState.LastOutcome
Reaches LastOutcome only through the method-24 dirty-delta decode (DungeonDirtyDataReader); the method-23 protobuf decode of this field is logged by diagnostics only.

DungeonSceneInfo

Documented in DungeonSyncReader.cs ↗

#FieldTypeStatusPlugins get it as
1difficultyint32ExposedIDungeonState.CurrentDifficulty
Semantic unconfirmed in code (see DungeonSyncResult.DungeonDifficulty).

DungeonSettlement

Documented in DungeonSyncReader.cs ↗

#FieldTypeStatusPlugins get it as
1pass_timeint32ExposedIDungeonState.LastSettlement.PassTimeSeconds
5master_mode_scoreint32ExposedIDungeonState.LastSettlement.MasterModeScore

DungeonSyncData

Documented in DungeonSyncReader.cs ↗

#FieldTypeStatusPlugins get it as
1scene_uuidint64Decoded—
structural gate only (a non-zero value is required to accept the packet); deliberately NOT used as the run id, which comes from EnterScene
2flow_infoDungeonFlowInfoExposedsee DungeonFlowInfo
5damageDungeonDamageSkipped—
7settlementDungeonSettlementExposedsee DungeonSettlement
14dungeon_scoreDungeonScoreExposedIDungeonState.LastSettlement.TotalScore (DungeonScore.total_score)
15timer_infoDungeonTimerInfoExposedsee DungeonTimerInfo
21dungeon_scene_infoDungeonSceneInfoExposedsee DungeonSceneInfo

DungeonTimerInfo

Documented in DungeonSyncReader.cs ↗

#FieldTypeStatusPlugins get it as
1typeint32Decoded—
decoded; logged by the dungeon diagnostics only
2start_timeint32ExposedIDungeonState.RunTimerStartMs (primary source)
3dungeon_timesint32Decoded—
decoded; logged by the dungeon diagnostics only
4directionint32Decoded—
decoded; logged by the dungeon diagnostics only
5indexint32Skipped—
6change_timeint32Skipped—
7effect_typeint32Skipped—
8pause_timeint32Decoded—
decoded; logged by the dungeon diagnostics only
9pause_total_timeint32Decoded—
decoded; logged by the dungeon diagnostics only
10out_look_typeint32Skipped—
11cur_pause_timestampint32Decoded—
decoded; logged by the dungeon diagnostics only

Entity

Documented in SyncNearEntitiesReader.cs ↗

#FieldTypeStatusPlugins get it as
1uuidint64ExposedEntityId on every CombatEvent
2ent_typeEEntityTypeSkipped—
3attrsAttrCollectionExposedname, fight point, HP/shield and skill levels via ICombatLookup / IEntityDetail
4temp_attrsTempAttrCollectionSkipped★ good first issue—
Requested by a plugin author (Discord, 2026-09-26).
5body_part_infosActorBodyPartInfosSkipped—
6passive_skill_infosSeqPassiveSkillInfoSkipped—
7buff_infosBuffInfoSyncExposed2.11.0CombatEvent.EntityBuffsSeeded, ICombatLookup.BuffsFor, ICombatSpec
8buff_effectBuffEffectSyncSkipped—
9appear_typeEAppearTypeSkipped—
10magnetic_ride_queue_change_info_dictmap<int32, MagneticQueueAppearInfo>Skipped—

EventData

Documented in EventDataListReader.cs ↗

#FieldTypeStatusPlugins get it as
1event_typeint32ExposedCombatEvent.SkillUsed.Phase (event types 101-105 only)
2int_paramsrepeated int32ExposedCombatEvent.SkillUsed.SkillId (int_params[0])
3long_paramsrepeated int64Decoded—
decoded but no consumer reads it
4float_paramsrepeated floatSkipped—
5str_paramsrepeated stringSkipped—

EventDataList

Documented in EventDataListReader.cs ↗

#FieldTypeStatusPlugins get it as
1Uuidoptional int64Decoded—
decoded but not read; the caster id comes from the enclosing AoiSyncDelta uuid
2Eventsrepeated EventDataExposedsee EventData

GetChipChatRecordsReply

Documented in WireProtocol.ChitChat.cs ↗

#FieldTypeStatusPlugins get it as
3is_endboolSkipped—
4max_read_msg_idint64Skipped—
5multi_msg_listrepeated zproto.ChitChatMsgExposedIChat.MessageReceived / IChat.RecentMessages (ChatMessage.IsHistory = true)
6err_codezproto.EErrorCodeSkipped—

notice_update_team_info

Documented in NoticeUpdateTeamInfoReader.cs ↗

#FieldTypeStatusPlugins get it as
1base_infoTeamBaseInfoExposedIPartySnapshot.PartyId / LeaderCharId / PartyType / IsMatching, and the raid group layout (PartyMember.GroupId / Slot)

NotifyAllMemberReady

Documented in NotifyReadyCheckReader.cs ↗

#FieldTypeStatusPlugins get it as
1v_open_or_closeboolExposedIPartyEvents.ReadyCheckPhaseChanged

NotifyCaptainReady

Documented in NotifyReadyCheckReader.cs ↗

#FieldTypeStatusPlugins get it as
1v_member_namestringExposedIPartyEvents.ReadyCheckResponded (ReadyCheckResponse.Name)
2v_char_idint64ExposedIPartyEvents.ReadyCheckResponded (ReadyCheckResponse.CharId)
3v_ready_infoDungeonReadyInfoExposedIPartyEvents.ReadyCheckResponded (ReadyCheckResponse.IsReady; only DungeonReadyInfo.is_ready is read)

NotifyTeamGroupUpdateRequest

Documented in NotifyTeamGroupUpdateReader.cs ↗

#FieldTypeStatusPlugins get it as
1err_codeEErrorCodeSkipped—
2team_member_group_infosmap<int32, TeamMemberGroupInfo>Exposedsee TeamMemberGroupInfo

NotifyTeamMemMicrophoneStatusChangeRequest

Documented in NotifyTeamVoiceReaders.cs ↗

#FieldTypeStatusPlugins get it as
1member_idint64ExposedIPartyRoster.GetMicStatus (the charId key)
2microphone_statusEMicrophoneStatusExposedIPartyRoster.GetMicStatus (MicrophoneStatus)

NotifyTeamMemsSpeakStatusChangeRequest

Documented in NotifyTeamVoiceReaders.cs ↗

#FieldTypeStatusPlugins get it as
1mem_speak_statusmap<int64, ESpeakStatus>ExposedIPartyRoster.IsSpeaking

ShieldEntry

Documented in ShieldListReader.cs ↗

#FieldTypeStatusPlugins get it as
1f1uint64Skipped—
2f2uint64Skipped—
3curuint64Exposed2.9.0ICombatLookup.GetVitals(...).Shield (EntityVitals.Shield, summed over entries)
4maxuint64Skipped—
5f5uint64Skipped—

ShieldList

Documented in ShieldListReader.cs ↗

#FieldTypeStatusPlugins get it as
1entriesrepeated ShieldEntryExposed2.9.0see ShieldEntry

SkillEffect

Documented in SkillEffectReader.cs ↗

#FieldTypeStatusPlugins get it as
1Uuidoptional int64Skipped—
2Damagesrepeated SyncDamageInfoExposedCombatEvent.DamageDealt

SkillLevelInfo

Documented in SkillLevelListReader.cs ↗

#FieldTypeStatusPlugins get it as
1skill_idint32ExposedICombatLookup.GetSkillLevels (SkillLevel.SkillId)
2current_levelint32ExposedICombatLookup.GetSkillLevels (SkillLevel.Level)
3remodel_levelint32ExposedICombatLookup.GetSkillLevels (SkillLevel.Tier)

stru_notify_join_team_request

Documented in NotifyJoinTeamReader.cs ↗

#FieldTypeStatusPlugins get it as
1base_infoTeamBaseInfoExposedIPartySnapshot.PartyId / LeaderCharId / PartyType / IsMatching, and the raid group layout (PartyMember.GroupId / Slot)
2member_datarepeated TeamMemDataExposedsee TeamMemData
4mem_real_time_voice_infosmap<int64, TeamMemRealTimeVoiceInfo>Skipped—
5team_join_typeETeamJoinTypeSkipped—
6member_sync_datasmap<int64, TeamMemberFastSyncData>Exposedsee TeamMemberFastSyncData

stru_notify_leave_team_request

Documented in NotifyLeaveTeamReader.cs ↗

#FieldTypeStatusPlugins get it as
1char_idint64ExposedIPartyEvents.MemberLeft (the departing PartyMember)
2leave_typeETeamLeaveTypeExposedIPartyEvents.MemberLeft (PartyLeaveKind)

SyncDungeonData

Documented in DungeonSyncReader.cs ↗

#FieldTypeStatusPlugins get it as
1v_dataDungeonSyncDataExposedsee DungeonSyncData

SyncNearEntities

Documented in SyncNearEntitiesReader.cs ↗

#FieldTypeStatusPlugins get it as
1appearrepeated EntityExposedper-entity appear handling (see Entity)
2disappearrepeated DisappearEntityExposedper-entity disappear handling (see DisappearEntity)

SyncSceneAttrs

Documented in SyncSceneAttrsReader.cs ↗

#FieldTypeStatusPlugins get it as
1attrsAttrCollectionExposedIDungeonState.LastDefeatedCount (only attr 348 AttrDeathCount is read)

SyncToMeDeltaInfo

Documented in AoiSyncToMeDeltaReader.cs ↗

#FieldTypeStatusPlugins get it as
1DeltaInfoAoiSyncToMeDeltaExposedsee AoiSyncToMeDelta

TeamMemberFastSyncData

Documented in TeamMemberFastSyncDataReader.cs ↗

#FieldTypeStatusPlugins get it as
1char_idint64ExposedPartyMember.CharId
Keys the update only for NoticeUpdateTeamMemberInfo; join / GetTeamInfo read the map key instead and discard this field.
2scene_idint32ExposedPartyMember.SceneId
3positionPositionExposedPartyMember.Position
4hpint64ExposedPartyMember.Hp
5max_hpint64ExposedPartyMember.MaxHp
6stateint32ExposedPartyMember.FastSyncState
7scene_area_idint32Skipped—
The varint is read to advance the cursor but its value is discarded.

TeamMemberGroupInfo

Documented in NotifyTeamGroupUpdateReader.cs ↗

#FieldTypeStatusPlugins get it as
1group_idint32ExposedPartyMember.GroupId (via IPartyEvents.MemberUpdated)
2char_idsrepeated int64ExposedPartyMember.Slot (order within the group)

TeamMemberSocialData

Documented in TeamMemDataReader.cs ↗

#FieldTypeStatusPlugins get it as
1basic_dataBasicDataExposedPartyMember.Name / Level (BasicData name = 3, level = 6)
2avatar_infoAvatarInfoExposedPartyMember.ProfileUrl / HalfBodyUrl
3face_dataFaceDataSkipped—
4profession_dataProfessionDataExposedPartyMember.Profession
ProfessionDataReader reads profession_id at field 1, which its own doc calls a placeholder best guess pending in-game confirmation; not verified here.
5equip_dataEquipDataSkipped—

TeamMemData

Documented in TeamMemDataReader.cs ↗

#FieldTypeStatusPlugins get it as
1char_idint64ExposedPartyMember.CharId / EntityId
2enter_timeint32Decoded—
stored on the Application member slot; not surfaced on PartyMember
3call_statusint32Skipped—
4talent_idint32ExposedPartyMember.Talent
5online_statusint32ExposedPartyMember.IsOnline
6scene_idint32ExposedPartyMember.SceneId
7voice_is_openboolExposedIPartyRoster.GetMicStatus (coarse open/closed base state)
8group_idint32ExposedPartyMember.GroupId
9social_dataTeamMemberSocialDataExposedsee TeamMemberSocialData