2 realtime protocol registry
forgejo-actions edited this page 2026-07-13 19:45:35 +00:00

Realtime Protocol Registry

This wiki reference is generated from crates/common-proto/protocol/realtime_registry.json. Update it with cargo run -p aether-common-proto --bin aether-realtime-registry -- --write.

Rollout Policy

  • Supported versions: current

  • Allowed channels: none

  • Blocked channels: none

  • Deprecation windows: none

Packet Field Limits

Field Limit
session_token_len 256
chat_message_chars 280
chat_target_chars 64
trigger_tags 16
gameplay_action_list_entries 32
equipped_items 24
string_field_len 128
token_field_len 64
trigger_spawn_count_override 256
snapshot_repair_ids_per_receipt 64
appearance_index_min -1
appearance_index_max 2047
action_future_skew_ms 2000
action_step_elapsed_ms 60000
action_step 10000
repair_retained_snapshots 64
repair_max_retained_snapshots 256

Capabilities

Capability Field Default Required Rollout Deprecation
clock_sync_v1 clock_sync_v1 true true stable current
continuous_replication_v1 continuous_replication_v1 true true stable current
equipment_state_datagram_v1 equipment_state_datagram_v1 true true stable current
gameplay_state_datagram_v1 gameplay_state_datagram_v1 true true stable current
interest_buckets_v1 interest_buckets_v1 true true stable current
movement_datagram_v1 movement_datagram_v1 true true stable current
resume_snapshot_v1 resume_snapshot_v1 true true stable current
typed_disconnects_v1 typed_disconnects_v1 true true stable current

Stream Messages

