Sent from the server when a client joins to initialize all world clocks for the client and periodically to all clients to keep them in sync.
It is also sent to all clients when a world clock's paused state changes or when time markers are added or removed.
sync-world-clocks.bin
struct SyncWorldClocks {
tagged case index (0=SyncStateData, 1=InitializeRegistryData, 2=AddTimeMarkerData, 3=RemoveTimeMarkerData) Data;
}
Structure
Field
Type
Description
Data
tagged case index (0=SyncStateData, 1=InitializeRegistryData, 2=AddTimeMarkerData, 3=RemoveTimeMarkerData)
Variant: an index selects the payload type — see the tables below.
Structure of SyncStateData
Field
Type
Description
Clock Data
varuint32 count + SyncWorldClockStateData[]
Length-prefixed sequence.
Structure of InitializeRegistryData
Field
Type
Description
Clock Data
varuint32 count + WorldClockData[]
Length-prefixed sequence.
Structure of AddTimeMarkerData
Field
Type
Description
Clock Id
varuint64
Time Markers
varuint32 count + TimeMarkerData[]
Length-prefixed sequence.
Structure of RemoveTimeMarkerData
Field
Type
Description
Clock Id
varuint64
Time Marker Ids
varuint32 count + varuint64[]
Length-prefixed sequence.
Structure of SyncWorldClockStateData
Field
Type
Description
Clock Id
varuint64
Time
varint32
Is Paused
bool
Structure of WorldClockData
Field
Type
Description
Id
varuint64
Name
string
Time
varint32
Is Paused
bool
Time Markers
varuint32 count + TimeMarkerData[]
Length-prefixed sequence.
Structure of TimeMarkerData
Field
Type
Description
Id
varuint64
Name
string
Time
varint32
Period
optional byte + int32
Presence flag on the wire; value omitted when absent.