You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

1216 lines
32 KiB

syntax = "proto2";
import "steammessages_base.proto";
import "encrypted_app_ticket.proto";
option optimize_for = SPEED;
option py_generic_services = false;
enum EMMSLobbyStatus {
k_EMMSLobbyStatusInvalid = 0;
k_EMMSLobbyStatusExists = 1;
k_EMMSLobbyStatusDoesNotExist = 2;
k_EMMSLobbyStatusNotAMember = 3;
}
message CMsgClientUDSP2PSessionStarted {
optional fixed64 steamid_remote = 1;
optional int32 appid = 2;
}
message CMsgClientUDSP2PSessionEnded {
optional fixed64 steamid_remote = 1;
optional int32 appid = 2;
optional int32 session_length_sec = 3;
optional int32 session_error = 4;
optional int32 nattype = 5;
optional int32 bytes_recv = 6;
optional int32 bytes_sent = 7;
optional int32 bytes_sent_relay = 8;
optional int32 bytes_recv_relay = 9;
optional int32 time_to_connect_ms = 10;
}
message CMsgClientRegisterAuthTicketWithCM {
optional uint32 protocol_version = 1;
optional bytes ticket = 3;
optional uint64 client_instance_id = 4;
}
message CMsgClientTicketAuthComplete {
optional fixed64 steam_id = 1;
optional fixed64 game_id = 2;
optional uint32 estate = 3;
optional uint32 eauth_session_response = 4;
optional bytes DEPRECATED_ticket = 5;
optional uint32 ticket_crc = 6;
optional uint32 ticket_sequence = 7;
optional fixed64 owner_steam_id = 8;
}
message CMsgClientCMList {
repeated uint32 cm_addresses = 1;
repeated uint32 cm_ports = 2;
repeated string cm_websocket_addresses = 3;
optional uint32 percent_default_to_websocket = 4;
}
message CMsgClientP2PConnectionInfo {
optional fixed64 steam_id_dest = 1;
optional fixed64 steam_id_src = 2;
optional uint32 app_id = 3;
optional bytes candidate = 4;
optional fixed64 legacy_connection_id_src = 5;
optional bytes rendezvous = 6;
}
message CMsgClientP2PConnectionFailInfo {
optional fixed64 steam_id_dest = 1;
optional fixed64 steam_id_src = 2;
optional uint32 app_id = 3;
optional uint32 ep2p_session_error = 4;
optional fixed64 connection_id_dest = 5;
optional uint32 close_reason = 7;
optional string close_message = 8;
}
message CMsgClientNetworkingCertRequest {
optional bytes key_data = 2;
optional uint32 app_id = 3;
}
message CMsgClientNetworkingCertReply {
optional bytes cert = 4;
optional fixed64 ca_key_id = 5;
optional bytes ca_signature = 6;
}
message CMsgClientNetworkingMobileCertRequest {
optional uint32 app_id = 1;
}
message CMsgClientNetworkingMobileCertReply {
optional string encoded_cert = 1;
}
message CMsgClientGetAppOwnershipTicket {
optional uint32 app_id = 1;
}
message CMsgClientGetAppOwnershipTicketResponse {
optional uint32 eresult = 1 [default = 2];
optional uint32 app_id = 2;
optional bytes ticket = 3;
}
message CMsgClientSessionToken {
optional uint64 token = 1;
}
message CMsgClientGameConnectTokens {
optional uint32 max_tokens_to_keep = 1 [default = 10];
repeated bytes tokens = 2;
}
message CMsgGSServerType {
optional uint32 app_id_served = 1;
optional uint32 flags = 2;
optional uint32 deprecated_game_ip_address = 3;
optional uint32 game_port = 4;
optional string game_dir = 5;
optional string game_version = 6;
optional uint32 game_query_port = 7;
}
message CMsgGSStatusReply {
optional bool is_secure = 1;
}
message CMsgGSPlayerList {
message Player {
optional uint64 steam_id = 1;
optional uint32 deprecated_public_ip = 2;
optional bytes token = 3;
optional .CMsgIPAddress public_ip = 4;
}
repeated .CMsgGSPlayerList.Player players = 1;
}
message CMsgGSUserPlaying {
optional fixed64 steam_id = 1;
optional uint32 deprecated_public_ip = 2;
optional bytes token = 3;
optional .CMsgIPAddress public_ip = 4;
}
message CMsgGSDisconnectNotice {
optional fixed64 steam_id = 1;
}
message CMsgClientGamesPlayed {
message GamePlayed {
optional uint64 steam_id_gs = 1;
optional fixed64 game_id = 2;
optional uint32 deprecated_game_ip_address = 3;
optional uint32 game_port = 4;
optional bool is_secure = 5;
optional bytes token = 6;
optional string game_extra_info = 7;
optional bytes game_data_blob = 8;
optional uint32 process_id = 9;
optional uint32 streaming_provider_id = 10;
optional uint32 game_flags = 11;
optional uint32 owner_id = 12;
optional string vr_hmd_vendor = 13;
optional string vr_hmd_model = 14;
optional uint32 launch_option_type = 15 [default = 0];
optional int32 primary_controller_type = 16 [default = -1];
optional string primary_steam_controller_serial = 17;
optional uint32 total_steam_controller_count = 18 [default = 0];
optional uint32 total_non_steam_controller_count = 19 [default = 0];
optional uint64 controller_workshop_file_id = 20 [default = 0];
optional uint32 launch_source = 21 [default = 0];
optional uint32 vr_hmd_runtime = 22;
optional .CMsgIPAddress game_ip_address = 23;
optional uint32 controller_connection_type = 24 [default = 0];
}
repeated .CMsgClientGamesPlayed.GamePlayed games_played = 1;
optional uint32 client_os_type = 2;
optional uint32 cloud_gaming_platform = 3;
}
message CMsgGSApprove {
optional fixed64 steam_id = 1;
optional fixed64 owner_steam_id = 2;
}
message CMsgGSDeny {
optional fixed64 steam_id = 1;
optional int32 edeny_reason = 2;
optional string deny_string = 3;
}
message CMsgGSKick {
optional fixed64 steam_id = 1;
optional int32 edeny_reason = 2;
}
message CMsgClientAuthList {
optional uint32 tokens_left = 1;
optional uint32 last_request_seq = 2;
optional uint32 last_request_seq_from_server = 3;
repeated .CMsgAuthTicket tickets = 4;
repeated uint32 app_ids = 5;
optional uint32 message_sequence = 6;
}
message CMsgClientAuthListAck {
repeated uint32 ticket_crc = 1;
repeated uint32 app_ids = 2;
optional uint32 message_sequence = 3;
}
message CMsgClientLicenseList {
message License {
optional uint32 package_id = 1;
optional fixed32 time_created = 2;
optional fixed32 time_next_process = 3;
optional int32 minute_limit = 4;
optional int32 minutes_used = 5;
optional uint32 payment_method = 6;
optional uint32 flags = 7;
optional string purchase_country_code = 8;
optional uint32 license_type = 9;
optional int32 territory_code = 10;
optional int32 change_number = 11;
optional uint32 owner_id = 12;
optional uint32 initial_period = 13;
optional uint32 initial_time_unit = 14;
optional uint32 renewal_period = 15;
optional uint32 renewal_time_unit = 16;
optional uint64 access_token = 17;
optional uint32 master_package_id = 18;
}
optional int32 eresult = 1 [default = 2];
repeated .CMsgClientLicenseList.License licenses = 2;
}
message CMsgClientLBSSetScore {
optional uint32 app_id = 1;
optional int32 leaderboard_id = 2;
optional int32 score = 3;
optional bytes details = 4;
optional int32 upload_score_method = 5;
}
message CMsgClientLBSSetScoreResponse {
optional int32 eresult = 1 [default = 2];
optional int32 leaderboard_entry_count = 2;
optional bool score_changed = 3;
optional int32 global_rank_previous = 4;
optional int32 global_rank_new = 5;
}
message CMsgClientLBSSetUGC {
optional uint32 app_id = 1;
optional int32 leaderboard_id = 2;
optional fixed64 ugc_id = 3;
}
message CMsgClientLBSSetUGCResponse {
optional int32 eresult = 1 [default = 2];
}
message CMsgClientLBSFindOrCreateLB {
optional uint32 app_id = 1;
optional int32 leaderboard_sort_method = 2;
optional int32 leaderboard_display_type = 3;
optional bool create_if_not_found = 4;
optional string leaderboard_name = 5;
}
message CMsgClientLBSFindOrCreateLBResponse {
optional int32 eresult = 1 [default = 2];
optional int32 leaderboard_id = 2;
optional int32 leaderboard_entry_count = 3;
optional int32 leaderboard_sort_method = 4 [default = 0];
optional int32 leaderboard_display_type = 5 [default = 0];
optional string leaderboard_name = 6;
}
message CMsgClientLBSGetLBEntries {
optional int32 app_id = 1;
optional int32 leaderboard_id = 2;
optional int32 range_start = 3;
optional int32 range_end = 4;
optional int32 leaderboard_data_request = 5;
repeated fixed64 steamids = 6;
}
message CMsgClientLBSGetLBEntriesResponse {
message Entry {
optional fixed64 steam_id_user = 1;
optional int32 global_rank = 2;
optional int32 score = 3;
optional bytes details = 4;
optional fixed64 ugc_id = 5;
}
optional int32 eresult = 1 [default = 2];
optional int32 leaderboard_entry_count = 2;
repeated .CMsgClientLBSGetLBEntriesResponse.Entry entries = 3;
}
message CMsgClientIsLimitedAccount {
optional bool bis_limited_account = 1;
optional bool bis_community_banned = 2;
optional bool bis_locked_account = 3;
optional bool bis_limited_account_allowed_to_invite_friends = 4;
}
message CMsgClientRequestedClientStats {
message StatsToSend {
optional uint32 client_stat = 1;
optional uint32 stat_aggregate_method = 2;
}
repeated .CMsgClientRequestedClientStats.StatsToSend stats_to_send = 1;
}
message CMsgClientStat2 {
message StatDetail {
optional uint32 client_stat = 1;
optional int64 ll_value = 2;
optional uint32 time_of_day = 3;
optional uint32 cell_id = 4;
optional uint32 depot_id = 5;
optional uint32 app_id = 6;
}
repeated .CMsgClientStat2.StatDetail stat_detail = 1;
}
message CMsgClientMMSSetRatelimitPolicyOnClient {
optional uint32 app_id = 1;
optional bool enable_rate_limits = 2;
optional int32 seconds_per_message = 3;
optional int32 milliseconds_per_data_update = 4;
}
message CMsgClientMMSCreateLobby {
optional uint32 app_id = 1;
optional int32 max_members = 2;
optional int32 lobby_type = 3;
optional int32 lobby_flags = 4;
optional uint32 cell_id = 5;
optional uint32 deprecated_public_ip = 6;
optional bytes metadata = 7;
optional string persona_name_owner = 8;
optional .CMsgIPAddress public_ip = 9;
}
message CMsgClientMMSCreateLobbyResponse {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional int32 eresult = 3 [default = 2];
}
message CMsgClientMMSJoinLobby {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional string persona_name = 3;
}
message CMsgClientMMSJoinLobbyResponse {
message Member {
optional fixed64 steam_id = 1;
optional string persona_name = 2;
optional bytes metadata = 3;
}
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional int32 chat_room_enter_response = 3;
optional int32 max_members = 4;
optional int32 lobby_type = 5;
optional int32 lobby_flags = 6;
optional fixed64 steam_id_owner = 7;
optional bytes metadata = 8;
repeated .CMsgClientMMSJoinLobbyResponse.Member members = 9;
}
message CMsgClientMMSLeaveLobby {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
}
message CMsgClientMMSLeaveLobbyResponse {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional int32 eresult = 3 [default = 2];
}
message CMsgClientMMSGetLobbyList {
message Filter {
optional string key = 1;
optional string value = 2;
optional int32 comparision = 3;
optional int32 filter_type = 4;
}
optional uint32 app_id = 1;
optional int32 num_lobbies_requested = 3;
optional uint32 cell_id = 4;
optional uint32 deprecated_public_ip = 5;
repeated .CMsgClientMMSGetLobbyList.Filter filters = 6;
optional .CMsgIPAddress public_ip = 7;
}
message CMsgClientMMSGetLobbyListResponse {
message Lobby {
optional fixed64 steam_id = 1;
optional int32 max_members = 2;
optional int32 lobby_type = 3;
optional int32 lobby_flags = 4;
optional bytes metadata = 5;
optional int32 num_members = 6;
optional float distance = 7;
optional int64 weight = 8;
}
optional uint32 app_id = 1;
optional int32 eresult = 3 [default = 2];
repeated .CMsgClientMMSGetLobbyListResponse.Lobby lobbies = 4;
}
message CMsgClientMMSSetLobbyData {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_member = 3;
optional int32 max_members = 4;
optional int32 lobby_type = 5;
optional int32 lobby_flags = 6;
optional bytes metadata = 7;
}
message CMsgClientMMSSetLobbyDataResponse {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional int32 eresult = 3 [default = 2];
}
message CMsgClientMMSGetLobbyData {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
}
message CMsgClientMMSLobbyData {
message Member {
optional fixed64 steam_id = 1;
optional string persona_name = 2;
optional bytes metadata = 3;
}
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional int32 num_members = 3;
optional int32 max_members = 4;
optional int32 lobby_type = 5;
optional int32 lobby_flags = 6;
optional fixed64 steam_id_owner = 7;
optional bytes metadata = 8;
repeated .CMsgClientMMSLobbyData.Member members = 9;
optional uint32 lobby_cellid = 10;
optional bool owner_should_accept_changes = 11;
}
message CMsgClientMMSSendLobbyChatMsg {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_target = 3;
optional bytes lobby_message = 4;
}
message CMsgClientMMSLobbyChatMsg {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_sender = 3;
optional bytes lobby_message = 4;
}
message CMsgClientMMSSetLobbyOwner {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_new_owner = 3;
}
message CMsgClientMMSSetLobbyOwnerResponse {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional int32 eresult = 3 [default = 2];
}
message CMsgClientMMSSetLobbyLinked {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_lobby2 = 3;
}
message CMsgClientMMSSetLobbyGameServer {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional uint32 deprecated_game_server_ip = 3;
optional uint32 game_server_port = 4;
optional fixed64 game_server_steam_id = 5;
optional .CMsgIPAddress game_server_ip = 6;
}
message CMsgClientMMSLobbyGameServerSet {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional uint32 deprecated_game_server_ip = 3;
optional uint32 game_server_port = 4;
optional fixed64 game_server_steam_id = 5;
optional .CMsgIPAddress game_server_ip = 6;
}
message CMsgClientMMSUserJoinedLobby {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_user = 3;
optional string persona_name = 4;
}
message CMsgClientMMSUserLeftLobby {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_user = 3;
optional string persona_name = 4;
}
message CMsgClientMMSInviteToLobby {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional fixed64 steam_id_user_invited = 3;
}
message CMsgClientMMSGetLobbyStatus {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional bool claim_membership = 3;
optional bool claim_ownership = 4;
}
message CMsgClientMMSGetLobbyStatusResponse {
optional uint32 app_id = 1;
optional fixed64 steam_id_lobby = 2;
optional .EMMSLobbyStatus lobby_status = 3 [default = k_EMMSLobbyStatusInvalid];
}
message CMsgClientInviteToGame {
optional fixed64 steam_id_dest = 1;
optional fixed64 steam_id_src = 2;
optional string connect_string = 3;
optional string remote_play = 4;
}
message CMsgClientChatInvite {
optional fixed64 steam_id_invited = 1;
optional fixed64 steam_id_chat = 2;
optional fixed64 steam_id_patron = 3;
optional int32 chatroom_type = 4;
optional fixed64 steam_id_friend_chat = 5;
optional string chat_name = 6;
optional fixed64 game_id = 7;
}
message CMsgClientConnectionStats {
message Stats_Logon {
optional int32 connect_attempts = 1;
optional int32 connect_successes = 2;
optional int32 connect_failures = 3;
optional int32 connections_dropped = 4;
optional uint32 seconds_running = 5;
optional uint32 msec_tologonthistime = 6;
optional uint32 count_bad_cms = 7;
}
message Stats_UDP {
optional uint64 pkts_sent = 1;
optional uint64 bytes_sent = 2;
optional uint64 pkts_recv = 3;
optional uint64 pkts_processed = 4;
optional uint64 bytes_recv = 5;
}
message Stats_VConn {
optional uint32 connections_udp = 1;
optional uint32 connections_tcp = 2;
optional .CMsgClientConnectionStats.Stats_UDP stats_udp = 3;
optional uint64 pkts_abandoned = 4;
optional uint64 conn_req_received = 5;
optional uint64 pkts_resent = 6;
optional uint64 msgs_sent = 7;
optional uint64 msgs_sent_failed = 8;
optional uint64 msgs_recv = 9;
optional uint64 datagrams_sent = 10;
optional uint64 datagrams_recv = 11;
optional uint64 bad_pkts_recv = 12;
optional uint64 unknown_conn_pkts_recv = 13;
optional uint64 missed_pkts_recv = 14;
optional uint64 dup_pkts_recv = 15;
optional uint64 failed_connect_challenges = 16;
optional uint32 micro_sec_avg_latency = 17;
optional uint32 micro_sec_min_latency = 18;
optional uint32 micro_sec_max_latency = 19;
optional uint32 mem_pool_msg_in_use = 20;
}
optional .CMsgClientConnectionStats.Stats_Logon stats_logon = 1;
optional .CMsgClientConnectionStats.Stats_VConn stats_vconn = 2;
}
message CMsgClientServersAvailable {
message Server_Types_Available {
optional uint32 server = 1;
optional bool changed = 2;
}
repeated .CMsgClientServersAvailable.Server_Types_Available server_types_available = 1;
optional uint32 server_type_for_auth_services = 2;
}
message CMsgClientGetUserStats {
optional fixed64 game_id = 1;
optional uint32 crc_stats = 2;
optional int32 schema_local_version = 3;
optional fixed64 steam_id_for_user = 4;
}
message CMsgClientGetUserStatsResponse {
message Stats {
optional uint32 stat_id = 1;
optional uint32 stat_value = 2;
}
message Achievement_Blocks {
optional uint32 achievement_id = 1;
repeated fixed32 unlock_time = 2;
}
optional fixed64 game_id = 1;
optional int32 eresult = 2 [default = 2];
optional uint32 crc_stats = 3;
optional bytes schema = 4;
repeated .CMsgClientGetUserStatsResponse.Stats stats = 5;
repeated .CMsgClientGetUserStatsResponse.Achievement_Blocks achievement_blocks = 6;
}
message CMsgClientStoreUserStatsResponse {
message Stats_Failed_Validation {
optional uint32 stat_id = 1;
optional uint32 reverted_stat_value = 2;
}
optional fixed64 game_id = 1;
optional int32 eresult = 2 [default = 2];
optional uint32 crc_stats = 3;
repeated .CMsgClientStoreUserStatsResponse.Stats_Failed_Validation stats_failed_validation = 4;
optional bool stats_out_of_date = 5;
}
message CMsgClientStoreUserStats2 {
message Stats {
optional uint32 stat_id = 1;
optional uint32 stat_value = 2;
}
optional fixed64 game_id = 1;
optional fixed64 settor_steam_id = 2;
optional fixed64 settee_steam_id = 3;
optional uint32 crc_stats = 4;
optional bool explicit_reset = 5;
repeated .CMsgClientStoreUserStats2.Stats stats = 6;
}
message CMsgClientStatsUpdated {
message Updated_Stats {
optional uint32 stat_id = 1;
optional uint32 stat_value = 2;
}
optional fixed64 steam_id = 1;
optional fixed64 game_id = 2;
optional uint32 crc_stats = 3;
repeated .CMsgClientStatsUpdated.Updated_Stats updated_stats = 4;
}
message CMsgClientStoreUserStats {
message Stats_To_Store {
optional uint32 stat_id = 1;
optional uint32 stat_value = 2;
}
optional fixed64 game_id = 1;
optional bool explicit_reset = 2;
repeated .CMsgClientStoreUserStats.Stats_To_Store stats_to_store = 3;
}
message CMsgClientGetClientDetails {
}
message CMsgClientReportOverlayDetourFailure {
repeated string failure_strings = 1;
}
message CMsgClientGetClientDetailsResponse {
message Game {
optional uint32 appid = 1;
optional string extra_info = 2;
optional uint32 time_running_sec = 3;
}
optional uint32 package_version = 1;
optional uint32 protocol_version = 8;
optional string os = 2;
optional string machine_name = 3;
optional string ip_public = 4;
optional string ip_private = 5;
optional uint64 bytes_available = 7;
repeated .CMsgClientGetClientDetailsResponse.Game games_running = 6;
}
message CMsgClientGetClientAppList {
optional bool media = 1;
optional bool tools = 2;
optional bool games = 3;
optional bool only_installed = 4;
optional bool only_changing = 5;
optional bool comics = 6;
}
message CMsgClientGetClientAppListResponse {
message App {
message DLC {
optional uint32 appid = 1;
optional bool installed = 2;
}
optional uint32 appid = 1;
optional string category = 2;
optional string app_type = 10;
optional bool favorite = 3;
optional bool installed = 4;
optional bool auto_update = 5;
optional uint64 bytes_downloaded = 6;
optional uint64 bytes_needed = 7;
optional uint32 bytes_download_rate = 8;
optional bool download_paused = 11;
optional uint32 num_downloading = 12;
optional uint32 num_paused = 13;
optional bool changing = 14;
optional bool available_on_platform = 15;
repeated .CMsgClientGetClientAppListResponse.App.DLC dlcs = 9;
}
repeated .CMsgClientGetClientAppListResponse.App apps = 1;
optional uint64 bytes_available = 2;
}
message CMsgClientInstallClientApp {
optional uint32 appid = 1;
}
message CMsgClientInstallClientAppResponse {
optional uint32 result = 1;
}
message CMsgClientUninstallClientApp {
optional uint32 appid = 1;
}
message CMsgClientUninstallClientAppResponse {
optional uint32 result = 1;
}
message CMsgClientSetClientAppUpdateState {
optional uint32 appid = 1;
optional bool update = 2;
}
message CMsgClientSetClientAppUpdateStateResponse {
optional uint32 result = 1;
}
message CMsgClientUFSUploadFileRequest {
optional uint32 app_id = 1;
optional uint32 file_size = 2;
optional uint32 raw_file_size = 3;
optional bytes sha_file = 4;
optional uint64 time_stamp = 5;
optional string file_name = 6;
optional uint32 platforms_to_sync_deprecated = 7;
optional uint32 platforms_to_sync = 8 [default = 4294967295];
optional uint32 cell_id = 9;
optional bool can_encrypt = 10;
}
message CMsgClientUFSUploadFileResponse {
optional int32 eresult = 1 [default = 2];
optional bytes sha_file = 2;
optional bool use_http = 3;
optional string http_host = 4;
optional string http_url = 5;
optional bytes kv_headers = 6;
optional bool use_https = 7;
optional bool encrypt_file = 8;
}
message CMsgClientUFSUploadCommit {
message File {
optional int32 eresult = 1 [default = 2];
optional uint32 app_id = 2;
optional bytes sha_file = 3;
optional uint32 cub_file = 4;
optional string file_name = 5;
}
repeated .CMsgClientUFSUploadCommit.File files = 1;
}
message CMsgClientUFSUploadCommitResponse {
message File {
optional int32 eresult = 1 [default = 2];
optional uint32 app_id = 2;
optional bytes sha_file = 3;
}
repeated .CMsgClientUFSUploadCommitResponse.File files = 1;
}
message CMsgClientUFSFileChunk {
optional bytes sha_file = 1;
optional uint32 file_start = 2;
optional bytes data = 3;
}
message CMsgClientUFSTransferHeartbeat {
}
message CMsgClientUFSUploadFileFinished {
optional int32 eresult = 1 [default = 2];
optional bytes sha_file = 2;
}
message CMsgClientUFSDeleteFileRequest {
optional uint32 app_id = 1;
optional string file_name = 2;
optional bool is_explicit_delete = 3;
}
message CMsgClientUFSDeleteFileResponse {
optional int32 eresult = 1 [default = 2];
optional string file_name = 2;
}
message CMsgClientUFSGetFileListForApp {
repeated uint32 apps_to_query = 1;
optional bool send_path_prefixes = 2;
}
message CMsgClientUFSGetFileListForAppResponse {
option (msgpool_soft_limit) = 8;
option (msgpool_hard_limit) = 16;
message File {
optional uint32 app_id = 1;
optional string file_name = 2;
optional bytes sha_file = 3;
optional uint64 time_stamp = 4;
optional uint32 raw_file_size = 5;
optional bool is_explicit_delete = 6;
optional uint32 platforms_to_sync = 7;
optional uint32 path_prefix_index = 8;
}
repeated .CMsgClientUFSGetFileListForAppResponse.File files = 1;
repeated string path_prefixes = 2;
}
message CMsgClientUFSDownloadRequest {
optional uint32 app_id = 1;
optional string file_name = 2;
optional bool can_handle_http = 3;
}
message CMsgClientUFSDownloadResponse {
optional int32 eresult = 1 [default = 2];
optional uint32 app_id = 2;
optional uint32 file_size = 3;
optional uint32 raw_file_size = 4;
optional bytes sha_file = 5;
optional uint64 time_stamp = 6;
optional bool is_explicit_delete = 7;
optional bool use_http = 8;
optional string http_host = 9;
optional string http_url = 10;
optional bytes kv_headers = 11;
optional bool use_https = 12;
optional bool encrypted = 13;
}
message CMsgClientUFSLoginRequest {
optional uint32 protocol_version = 1;
optional uint64 am_session_token = 2;
repeated uint32 apps = 3;
}
message CMsgClientUFSLoginResponse {
optional int32 eresult = 1 [default = 2];
}
message CMsgClientRequestEncryptedAppTicket {
optional uint32 app_id = 1;
optional bytes userdata = 2;
}
message CMsgClientRequestEncryptedAppTicketResponse {
optional uint32 app_id = 1;
optional int32 eresult = 2 [default = 2];
optional .EncryptedAppTicket encrypted_app_ticket = 3;
}
message CMsgClientWalletInfoUpdate {
optional bool has_wallet = 1;
optional int32 balance = 2;
optional int32 currency = 3;
optional int32 balance_delayed = 4;
optional int64 balance64 = 5 [(php_output_always_number) = true];
optional int64 balance64_delayed = 6 [(php_output_always_number) = true];
optional int32 realm = 7;
}
message CMsgClientAppInfoUpdate {
optional uint32 last_changenumber = 1;
optional bool send_changelist = 2;
}
message CMsgClientAppInfoChanges {
optional uint32 current_change_number = 1;
optional bool force_full_update = 2;
repeated uint32 appIDs = 3;
}
message CMsgClientAppInfoRequest {
message App {
optional uint32 app_id = 1;
optional uint32 section_flags = 2;
repeated uint32 section_CRC = 3;
}
repeated .CMsgClientAppInfoRequest.App apps = 1;
optional bool supports_batches = 2 [default = false];
}
message CMsgClientAppInfoResponse {
option (msgpool_hard_limit) = 0;
message App {
message Section {
optional uint32 section_id = 1;
optional bytes section_kv = 2;
}
optional uint32 app_id = 1;
optional uint32 change_number = 2;
repeated .CMsgClientAppInfoResponse.App.Section sections = 3;
}
repeated .CMsgClientAppInfoResponse.App apps = 1;
repeated uint32 apps_unknown = 2;
optional uint32 apps_pending = 3;
}
message CMsgClientPackageInfoRequest {
repeated uint32 package_ids = 1;
optional bool meta_data_only = 2;
}
message CMsgClientPackageInfoResponse {
message Package {
optional uint32 package_id = 1;
optional uint32 change_number = 2;
optional bytes sha = 3;
optional bytes buffer = 4;
}
repeated .CMsgClientPackageInfoResponse.Package packages = 1;
repeated uint32 packages_unknown = 2;
optional uint32 packages_pending = 3;
}
message CMsgClientPICSChangesSinceRequest {
optional uint32 since_change_number = 1;
optional bool send_app_info_changes = 2;
optional bool send_package_info_changes = 3;
optional uint32 num_app_info_cached = 4;
optional uint32 num_package_info_cached = 5;
}
message CMsgClientPICSChangesSinceResponse {
message PackageChange {
optional uint32 packageid = 1;
optional uint32 change_number = 2;
optional bool needs_token = 3;
}
message AppChange {
optional uint32 appid = 1;
optional uint32 change_number = 2;
optional bool needs_token = 3;
}
optional uint32 current_change_number = 1;
optional uint32 since_change_number = 2;
optional bool force_full_update = 3;
repeated .CMsgClientPICSChangesSinceResponse.PackageChange package_changes = 4;
repeated .CMsgClientPICSChangesSinceResponse.AppChange app_changes = 5;
optional bool force_full_app_update = 6;
optional bool force_full_package_update = 7;
}
message CMsgClientPICSProductInfoRequest {
message AppInfo {
optional uint32 appid = 1;
optional uint64 access_token = 2;
optional bool only_public_obsolete = 3;
}
message PackageInfo {
optional uint32 packageid = 1;
optional uint64 access_token = 2;
}
repeated .CMsgClientPICSProductInfoRequest.PackageInfo packages = 1;
repeated .CMsgClientPICSProductInfoRequest.AppInfo apps = 2;
optional bool meta_data_only = 3;
optional uint32 num_prev_failed = 4;
optional uint32 supports_package_tokens = 5;
}
message CMsgClientPICSProductInfoResponse {
option (msgpool_hard_limit) = 0;
message AppInfo {
optional uint32 appid = 1;
optional uint32 change_number = 2;
optional bool missing_token = 3;
optional bytes sha = 4;
optional bytes buffer = 5;
optional bool only_public = 6;
optional uint32 size = 7;
}
message PackageInfo {
optional uint32 packageid = 1;
optional uint32 change_number = 2;
optional bool missing_token = 3;
optional bytes sha = 4;
optional bytes buffer = 5;
optional uint32 size = 6;
}
repeated .CMsgClientPICSProductInfoResponse.AppInfo apps = 1;
repeated uint32 unknown_appids = 2;
repeated .CMsgClientPICSProductInfoResponse.PackageInfo packages = 3;
repeated uint32 unknown_packageids = 4;
optional bool meta_data_only = 5;
optional bool response_pending = 6;
optional uint32 http_min_size = 7;
optional string http_host = 8;
}
message CMsgClientPICSAccessTokenRequest {
repeated uint32 packageids = 1;
repeated uint32 appids = 2;
}
message CMsgClientPICSAccessTokenResponse {
message PackageToken {
optional uint32 packageid = 1;
optional uint64 access_token = 2;
}
message AppToken {
optional uint32 appid = 1;
optional uint64 access_token = 2;
}
repeated .CMsgClientPICSAccessTokenResponse.PackageToken package_access_tokens = 1;
repeated uint32 package_denied_tokens = 2;
repeated .CMsgClientPICSAccessTokenResponse.AppToken app_access_tokens = 3;
repeated uint32 app_denied_tokens = 4;
}
message CMsgClientUFSGetUGCDetails {
optional fixed64 hcontent = 1 [default = 18446744073709551615];
}
message CMsgClientUFSGetUGCDetailsResponse {
optional int32 eresult = 1 [default = 2];
optional string url = 2;
optional uint32 app_id = 3;
optional string filename = 4;
optional fixed64 steamid_creator = 5;
optional uint32 file_size = 6;
optional uint32 compressed_file_size = 7;
optional string rangecheck_host = 8;
optional string file_encoded_sha1 = 9;
}
message CMsgClientUFSGetSingleFileInfo {
optional uint32 app_id = 1;
optional string file_name = 2;
}
message CMsgClientUFSGetSingleFileInfoResponse {
optional int32 eresult = 1 [default = 2];
optional uint32 app_id = 2;
optional string file_name = 3;
optional bytes sha_file = 4;
optional uint64 time_stamp = 5;
optional uint32 raw_file_size = 6;
optional bool is_explicit_delete = 7;
}
message CMsgClientUFSShareFile {
optional uint32 app_id = 1;
optional string file_name = 2;
}
message CMsgClientUFSShareFileResponse {
optional int32 eresult = 1 [default = 2];
optional fixed64 hcontent = 2 [default = 18446744073709551615];
}
message CMsgClientAMGetClanOfficers {
optional fixed64 steamid_clan = 1;
}
message CMsgClientAMGetClanOfficersResponse {
optional int32 eresult = 1 [default = 2];
optional fixed64 steamid_clan = 2;
optional int32 officer_count = 3;
}
message CMsgClientAMGetPersonaNameHistory {
message IdInstance {
optional fixed64 steamid = 1;
}
optional int32 id_count = 1;
repeated .CMsgClientAMGetPersonaNameHistory.IdInstance Ids = 2;
}
message CMsgClientAMGetPersonaNameHistoryResponse {
message NameTableInstance {
message NameInstance {
optional fixed32 name_since = 1;
optional string name = 2;
}
optional int32 eresult = 1 [default = 2];
optional fixed64 steamid = 2;
repeated .CMsgClientAMGetPersonaNameHistoryResponse.NameTableInstance.NameInstance names = 3;
}
repeated .CMsgClientAMGetPersonaNameHistoryResponse.NameTableInstance responses = 2;
}
message CMsgClientDeregisterWithServer {
optional uint32 eservertype = 1;
optional uint32 app_id = 2;
}
message CMsgClientClanState {
message NameInfo {
optional string clan_name = 1;
optional bytes sha_avatar = 2;
}
message UserCounts {
optional uint32 members = 1;
optional uint32 online = 2;
optional uint32 chatting = 3;
optional uint32 in_game = 4;
optional uint32 chat_room_members = 5;
}
message Event {
optional fixed64 gid = 1;
optional uint32 event_time = 2;
optional string headline = 3;
optional fixed64 game_id = 4;
optional bool just_posted = 5;
}
optional fixed64 steamid_clan = 1;
optional uint32 clan_account_flags = 3;
optional .CMsgClientClanState.NameInfo name_info = 4;
optional .CMsgClientClanState.UserCounts user_counts = 5;
repeated .CMsgClientClanState.Event events = 6;
repeated .CMsgClientClanState.Event announcements = 7;
optional bool chat_room_private = 8;
}
message CMsgClientUnsignedInstallScript {
optional uint32 app_id = 1;
optional string file_name = 2;
optional uint32 file_size = 3;
optional bool signature_broken = 4;
optional uint32 depot_id = 5;
optional uint64 manifest_id = 6;
optional uint32 file_flags = 7;
}