ID Name Direction Class Apply policy Payload Max bytes Capability Compression Rollout Deprecation Replay fixture Coverage
1 client_hello client_to_server control none aether.realtime.v1.ClientHello client_hello none none stable permanent none codec: encode_client_stream_packet/decode_client_stream_packet
fixture: realtime_wire::tests::client_hello_fixture
delivery: delivery_contract
validation: validate_client_stream_envelope_wire_enums
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
2 client_move_input client_to_server gameplay none aether.realtime.v1.MoveInput client_move_input_datagram movement_datagram_v1 none stable permanent none codec: encode_client_stream_packet/decode_client_stream_packet
fixture: realtime_wire::tests::client_move_input_fixture
delivery: delivery_contract
validation: validate_client_stream_envelope_wire_enums
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
4 client_chat client_to_server background none aether.realtime.v1.ChatSend client_chat none none stable permanent none codec: encode_client_stream_packet/decode_client_stream_packet
fixture: realtime_wire::tests::client_chat_fixture
delivery: delivery_contract
validation: validate_client_stream_envelope_wire_enums
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
5 client_trigger_authority_request client_to_server gameplay none aether.realtime.v1.TriggerAuthorityRequest client_trigger_authority_request continuous_replication_v1 none stable permanent none codec: encode_client_stream_packet/decode_client_stream_packet
fixture: realtime_wire::tests::client_trigger_authority_request_fixture
delivery: delivery_contract
validation: validate_client_stream_envelope_wire_enums
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
6 client_heartbeat client_to_server control none empty client_control_message none none stable permanent none codec: encode_client_stream_packet/decode_client_stream_packet
fixture: realtime_wire::tests::client_heartbeat_fixture
delivery: delivery_contract
validation: validate_client_stream_envelope_wire_enums
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
7 client_disconnect client_to_server control none empty client_control_message typed_disconnects_v1 none stable permanent none codec: encode_client_stream_packet/decode_client_stream_packet
fixture: realtime_wire::tests::client_disconnect_fixture
delivery: delivery_contract
validation: validate_client_stream_envelope_wire_enums
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
8 client_gameplay_action_request client_to_server gameplay none aether.realtime.v1.GameplayActionRequest client_gameplay_action_request continuous_replication_v1 none stable permanent none codec: encode_client_stream_packet/decode_client_stream_packet
fixture: realtime_wire::tests::client_gameplay_action_request_fixture
delivery: delivery_contract
validation: validate_client_stream_envelope_wire_enums
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
9 client_snapshot_receipt client_to_server control none aether.realtime.v1.SnapshotReceipt client_control_message interest_buckets_v1 none stable permanent none codec: encode_client_stream_packet/decode_client_stream_packet
fixture: realtime_wire::tests::client_snapshot_receipt_fixture
delivery: delivery_contract
validation: validate_client_stream_envelope_wire_enums
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
101 server_welcome server_to_client control handled_out_of_band aether.realtime.v1.Welcome max_stream_frame none none stable permanent none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_welcome_fixture
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
102 server_spawn server_to_client background apply aether.realtime.v1.Spawn max_stream_frame continuous_replication_v1 none stable legacy_presence_shadow none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_spawn_fixture
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
103 server_despawn server_to_client background apply aether.realtime.v1.Despawn max_stream_frame continuous_replication_v1 none stable legacy_presence_shadow none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_despawn_fixture
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
104 server_state_snapshot server_to_client background apply aether.realtime.v1.StateSnapshot max_stream_frame interest_buckets_v1 continuous_state_snapshot stable permanent none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_state_snapshot_fixture
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
105 server_player_stats_snapshot server_to_client background apply aether.realtime.v1.PlayerStatsSnapshot max_stream_frame continuous_replication_v1 snapshot_bootstrap stable permanent none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_player_stats_snapshot_fixture
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
106 server_chat server_to_client background apply aether.realtime.v1.ChatMessage max_stream_frame none none stable permanent none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_chat_fixture
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
107 server_heartbeat server_to_client control apply aether.realtime.v1.Heartbeat max_stream_frame clock_sync_v1 none stable permanent none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_heartbeat_fixture
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
108 server_trigger_authority_resolution server_to_client gameplay apply aether.realtime.v1.TriggerAuthorityResolution max_stream_frame continuous_replication_v1 authority_snapshot stable permanent none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_trigger_authority_resolution_fixture
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
109 server_disconnect server_to_client control apply aether.realtime.v1.Disconnect max_stream_frame typed_disconnects_v1 none stable permanent none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_disconnect_fixture
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
110 server_inventory_snapshot server_to_client background apply aether.realtime.v1.InventorySnapshot max_stream_frame continuous_replication_v1 snapshot_bootstrap stable permanent none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_inventory_snapshot_fixture
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
111 server_currency_snapshot server_to_client background apply aether.realtime.v1.CurrencySnapshot max_stream_frame continuous_replication_v1 snapshot_bootstrap stable permanent none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_currency_snapshot_fixture
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
112 server_zone_transfer server_to_client control transfer aether.realtime.v1.ZoneTransfer max_stream_frame resume_snapshot_v1 none stable permanent none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_zone_transfer_fixture
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
113 server_equipment_snapshot server_to_client background apply aether.realtime.v1.EquipmentSnapshot max_stream_frame equipment_state_datagram_v1 snapshot_bootstrap stable permanent none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_equipment_snapshot_fixture
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
114 server_quest_snapshot server_to_client background apply aether.realtime.v1.QuestSnapshot max_stream_frame continuous_replication_v1 snapshot_bootstrap stable permanent none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_quest_snapshot_fixture
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
115 server_gameplay_action_result server_to_client gameplay apply aether.realtime.v1.GameplayActionResult max_stream_frame continuous_replication_v1 authority_snapshot stable permanent none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_gameplay_action_result_fixture
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
116 server_npc_service_overlay server_to_client background apply aether.realtime.v1.NpcServiceOverlaySnapshot max_stream_frame continuous_replication_v1 snapshot_bootstrap stable permanent none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_npc_service_overlay_fixture
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
117 server_gameplay_condition_snapshot server_to_client background apply aether.realtime.v1.GameplayConditionSnapshot max_stream_frame continuous_replication_v1 snapshot_bootstrap stable permanent none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_gameplay_condition_snapshot_fixture
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
118 server_player_combat_snapshot server_to_client gameplay apply aether.realtime.v1.PlayerCombatSnapshot max_stream_frame continuous_replication_v1 authority_snapshot stable permanent none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_player_combat_snapshot_fixture
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
119 server_authoritative_combat_event server_to_client gameplay apply aether.realtime.v1.AuthoritativeCombatEventPacket max_stream_frame continuous_replication_v1 authority_snapshot stable permanent none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_authoritative_combat_event_fixture
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
120 server_combat_reward_snapshot server_to_client background apply aether.realtime.v1.CombatRewardSnapshot max_stream_frame continuous_replication_v1 snapshot_bootstrap stable permanent none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_combat_reward_snapshot_fixture
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
121 server_bootstrap_manifest server_to_client background apply aether.realtime.v1.BootstrapManifestSection max_stream_frame resume_snapshot_v1 bootstrap_manifest_section stable permanent none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_bootstrap_manifest_fixture
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
122 server_transport_advisory server_to_client control apply aether.realtime.v1.TransportAdvisory max_stream_frame typed_disconnects_v1 none stable permanent none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_transport_advisory_fixture
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
123 server_movement_correction server_to_client gameplay apply aether.realtime.v1.MovementCorrection max_stream_frame movement_datagram_v1 none stable permanent none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_movement_correction_fixture
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages
124 server_farming_tile_deltas server_to_client gameplay apply aether.realtime.v1.FarmingTileDeltaPacket max_stream_frame continuous_replication_v1 snapshot_bootstrap experimental current none codec: encode_server_stream_packet/decode_server_stream_packet
fixture: realtime_wire::tests::server_farming_tile_deltas_round_trip_through_stream_packet
delivery: delivery_contract
validation: decode_server_stream_packet
docs: docs/wiki/protocol/realtime-protocol-registry.md#stream-messages

Client Datagrams

Name Direction Payload Max bytes Capability Compression Rollout Deprecation Replay fixture Coverage
client_move_input client_to_server `aether.realtime.v1.MoveInput MoveInputBatch` client_move_input_datagram movement_datagram_v1 none stable permanent none
client_gameplay_state client_to_server aether.realtime.v1.GameplayStateUpdate client_gameplay_state_datagram gameplay_state_datagram_v1 none stable permanent none codec: encode_client_datagram/decode_client_datagram
fixture: realtime_wire::tests::datagram_client_gameplay_state_fixture
delivery: client_datagram_delivery_contract
validation: validate_client_datagram_wire_enums
docs: docs/wiki/protocol/realtime-protocol-registry.md#client-datagrams

Server Datagrams

Name Direction Payload Max bytes Domain Client reducer Capability Compression Rollout Deprecation Replay fixture Coverage
server_state_snapshot server_to_client aether.realtime.v1.StateSnapshot max_datagram_frame World reduce_state_snapshot_datagram interest_buckets_v1 continuous_state_snapshot stable permanent none codec: encode_server_datagram/decode_server_datagram
fixture: realtime_wire::tests::datagram_server_state_snapshot_fixture
delivery: server_datagram_delivery_contract
validation: decode_server_datagram
docs: docs/wiki/protocol/realtime-protocol-registry.md#server-datagrams
server_movement_correction server_to_client aether.realtime.v1.MovementCorrection max_datagram_frame World reduce_movement_correction_datagram movement_datagram_v1 none stable permanent none codec: encode_server_datagram/decode_server_datagram
fixture: realtime_wire::tests::datagram_server_movement_correction_fixture
delivery: server_datagram_delivery_contract
validation: decode_server_datagram
docs: docs/wiki/protocol/realtime-protocol-registry.md#server-datagrams
server_equipment_state server_to_client aether.realtime.v1.EquipmentSnapshot max_datagram_frame Gameplay reduce_equipment_state_datagram equipment_state_datagram_v1 none stable permanent none codec: encode_server_datagram/decode_server_datagram
fixture: realtime_wire::tests::datagram_server_equipment_state_fixture
delivery: server_datagram_delivery_contract
validation: decode_server_datagram
docs: docs/wiki/protocol/realtime-protocol-registry.md#server-datagrams