From 9ef43407c389a39382e539d7956acfa4415aca72 Mon Sep 17 00:00:00 2001
From: Laura Braker
Date: Thu, 16 Mar 2023 03:27:16 +0100
Subject: [PATCH 001/100] Add protobuff files
---
protobuf_files/encrypted_app_ticket.proto | 11 +
protobuf_files/enums.proto | 392 ++
.../google/protobuf/descriptor.proto | 282 +
protobuf_files/orig/.gitattributes | 1 +
protobuf_files/orig/.gitignore | 1 +
protobuf_files/orig/LICENSE | 24 +
protobuf_files/orig/README.md | 7 +
.../orig/google/protobuf/descriptor.proto | 281 +
protobuf_files/orig/steam/clientmetrics.proto | 45 +
.../orig/steam/content_manifest.proto | 62 +
protobuf_files/orig/steam/contenthubs.proto | 41 +
.../orig/steam/encrypted_app_ticket.proto | 10 +
protobuf_files/orig/steam/enums.proto | 391 ++
.../orig/steam/enums_clientserver.proto | 1543 +++++
.../orig/steam/enums_productinfo.proto | 13 +
protobuf_files/orig/steam/htmlmessages.proto | 1022 +++
.../orig/steam/offline_ticket.proto | 8 +
.../orig/steam/renderer/rendermessages.proto | 893 +++
.../steam/steamdatagram_messages_auth.proto | 65 +
.../steam/steamdatagram_messages_sdr.proto | 528 ++
...messages_accounthardware.steamclient.proto | 201 +
.../steam/steammessages_appoverview.proto | 187 +
.../steammessages_auth.steamclient.proto | 411 ++
.../orig/steam/steammessages_base.proto | 314 +
.../steammessages_broadcast.steamclient.proto | 758 +++
.../steammessages_chat.steamclient.proto | 1281 ++++
.../steam/steammessages_client_objects.proto | 614 ++
.../steam/steammessages_clientlanp2p.proto | 42 +
...ammessages_clientmetrics.steamclient.proto | 194 +
...teammessages_clientnotificationtypes.proto | 176 +
.../steam/steammessages_clientserver.proto | 392 ++
.../steam/steammessages_clientserver_2.proto | 758 +++
.../steammessages_clientserver_appinfo.proto | 130 +
.../steammessages_clientserver_friends.proto | 260 +
...eammessages_clientserver_gameservers.proto | 159 +
.../steammessages_clientserver_lbs.proto | 70 +
.../steammessages_clientserver_login.proto | 166 +
.../steammessages_clientserver_mms.proto | 228 +
.../steammessages_clientserver_ucm.proto | 204 +
.../steammessages_clientserver_uds.proto | 124 +
.../steammessages_clientserver_ufs.proto | 172 +
...steammessages_clientserver_userstats.proto | 80 +
.../steam/steammessages_clientsettings.proto | 131 +
.../steammessages_cloud.steamclient.proto | 513 ++
...ammessages_contentsystem.steamclient.proto | 113 +
...teammessages_credentials.steamclient.proto | 115 +
...ammessages_datapublisher.steamclient.proto | 66 +
...eammessages_depotbuilder.steamclient.proto | 118 +
...steammessages_deviceauth.steamclient.proto | 203 +
.../steammessages_econ.steamclient.proto | 149 +
...mmessages_friendmessages.steamclient.proto | 168 +
...mmessages_gamenetworking.steamclient.proto | 32 +
.../steammessages_gamenetworkingui.proto | 42 +
...ssages_gamenotifications.steamclient.proto | 156 +
...teammessages_gameservers.steamclient.proto | 152 +
.../orig/steam/steammessages_hiddevices.proto | 156 +
.../steammessages_inventory.steamclient.proto | 224 +
...steammessages_linkfilter.steamclient.proto | 49 +
...essages_lobbymatchmaking.steamclient.proto | 33 +
.../steammessages_market.steamclient.proto | 26 +
...ssages_marketingmessages.steamclient.proto | 226 +
.../steammessages_offline.steamclient.proto | 40 +
.../steammessages_parental.steamclient.proto | 186 +
.../steammessages_parties.steamclient.proto | 94 +
...teammessages_partnerapps.steamclient.proto | 137 +
.../steammessages_player.steamclient.proto | 1001 +++
...ammessages_publishedfile.steamclient.proto | 809 +++
.../steam/steammessages_qms.steamclient.proto | 125 +
.../steam/steammessages_remoteclient.proto | 99 +
...steammessages_remoteclient_discovery.proto | 232 +
...ges_remoteclient_service.steamclient.proto | 90 +
...ssages_remoteclient_service_messages.proto | 198 +
.../orig/steam/steammessages_remoteplay.proto | 943 +++
.../steammessages_secrets.steamclient.proto | 39 +
.../steammessages_shader.steamclient.proto | 96 +
...eammessages_site_license.steamclient.proto | 128 +
.../steammessages_sitelicenseclient.proto | 38 +
.../steam/steammessages_siteserverui.proto | 130 +
.../steammessages_star.steamclient.proto | 64 +
.../steammessages_steamtv.steamclient.proto | 630 ++
.../steammessages_store.steamclient.proto | 344 +
...teammessages_storebrowse.steamclient.proto | 386 ++
...steammessages_timedtrial.steamclient.proto | 50 +
.../steammessages_twofactor.steamclient.proto | 186 +
...eammessages_unified_base.steamclient.proto | 33 +
...eammessages_unified_test.steamclient.proto | 61 +
...teammessages_useraccount.steamclient.proto | 249 +
.../steam/steammessages_vac.steamclient.proto | 44 +
.../steammessages_video.steamclient.proto | 84 +
.../steammessages_virtualcontroller.proto | 138 +
.../steammessages_workshop.steamclient.proto | 23 +
.../steamnetworkingsockets_messages.proto | 204 +
...teamnetworkingsockets_messages_certs.proto | 39 +
.../steamnetworkingsockets_messages_udp.proto | 75 +
protobuf_files/orig/update.sh | 13 +
protobuf_files/orig/webui/common.proto | 5809 +++++++++++++++++
protobuf_files/orig/webui/common_base.proto | 27 +
.../orig/webui/service_accountlinking.proto | 27 +
.../orig/webui/service_accountprivacy.proto | 42 +
.../orig/webui/service_auction.proto | 89 +
.../orig/webui/service_authentication.proto | 208 +
.../webui/service_authenticationsupport.proto | 74 +
.../orig/webui/service_broadcast.proto | 562 ++
protobuf_files/orig/webui/service_chat.proto | 11 +
.../orig/webui/service_chatroom.proto | 810 +++
.../orig/webui/service_chatusability.proto | 107 +
protobuf_files/orig/webui/service_clan.proto | 41 +
.../orig/webui/service_clanchatrooms.proto | 25 +
.../orig/webui/service_clanfaqs.proto | 170 +
.../orig/webui/service_clientcomm.proto | 150 +
.../orig/webui/service_clientmetrics.proto | 63 +
protobuf_files/orig/webui/service_cloud.proto | 222 +
.../orig/webui/service_cloudconfigstore.proto | 51 +
.../orig/webui/service_cloudgaming.proto | 30 +
.../orig/webui/service_community.proto | 362 +
protobuf_files/orig/webui/service_econ.proto | 133 +
.../orig/webui/service_embedded.proto | 24 +
.../webui/service_experimentservice.proto | 6 +
.../orig/webui/service_fovasvideo.proto | 11 +
.../orig/webui/service_friendmessages.proto | 133 +
.../orig/webui/service_friendslist.proto | 70 +
.../orig/webui/service_helprequestlogs.proto | 26 +
.../orig/webui/service_loyaltyrewards.proto | 247 +
.../webui/service_marketingmessages.proto | 155 +
.../orig/webui/service_mobileapp.proto | 18 +
.../orig/webui/service_mobileauth.proto | 24 +
.../orig/webui/service_mobiledevice.proto | 26 +
.../orig/webui/service_mobileperaccount.proto | 31 +
protobuf_files/orig/webui/service_news.proto | 101 +
.../orig/webui/service_parental.proto | 142 +
.../service_partnermembershipinvite.proto | 29 +
.../webui/service_partnerstorebrowse.proto | 6 +
protobuf_files/orig/webui/service_phone.proto | 51 +
.../orig/webui/service_player.proto | 828 +++
.../webui/service_promotioneventinvites.proto | 82 +
.../webui/service_promotionplanning.proto | 72 +
.../orig/webui/service_publishedfile.proto | 668 ++
.../orig/webui/service_publishing.proto | 165 +
protobuf_files/orig/webui/service_quest.proto | 126 +
.../orig/webui/service_salefeature.proto | 297 +
.../orig/webui/service_saleitemrewards.proto | 54 +
.../orig/webui/service_steamawards.proto | 19 +
.../orig/webui/service_steamcharts.proto | 71 +
.../orig/webui/service_steamlearn.proto | 471 ++
.../webui/service_steamnotification.proto | 67 +
.../orig/webui/service_steamtv.proto | 344 +
.../orig/webui/service_steamvrvoicechat.proto | 23 +
.../orig/webui/service_steamvrwebrtc.proto | 48 +
protobuf_files/orig/webui/service_store.proto | 271 +
.../webui/service_storeappsimilarity.proto | 57 +
.../orig/webui/service_storebrowse.proto | 73 +
.../orig/webui/service_storequery.proto | 96 +
.../orig/webui/service_storesales.proto | 15 +
.../orig/webui/service_storetopsellers.proto | 44 +
.../orig/webui/service_twofactor.proto | 164 +
.../orig/webui/service_useraccount.proto | 138 +
.../orig/webui/service_usergameactivity.proto | 34 +
.../orig/webui/service_usergamenotes.proto | 53 +
.../orig/webui/service_usernews.proto | 68 +
.../orig/webui/service_userreviews.proto | 96 +
protobuf_files/orig/webui/service_video.proto | 40 +
.../orig/webui/service_voicechat.proto | 139 +
.../orig/webui/service_webrtc.proto | 50 +
protobuf_files/service_cloudconfigstore.proto | 52 +
protobuf_files/service_community.proto | 323 +
protobuf_files/steammessages_base.proto | 317 +
.../steammessages_chat.steamclient.proto | 1282 ++++
.../steammessages_client_objects.proto | 615 ++
.../steammessages_clientserver.proto | 393 ++
.../steammessages_clientserver_2.proto | 759 +++
.../steammessages_clientserver_appinfo.proto | 131 +
.../steammessages_clientserver_friends.proto | 261 +
.../steammessages_clientserver_login.proto | 167 +
...steammessages_clientserver_userstats.proto | 81 +
.../steammessages_player.steamclient.proto | 1002 +++
...eammessages_unified_base.steamclient.proto | 34 +
176 files changed, 42424 insertions(+)
create mode 100644 protobuf_files/encrypted_app_ticket.proto
create mode 100644 protobuf_files/enums.proto
create mode 100644 protobuf_files/google/protobuf/descriptor.proto
create mode 100644 protobuf_files/orig/.gitattributes
create mode 100644 protobuf_files/orig/.gitignore
create mode 100644 protobuf_files/orig/LICENSE
create mode 100644 protobuf_files/orig/README.md
create mode 100644 protobuf_files/orig/google/protobuf/descriptor.proto
create mode 100644 protobuf_files/orig/steam/clientmetrics.proto
create mode 100644 protobuf_files/orig/steam/content_manifest.proto
create mode 100644 protobuf_files/orig/steam/contenthubs.proto
create mode 100644 protobuf_files/orig/steam/encrypted_app_ticket.proto
create mode 100644 protobuf_files/orig/steam/enums.proto
create mode 100644 protobuf_files/orig/steam/enums_clientserver.proto
create mode 100644 protobuf_files/orig/steam/enums_productinfo.proto
create mode 100644 protobuf_files/orig/steam/htmlmessages.proto
create mode 100644 protobuf_files/orig/steam/offline_ticket.proto
create mode 100644 protobuf_files/orig/steam/renderer/rendermessages.proto
create mode 100644 protobuf_files/orig/steam/steamdatagram_messages_auth.proto
create mode 100644 protobuf_files/orig/steam/steamdatagram_messages_sdr.proto
create mode 100644 protobuf_files/orig/steam/steammessages_accounthardware.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_appoverview.proto
create mode 100644 protobuf_files/orig/steam/steammessages_auth.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_base.proto
create mode 100644 protobuf_files/orig/steam/steammessages_broadcast.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_chat.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_client_objects.proto
create mode 100644 protobuf_files/orig/steam/steammessages_clientlanp2p.proto
create mode 100644 protobuf_files/orig/steam/steammessages_clientmetrics.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_clientnotificationtypes.proto
create mode 100644 protobuf_files/orig/steam/steammessages_clientserver.proto
create mode 100644 protobuf_files/orig/steam/steammessages_clientserver_2.proto
create mode 100644 protobuf_files/orig/steam/steammessages_clientserver_appinfo.proto
create mode 100644 protobuf_files/orig/steam/steammessages_clientserver_friends.proto
create mode 100644 protobuf_files/orig/steam/steammessages_clientserver_gameservers.proto
create mode 100644 protobuf_files/orig/steam/steammessages_clientserver_lbs.proto
create mode 100644 protobuf_files/orig/steam/steammessages_clientserver_login.proto
create mode 100644 protobuf_files/orig/steam/steammessages_clientserver_mms.proto
create mode 100644 protobuf_files/orig/steam/steammessages_clientserver_ucm.proto
create mode 100644 protobuf_files/orig/steam/steammessages_clientserver_uds.proto
create mode 100644 protobuf_files/orig/steam/steammessages_clientserver_ufs.proto
create mode 100644 protobuf_files/orig/steam/steammessages_clientserver_userstats.proto
create mode 100644 protobuf_files/orig/steam/steammessages_clientsettings.proto
create mode 100644 protobuf_files/orig/steam/steammessages_cloud.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_contentsystem.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_credentials.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_datapublisher.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_depotbuilder.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_deviceauth.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_econ.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_friendmessages.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_gamenetworking.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_gamenetworkingui.proto
create mode 100644 protobuf_files/orig/steam/steammessages_gamenotifications.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_gameservers.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_hiddevices.proto
create mode 100644 protobuf_files/orig/steam/steammessages_inventory.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_linkfilter.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_lobbymatchmaking.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_market.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_marketingmessages.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_offline.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_parental.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_parties.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_partnerapps.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_player.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_publishedfile.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_qms.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_remoteclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_remoteclient_discovery.proto
create mode 100644 protobuf_files/orig/steam/steammessages_remoteclient_service.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_remoteclient_service_messages.proto
create mode 100644 protobuf_files/orig/steam/steammessages_remoteplay.proto
create mode 100644 protobuf_files/orig/steam/steammessages_secrets.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_shader.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_site_license.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_sitelicenseclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_siteserverui.proto
create mode 100644 protobuf_files/orig/steam/steammessages_star.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_steamtv.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_store.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_storebrowse.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_timedtrial.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_twofactor.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_unified_base.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_unified_test.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_useraccount.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_vac.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_video.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steammessages_virtualcontroller.proto
create mode 100644 protobuf_files/orig/steam/steammessages_workshop.steamclient.proto
create mode 100644 protobuf_files/orig/steam/steamnetworkingsockets_messages.proto
create mode 100644 protobuf_files/orig/steam/steamnetworkingsockets_messages_certs.proto
create mode 100644 protobuf_files/orig/steam/steamnetworkingsockets_messages_udp.proto
create mode 100644 protobuf_files/orig/update.sh
create mode 100644 protobuf_files/orig/webui/common.proto
create mode 100644 protobuf_files/orig/webui/common_base.proto
create mode 100644 protobuf_files/orig/webui/service_accountlinking.proto
create mode 100644 protobuf_files/orig/webui/service_accountprivacy.proto
create mode 100644 protobuf_files/orig/webui/service_auction.proto
create mode 100644 protobuf_files/orig/webui/service_authentication.proto
create mode 100644 protobuf_files/orig/webui/service_authenticationsupport.proto
create mode 100644 protobuf_files/orig/webui/service_broadcast.proto
create mode 100644 protobuf_files/orig/webui/service_chat.proto
create mode 100644 protobuf_files/orig/webui/service_chatroom.proto
create mode 100644 protobuf_files/orig/webui/service_chatusability.proto
create mode 100644 protobuf_files/orig/webui/service_clan.proto
create mode 100644 protobuf_files/orig/webui/service_clanchatrooms.proto
create mode 100644 protobuf_files/orig/webui/service_clanfaqs.proto
create mode 100644 protobuf_files/orig/webui/service_clientcomm.proto
create mode 100644 protobuf_files/orig/webui/service_clientmetrics.proto
create mode 100644 protobuf_files/orig/webui/service_cloud.proto
create mode 100644 protobuf_files/orig/webui/service_cloudconfigstore.proto
create mode 100644 protobuf_files/orig/webui/service_cloudgaming.proto
create mode 100644 protobuf_files/orig/webui/service_community.proto
create mode 100644 protobuf_files/orig/webui/service_econ.proto
create mode 100644 protobuf_files/orig/webui/service_embedded.proto
create mode 100644 protobuf_files/orig/webui/service_experimentservice.proto
create mode 100644 protobuf_files/orig/webui/service_fovasvideo.proto
create mode 100644 protobuf_files/orig/webui/service_friendmessages.proto
create mode 100644 protobuf_files/orig/webui/service_friendslist.proto
create mode 100644 protobuf_files/orig/webui/service_helprequestlogs.proto
create mode 100644 protobuf_files/orig/webui/service_loyaltyrewards.proto
create mode 100644 protobuf_files/orig/webui/service_marketingmessages.proto
create mode 100644 protobuf_files/orig/webui/service_mobileapp.proto
create mode 100644 protobuf_files/orig/webui/service_mobileauth.proto
create mode 100644 protobuf_files/orig/webui/service_mobiledevice.proto
create mode 100644 protobuf_files/orig/webui/service_mobileperaccount.proto
create mode 100644 protobuf_files/orig/webui/service_news.proto
create mode 100644 protobuf_files/orig/webui/service_parental.proto
create mode 100644 protobuf_files/orig/webui/service_partnermembershipinvite.proto
create mode 100644 protobuf_files/orig/webui/service_partnerstorebrowse.proto
create mode 100644 protobuf_files/orig/webui/service_phone.proto
create mode 100644 protobuf_files/orig/webui/service_player.proto
create mode 100644 protobuf_files/orig/webui/service_promotioneventinvites.proto
create mode 100644 protobuf_files/orig/webui/service_promotionplanning.proto
create mode 100644 protobuf_files/orig/webui/service_publishedfile.proto
create mode 100644 protobuf_files/orig/webui/service_publishing.proto
create mode 100644 protobuf_files/orig/webui/service_quest.proto
create mode 100644 protobuf_files/orig/webui/service_salefeature.proto
create mode 100644 protobuf_files/orig/webui/service_saleitemrewards.proto
create mode 100644 protobuf_files/orig/webui/service_steamawards.proto
create mode 100644 protobuf_files/orig/webui/service_steamcharts.proto
create mode 100644 protobuf_files/orig/webui/service_steamlearn.proto
create mode 100644 protobuf_files/orig/webui/service_steamnotification.proto
create mode 100644 protobuf_files/orig/webui/service_steamtv.proto
create mode 100644 protobuf_files/orig/webui/service_steamvrvoicechat.proto
create mode 100644 protobuf_files/orig/webui/service_steamvrwebrtc.proto
create mode 100644 protobuf_files/orig/webui/service_store.proto
create mode 100644 protobuf_files/orig/webui/service_storeappsimilarity.proto
create mode 100644 protobuf_files/orig/webui/service_storebrowse.proto
create mode 100644 protobuf_files/orig/webui/service_storequery.proto
create mode 100644 protobuf_files/orig/webui/service_storesales.proto
create mode 100644 protobuf_files/orig/webui/service_storetopsellers.proto
create mode 100644 protobuf_files/orig/webui/service_twofactor.proto
create mode 100644 protobuf_files/orig/webui/service_useraccount.proto
create mode 100644 protobuf_files/orig/webui/service_usergameactivity.proto
create mode 100644 protobuf_files/orig/webui/service_usergamenotes.proto
create mode 100644 protobuf_files/orig/webui/service_usernews.proto
create mode 100644 protobuf_files/orig/webui/service_userreviews.proto
create mode 100644 protobuf_files/orig/webui/service_video.proto
create mode 100644 protobuf_files/orig/webui/service_voicechat.proto
create mode 100644 protobuf_files/orig/webui/service_webrtc.proto
create mode 100644 protobuf_files/service_cloudconfigstore.proto
create mode 100644 protobuf_files/service_community.proto
create mode 100644 protobuf_files/steammessages_base.proto
create mode 100644 protobuf_files/steammessages_chat.steamclient.proto
create mode 100644 protobuf_files/steammessages_client_objects.proto
create mode 100644 protobuf_files/steammessages_clientserver.proto
create mode 100644 protobuf_files/steammessages_clientserver_2.proto
create mode 100644 protobuf_files/steammessages_clientserver_appinfo.proto
create mode 100644 protobuf_files/steammessages_clientserver_friends.proto
create mode 100644 protobuf_files/steammessages_clientserver_login.proto
create mode 100644 protobuf_files/steammessages_clientserver_userstats.proto
create mode 100644 protobuf_files/steammessages_player.steamclient.proto
create mode 100644 protobuf_files/steammessages_unified_base.steamclient.proto
diff --git a/protobuf_files/encrypted_app_ticket.proto b/protobuf_files/encrypted_app_ticket.proto
new file mode 100644
index 00000000..821242ca
--- /dev/null
+++ b/protobuf_files/encrypted_app_ticket.proto
@@ -0,0 +1,11 @@
+syntax = "proto2";
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+message EncryptedAppTicket {
+ optional uint32 ticket_version_no = 1;
+ optional uint32 crc_encryptedticket = 2;
+ optional uint32 cb_encrypteduserdata = 3;
+ optional uint32 cb_encrypted_appownershipticket = 4;
+ optional bytes encrypted_ticket = 5;
+}
diff --git a/protobuf_files/enums.proto b/protobuf_files/enums.proto
new file mode 100644
index 00000000..a7aafae1
--- /dev/null
+++ b/protobuf_files/enums.proto
@@ -0,0 +1,392 @@
+syntax = "proto2";
+import "steammessages_base.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = true;
+option (force_php_generation) = true;
+
+enum EPublishedFileQueryType {
+ k_PublishedFileQueryType_RankedByVote = 0;
+ k_PublishedFileQueryType_RankedByPublicationDate = 1;
+ k_PublishedFileQueryType_AcceptedForGameRankedByAcceptanceDate = 2;
+ k_PublishedFileQueryType_RankedByTrend = 3;
+ k_PublishedFileQueryType_FavoritedByFriendsRankedByPublicationDate = 4;
+ k_PublishedFileQueryType_CreatedByFriendsRankedByPublicationDate = 5;
+ k_PublishedFileQueryType_RankedByNumTimesReported = 6;
+ k_PublishedFileQueryType_CreatedByFollowedUsersRankedByPublicationDate = 7;
+ k_PublishedFileQueryType_NotYetRated = 8;
+ k_PublishedFileQueryType_RankedByTotalUniqueSubscriptions = 9;
+ k_PublishedFileQueryType_RankedByTotalVotesAsc = 10;
+ k_PublishedFileQueryType_RankedByVotesUp = 11;
+ k_PublishedFileQueryType_RankedByTextSearch = 12;
+ k_PublishedFileQueryType_RankedByPlaytimeTrend = 13;
+ k_PublishedFileQueryType_RankedByTotalPlaytime = 14;
+ k_PublishedFileQueryType_RankedByAveragePlaytimeTrend = 15;
+ k_PublishedFileQueryType_RankedByLifetimeAveragePlaytime = 16;
+ k_PublishedFileQueryType_RankedByPlaytimeSessionsTrend = 17;
+ k_PublishedFileQueryType_RankedByLifetimePlaytimeSessions = 18;
+ k_PublishedFileQueryType_RankedByInappropriateContentRating = 19;
+ k_PublishedFileQueryType_RankedByBanContentCheck = 20;
+ k_PublishedFileQueryType_RankedByLastUpdatedDate = 21;
+}
+
+enum EPublishedFileInappropriateProvider {
+ k_EPublishedFileInappropriateProvider_Invalid = 0;
+ k_EPublishedFileInappropriateProvider_Google = 1;
+ k_EPublishedFileInappropriateProvider_Amazon = 2;
+}
+
+enum EPublishedFileInappropriateResult {
+ k_EPublishedFileInappropriateResult_NotScanned = 0;
+ k_EPublishedFileInappropriateResult_VeryUnlikely = 1;
+ k_EPublishedFileInappropriateResult_Unlikely = 30;
+ k_EPublishedFileInappropriateResult_Possible = 50;
+ k_EPublishedFileInappropriateResult_Likely = 75;
+ k_EPublishedFileInappropriateResult_VeryLikely = 100;
+}
+
+enum EPersonaStateFlag {
+ k_EPersonaStateFlag_HasRichPresence = 1;
+ k_EPersonaStateFlag_InJoinableGame = 2;
+ k_EPersonaStateFlag_Golden = 4;
+ k_EPersonaStateFlag_RemotePlayTogether = 8;
+ k_EPersonaStateFlag_ClientTypeWeb = 256;
+ k_EPersonaStateFlag_ClientTypeMobile = 512;
+ k_EPersonaStateFlag_ClientTypeTenfoot = 1024;
+ k_EPersonaStateFlag_ClientTypeVR = 2048;
+ k_EPersonaStateFlag_LaunchTypeGamepad = 4096;
+ k_EPersonaStateFlag_LaunchTypeCompatTool = 8192;
+}
+
+enum EContentCheckProvider {
+ k_EContentCheckProvider_Invalid = 0;
+ k_EContentCheckProvider_Google = 1;
+ k_EContentCheckProvider_Amazon = 2;
+ k_EContentCheckProvider_Local = 3;
+}
+
+enum EProfileCustomizationType {
+ k_EProfileCustomizationTypeInvalid = 0;
+ k_EProfileCustomizationTypeRareAchievementShowcase = 1;
+ k_EProfileCustomizationTypeGameCollector = 2;
+ k_EProfileCustomizationTypeItemShowcase = 3;
+ k_EProfileCustomizationTypeTradeShowcase = 4;
+ k_EProfileCustomizationTypeBadges = 5;
+ k_EProfileCustomizationTypeFavoriteGame = 6;
+ k_EProfileCustomizationTypeScreenshotShowcase = 7;
+ k_EProfileCustomizationTypeCustomText = 8;
+ k_EProfileCustomizationTypeFavoriteGroup = 9;
+ k_EProfileCustomizationTypeRecommendation = 10;
+ k_EProfileCustomizationTypeWorkshopItem = 11;
+ k_EProfileCustomizationTypeMyWorkshop = 12;
+ k_EProfileCustomizationTypeArtworkShowcase = 13;
+ k_EProfileCustomizationTypeVideoShowcase = 14;
+ k_EProfileCustomizationTypeGuides = 15;
+ k_EProfileCustomizationTypeMyGuides = 16;
+ k_EProfileCustomizationTypeAchievements = 17;
+ k_EProfileCustomizationTypeGreenlight = 18;
+ k_EProfileCustomizationTypeMyGreenlight = 19;
+ k_EProfileCustomizationTypeSalien = 20;
+ k_EProfileCustomizationTypeLoyaltyRewardReactions = 21;
+ k_EProfileCustomizationTypeSingleArtworkShowcase = 22;
+ k_EProfileCustomizationTypeAchievementsCompletionist = 23;
+ k_EProfileCustomizationTypeReplay = 24;
+}
+
+enum EPublishedFileStorageSystem {
+ k_EPublishedFileStorageSystemInvalid = 0;
+ k_EPublishedFileStorageSystemLegacyCloud = 1;
+ k_EPublishedFileStorageSystemDepot = 2;
+ k_EPublishedFileStorageSystemUGCCloud = 3;
+}
+
+enum ECloudStoragePersistState {
+ k_ECloudStoragePersistStatePersisted = 0;
+ k_ECloudStoragePersistStateForgotten = 1;
+ k_ECloudStoragePersistStateDeleted = 2;
+}
+
+enum ESDCardFormatStage {
+ k_ESDCardFormatStage_Invalid = 0;
+ k_ESDCardFormatStage_Starting = 1;
+ k_ESDCardFormatStage_Testing = 2;
+ k_ESDCardFormatStage_Rescuing = 3;
+ k_ESDCardFormatStage_Formatting = 4;
+ k_ESDCardFormatStage_Finalizing = 5;
+}
+
+enum ESystemFanControlMode {
+ k_SystemFanControlMode_Invalid = 0;
+ k_SystemFanControlMode_Disabled = 1;
+ k_SystemFanControlMode_Default = 2;
+}
+
+enum EColorProfile {
+ k_EColorProfile_Invalid = 0;
+ k_EColorProfile_Native = 1;
+ k_EColorProfile_Standard = 2;
+ k_EColorProfile_Vivid = 3;
+}
+
+enum EBluetoothDeviceType {
+ k_BluetoothDeviceType_Invalid = 0;
+ k_BluetoothDeviceType_Unknown = 1;
+ k_BluetoothDeviceType_Phone = 2;
+ k_BluetoothDeviceType_Computer = 3;
+ k_BluetoothDeviceType_Headset = 4;
+ k_BluetoothDeviceType_Headphones = 5;
+ k_BluetoothDeviceType_Speakers = 6;
+ k_BluetoothDeviceType_OtherAudio = 7;
+ k_BluetoothDeviceType_Mouse = 8;
+ k_BluetoothDeviceType_Joystick = 9;
+ k_BluetoothDeviceType_Gamepad = 10;
+ k_BluetoothDeviceType_Keyboard = 11;
+}
+
+enum ESystemAudioDirection {
+ k_SystemAudioDirection_Invalid = 0;
+ k_SystemAudioDirection_Input = 1;
+ k_SystemAudioDirection_Output = 2;
+}
+
+enum ESystemAudioChannel {
+ k_SystemAudioChannel_Invalid = 0;
+ k_SystemAudioChannel_Aggregated = 1;
+ k_SystemAudioChannel_FrontLeft = 2;
+ k_SystemAudioChannel_FrontRight = 3;
+ k_SystemAudioChannel_LFE = 4;
+ k_SystemAudioChannel_BackLeft = 5;
+ k_SystemAudioChannel_BackRight = 6;
+ k_SystemAudioChannel_FrontCenter = 7;
+ k_SystemAudioChannel_Unknown = 8;
+ k_SystemAudioChannel_Mono = 9;
+}
+
+enum ESystemAudioPortType {
+ k_SystemAudioPortType_Invalid = 0;
+ k_SystemAudioPortType_Unknown = 1;
+ k_SystemAudioPortType_Audio32f = 2;
+ k_SystemAudioPortType_Midi8b = 3;
+ k_SystemAudioPortType_Video32RGBA = 4;
+}
+
+enum ESystemAudioPortDirection {
+ k_SystemAudioPortDirection_Invalid = 0;
+ k_SystemAudioPortDirection_Input = 1;
+ k_SystemAudioPortDirection_Output = 2;
+}
+
+enum ESystemServiceState {
+ k_ESystemServiceState_Unavailable = 0;
+ k_ESystemServiceState_Disabled = 1;
+ k_ESystemServiceState_Enabled = 2;
+}
+
+enum EGraphicsPerfOverlayLevel {
+ k_EGraphicsPerfOverlayLevel_Hidden = 0;
+ k_EGraphicsPerfOverlayLevel_Basic = 1;
+ k_EGraphicsPerfOverlayLevel_Medium = 2;
+ k_EGraphicsPerfOverlayLevel_Full = 3;
+ k_EGraphicsPerfOverlayLevel_Minimal = 4;
+}
+
+enum EGPUPerformanceLevel {
+ k_EGPUPerformanceLevel_Invalid = 0;
+ k_EGPUPerformanceLevel_Auto = 1;
+ k_EGPUPerformanceLevel_Manual = 2;
+ k_EGPUPerformanceLevel_Low = 3;
+ k_EGPUPerformanceLevel_High = 4;
+ k_EGPUPerformanceLevel_Profiling = 5;
+}
+
+enum EScalingFilter {
+ k_EScalingFilter_Invalid = 0;
+ k_EScalingFilter_FSR = 1;
+ k_EScalingFilter_Nearest = 2;
+ k_EScalingFilter_Integer = 3;
+ k_EScalingFilter_Linear = 4;
+ k_EScalingFilter_NIS = 5;
+}
+
+enum ESplitScalingFilter {
+ k_ESplitScalingFilter_Invalid = 0;
+ k_ESplitScalingFilter_Linear = 1;
+ k_ESplitScalingFilter_Nearest = 2;
+ k_ESplitScalingFilter_FSR = 3;
+ k_ESplitScalingFilter_NIS = 4;
+}
+
+enum ESplitScalingScaler {
+ k_ESplitScalingScaler_Invalid = 0;
+ k_ESplitScalingScaler_Auto = 1;
+ k_ESplitScalingScaler_Integer = 2;
+ k_ESplitScalingScaler_Fit = 3;
+ k_ESplitScalingScaler_Fill = 4;
+ k_ESplitScalingScaler_Stretch = 5;
+}
+
+enum EHDRToneMapOperator {
+ k_EHDRToneMapOperator_Invalid = 0;
+ k_EHDRToneMapOperator_Uncharted = 1;
+ k_EHDRToneMapOperator_Reinhard = 2;
+}
+
+enum ECPUGovernor {
+ k_ECPUGovernor_Invalid = 0;
+ k_ECPUGovernor_Perf = 1;
+ k_ECPUGovernor_Powersave = 2;
+ k_ECPUGovernor_Manual = 3;
+}
+
+enum EUpdaterType {
+ k_EUpdaterType_Invalid = 0;
+ k_EUpdaterType_Client = 1;
+ k_EUpdaterType_OS = 2;
+ k_EUpdaterType_BIOS = 3;
+ k_EUpdaterType_Aggregated = 4;
+ k_EUpdaterType_Test1 = 5;
+ k_EUpdaterType_Test2 = 6;
+ k_EUpdaterType_Dummy = 7;
+}
+
+enum EUpdaterState {
+ k_EUpdaterState_Invalid = 0;
+ k_EUpdaterState_UpToDate = 2;
+ k_EUpdaterState_Checking = 3;
+ k_EUpdaterState_Available = 4;
+ k_EUpdaterState_Applying = 5;
+ k_EUpdaterState_ClientRestartPending = 6;
+ k_EUpdaterState_SystemRestartPending = 7;
+}
+
+enum EStorageBlockContentType {
+ k_EStorageBlockContentType_Invalid = 0;
+ k_EStorageBlockContentType_Unknown = 1;
+ k_EStorageBlockContentType_FileSystem = 2;
+ k_EStorageBlockContentType_Crypto = 3;
+ k_EStorageBlockContentType_Raid = 4;
+}
+
+enum EStorageBlockFileSystemType {
+ k_EStorageBlockFileSystemType_Invalid = 0;
+ k_EStorageBlockFileSystemType_Unknown = 1;
+ k_EStorageBlockFileSystemType_VFat = 2;
+ k_EStorageBlockFileSystemType_Ext4 = 3;
+}
+
+enum EStorageDriveMediaType {
+ k_EStorageDriveMediaType_Invalid = 0;
+ k_EStorageDriveMediaType_Unknown = 1;
+ k_EStorageDriveMediaType_HDD = 2;
+ k_EStorageDriveMediaType_SSD = 3;
+ k_EStorageDriveMediaType_Removable = 4;
+}
+
+enum ESystemDisplayCompatibilityMode {
+ k_ESystemDisplayCompatibilityMode_Invalid = 0;
+ k_ESystemDisplayCompatibilityMode_None = 1;
+ k_ESystemDisplayCompatibilityMode_MinimalBandwith = 2;
+}
+
+enum ESteamDeckCompatibilityCategory {
+ k_ESteamDeckCompatibilityCategory_Unknown = 0;
+ k_ESteamDeckCompatibilityCategory_Unsupported = 1;
+ k_ESteamDeckCompatibilityCategory_Playable = 2;
+ k_ESteamDeckCompatibilityCategory_Verified = 3;
+}
+
+enum ESteamDeckCompatibilityResultDisplayType {
+ k_ESteamDeckCompatibilityResultDisplayType_Invisible = 0;
+ k_ESteamDeckCompatibilityResultDisplayType_Informational = 1;
+ k_ESteamDeckCompatibilityResultDisplayType_Unsupported = 2;
+ k_ESteamDeckCompatibilityResultDisplayType_Playable = 3;
+ k_ESteamDeckCompatibilityResultDisplayType_Verified = 4;
+}
+
+enum EACState {
+ k_EACState_Unknown = 0;
+ k_EACState_Disconnected = 1;
+ k_EACState_Connected = 2;
+ k_EACState_ConnectedSlow = 3;
+}
+
+enum EBatteryState {
+ k_EBatteryState_Unknown = 0;
+ k_EBatteryState_Discharging = 1;
+ k_EBatteryState_Charging = 2;
+ k_EBatteryState_Full = 3;
+}
+
+enum EOSBranch {
+ k_EOSBranch_Unknown = 0;
+ k_EOSBranch_Release = 1;
+ k_EOSBranch_ReleaseCandidate = 2;
+ k_EOSBranch_Beta = 3;
+ k_EOSBranch_BetaCandidate = 4;
+ k_EOSBranch_Main = 5;
+ k_EOSBranch_Staging = 6;
+}
+
+enum ECommunityItemClass {
+ k_ECommunityItemClass_Invalid = 0;
+ k_ECommunityItemClass_Badge = 1;
+ k_ECommunityItemClass_GameCard = 2;
+ k_ECommunityItemClass_ProfileBackground = 3;
+ k_ECommunityItemClass_Emoticon = 4;
+ k_ECommunityItemClass_BoosterPack = 5;
+ k_ECommunityItemClass_Consumable = 6;
+ k_ECommunityItemClass_GameGoo = 7;
+ k_ECommunityItemClass_ProfileModifier = 8;
+ k_ECommunityItemClass_Scene = 9;
+ k_ECommunityItemClass_SalienItem = 10;
+ k_ECommunityItemClass_Sticker = 11;
+ k_ECommunityItemClass_ChatEffect = 12;
+ k_ECommunityItemClass_MiniProfileBackground = 13;
+ k_ECommunityItemClass_AvatarFrame = 14;
+ k_ECommunityItemClass_AnimatedAvatar = 15;
+ k_ECommunityItemClass_SteamDeckKeyboardSkin = 16;
+ k_ECommunityItemClass_SteamDeckStartupMovie = 17;
+}
+
+enum ESteamDeckCompatibilityFeedback {
+ k_ESteamDeckCompatibilityFeedback_Unset = 0;
+ k_ESteamDeckCompatibilityFeedback_Agree = 1;
+ k_ESteamDeckCompatibilityFeedback_Disagree = 2;
+ k_ESteamDeckCompatibilityFeedback_Ignore = 3;
+}
+
+enum EProvideDeckFeedbackPreference {
+ k_EProvideDeckFeedbackPreference_Unset = 0;
+ k_EProvideDeckFeedbackPreference_Yes = 1;
+ k_EProvideDeckFeedbackPreference_No = 2;
+}
+
+enum ETouchGesture {
+ k_ETouchGestureNone = 0;
+ k_ETouchGestureTouch = 1;
+ k_ETouchGestureTap = 2;
+ k_ETouchGestureDoubleTap = 3;
+ k_ETouchGestureShortPress = 4;
+ k_ETouchGestureLongPress = 5;
+ k_ETouchGestureLongTap = 6;
+ k_ETouchGestureTwoFingerTap = 7;
+ k_ETouchGestureTapCancelled = 8;
+ k_ETouchGesturePinchBegin = 9;
+ k_ETouchGesturePinchUpdate = 10;
+ k_ETouchGesturePinchEnd = 11;
+ k_ETouchGestureFlingStart = 12;
+ k_ETouchGestureFlingCancelled = 13;
+}
+
+enum ESessionPersistence {
+ k_ESessionPersistence_Invalid = -1;
+ k_ESessionPersistence_Ephemeral = 0;
+ k_ESessionPersistence_Persistent = 1;
+}
+
+enum ENewSteamAnnouncementState {
+ k_ENewSteamAnnouncementState_Invalid = 0;
+ k_ENewSteamAnnouncementState_AllRead = 1;
+ k_ENewSteamAnnouncementState_NewAnnouncement = 2;
+ k_ENewSteamAnnouncementState_FeaturedAnnouncement = 3;
+}
diff --git a/protobuf_files/google/protobuf/descriptor.proto b/protobuf_files/google/protobuf/descriptor.proto
new file mode 100644
index 00000000..50c782c9
--- /dev/null
+++ b/protobuf_files/google/protobuf/descriptor.proto
@@ -0,0 +1,282 @@
+syntax = "proto2";
+package google.protobuf;
+
+option optimize_for = SPEED;
+option go_package = "google.golang.org/protobuf/types/descriptorpb";
+option java_package = "com.google.protobuf";
+option java_outer_classname = "DescriptorProtos";
+
+message FileDescriptorSet {
+ repeated .google.protobuf.FileDescriptorProto file = 1;
+}
+
+message FileDescriptorProto {
+ optional string name = 1;
+ optional string package = 2;
+ repeated string dependency = 3;
+ repeated int32 public_dependency = 10;
+ repeated int32 weak_dependency = 11;
+ repeated .google.protobuf.DescriptorProto message_type = 4;
+ repeated .google.protobuf.EnumDescriptorProto enum_type = 5;
+ repeated .google.protobuf.ServiceDescriptorProto service = 6;
+ repeated .google.protobuf.FieldDescriptorProto extension = 7;
+ optional .google.protobuf.FileOptions options = 8;
+ optional .google.protobuf.SourceCodeInfo source_code_info = 9;
+ optional string syntax = 12;
+}
+
+message DescriptorProto {
+ message ExtensionRange {
+ optional int32 start = 1;
+ optional int32 end = 2;
+ optional .google.protobuf.ExtensionRangeOptions options = 3;
+ }
+
+ message ReservedRange {
+ optional int32 start = 1;
+ optional int32 end = 2;
+ }
+
+ optional string name = 1;
+ repeated .google.protobuf.FieldDescriptorProto field = 2;
+ repeated .google.protobuf.FieldDescriptorProto extension = 6;
+ repeated .google.protobuf.DescriptorProto nested_type = 3;
+ repeated .google.protobuf.EnumDescriptorProto enum_type = 4;
+ repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;
+ repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8;
+ optional .google.protobuf.MessageOptions options = 7;
+ repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9;
+ repeated string reserved_name = 10;
+}
+
+message ExtensionRangeOptions {
+ repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
+
+ extensions 1000 to max;
+}
+
+message FieldDescriptorProto {
+ enum Type {
+ TYPE_DOUBLE = 1;
+ TYPE_FLOAT = 2;
+ TYPE_INT64 = 3;
+ TYPE_UINT64 = 4;
+ TYPE_INT32 = 5;
+ TYPE_FIXED64 = 6;
+ TYPE_FIXED32 = 7;
+ TYPE_BOOL = 8;
+ TYPE_STRING = 9;
+ TYPE_GROUP = 10;
+ TYPE_MESSAGE = 11;
+ TYPE_BYTES = 12;
+ TYPE_UINT32 = 13;
+ TYPE_ENUM = 14;
+ TYPE_SFIXED32 = 15;
+ TYPE_SFIXED64 = 16;
+ TYPE_SINT32 = 17;
+ TYPE_SINT64 = 18;
+ }
+
+ enum Label {
+ LABEL_OPTIONAL = 1;
+ LABEL_REQUIRED = 2;
+ LABEL_REPEATED = 3;
+ }
+
+ optional string name = 1;
+ optional int32 number = 3;
+ optional .google.protobuf.FieldDescriptorProto.Label label = 4 [default = LABEL_OPTIONAL];
+ optional .google.protobuf.FieldDescriptorProto.Type type = 5 [default = TYPE_DOUBLE];
+ optional string type_name = 6;
+ optional string extendee = 2;
+ optional string default_value = 7;
+ optional int32 oneof_index = 9;
+ optional string json_name = 10;
+ optional .google.protobuf.FieldOptions options = 8;
+ optional bool proto3_optional = 17;
+}
+
+message OneofDescriptorProto {
+ optional string name = 1;
+ optional .google.protobuf.OneofOptions options = 2;
+}
+
+message EnumDescriptorProto {
+ message EnumReservedRange {
+ optional int32 start = 1;
+ optional int32 end = 2;
+ }
+
+ optional string name = 1;
+ repeated .google.protobuf.EnumValueDescriptorProto value = 2;
+ optional .google.protobuf.EnumOptions options = 3;
+ repeated .google.protobuf.EnumDescriptorProto.EnumReservedRange reserved_range = 4;
+ repeated string reserved_name = 5;
+}
+
+message EnumValueDescriptorProto {
+ optional string name = 1;
+ optional int32 number = 2;
+ optional .google.protobuf.EnumValueOptions options = 3;
+}
+
+message ServiceDescriptorProto {
+ optional string name = 1;
+ repeated .google.protobuf.MethodDescriptorProto method = 2;
+ optional .google.protobuf.ServiceOptions options = 3;
+}
+
+message MethodDescriptorProto {
+ optional string name = 1;
+ optional string input_type = 2;
+ optional string output_type = 3;
+ optional .google.protobuf.MethodOptions options = 4;
+ optional bool client_streaming = 5 [default = false];
+ optional bool server_streaming = 6 [default = false];
+}
+
+message FileOptions {
+ enum OptimizeMode {
+ SPEED = 1;
+ CODE_SIZE = 2;
+ LITE_RUNTIME = 3;
+ }
+
+ optional string java_package = 1;
+ optional string java_outer_classname = 8;
+ optional bool java_multiple_files = 10 [default = false];
+ optional bool java_generate_equals_and_hash = 20 [deprecated = true];
+ optional bool java_string_check_utf8 = 27 [default = false];
+ optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];
+ optional string go_package = 11;
+ optional bool cc_generic_services = 16 [default = false];
+ optional bool java_generic_services = 17 [default = false];
+ optional bool py_generic_services = 18 [default = false];
+ optional bool php_generic_services = 42 [default = false];
+ optional bool deprecated = 23 [default = false];
+ optional bool cc_enable_arenas = 31 [default = true];
+ optional string objc_class_prefix = 36;
+ optional string csharp_namespace = 37;
+ optional string swift_prefix = 39;
+ optional string php_class_prefix = 40;
+ optional string php_namespace = 41;
+ optional string php_metadata_namespace = 44;
+ optional string ruby_package = 45;
+ repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
+
+ extensions 1000 to max;
+}
+
+message MessageOptions {
+ optional bool message_set_wire_format = 1 [default = false];
+ optional bool no_standard_descriptor_accessor = 2 [default = false];
+ optional bool deprecated = 3 [default = false];
+ optional bool map_entry = 7;
+ repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
+
+ extensions 1000 to max;
+}
+
+message FieldOptions {
+ enum CType {
+ STRING = 0;
+ CORD = 1;
+ STRING_PIECE = 2;
+ }
+
+ enum JSType {
+ JS_NORMAL = 0;
+ JS_STRING = 1;
+ JS_NUMBER = 2;
+ }
+
+ optional .google.protobuf.FieldOptions.CType ctype = 1 [default = STRING];
+ optional bool packed = 2;
+ optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];
+ optional bool lazy = 5 [default = false];
+ optional bool deprecated = 3 [default = false];
+ optional bool weak = 10 [default = false];
+ repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
+
+ extensions 1000 to max;
+}
+
+message OneofOptions {
+ repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
+
+ extensions 1000 to max;
+}
+
+message EnumOptions {
+ optional bool allow_alias = 2;
+ optional bool deprecated = 3 [default = false];
+ repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
+
+ extensions 1000 to max;
+}
+
+message EnumValueOptions {
+ optional bool deprecated = 1 [default = false];
+ repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
+
+ extensions 1000 to max;
+}
+
+message ServiceOptions {
+ optional bool deprecated = 33 [default = false];
+ repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
+
+ extensions 1000 to max;
+}
+
+message MethodOptions {
+ enum IdempotencyLevel {
+ IDEMPOTENCY_UNKNOWN = 0;
+ NO_SIDE_EFFECTS = 1;
+ IDEMPOTENT = 2;
+ }
+
+ optional bool deprecated = 33 [default = false];
+ optional .google.protobuf.MethodOptions.IdempotencyLevel idempotency_level = 34 [default = IDEMPOTENCY_UNKNOWN];
+ repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
+
+ extensions 1000 to max;
+}
+
+message UninterpretedOption {
+ message NamePart {
+ required string name_part = 1;
+ required bool is_extension = 2;
+ }
+
+ repeated .google.protobuf.UninterpretedOption.NamePart name = 2;
+ optional string identifier_value = 3;
+ optional uint64 positive_int_value = 4;
+ optional int64 negative_int_value = 5;
+ optional double double_value = 6;
+ optional bytes string_value = 7;
+ optional string aggregate_value = 8;
+}
+
+message SourceCodeInfo {
+ message Location {
+ repeated int32 path = 1 [packed = true];
+ repeated int32 span = 2 [packed = true];
+ optional string leading_comments = 3;
+ optional string trailing_comments = 4;
+ repeated string leading_detached_comments = 6;
+ }
+
+ repeated .google.protobuf.SourceCodeInfo.Location location = 1;
+}
+
+message GeneratedCodeInfo {
+ message Annotation {
+ repeated int32 path = 1 [packed = true];
+ optional string source_file = 2;
+ optional int32 begin = 3;
+ optional int32 end = 4;
+ }
+
+ repeated .google.protobuf.GeneratedCodeInfo.Annotation annotation = 1;
+}
diff --git a/protobuf_files/orig/.gitattributes b/protobuf_files/orig/.gitattributes
new file mode 100644
index 00000000..fcadb2cf
--- /dev/null
+++ b/protobuf_files/orig/.gitattributes
@@ -0,0 +1 @@
+* text eol=lf
diff --git a/protobuf_files/orig/.gitignore b/protobuf_files/orig/.gitignore
new file mode 100644
index 00000000..3bdd36ed
--- /dev/null
+++ b/protobuf_files/orig/.gitignore
@@ -0,0 +1 @@
+*/google/
diff --git a/protobuf_files/orig/LICENSE b/protobuf_files/orig/LICENSE
new file mode 100644
index 00000000..68a49daa
--- /dev/null
+++ b/protobuf_files/orig/LICENSE
@@ -0,0 +1,24 @@
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or
+distribute this software, either in source code form or as a compiled
+binary, for any purpose, commercial or non-commercial, and by any
+means.
+
+In jurisdictions that recognize copyright laws, the author or authors
+of this software dedicate any and all copyright interest in the
+software to the public domain. We make this dedication for the benefit
+of the public at large and to the detriment of our heirs and
+successors. We intend this dedication to be an overt act of
+relinquishment in perpetuity of all present and future rights to this
+software under copyright law.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+For more information, please refer to
diff --git a/protobuf_files/orig/README.md b/protobuf_files/orig/README.md
new file mode 100644
index 00000000..a0abefee
--- /dev/null
+++ b/protobuf_files/orig/README.md
@@ -0,0 +1,7 @@
+### Automatically tracked protobufs for Steam and Valve's games.
+
+These protobufs are being dumped as updates come in the [SteamTracking](https://github.com/SteamDatabase/SteamTracking) repository.
+
+Protobufs are dumped using [SteamKit's protobuf dumper](https://github.com/SteamRE/SteamKit/tree/master/Resources/ProtobufDumper).
+
+For protobufs dumped from javascript files (in webui folder), we have a [separate dumper](https://github.com/SteamDatabase/SteamTracking/blob/master/dump_javascript_protobufs.mjs) which parses javascript files into abstract syntax tree and tries to find all the messages and services. As such, these dumps are not as complete as dumps from binary files because minified javascript files lack some information.
diff --git a/protobuf_files/orig/google/protobuf/descriptor.proto b/protobuf_files/orig/google/protobuf/descriptor.proto
new file mode 100644
index 00000000..79381e8a
--- /dev/null
+++ b/protobuf_files/orig/google/protobuf/descriptor.proto
@@ -0,0 +1,281 @@
+package google.protobuf;
+
+option optimize_for = SPEED;
+option go_package = "google.golang.org/protobuf/types/descriptorpb";
+option java_package = "com.google.protobuf";
+option java_outer_classname = "DescriptorProtos";
+
+message FileDescriptorSet {
+ repeated .google.protobuf.FileDescriptorProto file = 1;
+}
+
+message FileDescriptorProto {
+ optional string name = 1;
+ optional string package = 2;
+ repeated string dependency = 3;
+ repeated int32 public_dependency = 10;
+ repeated int32 weak_dependency = 11;
+ repeated .google.protobuf.DescriptorProto message_type = 4;
+ repeated .google.protobuf.EnumDescriptorProto enum_type = 5;
+ repeated .google.protobuf.ServiceDescriptorProto service = 6;
+ repeated .google.protobuf.FieldDescriptorProto extension = 7;
+ optional .google.protobuf.FileOptions options = 8;
+ optional .google.protobuf.SourceCodeInfo source_code_info = 9;
+ optional string syntax = 12;
+}
+
+message DescriptorProto {
+ message ExtensionRange {
+ optional int32 start = 1;
+ optional int32 end = 2;
+ optional .google.protobuf.ExtensionRangeOptions options = 3;
+ }
+
+ message ReservedRange {
+ optional int32 start = 1;
+ optional int32 end = 2;
+ }
+
+ optional string name = 1;
+ repeated .google.protobuf.FieldDescriptorProto field = 2;
+ repeated .google.protobuf.FieldDescriptorProto extension = 6;
+ repeated .google.protobuf.DescriptorProto nested_type = 3;
+ repeated .google.protobuf.EnumDescriptorProto enum_type = 4;
+ repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5;
+ repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8;
+ optional .google.protobuf.MessageOptions options = 7;
+ repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9;
+ repeated string reserved_name = 10;
+}
+
+message ExtensionRangeOptions {
+ repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
+
+ extensions 1000 to max;
+}
+
+message FieldDescriptorProto {
+ enum Type {
+ TYPE_DOUBLE = 1;
+ TYPE_FLOAT = 2;
+ TYPE_INT64 = 3;
+ TYPE_UINT64 = 4;
+ TYPE_INT32 = 5;
+ TYPE_FIXED64 = 6;
+ TYPE_FIXED32 = 7;
+ TYPE_BOOL = 8;
+ TYPE_STRING = 9;
+ TYPE_GROUP = 10;
+ TYPE_MESSAGE = 11;
+ TYPE_BYTES = 12;
+ TYPE_UINT32 = 13;
+ TYPE_ENUM = 14;
+ TYPE_SFIXED32 = 15;
+ TYPE_SFIXED64 = 16;
+ TYPE_SINT32 = 17;
+ TYPE_SINT64 = 18;
+ }
+
+ enum Label {
+ LABEL_OPTIONAL = 1;
+ LABEL_REQUIRED = 2;
+ LABEL_REPEATED = 3;
+ }
+
+ optional string name = 1;
+ optional int32 number = 3;
+ optional .google.protobuf.FieldDescriptorProto.Label label = 4 [default = LABEL_OPTIONAL];
+ optional .google.protobuf.FieldDescriptorProto.Type type = 5 [default = TYPE_DOUBLE];
+ optional string type_name = 6;
+ optional string extendee = 2;
+ optional string default_value = 7;
+ optional int32 oneof_index = 9;
+ optional string json_name = 10;
+ optional .google.protobuf.FieldOptions options = 8;
+ optional bool proto3_optional = 17;
+}
+
+message OneofDescriptorProto {
+ optional string name = 1;
+ optional .google.protobuf.OneofOptions options = 2;
+}
+
+message EnumDescriptorProto {
+ message EnumReservedRange {
+ optional int32 start = 1;
+ optional int32 end = 2;
+ }
+
+ optional string name = 1;
+ repeated .google.protobuf.EnumValueDescriptorProto value = 2;
+ optional .google.protobuf.EnumOptions options = 3;
+ repeated .google.protobuf.EnumDescriptorProto.EnumReservedRange reserved_range = 4;
+ repeated string reserved_name = 5;
+}
+
+message EnumValueDescriptorProto {
+ optional string name = 1;
+ optional int32 number = 2;
+ optional .google.protobuf.EnumValueOptions options = 3;
+}
+
+message ServiceDescriptorProto {
+ optional string name = 1;
+ repeated .google.protobuf.MethodDescriptorProto method = 2;
+ optional .google.protobuf.ServiceOptions options = 3;
+}
+
+message MethodDescriptorProto {
+ optional string name = 1;
+ optional string input_type = 2;
+ optional string output_type = 3;
+ optional .google.protobuf.MethodOptions options = 4;
+ optional bool client_streaming = 5 [default = false];
+ optional bool server_streaming = 6 [default = false];
+}
+
+message FileOptions {
+ enum OptimizeMode {
+ SPEED = 1;
+ CODE_SIZE = 2;
+ LITE_RUNTIME = 3;
+ }
+
+ optional string java_package = 1;
+ optional string java_outer_classname = 8;
+ optional bool java_multiple_files = 10 [default = false];
+ optional bool java_generate_equals_and_hash = 20 [deprecated = true];
+ optional bool java_string_check_utf8 = 27 [default = false];
+ optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED];
+ optional string go_package = 11;
+ optional bool cc_generic_services = 16 [default = false];
+ optional bool java_generic_services = 17 [default = false];
+ optional bool py_generic_services = 18 [default = false];
+ optional bool php_generic_services = 42 [default = false];
+ optional bool deprecated = 23 [default = false];
+ optional bool cc_enable_arenas = 31 [default = true];
+ optional string objc_class_prefix = 36;
+ optional string csharp_namespace = 37;
+ optional string swift_prefix = 39;
+ optional string php_class_prefix = 40;
+ optional string php_namespace = 41;
+ optional string php_metadata_namespace = 44;
+ optional string ruby_package = 45;
+ repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
+
+ extensions 1000 to max;
+}
+
+message MessageOptions {
+ optional bool message_set_wire_format = 1 [default = false];
+ optional bool no_standard_descriptor_accessor = 2 [default = false];
+ optional bool deprecated = 3 [default = false];
+ optional bool map_entry = 7;
+ repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
+
+ extensions 1000 to max;
+}
+
+message FieldOptions {
+ enum CType {
+ STRING = 0;
+ CORD = 1;
+ STRING_PIECE = 2;
+ }
+
+ enum JSType {
+ JS_NORMAL = 0;
+ JS_STRING = 1;
+ JS_NUMBER = 2;
+ }
+
+ optional .google.protobuf.FieldOptions.CType ctype = 1 [default = STRING];
+ optional bool packed = 2;
+ optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];
+ optional bool lazy = 5 [default = false];
+ optional bool deprecated = 3 [default = false];
+ optional bool weak = 10 [default = false];
+ repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
+
+ extensions 1000 to max;
+}
+
+message OneofOptions {
+ repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
+
+ extensions 1000 to max;
+}
+
+message EnumOptions {
+ optional bool allow_alias = 2;
+ optional bool deprecated = 3 [default = false];
+ repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
+
+ extensions 1000 to max;
+}
+
+message EnumValueOptions {
+ optional bool deprecated = 1 [default = false];
+ repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
+
+ extensions 1000 to max;
+}
+
+message ServiceOptions {
+ optional bool deprecated = 33 [default = false];
+ repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
+
+ extensions 1000 to max;
+}
+
+message MethodOptions {
+ enum IdempotencyLevel {
+ IDEMPOTENCY_UNKNOWN = 0;
+ NO_SIDE_EFFECTS = 1;
+ IDEMPOTENT = 2;
+ }
+
+ optional bool deprecated = 33 [default = false];
+ optional .google.protobuf.MethodOptions.IdempotencyLevel idempotency_level = 34 [default = IDEMPOTENCY_UNKNOWN];
+ repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;
+
+ extensions 1000 to max;
+}
+
+message UninterpretedOption {
+ message NamePart {
+ required string name_part = 1;
+ required bool is_extension = 2;
+ }
+
+ repeated .google.protobuf.UninterpretedOption.NamePart name = 2;
+ optional string identifier_value = 3;
+ optional uint64 positive_int_value = 4;
+ optional int64 negative_int_value = 5;
+ optional double double_value = 6;
+ optional bytes string_value = 7;
+ optional string aggregate_value = 8;
+}
+
+message SourceCodeInfo {
+ message Location {
+ repeated int32 path = 1 [packed = true];
+ repeated int32 span = 2 [packed = true];
+ optional string leading_comments = 3;
+ optional string trailing_comments = 4;
+ repeated string leading_detached_comments = 6;
+ }
+
+ repeated .google.protobuf.SourceCodeInfo.Location location = 1;
+}
+
+message GeneratedCodeInfo {
+ message Annotation {
+ repeated int32 path = 1 [packed = true];
+ optional string source_file = 2;
+ optional int32 begin = 3;
+ optional int32 end = 4;
+ }
+
+ repeated .google.protobuf.GeneratedCodeInfo.Annotation annotation = 1;
+}
diff --git a/protobuf_files/orig/steam/clientmetrics.proto b/protobuf_files/orig/steam/clientmetrics.proto
new file mode 100644
index 00000000..f12abcd6
--- /dev/null
+++ b/protobuf_files/orig/steam/clientmetrics.proto
@@ -0,0 +1,45 @@
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+message CClientMetrics_ClientBootstrap_RequestInfo {
+ optional string original_hostname = 1;
+ optional string actual_hostname = 2;
+ optional string path = 3;
+ optional string base_name = 4;
+ optional bool success = 5;
+ optional uint32 status_code = 6;
+ optional string address_of_request_url = 7;
+ optional uint32 response_time_ms = 8;
+ optional uint64 bytes_received = 9;
+ optional uint32 num_retries = 10;
+}
+
+message CClientMetrics_ClientBootstrap_Summary {
+ optional uint32 launcher_type = 1;
+ optional uint32 steam_realm = 2;
+ optional string beta_name = 3;
+ optional bool download_completed = 4;
+ optional uint32 total_time_ms = 6;
+ repeated .CClientMetrics_ClientBootstrap_RequestInfo manifest_requests = 7;
+ repeated .CClientMetrics_ClientBootstrap_RequestInfo package_requests = 8;
+}
+
+message CClientMetrics_ContentDownloadResponse_Counts {
+ optional uint32 class_100 = 1;
+ optional uint32 class_200 = 2;
+ optional uint32 class_300 = 3;
+ optional uint32 class_400 = 4;
+ optional uint32 class_500 = 5;
+ optional uint32 no_response = 6;
+ optional uint32 class_unknown = 7;
+}
+
+message CClientMetrics_ContentDownloadResponse_HostCounts {
+ optional string hostname = 1;
+ optional uint32 source_type = 2;
+ optional .CClientMetrics_ContentDownloadResponse_Counts counts = 3;
+}
+
+message CClientMetrics_ContentDownloadResponse_Hosts {
+ repeated .CClientMetrics_ContentDownloadResponse_HostCounts hosts = 1;
+}
diff --git a/protobuf_files/orig/steam/content_manifest.proto b/protobuf_files/orig/steam/content_manifest.proto
new file mode 100644
index 00000000..d255e1db
--- /dev/null
+++ b/protobuf_files/orig/steam/content_manifest.proto
@@ -0,0 +1,62 @@
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+enum EContentDeltaChunkDataLocation {
+ k_EContentDeltaChunkDataLocationInProtobuf = 0;
+ k_EContentDeltaChunkDataLocationAfterProtobuf = 1;
+}
+
+message ContentManifestPayload {
+ message FileMapping {
+ message ChunkData {
+ optional bytes sha = 1;
+ optional fixed32 crc = 2;
+ optional uint64 offset = 3;
+ optional uint32 cb_original = 4;
+ optional uint32 cb_compressed = 5;
+ }
+
+ optional string filename = 1;
+ optional uint64 size = 2;
+ optional uint32 flags = 3;
+ optional bytes sha_filename = 4;
+ optional bytes sha_content = 5;
+ repeated .ContentManifestPayload.FileMapping.ChunkData chunks = 6;
+ optional string linktarget = 7;
+ }
+
+ repeated .ContentManifestPayload.FileMapping mappings = 1;
+}
+
+message ContentManifestMetadata {
+ optional uint32 depot_id = 1;
+ optional uint64 gid_manifest = 2;
+ optional uint32 creation_time = 3;
+ optional bool filenames_encrypted = 4;
+ optional uint64 cb_disk_original = 5;
+ optional uint64 cb_disk_compressed = 6;
+ optional uint32 unique_chunks = 7;
+ optional uint32 crc_encrypted = 8;
+ optional uint32 crc_clear = 9;
+}
+
+message ContentManifestSignature {
+ optional bytes signature = 1;
+}
+
+message ContentDeltaChunks {
+ message DeltaChunk {
+ optional bytes sha_source = 1;
+ optional bytes sha_target = 2;
+ optional uint32 size_original = 3;
+ optional uint32 patch_method = 4;
+ optional bytes chunk = 5;
+ optional uint32 size_delta = 6;
+ }
+
+ optional uint32 depot_id = 1;
+ optional uint64 manifest_id_source = 2;
+ optional uint64 manifest_id_target = 3;
+ repeated .ContentDeltaChunks.DeltaChunk deltaChunks = 4;
+ optional .EContentDeltaChunkDataLocation chunk_data_location = 5 [default = k_EContentDeltaChunkDataLocationInProtobuf];
+}
diff --git a/protobuf_files/orig/steam/contenthubs.proto b/protobuf_files/orig/steam/contenthubs.proto
new file mode 100644
index 00000000..c3a447f8
--- /dev/null
+++ b/protobuf_files/orig/steam/contenthubs.proto
@@ -0,0 +1,41 @@
+import "steammessages_base.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = true;
+option (force_php_generation) = true;
+
+enum EContentHubDiscountFilterType {
+ k_EContentHubDiscountFilterType_None = 0;
+ k_EContentHubDiscountFilterType_DiscountsOnly = 1;
+ k_EContentHubDiscountFilterType_PrioritizeDiscounts = 2;
+}
+
+message CStorePageFilter {
+ message SalePageFilter {
+ optional uint32 sale_tagid = 1;
+ }
+
+ message ContentHubFilter {
+ message OptInInfo {
+ optional string name = 1;
+ optional uint32 optin_tagid = 2;
+ optional uint32 prune_tagid = 3;
+ optional bool optin_only = 4;
+ }
+
+ optional string hub_type = 1;
+ optional string hub_category = 2;
+ optional uint32 hub_tagid = 3;
+ optional .EContentHubDiscountFilterType discount_filter = 4 [default = k_EContentHubDiscountFilterType_None];
+ optional .CStorePageFilter.ContentHubFilter.OptInInfo optin = 5;
+ }
+
+ message StoreFilter {
+ optional string filter_json = 1;
+ optional string cache_key = 2;
+ }
+
+ optional .CStorePageFilter.SalePageFilter sale_filter = 1;
+ optional .CStorePageFilter.ContentHubFilter content_hub_filter = 2;
+ repeated .CStorePageFilter.StoreFilter store_filters = 3;
+}
diff --git a/protobuf_files/orig/steam/encrypted_app_ticket.proto b/protobuf_files/orig/steam/encrypted_app_ticket.proto
new file mode 100644
index 00000000..0b88bad8
--- /dev/null
+++ b/protobuf_files/orig/steam/encrypted_app_ticket.proto
@@ -0,0 +1,10 @@
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+message EncryptedAppTicket {
+ optional uint32 ticket_version_no = 1;
+ optional uint32 crc_encryptedticket = 2;
+ optional uint32 cb_encrypteduserdata = 3;
+ optional uint32 cb_encrypted_appownershipticket = 4;
+ optional bytes encrypted_ticket = 5;
+}
diff --git a/protobuf_files/orig/steam/enums.proto b/protobuf_files/orig/steam/enums.proto
new file mode 100644
index 00000000..d36d4d1b
--- /dev/null
+++ b/protobuf_files/orig/steam/enums.proto
@@ -0,0 +1,391 @@
+import "steammessages_base.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = true;
+option (force_php_generation) = true;
+
+enum EPublishedFileQueryType {
+ k_PublishedFileQueryType_RankedByVote = 0;
+ k_PublishedFileQueryType_RankedByPublicationDate = 1;
+ k_PublishedFileQueryType_AcceptedForGameRankedByAcceptanceDate = 2;
+ k_PublishedFileQueryType_RankedByTrend = 3;
+ k_PublishedFileQueryType_FavoritedByFriendsRankedByPublicationDate = 4;
+ k_PublishedFileQueryType_CreatedByFriendsRankedByPublicationDate = 5;
+ k_PublishedFileQueryType_RankedByNumTimesReported = 6;
+ k_PublishedFileQueryType_CreatedByFollowedUsersRankedByPublicationDate = 7;
+ k_PublishedFileQueryType_NotYetRated = 8;
+ k_PublishedFileQueryType_RankedByTotalUniqueSubscriptions = 9;
+ k_PublishedFileQueryType_RankedByTotalVotesAsc = 10;
+ k_PublishedFileQueryType_RankedByVotesUp = 11;
+ k_PublishedFileQueryType_RankedByTextSearch = 12;
+ k_PublishedFileQueryType_RankedByPlaytimeTrend = 13;
+ k_PublishedFileQueryType_RankedByTotalPlaytime = 14;
+ k_PublishedFileQueryType_RankedByAveragePlaytimeTrend = 15;
+ k_PublishedFileQueryType_RankedByLifetimeAveragePlaytime = 16;
+ k_PublishedFileQueryType_RankedByPlaytimeSessionsTrend = 17;
+ k_PublishedFileQueryType_RankedByLifetimePlaytimeSessions = 18;
+ k_PublishedFileQueryType_RankedByInappropriateContentRating = 19;
+ k_PublishedFileQueryType_RankedByBanContentCheck = 20;
+ k_PublishedFileQueryType_RankedByLastUpdatedDate = 21;
+}
+
+enum EPublishedFileInappropriateProvider {
+ k_EPublishedFileInappropriateProvider_Invalid = 0;
+ k_EPublishedFileInappropriateProvider_Google = 1;
+ k_EPublishedFileInappropriateProvider_Amazon = 2;
+}
+
+enum EPublishedFileInappropriateResult {
+ k_EPublishedFileInappropriateResult_NotScanned = 0;
+ k_EPublishedFileInappropriateResult_VeryUnlikely = 1;
+ k_EPublishedFileInappropriateResult_Unlikely = 30;
+ k_EPublishedFileInappropriateResult_Possible = 50;
+ k_EPublishedFileInappropriateResult_Likely = 75;
+ k_EPublishedFileInappropriateResult_VeryLikely = 100;
+}
+
+enum EPersonaStateFlag {
+ k_EPersonaStateFlag_HasRichPresence = 1;
+ k_EPersonaStateFlag_InJoinableGame = 2;
+ k_EPersonaStateFlag_Golden = 4;
+ k_EPersonaStateFlag_RemotePlayTogether = 8;
+ k_EPersonaStateFlag_ClientTypeWeb = 256;
+ k_EPersonaStateFlag_ClientTypeMobile = 512;
+ k_EPersonaStateFlag_ClientTypeTenfoot = 1024;
+ k_EPersonaStateFlag_ClientTypeVR = 2048;
+ k_EPersonaStateFlag_LaunchTypeGamepad = 4096;
+ k_EPersonaStateFlag_LaunchTypeCompatTool = 8192;
+}
+
+enum EContentCheckProvider {
+ k_EContentCheckProvider_Invalid = 0;
+ k_EContentCheckProvider_Google = 1;
+ k_EContentCheckProvider_Amazon = 2;
+ k_EContentCheckProvider_Local = 3;
+}
+
+enum EProfileCustomizationType {
+ k_EProfileCustomizationTypeInvalid = 0;
+ k_EProfileCustomizationTypeRareAchievementShowcase = 1;
+ k_EProfileCustomizationTypeGameCollector = 2;
+ k_EProfileCustomizationTypeItemShowcase = 3;
+ k_EProfileCustomizationTypeTradeShowcase = 4;
+ k_EProfileCustomizationTypeBadges = 5;
+ k_EProfileCustomizationTypeFavoriteGame = 6;
+ k_EProfileCustomizationTypeScreenshotShowcase = 7;
+ k_EProfileCustomizationTypeCustomText = 8;
+ k_EProfileCustomizationTypeFavoriteGroup = 9;
+ k_EProfileCustomizationTypeRecommendation = 10;
+ k_EProfileCustomizationTypeWorkshopItem = 11;
+ k_EProfileCustomizationTypeMyWorkshop = 12;
+ k_EProfileCustomizationTypeArtworkShowcase = 13;
+ k_EProfileCustomizationTypeVideoShowcase = 14;
+ k_EProfileCustomizationTypeGuides = 15;
+ k_EProfileCustomizationTypeMyGuides = 16;
+ k_EProfileCustomizationTypeAchievements = 17;
+ k_EProfileCustomizationTypeGreenlight = 18;
+ k_EProfileCustomizationTypeMyGreenlight = 19;
+ k_EProfileCustomizationTypeSalien = 20;
+ k_EProfileCustomizationTypeLoyaltyRewardReactions = 21;
+ k_EProfileCustomizationTypeSingleArtworkShowcase = 22;
+ k_EProfileCustomizationTypeAchievementsCompletionist = 23;
+ k_EProfileCustomizationTypeReplay = 24;
+}
+
+enum EPublishedFileStorageSystem {
+ k_EPublishedFileStorageSystemInvalid = 0;
+ k_EPublishedFileStorageSystemLegacyCloud = 1;
+ k_EPublishedFileStorageSystemDepot = 2;
+ k_EPublishedFileStorageSystemUGCCloud = 3;
+}
+
+enum ECloudStoragePersistState {
+ k_ECloudStoragePersistStatePersisted = 0;
+ k_ECloudStoragePersistStateForgotten = 1;
+ k_ECloudStoragePersistStateDeleted = 2;
+}
+
+enum ESDCardFormatStage {
+ k_ESDCardFormatStage_Invalid = 0;
+ k_ESDCardFormatStage_Starting = 1;
+ k_ESDCardFormatStage_Testing = 2;
+ k_ESDCardFormatStage_Rescuing = 3;
+ k_ESDCardFormatStage_Formatting = 4;
+ k_ESDCardFormatStage_Finalizing = 5;
+}
+
+enum ESystemFanControlMode {
+ k_SystemFanControlMode_Invalid = 0;
+ k_SystemFanControlMode_Disabled = 1;
+ k_SystemFanControlMode_Default = 2;
+}
+
+enum EColorProfile {
+ k_EColorProfile_Invalid = 0;
+ k_EColorProfile_Native = 1;
+ k_EColorProfile_Standard = 2;
+ k_EColorProfile_Vivid = 3;
+}
+
+enum EBluetoothDeviceType {
+ k_BluetoothDeviceType_Invalid = 0;
+ k_BluetoothDeviceType_Unknown = 1;
+ k_BluetoothDeviceType_Phone = 2;
+ k_BluetoothDeviceType_Computer = 3;
+ k_BluetoothDeviceType_Headset = 4;
+ k_BluetoothDeviceType_Headphones = 5;
+ k_BluetoothDeviceType_Speakers = 6;
+ k_BluetoothDeviceType_OtherAudio = 7;
+ k_BluetoothDeviceType_Mouse = 8;
+ k_BluetoothDeviceType_Joystick = 9;
+ k_BluetoothDeviceType_Gamepad = 10;
+ k_BluetoothDeviceType_Keyboard = 11;
+}
+
+enum ESystemAudioDirection {
+ k_SystemAudioDirection_Invalid = 0;
+ k_SystemAudioDirection_Input = 1;
+ k_SystemAudioDirection_Output = 2;
+}
+
+enum ESystemAudioChannel {
+ k_SystemAudioChannel_Invalid = 0;
+ k_SystemAudioChannel_Aggregated = 1;
+ k_SystemAudioChannel_FrontLeft = 2;
+ k_SystemAudioChannel_FrontRight = 3;
+ k_SystemAudioChannel_LFE = 4;
+ k_SystemAudioChannel_BackLeft = 5;
+ k_SystemAudioChannel_BackRight = 6;
+ k_SystemAudioChannel_FrontCenter = 7;
+ k_SystemAudioChannel_Unknown = 8;
+ k_SystemAudioChannel_Mono = 9;
+}
+
+enum ESystemAudioPortType {
+ k_SystemAudioPortType_Invalid = 0;
+ k_SystemAudioPortType_Unknown = 1;
+ k_SystemAudioPortType_Audio32f = 2;
+ k_SystemAudioPortType_Midi8b = 3;
+ k_SystemAudioPortType_Video32RGBA = 4;
+}
+
+enum ESystemAudioPortDirection {
+ k_SystemAudioPortDirection_Invalid = 0;
+ k_SystemAudioPortDirection_Input = 1;
+ k_SystemAudioPortDirection_Output = 2;
+}
+
+enum ESystemServiceState {
+ k_ESystemServiceState_Unavailable = 0;
+ k_ESystemServiceState_Disabled = 1;
+ k_ESystemServiceState_Enabled = 2;
+}
+
+enum EGraphicsPerfOverlayLevel {
+ k_EGraphicsPerfOverlayLevel_Hidden = 0;
+ k_EGraphicsPerfOverlayLevel_Basic = 1;
+ k_EGraphicsPerfOverlayLevel_Medium = 2;
+ k_EGraphicsPerfOverlayLevel_Full = 3;
+ k_EGraphicsPerfOverlayLevel_Minimal = 4;
+}
+
+enum EGPUPerformanceLevel {
+ k_EGPUPerformanceLevel_Invalid = 0;
+ k_EGPUPerformanceLevel_Auto = 1;
+ k_EGPUPerformanceLevel_Manual = 2;
+ k_EGPUPerformanceLevel_Low = 3;
+ k_EGPUPerformanceLevel_High = 4;
+ k_EGPUPerformanceLevel_Profiling = 5;
+}
+
+enum EScalingFilter {
+ k_EScalingFilter_Invalid = 0;
+ k_EScalingFilter_FSR = 1;
+ k_EScalingFilter_Nearest = 2;
+ k_EScalingFilter_Integer = 3;
+ k_EScalingFilter_Linear = 4;
+ k_EScalingFilter_NIS = 5;
+}
+
+enum ESplitScalingFilter {
+ k_ESplitScalingFilter_Invalid = 0;
+ k_ESplitScalingFilter_Linear = 1;
+ k_ESplitScalingFilter_Nearest = 2;
+ k_ESplitScalingFilter_FSR = 3;
+ k_ESplitScalingFilter_NIS = 4;
+}
+
+enum ESplitScalingScaler {
+ k_ESplitScalingScaler_Invalid = 0;
+ k_ESplitScalingScaler_Auto = 1;
+ k_ESplitScalingScaler_Integer = 2;
+ k_ESplitScalingScaler_Fit = 3;
+ k_ESplitScalingScaler_Fill = 4;
+ k_ESplitScalingScaler_Stretch = 5;
+}
+
+enum EHDRToneMapOperator {
+ k_EHDRToneMapOperator_Invalid = 0;
+ k_EHDRToneMapOperator_Uncharted = 1;
+ k_EHDRToneMapOperator_Reinhard = 2;
+}
+
+enum ECPUGovernor {
+ k_ECPUGovernor_Invalid = 0;
+ k_ECPUGovernor_Perf = 1;
+ k_ECPUGovernor_Powersave = 2;
+ k_ECPUGovernor_Manual = 3;
+}
+
+enum EUpdaterType {
+ k_EUpdaterType_Invalid = 0;
+ k_EUpdaterType_Client = 1;
+ k_EUpdaterType_OS = 2;
+ k_EUpdaterType_BIOS = 3;
+ k_EUpdaterType_Aggregated = 4;
+ k_EUpdaterType_Test1 = 5;
+ k_EUpdaterType_Test2 = 6;
+ k_EUpdaterType_Dummy = 7;
+}
+
+enum EUpdaterState {
+ k_EUpdaterState_Invalid = 0;
+ k_EUpdaterState_UpToDate = 2;
+ k_EUpdaterState_Checking = 3;
+ k_EUpdaterState_Available = 4;
+ k_EUpdaterState_Applying = 5;
+ k_EUpdaterState_ClientRestartPending = 6;
+ k_EUpdaterState_SystemRestartPending = 7;
+}
+
+enum EStorageBlockContentType {
+ k_EStorageBlockContentType_Invalid = 0;
+ k_EStorageBlockContentType_Unknown = 1;
+ k_EStorageBlockContentType_FileSystem = 2;
+ k_EStorageBlockContentType_Crypto = 3;
+ k_EStorageBlockContentType_Raid = 4;
+}
+
+enum EStorageBlockFileSystemType {
+ k_EStorageBlockFileSystemType_Invalid = 0;
+ k_EStorageBlockFileSystemType_Unknown = 1;
+ k_EStorageBlockFileSystemType_VFat = 2;
+ k_EStorageBlockFileSystemType_Ext4 = 3;
+}
+
+enum EStorageDriveMediaType {
+ k_EStorageDriveMediaType_Invalid = 0;
+ k_EStorageDriveMediaType_Unknown = 1;
+ k_EStorageDriveMediaType_HDD = 2;
+ k_EStorageDriveMediaType_SSD = 3;
+ k_EStorageDriveMediaType_Removable = 4;
+}
+
+enum ESystemDisplayCompatibilityMode {
+ k_ESystemDisplayCompatibilityMode_Invalid = 0;
+ k_ESystemDisplayCompatibilityMode_None = 1;
+ k_ESystemDisplayCompatibilityMode_MinimalBandwith = 2;
+}
+
+enum ESteamDeckCompatibilityCategory {
+ k_ESteamDeckCompatibilityCategory_Unknown = 0;
+ k_ESteamDeckCompatibilityCategory_Unsupported = 1;
+ k_ESteamDeckCompatibilityCategory_Playable = 2;
+ k_ESteamDeckCompatibilityCategory_Verified = 3;
+}
+
+enum ESteamDeckCompatibilityResultDisplayType {
+ k_ESteamDeckCompatibilityResultDisplayType_Invisible = 0;
+ k_ESteamDeckCompatibilityResultDisplayType_Informational = 1;
+ k_ESteamDeckCompatibilityResultDisplayType_Unsupported = 2;
+ k_ESteamDeckCompatibilityResultDisplayType_Playable = 3;
+ k_ESteamDeckCompatibilityResultDisplayType_Verified = 4;
+}
+
+enum EACState {
+ k_EACState_Unknown = 0;
+ k_EACState_Disconnected = 1;
+ k_EACState_Connected = 2;
+ k_EACState_ConnectedSlow = 3;
+}
+
+enum EBatteryState {
+ k_EBatteryState_Unknown = 0;
+ k_EBatteryState_Discharging = 1;
+ k_EBatteryState_Charging = 2;
+ k_EBatteryState_Full = 3;
+}
+
+enum EOSBranch {
+ k_EOSBranch_Unknown = 0;
+ k_EOSBranch_Release = 1;
+ k_EOSBranch_ReleaseCandidate = 2;
+ k_EOSBranch_Beta = 3;
+ k_EOSBranch_BetaCandidate = 4;
+ k_EOSBranch_Main = 5;
+ k_EOSBranch_Staging = 6;
+}
+
+enum ECommunityItemClass {
+ k_ECommunityItemClass_Invalid = 0;
+ k_ECommunityItemClass_Badge = 1;
+ k_ECommunityItemClass_GameCard = 2;
+ k_ECommunityItemClass_ProfileBackground = 3;
+ k_ECommunityItemClass_Emoticon = 4;
+ k_ECommunityItemClass_BoosterPack = 5;
+ k_ECommunityItemClass_Consumable = 6;
+ k_ECommunityItemClass_GameGoo = 7;
+ k_ECommunityItemClass_ProfileModifier = 8;
+ k_ECommunityItemClass_Scene = 9;
+ k_ECommunityItemClass_SalienItem = 10;
+ k_ECommunityItemClass_Sticker = 11;
+ k_ECommunityItemClass_ChatEffect = 12;
+ k_ECommunityItemClass_MiniProfileBackground = 13;
+ k_ECommunityItemClass_AvatarFrame = 14;
+ k_ECommunityItemClass_AnimatedAvatar = 15;
+ k_ECommunityItemClass_SteamDeckKeyboardSkin = 16;
+ k_ECommunityItemClass_SteamDeckStartupMovie = 17;
+}
+
+enum ESteamDeckCompatibilityFeedback {
+ k_ESteamDeckCompatibilityFeedback_Unset = 0;
+ k_ESteamDeckCompatibilityFeedback_Agree = 1;
+ k_ESteamDeckCompatibilityFeedback_Disagree = 2;
+ k_ESteamDeckCompatibilityFeedback_Ignore = 3;
+}
+
+enum EProvideDeckFeedbackPreference {
+ k_EProvideDeckFeedbackPreference_Unset = 0;
+ k_EProvideDeckFeedbackPreference_Yes = 1;
+ k_EProvideDeckFeedbackPreference_No = 2;
+}
+
+enum ETouchGesture {
+ k_ETouchGestureNone = 0;
+ k_ETouchGestureTouch = 1;
+ k_ETouchGestureTap = 2;
+ k_ETouchGestureDoubleTap = 3;
+ k_ETouchGestureShortPress = 4;
+ k_ETouchGestureLongPress = 5;
+ k_ETouchGestureLongTap = 6;
+ k_ETouchGestureTwoFingerTap = 7;
+ k_ETouchGestureTapCancelled = 8;
+ k_ETouchGesturePinchBegin = 9;
+ k_ETouchGesturePinchUpdate = 10;
+ k_ETouchGesturePinchEnd = 11;
+ k_ETouchGestureFlingStart = 12;
+ k_ETouchGestureFlingCancelled = 13;
+}
+
+enum ESessionPersistence {
+ k_ESessionPersistence_Invalid = -1;
+ k_ESessionPersistence_Ephemeral = 0;
+ k_ESessionPersistence_Persistent = 1;
+}
+
+enum ENewSteamAnnouncementState {
+ k_ENewSteamAnnouncementState_Invalid = 0;
+ k_ENewSteamAnnouncementState_AllRead = 1;
+ k_ENewSteamAnnouncementState_NewAnnouncement = 2;
+ k_ENewSteamAnnouncementState_FeaturedAnnouncement = 3;
+}
diff --git a/protobuf_files/orig/steam/enums_clientserver.proto b/protobuf_files/orig/steam/enums_clientserver.proto
new file mode 100644
index 00000000..405adf69
--- /dev/null
+++ b/protobuf_files/orig/steam/enums_clientserver.proto
@@ -0,0 +1,1543 @@
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+enum EMsg {
+ option allow_alias = true;
+ k_EMsgInvalid = 0;
+ k_EMsgMulti = 1;
+ k_EMsgProtobufWrapped = 2;
+ k_EMsgBaseGeneral = 100;
+ k_EMsgGenericReply = 100;
+ k_EMsgDestJobFailed = 113;
+ k_EMsgAlert = 115;
+ k_EMsgSCIDRequest = 120;
+ k_EMsgSCIDResponse = 121;
+ k_EMsgJobHeartbeat = 123;
+ k_EMsgHubConnect = 124;
+ k_EMsgSubscribe = 126;
+ k_EMRouteMessage = 127;
+ k_EMsgWGRequest = 130;
+ k_EMsgWGResponse = 131;
+ k_EMsgKeepAlive = 132;
+ k_EMsgWebAPIJobRequest = 133;
+ k_EMsgWebAPIJobResponse = 134;
+ k_EMsgClientSessionStart = 135;
+ k_EMsgClientSessionEnd = 136;
+ k_EMsgClientSessionUpdate = 137;
+ k_EMsgStatsDeprecated = 138;
+ k_EMsgPing = 139;
+ k_EMsgPingResponse = 140;
+ k_EMsgStats = 141;
+ k_EMsgRequestFullStatsBlock = 142;
+ k_EMsgLoadDBOCacheItem = 143;
+ k_EMsgLoadDBOCacheItemResponse = 144;
+ k_EMsgInvalidateDBOCacheItems = 145;
+ k_EMsgServiceMethod = 146;
+ k_EMsgServiceMethodResponse = 147;
+ k_EMsgClientPackageVersions = 148;
+ k_EMsgTimestampRequest = 149;
+ k_EMsgTimestampResponse = 150;
+ k_EMsgServiceMethodCallFromClient = 151;
+ k_EMsgServiceMethodSendToClient = 152;
+ k_EMsgBaseShell = 200;
+ k_EMsgAssignSysID = 200;
+ k_EMsgExit = 201;
+ k_EMsgDirRequest = 202;
+ k_EMsgDirResponse = 203;
+ k_EMsgZipRequest = 204;
+ k_EMsgZipResponse = 205;
+ k_EMsgUpdateRecordResponse = 215;
+ k_EMsgUpdateCreditCardRequest = 221;
+ k_EMsgUpdateUserBanResponse = 225;
+ k_EMsgPrepareToExit = 226;
+ k_EMsgContentDescriptionUpdate = 227;
+ k_EMsgTestResetServer = 228;
+ k_EMsgUniverseChanged = 229;
+ k_EMsgShellConfigInfoUpdate = 230;
+ k_EMsgRequestWindowsEventLogEntries = 233;
+ k_EMsgProvideWindowsEventLogEntries = 234;
+ k_EMsgShellSearchLogs = 235;
+ k_EMsgShellSearchLogsResponse = 236;
+ k_EMsgShellCheckWindowsUpdates = 237;
+ k_EMsgShellCheckWindowsUpdatesResponse = 238;
+ k_EMsgTestFlushDelayedSQL = 240;
+ k_EMsgTestFlushDelayedSQLResponse = 241;
+ k_EMsgEnsureExecuteScheduledTask_TEST = 242;
+ k_EMsgEnsureExecuteScheduledTaskResponse_TEST = 243;
+ k_EMsgUpdateScheduledTaskEnableState_TEST = 244;
+ k_EMsgUpdateScheduledTaskEnableStateResponse_TEST = 245;
+ k_EMsgContentDescriptionDeltaUpdate = 246;
+ k_EMsgGMShellAndServerAddressUpdates = 247;
+ k_EMsgBaseGM = 300;
+ k_EMsgHeartbeat = 300;
+ k_EMsgShellFailed = 301;
+ k_EMsgExitShells = 307;
+ k_EMsgExitShell = 308;
+ k_EMsgGracefulExitShell = 309;
+ k_EMsgLicenseProcessingComplete = 316;
+ k_EMsgSetTestFlag = 317;
+ k_EMsgQueuedEmailsComplete = 318;
+ k_EMsgGMDRMSync = 320;
+ k_EMsgPhysicalBoxInventory = 321;
+ k_EMsgUpdateConfigFile = 322;
+ k_EMsgTestInitDB = 323;
+ k_EMsgGMWriteConfigToSQL = 324;
+ k_EMsgGMLoadActivationCodes = 325;
+ k_EMsgGMQueueForFBS = 326;
+ k_EMsgGMSchemaConversionResults = 327;
+ k_EMsgGMWriteShellFailureToSQL = 329;
+ k_EMsgGMWriteStatsToSOS = 330;
+ k_EMsgGMGetServiceMethodRouting = 331;
+ k_EMsgGMGetServiceMethodRoutingResponse = 332;
+ k_EMsgGMTestNextBuildSchemaConversion = 334;
+ k_EMsgGMTestNextBuildSchemaConversionResponse = 335;
+ k_EMsgExpectShellRestart = 336;
+ k_EMsgHotFixProgress = 337;
+ k_EMsgGMStatsForwardToAdminConnections = 338;
+ k_EMsgGMGetModifiedConVars = 339;
+ k_EMsgGMGetModifiedConVarsResponse = 340;
+ k_EMsgBaseAIS = 400;
+ k_EMsgAISRequestContentDescription = 402;
+ k_EMsgAISUpdateAppInfo = 403;
+ k_EMsgAISGetPackageChangeNumber = 405;
+ k_EMsgAISGetPackageChangeNumberResponse = 406;
+ k_EMsgAIGetAppGCFlags = 423;
+ k_EMsgAIGetAppGCFlagsResponse = 424;
+ k_EMsgAIGetAppList = 425;
+ k_EMsgAIGetAppListResponse = 426;
+ k_EMsgAISGetCouponDefinition = 429;
+ k_EMsgAISGetCouponDefinitionResponse = 430;
+ k_EMsgAISUpdateSubordinateContentDescription = 431;
+ k_EMsgAISUpdateSubordinateContentDescriptionResponse = 432;
+ k_EMsgAISTestEnableGC = 433;
+ k_EMsgBaseAM = 500;
+ k_EMsgAMUpdateUserBanRequest = 504;
+ k_EMsgAMAddLicense = 505;
+ k_EMsgAMSendSystemIMToUser = 508;
+ k_EMsgAMExtendLicense = 509;
+ k_EMsgAMAddMinutesToLicense = 510;
+ k_EMsgAMCancelLicense = 511;
+ k_EMsgAMInitPurchase = 512;
+ k_EMsgAMPurchaseResponse = 513;
+ k_EMsgAMGetFinalPrice = 514;
+ k_EMsgAMGetFinalPriceResponse = 515;
+ k_EMsgAMGetLegacyGameKey = 516;
+ k_EMsgAMGetLegacyGameKeyResponse = 517;
+ k_EMsgAMFindHungTransactions = 518;
+ k_EMsgAMSetAccountTrustedRequest = 519;
+ k_EMsgAMCancelPurchase = 522;
+ k_EMsgAMNewChallenge = 523;
+ k_EMsgAMLoadOEMTickets = 524;
+ k_EMsgAMFixPendingPurchase = 525;
+ k_EMsgAMFixPendingPurchaseResponse = 526;
+ k_EMsgAMIsUserBanned = 527;
+ k_EMsgAMRegisterKey = 528;
+ k_EMsgAMLoadActivationCodes = 529;
+ k_EMsgAMLoadActivationCodesResponse = 530;
+ k_EMsgAMLookupKeyResponse = 531;
+ k_EMsgAMLookupKey = 532;
+ k_EMsgAMChatCleanup = 533;
+ k_EMsgAMClanCleanup = 534;
+ k_EMsgAMFixPendingRefund = 535;
+ k_EMsgAMReverseChargeback = 536;
+ k_EMsgAMReverseChargebackResponse = 537;
+ k_EMsgAMClanCleanupList = 538;
+ k_EMsgAMGetLicenses = 539;
+ k_EMsgAMGetLicensesResponse = 540;
+ k_EMsgAMSendCartRepurchase = 541;
+ k_EMsgAMSendCartRepurchaseResponse = 542;
+ k_EMsgAllowUserToPlayQuery = 550;
+ k_EMsgAllowUserToPlayResponse = 551;
+ k_EMsgAMVerfiyUser = 552;
+ k_EMsgAMClientNotPlaying = 553;
+ k_EMsgAMClientRequestFriendship = 554;
+ k_EMsgAMRelayPublishStatus = 555;
+ k_EMsgAMInitPurchaseResponse = 560;
+ k_EMsgAMRevokePurchaseResponse = 561;
+ k_EMsgAMRefreshGuestPasses = 563;
+ k_EMsgAMGrantGuestPasses = 566;
+ k_EMsgAMClanDataUpdated = 567;
+ k_EMsgAMReloadAccount = 568;
+ k_EMsgAMClientChatMsgRelay = 569;
+ k_EMsgAMChatMulti = 570;
+ k_EMsgAMClientChatInviteRelay = 571;
+ k_EMsgAMChatInvite = 572;
+ k_EMsgAMClientJoinChatRelay = 573;
+ k_EMsgAMClientChatMemberInfoRelay = 574;
+ k_EMsgAMPublishChatMemberInfo = 575;
+ k_EMsgAMClientAcceptFriendInvite = 576;
+ k_EMsgAMChatEnter = 577;
+ k_EMsgAMClientPublishRemovalFromSource = 578;
+ k_EMsgAMChatActionResult = 579;
+ k_EMsgAMFindAccounts = 580;
+ k_EMsgAMFindAccountsResponse = 581;
+ k_EMsgAMIsAccountNameInUse = 582;
+ k_EMsgAMIsAccountNameInUseResponse = 583;
+ k_EMsgAMSetAccountFlags = 584;
+ k_EMsgAMCreateClan = 586;
+ k_EMsgAMCreateClanResponse = 587;
+ k_EMsgAMGetClanDetails = 588;
+ k_EMsgAMGetClanDetailsResponse = 589;
+ k_EMsgAMSetPersonaName = 590;
+ k_EMsgAMSetAvatar = 591;
+ k_EMsgAMAuthenticateUser = 592;
+ k_EMsgAMAuthenticateUserResponse = 593;
+ k_EMsgAMP2PIntroducerMessage = 596;
+ k_EMsgClientChatAction = 597;
+ k_EMsgAMClientChatActionRelay = 598;
+ k_EMsgBaseVS = 600;
+ k_EMsgReqChallenge = 600;
+ k_EMsgVACResponse = 601;
+ k_EMsgReqChallengeTest = 602;
+ k_EMsgVSMarkCheat = 604;
+ k_EMsgVSAddCheat = 605;
+ k_EMsgVSPurgeCodeModDB = 606;
+ k_EMsgVSGetChallengeResults = 607;
+ k_EMsgVSChallengeResultText = 608;
+ k_EMsgVSReportLingerer = 609;
+ k_EMsgVSRequestManagedChallenge = 610;
+ k_EMsgVSLoadDBFinished = 611;
+ k_EMsgBaseDRMS = 625;
+ k_EMsgDRMBuildBlobRequest = 628;
+ k_EMsgDRMBuildBlobResponse = 629;
+ k_EMsgDRMResolveGuidRequest = 630;
+ k_EMsgDRMResolveGuidResponse = 631;
+ k_EMsgDRMVariabilityReport = 633;
+ k_EMsgDRMVariabilityReportResponse = 634;
+ k_EMsgDRMStabilityReport = 635;
+ k_EMsgDRMStabilityReportResponse = 636;
+ k_EMsgDRMDetailsReportRequest = 637;
+ k_EMsgDRMDetailsReportResponse = 638;
+ k_EMsgDRMProcessFile = 639;
+ k_EMsgDRMAdminUpdate = 640;
+ k_EMsgDRMAdminUpdateResponse = 641;
+ k_EMsgDRMSync = 642;
+ k_EMsgDRMSyncResponse = 643;
+ k_EMsgDRMProcessFileResponse = 644;
+ k_EMsgDRMEmptyGuidCache = 645;
+ k_EMsgDRMEmptyGuidCacheResponse = 646;
+ k_EMsgBaseCS = 650;
+ k_EMsgBaseClient = 700;
+ k_EMsgClientLogOn_Deprecated = 701;
+ k_EMsgClientAnonLogOn_Deprecated = 702;
+ k_EMsgClientHeartBeat = 703;
+ k_EMsgClientVACResponse = 704;
+ k_EMsgClientGamesPlayed_obsolete = 705;
+ k_EMsgClientLogOff = 706;
+ k_EMsgClientNoUDPConnectivity = 707;
+ k_EMsgClientConnectionStats = 710;
+ k_EMsgClientPingResponse = 712;
+ k_EMsgClientRemoveFriend = 714;
+ k_EMsgClientGamesPlayedNoDataBlob = 715;
+ k_EMsgClientChangeStatus = 716;
+ k_EMsgClientVacStatusResponse = 717;
+ k_EMsgClientFriendMsg = 718;
+ k_EMsgClientGameConnect_obsolete = 719;
+ k_EMsgClientGamesPlayed2_obsolete = 720;
+ k_EMsgClientGameEnded_obsolete = 721;
+ k_EMsgClientSystemIM = 726;
+ k_EMsgClientSystemIMAck = 727;
+ k_EMsgClientGetLicenses = 728;
+ k_EMsgClientGetLegacyGameKey = 730;
+ k_EMsgClientContentServerLogOn_Deprecated = 731;
+ k_EMsgClientAckVACBan2 = 732;
+ k_EMsgClientGetPurchaseReceipts = 736;
+ k_EMsgClientGamesPlayed3_obsolete = 738;
+ k_EMsgClientAckGuestPass = 740;
+ k_EMsgClientRedeemGuestPass = 741;
+ k_EMsgClientGamesPlayed = 742;
+ k_EMsgClientRegisterKey = 743;
+ k_EMsgClientInviteUserToClan = 744;
+ k_EMsgClientAcknowledgeClanInvite = 745;
+ k_EMsgClientPurchaseWithMachineID = 746;
+ k_EMsgClientAppUsageEvent = 747;
+ k_EMsgClientLogOnResponse = 751;
+ k_EMsgClientSetHeartbeatRate = 755;
+ k_EMsgClientNotLoggedOnDeprecated = 756;
+ k_EMsgClientLoggedOff = 757;
+ k_EMsgGSApprove = 758;
+ k_EMsgGSDeny = 759;
+ k_EMsgGSKick = 760;
+ k_EMsgClientPurchaseResponse = 763;
+ k_EMsgClientPing = 764;
+ k_EMsgClientNOP = 765;
+ k_EMsgClientPersonaState = 766;
+ k_EMsgClientFriendsList = 767;
+ k_EMsgClientAccountInfo = 768;
+ k_EMsgClientNewsUpdate = 771;
+ k_EMsgClientGameConnectDeny = 773;
+ k_EMsgGSStatusReply = 774;
+ k_EMsgClientGameConnectTokens = 779;
+ k_EMsgClientLicenseList = 780;
+ k_EMsgClientVACBanStatus = 782;
+ k_EMsgClientCMList = 783;
+ k_EMsgClientEncryptPct = 784;
+ k_EMsgClientGetLegacyGameKeyResponse = 785;
+ k_EMsgClientAddFriend = 791;
+ k_EMsgClientAddFriendResponse = 792;
+ k_EMsgClientAckGuestPassResponse = 796;
+ k_EMsgClientRedeemGuestPassResponse = 797;
+ k_EMsgClientUpdateGuestPassesList = 798;
+ k_EMsgClientChatMsg = 799;
+ k_EMsgClientChatInvite = 800;
+ k_EMsgClientJoinChat = 801;
+ k_EMsgClientChatMemberInfo = 802;
+ k_EMsgClientLogOnWithCredentials_Deprecated = 803;
+ k_EMsgClientPasswordChangeResponse = 805;
+ k_EMsgClientChatEnter = 807;
+ k_EMsgClientFriendRemovedFromSource = 808;
+ k_EMsgClientCreateChat = 809;
+ k_EMsgClientCreateChatResponse = 810;
+ k_EMsgClientP2PIntroducerMessage = 813;
+ k_EMsgClientChatActionResult = 814;
+ k_EMsgClientRequestFriendData = 815;
+ k_EMsgClientGetUserStats = 818;
+ k_EMsgClientGetUserStatsResponse = 819;
+ k_EMsgClientStoreUserStats = 820;
+ k_EMsgClientStoreUserStatsResponse = 821;
+ k_EMsgClientClanState = 822;
+ k_EMsgClientServiceModule = 830;
+ k_EMsgClientServiceCall = 831;
+ k_EMsgClientServiceCallResponse = 832;
+ k_EMsgClientNatTraversalStatEvent = 839;
+ k_EMsgClientSteamUsageEvent = 842;
+ k_EMsgClientCheckPassword = 845;
+ k_EMsgClientResetPassword = 846;
+ k_EMsgClientCheckPasswordResponse = 848;
+ k_EMsgClientResetPasswordResponse = 849;
+ k_EMsgClientSessionToken = 850;
+ k_EMsgClientDRMProblemReport = 851;
+ k_EMsgClientSetIgnoreFriend = 855;
+ k_EMsgClientSetIgnoreFriendResponse = 856;
+ k_EMsgClientGetAppOwnershipTicket = 857;
+ k_EMsgClientGetAppOwnershipTicketResponse = 858;
+ k_EMsgClientGetLobbyListResponse = 860;
+ k_EMsgClientServerList = 880;
+ k_EMsgClientDRMBlobRequest = 896;
+ k_EMsgClientDRMBlobResponse = 897;
+ k_EMsgBaseGameServer = 900;
+ k_EMsgGSDisconnectNotice = 901;
+ k_EMsgGSStatus = 903;
+ k_EMsgGSUserPlaying = 905;
+ k_EMsgGSStatus2 = 906;
+ k_EMsgGSStatusUpdate_Unused = 907;
+ k_EMsgGSServerType = 908;
+ k_EMsgGSPlayerList = 909;
+ k_EMsgGSGetUserAchievementStatus = 910;
+ k_EMsgGSGetUserAchievementStatusResponse = 911;
+ k_EMsgGSGetPlayStats = 918;
+ k_EMsgGSGetPlayStatsResponse = 919;
+ k_EMsgGSGetUserGroupStatus = 920;
+ k_EMsgAMGetUserGroupStatus = 921;
+ k_EMsgAMGetUserGroupStatusResponse = 922;
+ k_EMsgGSGetUserGroupStatusResponse = 923;
+ k_EMsgGSGetReputation = 936;
+ k_EMsgGSGetReputationResponse = 937;
+ k_EMsgGSAssociateWithClan = 938;
+ k_EMsgGSAssociateWithClanResponse = 939;
+ k_EMsgGSComputeNewPlayerCompatibility = 940;
+ k_EMsgGSComputeNewPlayerCompatibilityResponse = 941;
+ k_EMsgBaseAdmin = 1000;
+ k_EMsgAdminCmd = 1000;
+ k_EMsgAdminCmdResponse = 1004;
+ k_EMsgAdminLogListenRequest = 1005;
+ k_EMsgAdminLogEvent = 1006;
+ k_EMsgUniverseData = 1010;
+ k_EMsgAdminSpew = 1019;
+ k_EMsgAdminConsoleTitle = 1020;
+ k_EMsgAdminGCSpew = 1023;
+ k_EMsgAdminGCCommand = 1024;
+ k_EMsgAdminGCGetCommandList = 1025;
+ k_EMsgAdminGCGetCommandListResponse = 1026;
+ k_EMsgFBSConnectionData = 1027;
+ k_EMsgAdminMsgSpew = 1028;
+ k_EMsgBaseFBS = 1100;
+ k_EMsgFBSReqVersion = 1100;
+ k_EMsgFBSVersionInfo = 1101;
+ k_EMsgFBSForceRefresh = 1102;
+ k_EMsgFBSForceBounce = 1103;
+ k_EMsgFBSDeployPackage = 1104;
+ k_EMsgFBSDeployResponse = 1105;
+ k_EMsgFBSUpdateBootstrapper = 1106;
+ k_EMsgFBSSetState = 1107;
+ k_EMsgFBSApplyOSUpdates = 1108;
+ k_EMsgFBSRunCMDScript = 1109;
+ k_EMsgFBSRebootBox = 1110;
+ k_EMsgFBSSetBigBrotherMode = 1111;
+ k_EMsgFBSMinidumpServer = 1112;
+ k_EMsgFBSDeployHotFixPackage = 1114;
+ k_EMsgFBSDeployHotFixResponse = 1115;
+ k_EMsgFBSDownloadHotFix = 1116;
+ k_EMsgFBSDownloadHotFixResponse = 1117;
+ k_EMsgFBSUpdateTargetConfigFile = 1118;
+ k_EMsgFBSApplyAccountCred = 1119;
+ k_EMsgFBSApplyAccountCredResponse = 1120;
+ k_EMsgFBSSetShellCount = 1121;
+ k_EMsgFBSTerminateShell = 1122;
+ k_EMsgFBSQueryGMForRequest = 1123;
+ k_EMsgFBSQueryGMResponse = 1124;
+ k_EMsgFBSTerminateZombies = 1125;
+ k_EMsgFBSInfoFromBootstrapper = 1126;
+ k_EMsgFBSRebootBoxResponse = 1127;
+ k_EMsgFBSBootstrapperPackageRequest = 1128;
+ k_EMsgFBSBootstrapperPackageResponse = 1129;
+ k_EMsgFBSBootstrapperGetPackageChunk = 1130;
+ k_EMsgFBSBootstrapperGetPackageChunkResponse = 1131;
+ k_EMsgFBSBootstrapperPackageTransferProgress = 1132;
+ k_EMsgFBSRestartBootstrapper = 1133;
+ k_EMsgFBSPauseFrozenDumps = 1134;
+ k_EMsgBaseFileXfer = 1200;
+ k_EMsgFileXferRequest = 1200;
+ k_EMsgFileXferResponse = 1201;
+ k_EMsgFileXferData = 1202;
+ k_EMsgFileXferEnd = 1203;
+ k_EMsgFileXferDataAck = 1204;
+ k_EMsgBaseChannelAuth = 1300;
+ k_EMsgChannelAuthChallenge = 1300;
+ k_EMsgChannelAuthResponse = 1301;
+ k_EMsgChannelAuthResult = 1302;
+ k_EMsgChannelEncryptRequest = 1303;
+ k_EMsgChannelEncryptResponse = 1304;
+ k_EMsgChannelEncryptResult = 1305;
+ k_EMsgBaseBS = 1400;
+ k_EMsgBSPurchaseStart = 1401;
+ k_EMsgBSPurchaseResponse = 1402;
+ k_EMsgBSAuthenticateCCTrans = 1403;
+ k_EMsgBSAuthenticateCCTransResponse = 1404;
+ k_EMsgBSSettleComplete = 1406;
+ k_EMsgBSInitPayPalTxn = 1408;
+ k_EMsgBSInitPayPalTxnResponse = 1409;
+ k_EMsgBSGetPayPalUserInfo = 1410;
+ k_EMsgBSGetPayPalUserInfoResponse = 1411;
+ k_EMsgBSPaymentInstrBan = 1417;
+ k_EMsgBSPaymentInstrBanResponse = 1418;
+ k_EMsgBSInitGCBankXferTxn = 1421;
+ k_EMsgBSInitGCBankXferTxnResponse = 1422;
+ k_EMsgBSCommitGCTxn = 1425;
+ k_EMsgBSQueryTransactionStatus = 1426;
+ k_EMsgBSQueryTransactionStatusResponse = 1427;
+ k_EMsgBSQueryTxnExtendedInfo = 1433;
+ k_EMsgBSQueryTxnExtendedInfoResponse = 1434;
+ k_EMsgBSUpdateConversionRates = 1435;
+ k_EMsgBSPurchaseRunFraudChecks = 1437;
+ k_EMsgBSPurchaseRunFraudChecksResponse = 1438;
+ k_EMsgBSQueryBankInformation = 1440;
+ k_EMsgBSQueryBankInformationResponse = 1441;
+ k_EMsgBSValidateXsollaSignature = 1445;
+ k_EMsgBSValidateXsollaSignatureResponse = 1446;
+ k_EMsgBSQiwiWalletInvoice = 1448;
+ k_EMsgBSQiwiWalletInvoiceResponse = 1449;
+ k_EMsgBSUpdateInventoryFromProPack = 1450;
+ k_EMsgBSUpdateInventoryFromProPackResponse = 1451;
+ k_EMsgBSSendShippingRequest = 1452;
+ k_EMsgBSSendShippingRequestResponse = 1453;
+ k_EMsgBSGetProPackOrderStatus = 1454;
+ k_EMsgBSGetProPackOrderStatusResponse = 1455;
+ k_EMsgBSCheckJobRunning = 1456;
+ k_EMsgBSCheckJobRunningResponse = 1457;
+ k_EMsgBSResetPackagePurchaseRateLimit = 1458;
+ k_EMsgBSResetPackagePurchaseRateLimitResponse = 1459;
+ k_EMsgBSUpdatePaymentData = 1460;
+ k_EMsgBSUpdatePaymentDataResponse = 1461;
+ k_EMsgBSGetBillingAddress = 1462;
+ k_EMsgBSGetBillingAddressResponse = 1463;
+ k_EMsgBSGetCreditCardInfo = 1464;
+ k_EMsgBSGetCreditCardInfoResponse = 1465;
+ k_EMsgBSRemoveExpiredPaymentData = 1468;
+ k_EMsgBSRemoveExpiredPaymentDataResponse = 1469;
+ k_EMsgBSConvertToCurrentKeys = 1470;
+ k_EMsgBSConvertToCurrentKeysResponse = 1471;
+ k_EMsgBSInitPurchase = 1472;
+ k_EMsgBSInitPurchaseResponse = 1473;
+ k_EMsgBSCompletePurchase = 1474;
+ k_EMsgBSCompletePurchaseResponse = 1475;
+ k_EMsgBSPruneCardUsageStats = 1476;
+ k_EMsgBSPruneCardUsageStatsResponse = 1477;
+ k_EMsgBSStoreBankInformation = 1478;
+ k_EMsgBSStoreBankInformationResponse = 1479;
+ k_EMsgBSVerifyPOSAKey = 1480;
+ k_EMsgBSVerifyPOSAKeyResponse = 1481;
+ k_EMsgBSReverseRedeemPOSAKey = 1482;
+ k_EMsgBSReverseRedeemPOSAKeyResponse = 1483;
+ k_EMsgBSQueryFindCreditCard = 1484;
+ k_EMsgBSQueryFindCreditCardResponse = 1485;
+ k_EMsgBSStatusInquiryPOSAKey = 1486;
+ k_EMsgBSStatusInquiryPOSAKeyResponse = 1487;
+ k_EMsgBSBoaCompraConfirmProductDelivery = 1494;
+ k_EMsgBSBoaCompraConfirmProductDeliveryResponse = 1495;
+ k_EMsgBSGenerateBoaCompraMD5 = 1496;
+ k_EMsgBSGenerateBoaCompraMD5Response = 1497;
+ k_EMsgBSCommitWPTxn = 1498;
+ k_EMsgBSCommitAdyenTxn = 1499;
+ k_EMsgBaseATS = 1500;
+ k_EMsgATSStartStressTest = 1501;
+ k_EMsgATSStopStressTest = 1502;
+ k_EMsgATSRunFailServerTest = 1503;
+ k_EMsgATSUFSPerfTestTask = 1504;
+ k_EMsgATSUFSPerfTestResponse = 1505;
+ k_EMsgATSCycleTCM = 1506;
+ k_EMsgATSInitDRMSStressTest = 1507;
+ k_EMsgATSCallTest = 1508;
+ k_EMsgATSCallTestReply = 1509;
+ k_EMsgATSStartExternalStress = 1510;
+ k_EMsgATSExternalStressJobStart = 1511;
+ k_EMsgATSExternalStressJobQueued = 1512;
+ k_EMsgATSExternalStressJobRunning = 1513;
+ k_EMsgATSExternalStressJobStopped = 1514;
+ k_EMsgATSExternalStressJobStopAll = 1515;
+ k_EMsgATSExternalStressActionResult = 1516;
+ k_EMsgATSStarted = 1517;
+ k_EMsgATSCSPerfTestTask = 1518;
+ k_EMsgATSCSPerfTestResponse = 1519;
+ k_EMsgBaseDP = 1600;
+ k_EMsgDPSetPublishingState = 1601;
+ k_EMsgDPUniquePlayersStat = 1603;
+ k_EMsgDPStreamingUniquePlayersStat = 1604;
+ k_EMsgDPBlockingStats = 1607;
+ k_EMsgDPNatTraversalStats = 1608;
+ k_EMsgDPCloudStats = 1612;
+ k_EMsgDPGetPlayerCount = 1615;
+ k_EMsgDPGetPlayerCountResponse = 1616;
+ k_EMsgDPGameServersPlayersStats = 1617;
+ k_EMsgClientDPCheckSpecialSurvey = 1620;
+ k_EMsgClientDPCheckSpecialSurveyResponse = 1621;
+ k_EMsgClientDPSendSpecialSurveyResponse = 1622;
+ k_EMsgClientDPSendSpecialSurveyResponseReply = 1623;
+ k_EMsgDPStoreSaleStatistics = 1624;
+ k_EMsgDPPartnerMicroTxns = 1628;
+ k_EMsgDPPartnerMicroTxnsResponse = 1629;
+ k_EMsgDPVRUniquePlayersStat = 1631;
+ k_EMsgBaseCM = 1700;
+ k_EMsgCMSetAllowState = 1701;
+ k_EMsgCMSpewAllowState = 1702;
+ k_EMsgCMSessionRejected = 1703;
+ k_EMsgCMSetSecrets = 1704;
+ k_EMsgCMGetSecrets = 1705;
+ k_EMsgBaseGC = 2200;
+ k_EMsgGCCmdRevive = 2203;
+ k_EMsgGCCmdDown = 2206;
+ k_EMsgGCCmdDeploy = 2207;
+ k_EMsgGCCmdDeployResponse = 2208;
+ k_EMsgGCCmdSwitch = 2209;
+ k_EMsgAMRefreshSessions = 2210;
+ k_EMsgGCAchievementAwarded = 2212;
+ k_EMsgGCSystemMessage = 2213;
+ k_EMsgGCCmdStatus = 2216;
+ k_EMsgGCRegisterWebInterfaces_Deprecated = 2217;
+ k_EMsgGCGetAccountDetails_DEPRECATED = 2218;
+ k_EMsgGCInterAppMessage = 2219;
+ k_EMsgGCGetEmailTemplate = 2220;
+ k_EMsgGCGetEmailTemplateResponse = 2221;
+ k_EMsgGCHRelay = 2222;
+ k_EMsgGCHRelayToClient = 2223;
+ k_EMsgGCHUpdateSession = 2224;
+ k_EMsgGCHRequestUpdateSession = 2225;
+ k_EMsgGCHRequestStatus = 2226;
+ k_EMsgGCHRequestStatusResponse = 2227;
+ k_EMsgGCHAccountVacStatusChange = 2228;
+ k_EMsgGCHSpawnGC = 2229;
+ k_EMsgGCHSpawnGCResponse = 2230;
+ k_EMsgGCHKillGC = 2231;
+ k_EMsgGCHKillGCResponse = 2232;
+ k_EMsgGCHAccountTradeBanStatusChange = 2233;
+ k_EMsgGCHAccountLockStatusChange = 2234;
+ k_EMsgGCHVacVerificationChange = 2235;
+ k_EMsgGCHAccountPhoneNumberChange = 2236;
+ k_EMsgGCHAccountTwoFactorChange = 2237;
+ k_EMsgGCHInviteUserToLobby = 2238;
+ k_EMsgGCHUpdateMultipleSessions = 2239;
+ k_EMsgGCHMarkAppSessionsAuthoritative = 2240;
+ k_EMsgGCHRecurringSubscriptionStatusChange = 2241;
+ k_EMsgGCHAppCheersReceived = 2242;
+ k_EMsgGCHAppCheersGetAllowedTypes = 2243;
+ k_EMsgGCHAppCheersGetAllowedTypesResponse = 2244;
+ k_EMsgGCHRoutingRulesFromGCHtoGM = 2245;
+ k_EMsgGCHRoutingRulesToGCHfromGM = 2246;
+ k_EMsgUpdateCMMessageRateRules = 2247;
+ k_EMsgBaseP2P = 2500;
+ k_EMsgP2PIntroducerMessage = 2502;
+ k_EMsgBaseSM = 2900;
+ k_EMsgSMExpensiveReport = 2902;
+ k_EMsgSMHourlyReport = 2903;
+ k_EMsgSMPartitionRenames = 2905;
+ k_EMsgSMMonitorSpace = 2906;
+ k_EMsgSMTestNextBuildSchemaConversion = 2907;
+ k_EMsgSMTestNextBuildSchemaConversionResponse = 2908;
+ k_EMsgBaseTest = 3000;
+ k_EMsgFailServer = 3000;
+ k_EMsgJobHeartbeatTest = 3001;
+ k_EMsgJobHeartbeatTestResponse = 3002;
+ k_EMsgBaseFTSRange = 3100;
+ k_EMsgBaseCCSRange = 3150;
+ k_EMsgCCSDeleteAllCommentsByAuthor = 3161;
+ k_EMsgCCSDeleteAllCommentsByAuthorResponse = 3162;
+ k_EMsgBaseLBSRange = 3200;
+ k_EMsgLBSSetScore = 3201;
+ k_EMsgLBSSetScoreResponse = 3202;
+ k_EMsgLBSFindOrCreateLB = 3203;
+ k_EMsgLBSFindOrCreateLBResponse = 3204;
+ k_EMsgLBSGetLBEntries = 3205;
+ k_EMsgLBSGetLBEntriesResponse = 3206;
+ k_EMsgLBSGetLBList = 3207;
+ k_EMsgLBSGetLBListResponse = 3208;
+ k_EMsgLBSSetLBDetails = 3209;
+ k_EMsgLBSDeleteLB = 3210;
+ k_EMsgLBSDeleteLBEntry = 3211;
+ k_EMsgLBSResetLB = 3212;
+ k_EMsgLBSResetLBResponse = 3213;
+ k_EMsgLBSDeleteLBResponse = 3214;
+ k_EMsgBaseOGS = 3400;
+ k_EMsgOGSBeginSession = 3401;
+ k_EMsgOGSBeginSessionResponse = 3402;
+ k_EMsgOGSEndSession = 3403;
+ k_EMsgOGSEndSessionResponse = 3404;
+ k_EMsgOGSWriteAppSessionRow = 3406;
+ k_EMsgBaseBRP = 3600;
+ k_EMsgBRPPostTransactionTax = 3629;
+ k_EMsgBRPPostTransactionTaxResponse = 3630;
+ k_EMsgBaseAMRange2 = 4000;
+ k_EMsgAMCreateChat = 4001;
+ k_EMsgAMCreateChatResponse = 4002;
+ k_EMsgAMSetProfileURL = 4005;
+ k_EMsgAMGetAccountEmailAddress = 4006;
+ k_EMsgAMGetAccountEmailAddressResponse = 4007;
+ k_EMsgAMRequestClanData = 4008;
+ k_EMsgAMRouteToClients = 4009;
+ k_EMsgAMLeaveClan = 4010;
+ k_EMsgAMClanPermissions = 4011;
+ k_EMsgAMClanPermissionsResponse = 4012;
+ k_EMsgAMCreateClanEventDummyForRateLimiting = 4013;
+ k_EMsgAMUpdateClanEventDummyForRateLimiting = 4015;
+ k_EMsgAMSetClanPermissionSettings = 4021;
+ k_EMsgAMSetClanPermissionSettingsResponse = 4022;
+ k_EMsgAMGetClanPermissionSettings = 4023;
+ k_EMsgAMGetClanPermissionSettingsResponse = 4024;
+ k_EMsgAMPublishChatRoomInfo = 4025;
+ k_EMsgClientChatRoomInfo = 4026;
+ k_EMsgAMGetClanHistory = 4039;
+ k_EMsgAMGetClanHistoryResponse = 4040;
+ k_EMsgAMGetClanPermissionBits = 4041;
+ k_EMsgAMGetClanPermissionBitsResponse = 4042;
+ k_EMsgAMSetClanPermissionBits = 4043;
+ k_EMsgAMSetClanPermissionBitsResponse = 4044;
+ k_EMsgAMSessionInfoRequest = 4045;
+ k_EMsgAMSessionInfoResponse = 4046;
+ k_EMsgAMValidateWGToken = 4047;
+ k_EMsgAMGetClanRank = 4050;
+ k_EMsgAMGetClanRankResponse = 4051;
+ k_EMsgAMSetClanRank = 4052;
+ k_EMsgAMSetClanRankResponse = 4053;
+ k_EMsgAMGetClanPOTW = 4054;
+ k_EMsgAMGetClanPOTWResponse = 4055;
+ k_EMsgAMSetClanPOTW = 4056;
+ k_EMsgAMSetClanPOTWResponse = 4057;
+ k_EMsgAMDumpUser = 4059;
+ k_EMsgAMKickUserFromClan = 4060;
+ k_EMsgAMAddFounderToClan = 4061;
+ k_EMsgAMValidateWGTokenResponse = 4062;
+ k_EMsgAMSetAccountDetails = 4064;
+ k_EMsgAMGetChatBanList = 4065;
+ k_EMsgAMGetChatBanListResponse = 4066;
+ k_EMsgAMUnBanFromChat = 4067;
+ k_EMsgAMSetClanDetails = 4068;
+ k_EMsgUGSGetUserGameStats = 4073;
+ k_EMsgUGSGetUserGameStatsResponse = 4074;
+ k_EMsgAMCheckClanMembership = 4075;
+ k_EMsgAMGetClanMembers = 4076;
+ k_EMsgAMGetClanMembersResponse = 4077;
+ k_EMsgAMNotifyChatOfClanChange = 4079;
+ k_EMsgAMResubmitPurchase = 4080;
+ k_EMsgAMAddFriend = 4081;
+ k_EMsgAMAddFriendResponse = 4082;
+ k_EMsgAMRemoveFriend = 4083;
+ k_EMsgAMDumpClan = 4084;
+ k_EMsgAMChangeClanOwner = 4085;
+ k_EMsgAMCancelEasyCollect = 4086;
+ k_EMsgAMCancelEasyCollectResponse = 4087;
+ k_EMsgAMClansInCommon = 4090;
+ k_EMsgAMClansInCommonResponse = 4091;
+ k_EMsgAMIsValidAccountID = 4092;
+ k_EMsgAMWipeFriendsList = 4095;
+ k_EMsgAMSetIgnored = 4096;
+ k_EMsgAMClansInCommonCountResponse = 4097;
+ k_EMsgAMFriendsList = 4098;
+ k_EMsgAMFriendsListResponse = 4099;
+ k_EMsgAMFriendsInCommon = 4100;
+ k_EMsgAMFriendsInCommonResponse = 4101;
+ k_EMsgAMFriendsInCommonCountResponse = 4102;
+ k_EMsgAMClansInCommonCount = 4103;
+ k_EMsgAMChallengeVerdict = 4104;
+ k_EMsgAMChallengeNotification = 4105;
+ k_EMsgAMFindGSByIP = 4106;
+ k_EMsgAMFoundGSByIP = 4107;
+ k_EMsgAMGiftRevoked = 4108;
+ k_EMsgAMUserClanList = 4110;
+ k_EMsgAMUserClanListResponse = 4111;
+ k_EMsgAMGetAccountDetails2 = 4112;
+ k_EMsgAMGetAccountDetailsResponse2 = 4113;
+ k_EMsgAMSetCommunityProfileSettings = 4114;
+ k_EMsgAMSetCommunityProfileSettingsResponse = 4115;
+ k_EMsgAMGetCommunityPrivacyState = 4116;
+ k_EMsgAMGetCommunityPrivacyStateResponse = 4117;
+ k_EMsgAMCheckClanInviteRateLimiting = 4118;
+ k_EMsgUGSGetUserAchievementStatus = 4119;
+ k_EMsgAMGetIgnored = 4120;
+ k_EMsgAMGetIgnoredResponse = 4121;
+ k_EMsgAMSetIgnoredResponse = 4122;
+ k_EMsgAMSetFriendRelationshipNone = 4123;
+ k_EMsgAMGetFriendRelationship = 4124;
+ k_EMsgAMGetFriendRelationshipResponse = 4125;
+ k_EMsgAMServiceModulesCache = 4126;
+ k_EMsgAMServiceModulesCall = 4127;
+ k_EMsgAMServiceModulesCallResponse = 4128;
+ k_EMsgCommunityAddFriendNews = 4140;
+ k_EMsgAMFindClanUser = 4143;
+ k_EMsgAMFindClanUserResponse = 4144;
+ k_EMsgAMBanFromChat = 4145;
+ k_EMsgAMGetUserNewsSubscriptions = 4147;
+ k_EMsgAMGetUserNewsSubscriptionsResponse = 4148;
+ k_EMsgAMSetUserNewsSubscriptions = 4149;
+ k_EMsgAMSendQueuedEmails = 4152;
+ k_EMsgAMSetLicenseFlags = 4153;
+ k_EMsgCommunityDeleteUserNews = 4155;
+ k_EMsgAMGetAccountStatus = 4158;
+ k_EMsgAMGetAccountStatusResponse = 4159;
+ k_EMsgAMEditBanReason = 4160;
+ k_EMsgAMCheckClanMembershipResponse = 4161;
+ k_EMsgAMProbeClanMembershipList = 4162;
+ k_EMsgAMProbeClanMembershipListResponse = 4163;
+ k_EMsgUGSGetUserAchievementStatusResponse = 4164;
+ k_EMsgAMGetFriendsLobbies = 4165;
+ k_EMsgAMGetFriendsLobbiesResponse = 4166;
+ k_EMsgAMGetUserFriendNewsResponse = 4172;
+ k_EMsgCommunityGetUserFriendNews = 4173;
+ k_EMsgAMGetUserClansNewsResponse = 4174;
+ k_EMsgAMGetUserClansNews = 4175;
+ k_EMsgAMGetPreviousCBAccount = 4184;
+ k_EMsgAMGetPreviousCBAccountResponse = 4185;
+ k_EMsgAMGetUserLicenseHistory = 4190;
+ k_EMsgAMGetUserLicenseHistoryResponse = 4191;
+ k_EMsgAMSupportChangePassword = 4194;
+ k_EMsgAMSupportChangeEmail = 4195;
+ k_EMsgAMResetUserVerificationGSByIP = 4197;
+ k_EMsgAMUpdateGSPlayStats = 4198;
+ k_EMsgAMSupportEnableOrDisable = 4199;
+ k_EMsgAMGetPurchaseStatus = 4206;
+ k_EMsgAMSupportIsAccountEnabled = 4209;
+ k_EMsgAMSupportIsAccountEnabledResponse = 4210;
+ k_EMsgUGSGetUserStats = 4211;
+ k_EMsgAMGSSearch = 4213;
+ k_EMsgChatServerRouteFriendMsg = 4219;
+ k_EMsgAMTicketAuthRequestOrResponse = 4220;
+ k_EMsgAMAddFreeLicense = 4224;
+ k_EMsgAMValidateEmailLink = 4231;
+ k_EMsgAMValidateEmailLinkResponse = 4232;
+ k_EMsgUGSStoreUserStats = 4236;
+ k_EMsgAMDeleteStoredCard = 4241;
+ k_EMsgAMRevokeLegacyGameKeys = 4242;
+ k_EMsgAMGetWalletDetails = 4244;
+ k_EMsgAMGetWalletDetailsResponse = 4245;
+ k_EMsgAMDeleteStoredPaymentInfo = 4246;
+ k_EMsgAMGetStoredPaymentSummary = 4247;
+ k_EMsgAMGetStoredPaymentSummaryResponse = 4248;
+ k_EMsgAMGetWalletConversionRate = 4249;
+ k_EMsgAMGetWalletConversionRateResponse = 4250;
+ k_EMsgAMConvertWallet = 4251;
+ k_EMsgAMConvertWalletResponse = 4252;
+ k_EMsgAMSetPreApproval = 4255;
+ k_EMsgAMSetPreApprovalResponse = 4256;
+ k_EMsgAMCreateRefund = 4258;
+ k_EMsgAMCreateChargeback = 4260;
+ k_EMsgAMCreateDispute = 4262;
+ k_EMsgAMClearDispute = 4264;
+ k_EMsgAMCreateFinancialAdjustment = 4265;
+ k_EMsgAMPlayerNicknameList = 4266;
+ k_EMsgAMPlayerNicknameListResponse = 4267;
+ k_EMsgAMGetUserCurrentGameInfo = 4269;
+ k_EMsgAMGetUserCurrentGameInfoResponse = 4270;
+ k_EMsgAMGetGSPlayerList = 4271;
+ k_EMsgAMGetGSPlayerListResponse = 4272;
+ k_EMsgAMGetSteamIDForMicroTxn = 4278;
+ k_EMsgAMGetSteamIDForMicroTxnResponse = 4279;
+ k_EMsgAMSetPartnerMember = 4280;
+ k_EMsgAMRemovePublisherUser = 4281;
+ k_EMsgAMGetUserLicenseList = 4282;
+ k_EMsgAMGetUserLicenseListResponse = 4283;
+ k_EMsgAMReloadGameGroupPolicy = 4284;
+ k_EMsgAMAddFreeLicenseResponse = 4285;
+ k_EMsgAMVACStatusUpdate = 4286;
+ k_EMsgAMGetAccountDetails = 4287;
+ k_EMsgAMGetAccountDetailsResponse = 4288;
+ k_EMsgAMGetPlayerLinkDetails = 4289;
+ k_EMsgAMGetPlayerLinkDetailsResponse = 4290;
+ k_EMsgAMGetAccountFlagsForWGSpoofing = 4294;
+ k_EMsgAMGetAccountFlagsForWGSpoofingResponse = 4295;
+ k_EMsgAMGetClanOfficers = 4298;
+ k_EMsgAMGetClanOfficersResponse = 4299;
+ k_EMsgAMNameChange = 4300;
+ k_EMsgAMGetNameHistory = 4301;
+ k_EMsgAMGetNameHistoryResponse = 4302;
+ k_EMsgAMUpdateProviderStatus = 4305;
+ k_EMsgAMSupportRemoveAccountSecurity = 4307;
+ k_EMsgAMIsAccountInCaptchaGracePeriod = 4308;
+ k_EMsgAMIsAccountInCaptchaGracePeriodResponse = 4309;
+ k_EMsgAMAccountPS3Unlink = 4310;
+ k_EMsgAMAccountPS3UnlinkResponse = 4311;
+ k_EMsgUGSStoreUserStatsResponse = 4312;
+ k_EMsgAMGetAccountPSNInfo = 4313;
+ k_EMsgAMGetAccountPSNInfoResponse = 4314;
+ k_EMsgAMAuthenticatedPlayerList = 4315;
+ k_EMsgAMGetUserGifts = 4316;
+ k_EMsgAMGetUserGiftsResponse = 4317;
+ k_EMsgAMTransferLockedGifts = 4320;
+ k_EMsgAMTransferLockedGiftsResponse = 4321;
+ k_EMsgAMPlayerHostedOnGameServer = 4322;
+ k_EMsgAMGetAccountBanInfo = 4323;
+ k_EMsgAMGetAccountBanInfoResponse = 4324;
+ k_EMsgAMRecordBanEnforcement = 4325;
+ k_EMsgAMRollbackGiftTransfer = 4326;
+ k_EMsgAMRollbackGiftTransferResponse = 4327;
+ k_EMsgAMHandlePendingTransaction = 4328;
+ k_EMsgAMRequestClanDetails = 4329;
+ k_EMsgAMDeleteStoredPaypalAgreement = 4330;
+ k_EMsgAMGameServerUpdate = 4331;
+ k_EMsgAMGameServerRemove = 4332;
+ k_EMsgAMGetPaypalAgreements = 4333;
+ k_EMsgAMGetPaypalAgreementsResponse = 4334;
+ k_EMsgAMGameServerPlayerCompatibilityCheck = 4335;
+ k_EMsgAMGameServerPlayerCompatibilityCheckResponse = 4336;
+ k_EMsgAMRenewLicense = 4337;
+ k_EMsgAMGetAccountCommunityBanInfo = 4338;
+ k_EMsgAMGetAccountCommunityBanInfoResponse = 4339;
+ k_EMsgAMGameServerAccountChangePassword = 4340;
+ k_EMsgAMGameServerAccountDeleteAccount = 4341;
+ k_EMsgAMRenewAgreement = 4342;
+ k_EMsgAMXsollaPayment = 4344;
+ k_EMsgAMXsollaPaymentResponse = 4345;
+ k_EMsgAMAcctAllowedToPurchase = 4346;
+ k_EMsgAMAcctAllowedToPurchaseResponse = 4347;
+ k_EMsgAMSwapKioskDeposit = 4348;
+ k_EMsgAMSwapKioskDepositResponse = 4349;
+ k_EMsgAMSetUserGiftUnowned = 4350;
+ k_EMsgAMSetUserGiftUnownedResponse = 4351;
+ k_EMsgAMClaimUnownedUserGift = 4352;
+ k_EMsgAMClaimUnownedUserGiftResponse = 4353;
+ k_EMsgAMSetClanName = 4354;
+ k_EMsgAMSetClanNameResponse = 4355;
+ k_EMsgAMGrantCoupon = 4356;
+ k_EMsgAMGrantCouponResponse = 4357;
+ k_EMsgAMIsPackageRestrictedInUserCountry = 4358;
+ k_EMsgAMIsPackageRestrictedInUserCountryResponse = 4359;
+ k_EMsgAMHandlePendingTransactionResponse = 4360;
+ k_EMsgAMGrantGuestPasses2 = 4361;
+ k_EMsgAMGrantGuestPasses2Response = 4362;
+ k_EMsgAMGetPlayerBanDetails = 4365;
+ k_EMsgAMGetPlayerBanDetailsResponse = 4366;
+ k_EMsgAMFinalizePurchase = 4367;
+ k_EMsgAMFinalizePurchaseResponse = 4368;
+ k_EMsgAMPersonaChangeResponse = 4372;
+ k_EMsgAMGetClanDetailsForForumCreation = 4373;
+ k_EMsgAMGetClanDetailsForForumCreationResponse = 4374;
+ k_EMsgAMGetPendingNotificationCount = 4375;
+ k_EMsgAMGetPendingNotificationCountResponse = 4376;
+ k_EMsgAMPasswordHashUpgrade = 4377;
+ k_EMsgAMBoaCompraPayment = 4380;
+ k_EMsgAMBoaCompraPaymentResponse = 4381;
+ k_EMsgAMCompleteExternalPurchase = 4383;
+ k_EMsgAMCompleteExternalPurchaseResponse = 4384;
+ k_EMsgAMResolveNegativeWalletCredits = 4385;
+ k_EMsgAMResolveNegativeWalletCreditsResponse = 4386;
+ k_EMsgAMPlayerGetClanBasicDetails = 4389;
+ k_EMsgAMPlayerGetClanBasicDetailsResponse = 4390;
+ k_EMsgAMMOLPayment = 4391;
+ k_EMsgAMMOLPaymentResponse = 4392;
+ k_EMsgGetUserIPCountry = 4393;
+ k_EMsgGetUserIPCountryResponse = 4394;
+ k_EMsgNotificationOfSuspiciousActivity = 4395;
+ k_EMsgAMDegicaPayment = 4396;
+ k_EMsgAMDegicaPaymentResponse = 4397;
+ k_EMsgAMEClubPayment = 4398;
+ k_EMsgAMEClubPaymentResponse = 4399;
+ k_EMsgAMPayPalPaymentsHubPayment = 4400;
+ k_EMsgAMPayPalPaymentsHubPaymentResponse = 4401;
+ k_EMsgAMTwoFactorRecoverAuthenticatorRequest = 4402;
+ k_EMsgAMTwoFactorRecoverAuthenticatorResponse = 4403;
+ k_EMsgAMSmart2PayPayment = 4404;
+ k_EMsgAMSmart2PayPaymentResponse = 4405;
+ k_EMsgAMValidatePasswordResetCodeAndSendSmsRequest = 4406;
+ k_EMsgAMValidatePasswordResetCodeAndSendSmsResponse = 4407;
+ k_EMsgAMGetAccountResetDetailsRequest = 4408;
+ k_EMsgAMGetAccountResetDetailsResponse = 4409;
+ k_EMsgAMBitPayPayment = 4410;
+ k_EMsgAMBitPayPaymentResponse = 4411;
+ k_EMsgAMSendAccountInfoUpdate = 4412;
+ k_EMsgAMSendScheduledGift = 4413;
+ k_EMsgAMNodwinPayment = 4414;
+ k_EMsgAMNodwinPaymentResponse = 4415;
+ k_EMsgAMResolveWalletRevoke = 4416;
+ k_EMsgAMResolveWalletReverseRevoke = 4417;
+ k_EMsgAMFundedPayment = 4418;
+ k_EMsgAMFundedPaymentResponse = 4419;
+ k_EMsgAMRequestPersonaUpdateForChatServer = 4420;
+ k_EMsgAMPerfectWorldPayment = 4421;
+ k_EMsgAMPerfectWorldPaymentResponse = 4422;
+ k_EMsgAMECommPayPayment = 4423;
+ k_EMsgAMECommPayPaymentResponse = 4424;
+ k_EMsgAMSetRemoteClientID = 4425;
+ k_EMsgBasePSRange = 5000;
+ k_EMsgPSCreateShoppingCart = 5001;
+ k_EMsgPSCreateShoppingCartResponse = 5002;
+ k_EMsgPSIsValidShoppingCart = 5003;
+ k_EMsgPSIsValidShoppingCartResponse = 5004;
+ k_EMsgPSRemoveLineItemFromShoppingCart = 5007;
+ k_EMsgPSRemoveLineItemFromShoppingCartResponse = 5008;
+ k_EMsgPSGetShoppingCartContents = 5009;
+ k_EMsgPSGetShoppingCartContentsResponse = 5010;
+ k_EMsgPSAddWalletCreditToShoppingCart = 5011;
+ k_EMsgPSAddWalletCreditToShoppingCartResponse = 5012;
+ k_EMsgBaseUFSRange = 5200;
+ k_EMsgClientUFSUploadFileRequest = 5202;
+ k_EMsgClientUFSUploadFileResponse = 5203;
+ k_EMsgClientUFSUploadFileChunk = 5204;
+ k_EMsgClientUFSUploadFileFinished = 5205;
+ k_EMsgClientUFSGetFileListForApp = 5206;
+ k_EMsgClientUFSGetFileListForAppResponse = 5207;
+ k_EMsgClientUFSDownloadRequest = 5210;
+ k_EMsgClientUFSDownloadResponse = 5211;
+ k_EMsgClientUFSDownloadChunk = 5212;
+ k_EMsgClientUFSLoginRequest = 5213;
+ k_EMsgClientUFSLoginResponse = 5214;
+ k_EMsgUFSReloadPartitionInfo = 5215;
+ k_EMsgClientUFSTransferHeartbeat = 5216;
+ k_EMsgUFSSynchronizeFile = 5217;
+ k_EMsgUFSSynchronizeFileResponse = 5218;
+ k_EMsgClientUFSDeleteFileRequest = 5219;
+ k_EMsgClientUFSDeleteFileResponse = 5220;
+ k_EMsgClientUFSGetUGCDetails = 5226;
+ k_EMsgClientUFSGetUGCDetailsResponse = 5227;
+ k_EMsgUFSUpdateFileFlags = 5228;
+ k_EMsgUFSUpdateFileFlagsResponse = 5229;
+ k_EMsgClientUFSGetSingleFileInfo = 5230;
+ k_EMsgClientUFSGetSingleFileInfoResponse = 5231;
+ k_EMsgClientUFSShareFile = 5232;
+ k_EMsgClientUFSShareFileResponse = 5233;
+ k_EMsgUFSReloadAccount = 5234;
+ k_EMsgUFSReloadAccountResponse = 5235;
+ k_EMsgUFSUpdateRecordBatched = 5236;
+ k_EMsgUFSUpdateRecordBatchedResponse = 5237;
+ k_EMsgUFSMigrateFile = 5238;
+ k_EMsgUFSMigrateFileResponse = 5239;
+ k_EMsgUFSGetUGCURLs = 5240;
+ k_EMsgUFSGetUGCURLsResponse = 5241;
+ k_EMsgUFSHttpUploadFileFinishRequest = 5242;
+ k_EMsgUFSHttpUploadFileFinishResponse = 5243;
+ k_EMsgUFSDownloadStartRequest = 5244;
+ k_EMsgUFSDownloadStartResponse = 5245;
+ k_EMsgUFSDownloadChunkRequest = 5246;
+ k_EMsgUFSDownloadChunkResponse = 5247;
+ k_EMsgUFSDownloadFinishRequest = 5248;
+ k_EMsgUFSDownloadFinishResponse = 5249;
+ k_EMsgUFSFlushURLCache = 5250;
+ k_EMsgClientUFSUploadCommit = 5251;
+ k_EMsgClientUFSUploadCommitResponse = 5252;
+ k_EMsgUFSMigrateFileAppID = 5253;
+ k_EMsgUFSMigrateFileAppIDResponse = 5254;
+ k_EMsgBaseClient2 = 5400;
+ k_EMsgClientRequestForgottenPasswordEmail = 5401;
+ k_EMsgClientRequestForgottenPasswordEmailResponse = 5402;
+ k_EMsgClientCreateAccountResponse = 5403;
+ k_EMsgClientResetForgottenPassword = 5404;
+ k_EMsgClientResetForgottenPasswordResponse = 5405;
+ k_EMsgClientInformOfResetForgottenPassword = 5407;
+ k_EMsgClientInformOfResetForgottenPasswordResponse = 5408;
+ k_EMsgClientAnonUserLogOn_Deprecated = 5409;
+ k_EMsgClientGamesPlayedWithDataBlob = 5410;
+ k_EMsgClientUpdateUserGameInfo = 5411;
+ k_EMsgClientFileToDownload = 5412;
+ k_EMsgClientFileToDownloadResponse = 5413;
+ k_EMsgClientLBSSetScore = 5414;
+ k_EMsgClientLBSSetScoreResponse = 5415;
+ k_EMsgClientLBSFindOrCreateLB = 5416;
+ k_EMsgClientLBSFindOrCreateLBResponse = 5417;
+ k_EMsgClientLBSGetLBEntries = 5418;
+ k_EMsgClientLBSGetLBEntriesResponse = 5419;
+ k_EMsgClientChatDeclined = 5426;
+ k_EMsgClientFriendMsgIncoming = 5427;
+ k_EMsgClientAuthList_Deprecated = 5428;
+ k_EMsgClientTicketAuthComplete = 5429;
+ k_EMsgClientIsLimitedAccount = 5430;
+ k_EMsgClientRequestAuthList = 5431;
+ k_EMsgClientAuthList = 5432;
+ k_EMsgClientStat = 5433;
+ k_EMsgClientP2PConnectionInfo = 5434;
+ k_EMsgClientP2PConnectionFailInfo = 5435;
+ k_EMsgClientGetDepotDecryptionKey = 5438;
+ k_EMsgClientGetDepotDecryptionKeyResponse = 5439;
+ k_EMsgGSPerformHardwareSurvey = 5440;
+ k_EMsgClientEnableTestLicense = 5443;
+ k_EMsgClientEnableTestLicenseResponse = 5444;
+ k_EMsgClientDisableTestLicense = 5445;
+ k_EMsgClientDisableTestLicenseResponse = 5446;
+ k_EMsgClientRequestValidationMail = 5448;
+ k_EMsgClientRequestValidationMailResponse = 5449;
+ k_EMsgClientCheckAppBetaPassword = 5450;
+ k_EMsgClientCheckAppBetaPasswordResponse = 5451;
+ k_EMsgClientToGC = 5452;
+ k_EMsgClientFromGC = 5453;
+ k_EMsgClientEmailAddrInfo = 5456;
+ k_EMsgClientPasswordChange3 = 5457;
+ k_EMsgClientEmailChange3 = 5458;
+ k_EMsgClientPersonalQAChange3 = 5459;
+ k_EMsgClientResetForgottenPassword3 = 5460;
+ k_EMsgClientRequestForgottenPasswordEmail3 = 5461;
+ k_EMsgClientNewLoginKey = 5463;
+ k_EMsgClientNewLoginKeyAccepted = 5464;
+ k_EMsgClientLogOnWithHash_Deprecated = 5465;
+ k_EMsgClientStoreUserStats2 = 5466;
+ k_EMsgClientStatsUpdated = 5467;
+ k_EMsgClientActivateOEMLicense = 5468;
+ k_EMsgClientRegisterOEMMachine = 5469;
+ k_EMsgClientRegisterOEMMachineResponse = 5470;
+ k_EMsgClientRequestedClientStats = 5480;
+ k_EMsgClientStat2Int32 = 5481;
+ k_EMsgClientStat2 = 5482;
+ k_EMsgClientVerifyPassword = 5483;
+ k_EMsgClientVerifyPasswordResponse = 5484;
+ k_EMsgClientDRMDownloadRequest = 5485;
+ k_EMsgClientDRMDownloadResponse = 5486;
+ k_EMsgClientDRMFinalResult = 5487;
+ k_EMsgClientGetFriendsWhoPlayGame = 5488;
+ k_EMsgClientGetFriendsWhoPlayGameResponse = 5489;
+ k_EMsgClientOGSBeginSession = 5490;
+ k_EMsgClientOGSBeginSessionResponse = 5491;
+ k_EMsgClientOGSEndSession = 5492;
+ k_EMsgClientOGSEndSessionResponse = 5493;
+ k_EMsgClientOGSWriteRow = 5494;
+ k_EMsgClientGetPeerContentInfo = 5495;
+ k_EMsgClientGetPeerContentInfoResponse = 5496;
+ k_EMsgClientStartPeerContentServer = 5497;
+ k_EMsgClientStartPeerContentServerResponse = 5498;
+ k_EMsgClientServerUnavailable = 5500;
+ k_EMsgClientServersAvailable = 5501;
+ k_EMsgClientRegisterAuthTicketWithCM = 5502;
+ k_EMsgClientGCMsgFailed = 5503;
+ k_EMsgClientMicroTxnAuthRequest = 5504;
+ k_EMsgClientMicroTxnAuthorize = 5505;
+ k_EMsgClientMicroTxnAuthorizeResponse = 5506;
+ k_EMsgClientGetMicroTxnInfo = 5508;
+ k_EMsgClientGetMicroTxnInfoResponse = 5509;
+ k_EMsgClientDeregisterWithServer = 5511;
+ k_EMsgClientSubscribeToPersonaFeed = 5512;
+ k_EMsgClientLogon = 5514;
+ k_EMsgClientGetClientDetails = 5515;
+ k_EMsgClientGetClientDetailsResponse = 5516;
+ k_EMsgClientReportOverlayDetourFailure = 5517;
+ k_EMsgClientGetClientAppList = 5518;
+ k_EMsgClientGetClientAppListResponse = 5519;
+ k_EMsgClientInstallClientApp = 5520;
+ k_EMsgClientInstallClientAppResponse = 5521;
+ k_EMsgClientUninstallClientApp = 5522;
+ k_EMsgClientUninstallClientAppResponse = 5523;
+ k_EMsgClientSetClientAppUpdateState = 5524;
+ k_EMsgClientSetClientAppUpdateStateResponse = 5525;
+ k_EMsgClientRequestEncryptedAppTicket = 5526;
+ k_EMsgClientRequestEncryptedAppTicketResponse = 5527;
+ k_EMsgClientWalletInfoUpdate = 5528;
+ k_EMsgClientLBSSetUGC = 5529;
+ k_EMsgClientLBSSetUGCResponse = 5530;
+ k_EMsgClientAMGetClanOfficers = 5531;
+ k_EMsgClientAMGetClanOfficersResponse = 5532;
+ k_EMsgClientFriendProfileInfo = 5535;
+ k_EMsgClientFriendProfileInfoResponse = 5536;
+ k_EMsgClientUpdateMachineAuth = 5537;
+ k_EMsgClientUpdateMachineAuthResponse = 5538;
+ k_EMsgClientReadMachineAuth = 5539;
+ k_EMsgClientReadMachineAuthResponse = 5540;
+ k_EMsgClientRequestMachineAuth = 5541;
+ k_EMsgClientRequestMachineAuthResponse = 5542;
+ k_EMsgClientScreenshotsChanged = 5543;
+ k_EMsgClientGetCDNAuthToken = 5546;
+ k_EMsgClientGetCDNAuthTokenResponse = 5547;
+ k_EMsgClientDownloadRateStatistics = 5548;
+ k_EMsgClientRequestAccountData = 5549;
+ k_EMsgClientRequestAccountDataResponse = 5550;
+ k_EMsgClientResetForgottenPassword4 = 5551;
+ k_EMsgClientHideFriend = 5552;
+ k_EMsgClientFriendsGroupsList = 5553;
+ k_EMsgClientGetClanActivityCounts = 5554;
+ k_EMsgClientGetClanActivityCountsResponse = 5555;
+ k_EMsgClientOGSReportString = 5556;
+ k_EMsgClientOGSReportBug = 5557;
+ k_EMsgClientSentLogs = 5558;
+ k_EMsgClientLogonGameServer = 5559;
+ k_EMsgAMClientCreateFriendsGroup = 5560;
+ k_EMsgAMClientCreateFriendsGroupResponse = 5561;
+ k_EMsgAMClientDeleteFriendsGroup = 5562;
+ k_EMsgAMClientDeleteFriendsGroupResponse = 5563;
+ k_EMsgAMClientManageFriendsGroup = 5564;
+ k_EMsgAMClientManageFriendsGroupResponse = 5565;
+ k_EMsgAMClientAddFriendToGroup = 5566;
+ k_EMsgAMClientAddFriendToGroupResponse = 5567;
+ k_EMsgAMClientRemoveFriendFromGroup = 5568;
+ k_EMsgAMClientRemoveFriendFromGroupResponse = 5569;
+ k_EMsgClientAMGetPersonaNameHistory = 5570;
+ k_EMsgClientAMGetPersonaNameHistoryResponse = 5571;
+ k_EMsgClientRequestFreeLicense = 5572;
+ k_EMsgClientRequestFreeLicenseResponse = 5573;
+ k_EMsgClientDRMDownloadRequestWithCrashData = 5574;
+ k_EMsgClientAuthListAck = 5575;
+ k_EMsgClientItemAnnouncements = 5576;
+ k_EMsgClientRequestItemAnnouncements = 5577;
+ k_EMsgClientFriendMsgEchoToSender = 5578;
+ k_EMsgClientCommentNotifications = 5582;
+ k_EMsgClientRequestCommentNotifications = 5583;
+ k_EMsgClientPersonaChangeResponse = 5584;
+ k_EMsgClientRequestWebAPIAuthenticateUserNonce = 5585;
+ k_EMsgClientRequestWebAPIAuthenticateUserNonceResponse = 5586;
+ k_EMsgClientPlayerNicknameList = 5587;
+ k_EMsgAMClientSetPlayerNickname = 5588;
+ k_EMsgAMClientSetPlayerNicknameResponse = 5589;
+ k_EMsgClientGetNumberOfCurrentPlayersDP = 5592;
+ k_EMsgClientGetNumberOfCurrentPlayersDPResponse = 5593;
+ k_EMsgClientServiceMethodLegacy = 5594;
+ k_EMsgClientServiceMethodLegacyResponse = 5595;
+ k_EMsgClientFriendUserStatusPublished = 5596;
+ k_EMsgClientCurrentUIMode = 5597;
+ k_EMsgClientVanityURLChangedNotification = 5598;
+ k_EMsgClientUserNotifications = 5599;
+ k_EMsgBaseDFS = 5600;
+ k_EMsgDFSGetFile = 5601;
+ k_EMsgDFSInstallLocalFile = 5602;
+ k_EMsgDFSConnection = 5603;
+ k_EMsgDFSConnectionReply = 5604;
+ k_EMsgClientDFSAuthenticateRequest = 5605;
+ k_EMsgClientDFSAuthenticateResponse = 5606;
+ k_EMsgClientDFSEndSession = 5607;
+ k_EMsgDFSPurgeFile = 5608;
+ k_EMsgDFSRouteFile = 5609;
+ k_EMsgDFSGetFileFromServer = 5610;
+ k_EMsgDFSAcceptedResponse = 5611;
+ k_EMsgDFSRequestPingback = 5612;
+ k_EMsgDFSRecvTransmitFile = 5613;
+ k_EMsgDFSSendTransmitFile = 5614;
+ k_EMsgDFSRequestPingback2 = 5615;
+ k_EMsgDFSResponsePingback2 = 5616;
+ k_EMsgClientDFSDownloadStatus = 5617;
+ k_EMsgDFSStartTransfer = 5618;
+ k_EMsgDFSTransferComplete = 5619;
+ k_EMsgDFSRouteFileResponse = 5620;
+ k_EMsgClientNetworkingCertRequest = 5621;
+ k_EMsgClientNetworkingCertRequestResponse = 5622;
+ k_EMsgClientChallengeRequest = 5623;
+ k_EMsgClientChallengeResponse = 5624;
+ k_EMsgBadgeCraftedNotification = 5625;
+ k_EMsgClientNetworkingMobileCertRequest = 5626;
+ k_EMsgClientNetworkingMobileCertRequestResponse = 5627;
+ k_EMsgBaseMDS = 5800;
+ k_EMsgMDSGetDepotDecryptionKey = 5812;
+ k_EMsgMDSGetDepotDecryptionKeyResponse = 5813;
+ k_EMsgMDSContentServerConfigRequest = 5827;
+ k_EMsgMDSContentServerConfig = 5828;
+ k_EMsgMDSGetDepotManifest = 5829;
+ k_EMsgMDSGetDepotManifestResponse = 5830;
+ k_EMsgMDSGetDepotManifestChunk = 5831;
+ k_EMsgMDSGetDepotChunk = 5832;
+ k_EMsgMDSGetDepotChunkResponse = 5833;
+ k_EMsgMDSGetDepotChunkChunk = 5834;
+ k_EMsgMDSToCSFlushChunk = 5844;
+ k_EMsgMDSMigrateChunk = 5847;
+ k_EMsgMDSMigrateChunkResponse = 5848;
+ k_EMsgMDSToCSFlushManifest = 5849;
+ k_EMsgCSBase = 6200;
+ k_EMsgCSPing = 6201;
+ k_EMsgCSPingResponse = 6202;
+ k_EMsgGMSBase = 6400;
+ k_EMsgGMSGameServerReplicate = 6401;
+ k_EMsgClientGMSServerQuery = 6403;
+ k_EMsgGMSClientServerQueryResponse = 6404;
+ k_EMsgAMGMSGameServerUpdate = 6405;
+ k_EMsgAMGMSGameServerRemove = 6406;
+ k_EMsgGameServerOutOfDate = 6407;
+ k_EMsgDeviceAuthorizationBase = 6500;
+ k_EMsgClientAuthorizeLocalDeviceRequest = 6501;
+ k_EMsgClientAuthorizeLocalDeviceResponse = 6502;
+ k_EMsgClientDeauthorizeDeviceRequest = 6503;
+ k_EMsgClientDeauthorizeDevice = 6504;
+ k_EMsgClientUseLocalDeviceAuthorizations = 6505;
+ k_EMsgClientGetAuthorizedDevices = 6506;
+ k_EMsgClientGetAuthorizedDevicesResponse = 6507;
+ k_EMsgAMNotifySessionDeviceAuthorized = 6508;
+ k_EMsgClientAuthorizeLocalDeviceNotification = 6509;
+ k_EMsgMMSBase = 6600;
+ k_EMsgClientMMSCreateLobby = 6601;
+ k_EMsgClientMMSCreateLobbyResponse = 6602;
+ k_EMsgClientMMSJoinLobby = 6603;
+ k_EMsgClientMMSJoinLobbyResponse = 6604;
+ k_EMsgClientMMSLeaveLobby = 6605;
+ k_EMsgClientMMSLeaveLobbyResponse = 6606;
+ k_EMsgClientMMSGetLobbyList = 6607;
+ k_EMsgClientMMSGetLobbyListResponse = 6608;
+ k_EMsgClientMMSSetLobbyData = 6609;
+ k_EMsgClientMMSSetLobbyDataResponse = 6610;
+ k_EMsgClientMMSGetLobbyData = 6611;
+ k_EMsgClientMMSLobbyData = 6612;
+ k_EMsgClientMMSSendLobbyChatMsg = 6613;
+ k_EMsgClientMMSLobbyChatMsg = 6614;
+ k_EMsgClientMMSSetLobbyOwner = 6615;
+ k_EMsgClientMMSSetLobbyOwnerResponse = 6616;
+ k_EMsgClientMMSSetLobbyGameServer = 6617;
+ k_EMsgClientMMSLobbyGameServerSet = 6618;
+ k_EMsgClientMMSUserJoinedLobby = 6619;
+ k_EMsgClientMMSUserLeftLobby = 6620;
+ k_EMsgClientMMSInviteToLobby = 6621;
+ k_EMsgClientMMSFlushFrenemyListCache = 6622;
+ k_EMsgClientMMSFlushFrenemyListCacheResponse = 6623;
+ k_EMsgClientMMSSetLobbyLinked = 6624;
+ k_EMsgClientMMSSetRatelimitPolicyOnClient = 6625;
+ k_EMsgClientMMSGetLobbyStatus = 6626;
+ k_EMsgClientMMSGetLobbyStatusResponse = 6627;
+ k_EMsgMMSGetLobbyList = 6628;
+ k_EMsgMMSGetLobbyListResponse = 6629;
+ k_EMsgNonStdMsgBase = 6800;
+ k_EMsgNonStdMsgMemcached = 6801;
+ k_EMsgNonStdMsgHTTPServer = 6802;
+ k_EMsgNonStdMsgHTTPClient = 6803;
+ k_EMsgNonStdMsgWGResponse = 6804;
+ k_EMsgNonStdMsgPHPSimulator = 6805;
+ k_EMsgNonStdMsgChase = 6806;
+ k_EMsgNonStdMsgDFSTransfer = 6807;
+ k_EMsgNonStdMsgTests = 6808;
+ k_EMsgNonStdMsgUMQpipeAAPL = 6809;
+ k_EMSgNonStdMsgSyslog = 6810;
+ k_EMsgNonStdMsgLogsink = 6811;
+ k_EMsgNonStdMsgSteam2Emulator = 6812;
+ k_EMsgNonStdMsgRTMPServer = 6813;
+ k_EMsgNonStdMsgWebSocket = 6814;
+ k_EMsgNonStdMsgRedis = 6815;
+ k_EMsgUDSBase = 7000;
+ k_EMsgClientUDSP2PSessionStarted = 7001;
+ k_EMsgClientUDSP2PSessionEnded = 7002;
+ k_EMsgUDSRenderUserAuth = 7003;
+ k_EMsgUDSRenderUserAuthResponse = 7004;
+ k_EMsgClientInviteToGame = 7005;
+ k_EMsgUDSHasSession = 7006;
+ k_EMsgUDSHasSessionResponse = 7007;
+ k_EMsgMPASBase = 7100;
+ k_EMsgMPASVacBanReset = 7101;
+ k_EMsgKGSBase = 7200;
+ k_EMsgUCMBase = 7300;
+ k_EMsgClientUCMAddScreenshot = 7301;
+ k_EMsgClientUCMAddScreenshotResponse = 7302;
+ k_EMsgUCMResetCommunityContent = 7307;
+ k_EMsgUCMResetCommunityContentResponse = 7308;
+ k_EMsgClientUCMDeleteScreenshot = 7309;
+ k_EMsgClientUCMDeleteScreenshotResponse = 7310;
+ k_EMsgClientUCMPublishFile = 7311;
+ k_EMsgClientUCMPublishFileResponse = 7312;
+ k_EMsgClientUCMDeletePublishedFile = 7315;
+ k_EMsgClientUCMDeletePublishedFileResponse = 7316;
+ k_EMsgClientUCMUpdatePublishedFile = 7325;
+ k_EMsgClientUCMUpdatePublishedFileResponse = 7326;
+ k_EMsgUCMUpdatePublishedFile = 7327;
+ k_EMsgUCMUpdatePublishedFileResponse = 7328;
+ k_EMsgUCMUpdatePublishedFileStat = 7331;
+ k_EMsgUCMReloadPublishedFile = 7337;
+ k_EMsgUCMReloadUserFileListCaches = 7338;
+ k_EMsgUCMPublishedFileReported = 7339;
+ k_EMsgUCMPublishedFilePreviewAdd = 7341;
+ k_EMsgUCMPublishedFilePreviewAddResponse = 7342;
+ k_EMsgUCMPublishedFilePreviewRemove = 7343;
+ k_EMsgUCMPublishedFilePreviewRemoveResponse = 7344;
+ k_EMsgUCMPublishedFileSubscribed = 7349;
+ k_EMsgUCMPublishedFileUnsubscribed = 7350;
+ k_EMsgUCMPublishFile = 7351;
+ k_EMsgUCMPublishFileResponse = 7352;
+ k_EMsgUCMPublishedFileChildAdd = 7353;
+ k_EMsgUCMPublishedFileChildAddResponse = 7354;
+ k_EMsgUCMPublishedFileChildRemove = 7355;
+ k_EMsgUCMPublishedFileChildRemoveResponse = 7356;
+ k_EMsgUCMPublishedFileParentChanged = 7359;
+ k_EMsgClientUCMSetUserPublishedFileAction = 7364;
+ k_EMsgClientUCMSetUserPublishedFileActionResponse = 7365;
+ k_EMsgClientUCMEnumeratePublishedFilesByUserAction = 7366;
+ k_EMsgClientUCMEnumeratePublishedFilesByUserActionResponse = 7367;
+ k_EMsgUCMGetUserSubscribedFiles = 7369;
+ k_EMsgUCMGetUserSubscribedFilesResponse = 7370;
+ k_EMsgUCMFixStatsPublishedFile = 7371;
+ k_EMsgClientUCMEnumerateUserSubscribedFilesWithUpdates = 7378;
+ k_EMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse = 7379;
+ k_EMsgUCMPublishedFileContentUpdated = 7380;
+ k_EMsgClientUCMPublishedFileUpdated = 7381;
+ k_EMsgFSBase = 7500;
+ k_EMsgClientRichPresenceUpload = 7501;
+ k_EMsgClientRichPresenceRequest = 7502;
+ k_EMsgClientRichPresenceInfo = 7503;
+ k_EMsgFSRichPresenceRequest = 7504;
+ k_EMsgFSRichPresenceResponse = 7505;
+ k_EMsgFSComputeFrenematrix = 7506;
+ k_EMsgFSComputeFrenematrixResponse = 7507;
+ k_EMsgFSPlayStatusNotification = 7508;
+ k_EMsgFSAddOrRemoveFollower = 7510;
+ k_EMsgFSAddOrRemoveFollowerResponse = 7511;
+ k_EMsgFSUpdateFollowingList = 7512;
+ k_EMsgFSCommentNotification = 7513;
+ k_EMsgFSCommentNotificationViewed = 7514;
+ k_EMsgClientFSGetFollowerCount = 7515;
+ k_EMsgClientFSGetFollowerCountResponse = 7516;
+ k_EMsgClientFSGetIsFollowing = 7517;
+ k_EMsgClientFSGetIsFollowingResponse = 7518;
+ k_EMsgClientFSEnumerateFollowingList = 7519;
+ k_EMsgClientFSEnumerateFollowingListResponse = 7520;
+ k_EMsgFSGetPendingNotificationCount = 7521;
+ k_EMsgFSGetPendingNotificationCountResponse = 7522;
+ k_EMsgClientChatOfflineMessageNotification = 7523;
+ k_EMsgClientChatRequestOfflineMessageCount = 7524;
+ k_EMsgClientChatGetFriendMessageHistory = 7525;
+ k_EMsgClientChatGetFriendMessageHistoryResponse = 7526;
+ k_EMsgClientChatGetFriendMessageHistoryForOfflineMessages = 7527;
+ k_EMsgClientFSGetFriendsSteamLevels = 7528;
+ k_EMsgClientFSGetFriendsSteamLevelsResponse = 7529;
+ k_EMsgAMRequestFriendData = 7530;
+ k_EMsgDRMRange2 = 7600;
+ k_EMsgCEGVersionSetEnableDisableRequest = 7600;
+ k_EMsgCEGVersionSetEnableDisableResponse = 7601;
+ k_EMsgCEGPropStatusDRMSRequest = 7602;
+ k_EMsgCEGPropStatusDRMSResponse = 7603;
+ k_EMsgCEGWhackFailureReportRequest = 7604;
+ k_EMsgCEGWhackFailureReportResponse = 7605;
+ k_EMsgDRMSFetchVersionSet = 7606;
+ k_EMsgDRMSFetchVersionSetResponse = 7607;
+ k_EMsgEconBase = 7700;
+ k_EMsgEconTrading_InitiateTradeRequest = 7701;
+ k_EMsgEconTrading_InitiateTradeProposed = 7702;
+ k_EMsgEconTrading_InitiateTradeResponse = 7703;
+ k_EMsgEconTrading_InitiateTradeResult = 7704;
+ k_EMsgEconTrading_StartSession = 7705;
+ k_EMsgEconTrading_CancelTradeRequest = 7706;
+ k_EMsgEconFlushInventoryCache = 7707;
+ k_EMsgEconFlushInventoryCacheResponse = 7708;
+ k_EMsgEconCDKeyProcessTransaction = 7711;
+ k_EMsgEconCDKeyProcessTransactionResponse = 7712;
+ k_EMsgEconGetErrorLogs = 7713;
+ k_EMsgEconGetErrorLogsResponse = 7714;
+ k_EMsgRMRange = 7800;
+ k_EMsgRMTestVerisignOTP = 7800;
+ k_EMsgRMTestVerisignOTPResponse = 7801;
+ k_EMsgRMDeleteMemcachedKeys = 7803;
+ k_EMsgRMRemoteInvoke = 7804;
+ k_EMsgBadLoginIPList = 7805;
+ k_EMsgRMMsgTraceAddTrigger = 7806;
+ k_EMsgRMMsgTraceRemoveTrigger = 7807;
+ k_EMsgRMMsgTraceEvent = 7808;
+ k_EMsgUGSBase = 7900;
+ k_EMsgUGSUpdateGlobalStats = 7900;
+ k_EMsgClientUGSGetGlobalStats = 7901;
+ k_EMsgClientUGSGetGlobalStatsResponse = 7902;
+ k_EMsgStoreBase = 8000;
+ k_EMsgUMQBase = 8100;
+ k_EMsgUMQLogonRequest = 8100;
+ k_EMsgUMQLogonResponse = 8101;
+ k_EMsgUMQLogoffRequest = 8102;
+ k_EMsgUMQLogoffResponse = 8103;
+ k_EMsgUMQSendChatMessage = 8104;
+ k_EMsgUMQIncomingChatMessage = 8105;
+ k_EMsgUMQPoll = 8106;
+ k_EMsgUMQPollResults = 8107;
+ k_EMsgUMQ2AM_ClientMsgBatch = 8108;
+ k_EMsgWorkshopBase = 8200;
+ k_EMsgWebAPIBase = 8300;
+ k_EMsgWebAPIValidateOAuth2Token = 8300;
+ k_EMsgWebAPIValidateOAuth2TokenResponse = 8301;
+ k_EMsgWebAPIRegisterGCInterfaces = 8303;
+ k_EMsgWebAPIInvalidateOAuthClientCache = 8304;
+ k_EMsgWebAPIInvalidateOAuthTokenCache = 8305;
+ k_EMsgWebAPISetSecrets = 8306;
+ k_EMsgBackpackBase = 8400;
+ k_EMsgBackpackAddToCurrency = 8401;
+ k_EMsgBackpackAddToCurrencyResponse = 8402;
+ k_EMsgCREBase = 8500;
+ k_EMsgCREItemVoteSummary = 8503;
+ k_EMsgCREItemVoteSummaryResponse = 8504;
+ k_EMsgCREUpdateUserPublishedItemVote = 8507;
+ k_EMsgCREUpdateUserPublishedItemVoteResponse = 8508;
+ k_EMsgCREGetUserPublishedItemVoteDetails = 8509;
+ k_EMsgCREGetUserPublishedItemVoteDetailsResponse = 8510;
+ k_EMsgSecretsBase = 8600;
+ k_EMsgSecretsRequestCredentialPair = 8600;
+ k_EMsgSecretsCredentialPairResponse = 8601;
+ k_EMsgBoxMonitorBase = 8700;
+ k_EMsgBoxMonitorReportRequest = 8700;
+ k_EMsgBoxMonitorReportResponse = 8701;
+ k_EMsgLogsinkBase = 8800;
+ k_EMsgLogsinkWriteReport = 8800;
+ k_EMsgPICSBase = 8900;
+ k_EMsgClientPICSChangesSinceRequest = 8901;
+ k_EMsgClientPICSChangesSinceResponse = 8902;
+ k_EMsgClientPICSProductInfoRequest = 8903;
+ k_EMsgClientPICSProductInfoResponse = 8904;
+ k_EMsgClientPICSAccessTokenRequest = 8905;
+ k_EMsgClientPICSAccessTokenResponse = 8906;
+ k_EMsgWorkerProcess = 9000;
+ k_EMsgWorkerProcessPingRequest = 9000;
+ k_EMsgWorkerProcessPingResponse = 9001;
+ k_EMsgWorkerProcessShutdown = 9002;
+ k_EMsgDRMWorkerProcess = 9100;
+ k_EMsgDRMWorkerProcessDRMAndSign = 9100;
+ k_EMsgDRMWorkerProcessDRMAndSignResponse = 9101;
+ k_EMsgDRMWorkerProcessSteamworksInfoRequest = 9102;
+ k_EMsgDRMWorkerProcessSteamworksInfoResponse = 9103;
+ k_EMsgDRMWorkerProcessInstallDRMDLLRequest = 9104;
+ k_EMsgDRMWorkerProcessInstallDRMDLLResponse = 9105;
+ k_EMsgDRMWorkerProcessSecretIdStringRequest = 9106;
+ k_EMsgDRMWorkerProcessSecretIdStringResponse = 9107;
+ k_EMsgDRMWorkerProcessInstallProcessedFilesRequest = 9110;
+ k_EMsgDRMWorkerProcessInstallProcessedFilesResponse = 9111;
+ k_EMsgDRMWorkerProcessExamineBlobRequest = 9112;
+ k_EMsgDRMWorkerProcessExamineBlobResponse = 9113;
+ k_EMsgDRMWorkerProcessDescribeSecretRequest = 9114;
+ k_EMsgDRMWorkerProcessDescribeSecretResponse = 9115;
+ k_EMsgDRMWorkerProcessBackfillOriginalRequest = 9116;
+ k_EMsgDRMWorkerProcessBackfillOriginalResponse = 9117;
+ k_EMsgDRMWorkerProcessValidateDRMDLLRequest = 9118;
+ k_EMsgDRMWorkerProcessValidateDRMDLLResponse = 9119;
+ k_EMsgDRMWorkerProcessValidateFileRequest = 9120;
+ k_EMsgDRMWorkerProcessValidateFileResponse = 9121;
+ k_EMsgDRMWorkerProcessSplitAndInstallRequest = 9122;
+ k_EMsgDRMWorkerProcessSplitAndInstallResponse = 9123;
+ k_EMsgDRMWorkerProcessGetBlobRequest = 9124;
+ k_EMsgDRMWorkerProcessGetBlobResponse = 9125;
+ k_EMsgDRMWorkerProcessEvaluateCrashRequest = 9126;
+ k_EMsgDRMWorkerProcessEvaluateCrashResponse = 9127;
+ k_EMsgDRMWorkerProcessAnalyzeFileRequest = 9128;
+ k_EMsgDRMWorkerProcessAnalyzeFileResponse = 9129;
+ k_EMsgDRMWorkerProcessUnpackBlobRequest = 9130;
+ k_EMsgDRMWorkerProcessUnpackBlobResponse = 9131;
+ k_EMsgDRMWorkerProcessInstallAllRequest = 9132;
+ k_EMsgDRMWorkerProcessInstallAllResponse = 9133;
+ k_EMsgTestWorkerProcess = 9200;
+ k_EMsgTestWorkerProcessLoadUnloadModuleRequest = 9200;
+ k_EMsgTestWorkerProcessLoadUnloadModuleResponse = 9201;
+ k_EMsgTestWorkerProcessServiceModuleCallRequest = 9202;
+ k_EMsgTestWorkerProcessServiceModuleCallResponse = 9203;
+ k_EMsgQuestServerBase = 9300;
+ k_EMsgClientGetEmoticonList = 9330;
+ k_EMsgClientEmoticonList = 9331;
+ k_EMsgSLCBase = 9400;
+ k_EMsgSLCUserSessionStatus = 9400;
+ k_EMsgSLCRequestUserSessionStatus = 9401;
+ k_EMsgSLCSharedLicensesLockStatus = 9402;
+ k_EMsgClientSharedLibraryLockStatus = 9405;
+ k_EMsgClientSharedLibraryStopPlaying = 9406;
+ k_EMsgSLCOwnerLibraryChanged = 9407;
+ k_EMsgSLCSharedLibraryChanged = 9408;
+ k_EMsgRemoteClientBase = 9500;
+ k_EMsgRemoteClientAuth_OBSOLETE = 9500;
+ k_EMsgRemoteClientAuthResponse_OBSOLETE = 9501;
+ k_EMsgRemoteClientAppStatus = 9502;
+ k_EMsgRemoteClientStartStream = 9503;
+ k_EMsgRemoteClientStartStreamResponse = 9504;
+ k_EMsgRemoteClientPing = 9505;
+ k_EMsgRemoteClientPingResponse = 9506;
+ k_EMsgClientUnlockH264 = 9507;
+ k_EMsgClientUnlockH264Response = 9508;
+ k_EMsgRemoteClientAcceptEULA = 9509;
+ k_EMsgRemoteClientGetControllerConfig = 9510;
+ k_EMsgRemoteClientGetControllerConfigResponse = 9511;
+ k_EMsgRemoteClientStreamingEnabled = 9512;
+ k_EMsgClientUnlockHEVC_OBSOLETE = 9513;
+ k_EMsgClientUnlockHEVCResponse_OBSOLETE = 9514;
+ k_EMsgRemoteClientStatusRequest = 9515;
+ k_EMsgRemoteClientStatusResponse = 9516;
+ k_EMsgClientConcurrentSessionsBase = 9600;
+ k_EMsgClientPlayingSessionState = 9600;
+ k_EMsgClientKickPlayingSession = 9601;
+ k_EMsgClientBroadcastBase = 9700;
+ k_EMsgClientBroadcastInit = 9700;
+ k_EMsgClientBroadcastFrames = 9701;
+ k_EMsgClientBroadcastDisconnect = 9702;
+ k_EMsgClientBroadcastScreenshot = 9703;
+ k_EMsgClientBroadcastUploadConfig = 9704;
+ k_EMsgBaseClient3 = 9800;
+ k_EMsgClientVoiceCallPreAuthorize = 9800;
+ k_EMsgClientVoiceCallPreAuthorizeResponse = 9801;
+ k_EMsgClientServerTimestampRequest = 9802;
+ k_EMsgClientServerTimestampResponse = 9803;
+ k_EMsgServiceMethodCallFromClientNonAuthed = 9804;
+ k_EMsgClientHello = 9805;
+ k_EMsgClientEnableOrDisableDownloads = 9806;
+ k_EMsgClientEnableOrDisableDownloadsResponse = 9807;
+ k_EMsgClientLANP2PBase = 9900;
+ k_EMsgClientLANP2PRequestChunk = 9900;
+ k_EMsgClientLANP2PRequestChunkResponse = 9901;
+ k_EMsgClientPeerChunkRequest = 9902;
+ k_EMsgClientPeerChunkResponse = 9903;
+ k_EMsgClientLANP2PMax = 9999;
+ k_EMsgBaseWatchdogServer = 10000;
+ k_EMsgNotifyWatchdog = 10000;
+ k_EMsgClientSiteLicenseBase = 10100;
+ k_EMsgClientSiteLicenseSiteInfoNotification = 10100;
+ k_EMsgClientSiteLicenseCheckout = 10101;
+ k_EMsgClientSiteLicenseCheckoutResponse = 10102;
+ k_EMsgClientSiteLicenseGetAvailableSeats = 10103;
+ k_EMsgClientSiteLicenseGetAvailableSeatsResponse = 10104;
+ k_EMsgClientSiteLicenseGetContentCacheInfo = 10105;
+ k_EMsgClientSiteLicenseGetContentCacheInfoResponse = 10106;
+ k_EMsgBaseChatServer = 12000;
+ k_EMsgChatServerGetPendingNotificationCount = 12000;
+ k_EMsgChatServerGetPendingNotificationCountResponse = 12001;
+ k_EMsgBaseSecretServer = 12100;
+ k_EMsgServerSecretChanged = 12100;
+}
+
+enum EClientPersonaStateFlag {
+ k_EClientPersonaStateFlagStatus = 1;
+ k_EClientPersonaStateFlagPlayerName = 2;
+ k_EClientPersonaStateFlagQueryPort = 4;
+ k_EClientPersonaStateFlagSourceID = 8;
+ k_EClientPersonaStateFlagPresence = 16;
+ k_EClientPersonaStateFlagLastSeen = 64;
+ k_EClientPersonaStateFlagUserClanRank = 128;
+ k_EClientPersonaStateGameExtraInfo = 256;
+ k_EClientPersonaStateGameDataBlob = 512;
+ k_EClientPersonaStateFlagClanData = 1024;
+ k_EClientPersonaStateFlagFacebook = 2048;
+ k_EClientPersonaStateFlagRichPresence = 4096;
+ k_EClientPersonaStateFlagBroadcast = 8192;
+ k_EClientPersonaStateFlagWatching = 16384;
+}
+
+enum EMsgClanAccountFlags {
+ k_EMsgClanAccountFlagPublic = 1;
+ k_EMsgClanAccountFlagLarge = 2;
+ k_EMsgClanAccountFlagLocked = 4;
+ k_EMsgClanAccountFlagDisabled = 8;
+ k_EMsgClanAccountFlagOGG = 16;
+}
+
+enum ESteamReviewScore {
+ k_ESteamReviewScore_OverwhelminglyPositive = 9;
+ k_ESteamReviewScore_VeryPositive = 8;
+ k_ESteamReviewScore_Positive = 7;
+ k_ESteamReviewScore_MostlyPositive = 6;
+ k_ESteamReviewScore_Mixed = 5;
+ k_ESteamReviewScore_MostlyNegative = 4;
+ k_ESteamReviewScore_Negative = 3;
+ k_ESteamReviewScore_VeryNegative = 2;
+ k_ESteamReviewScore_OverwhelminglyNegative = 1;
+ k_ESteamReviewScore_None = 0;
+}
+
+enum ECodecUsagePlatform {
+ k_ECodecUsagePlatformUnknown = 0;
+ k_ECodecUsagePlatformWindows = 1;
+ k_ECodecUsagePlatformMacOS = 2;
+ k_ECodecUsagePlatformLinux = 3;
+ k_ECodecUsagePlatformSteamDeck = 4;
+}
+
+enum ECodecUsageReason {
+ k_ECodecUsageReasonUnknown = 0;
+ k_ECodecUsageReasonRemotePlay = 1;
+ k_ECodecUsageReasonBroadcasting = 2;
+ k_ECodecUsageReasonGameVideo = 3;
+}
diff --git a/protobuf_files/orig/steam/enums_productinfo.proto b/protobuf_files/orig/steam/enums_productinfo.proto
new file mode 100644
index 00000000..9cde4002
--- /dev/null
+++ b/protobuf_files/orig/steam/enums_productinfo.proto
@@ -0,0 +1,13 @@
+import "steammessages_base.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = true;
+option (force_php_generation) = true;
+
+enum EContentDescriptorID {
+ k_EContentDescriptor_FrequentNudityOrSexualContent = 1;
+ k_EContentDescriptor_FrequentViolenceOrGore = 2;
+ k_EContentDescriptor_StrongSexualContent = 3;
+ k_EContentDescriptor_UNUSED_4 = 4;
+ k_EContentDescriptor_AnyMatureContent = 5;
+}
diff --git a/protobuf_files/orig/steam/htmlmessages.proto b/protobuf_files/orig/steam/htmlmessages.proto
new file mode 100644
index 00000000..3bd7186a
--- /dev/null
+++ b/protobuf_files/orig/steam/htmlmessages.proto
@@ -0,0 +1,1022 @@
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+enum EJSRegisterMethodType {
+ k_EJSRegisterMethodType_Invalid = 0;
+ k_EJSRegisterMethodType_Function = 1;
+ k_EJSRegisterMethodType_Callback = 2;
+ k_EJSRegisterMethodType_Promise = 3;
+}
+
+message CMsgKeyUp {
+ optional uint32 browser_handle = 1;
+ optional uint32 keyCode = 2;
+ optional uint32 modifiers = 3;
+ optional uint32 nativeKeyCode = 4;
+}
+
+message CMsgKeyDown {
+ optional uint32 browser_handle = 1;
+ optional uint32 keyCode = 2;
+ optional uint32 modifiers = 3;
+ optional bool is_system_key = 4;
+ optional uint32 nativeKeyCode = 5;
+}
+
+message CMsgKeyChar {
+ optional uint32 browser_handle = 1;
+ optional uint32 unichar = 2;
+ optional uint32 modifiers = 3;
+ optional uint32 keyCode = 4;
+ optional uint32 nativeKeyCode = 5;
+}
+
+message CMsgMouseDown {
+ optional uint32 browser_handle = 1;
+ optional uint32 mouse_button = 2;
+ optional uint32 modifiers = 3;
+}
+
+message CMsgMouseUp {
+ optional uint32 browser_handle = 1;
+ optional uint32 mouse_button = 2;
+ optional uint32 modifiers = 3;
+ optional bool is_off_panel = 4;
+ optional int32 x = 5;
+ optional int32 y = 6;
+}
+
+message CMsgMouseDblClick {
+ optional uint32 browser_handle = 1;
+ optional uint32 mouse_button = 2;
+ optional uint32 modifiers = 3;
+}
+
+message CMsgMouseWheel {
+ optional uint32 browser_handle = 1;
+ optional int32 deltax = 2;
+ optional int32 deltay = 3;
+ optional uint32 modifiers = 4;
+}
+
+message CMsgMouseMove {
+ optional uint32 browser_handle = 1;
+ optional int32 x = 2;
+ optional int32 y = 3;
+ optional uint32 modifiers = 4;
+}
+
+message CMsgMouseLeave {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgBrowserCreate {
+ optional uint32 request_id = 1;
+ optional string useragent = 3;
+ optional string user_css = 5;
+ optional bool native_dropdowns = 6;
+ optional float dpi_scaling = 7;
+ optional bool offscreen = 8 [default = true];
+ optional uint32 initial_width = 9 [default = 0];
+ optional uint32 initial_height = 10 [default = 0];
+ optional string window_icon = 11;
+ optional bool borderless = 12 [default = false];
+ optional string vroverlay_key = 13;
+ optional uint32 browser_type = 14 [default = 0];
+ optional int32 initial_top = 15 [default = -2147483648];
+ optional int32 initial_left = 16 [default = -2147483648];
+ optional bool only_allow_trusted_popups = 17 [default = false];
+ optional string initial_url = 18;
+ optional fixed64 hwnd_parent = 19;
+ optional uint32 creation_flags = 20 [default = 0];
+}
+
+message CMsgBrowserCreateResponse {
+ optional uint32 browser_handle = 1;
+ optional uint32 request_id = 2;
+}
+
+message CMsgBrowserRemove {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgSetLocalFileRequestMapping {
+ message AdditionalRoute {
+ optional string relative_url = 1;
+ optional string local_path = 2;
+ optional string allowed_extensions = 3;
+ optional bool url_rewrite = 4;
+ }
+
+ optional uint32 browser_handle = 1;
+ optional string request_url = 2;
+ optional string default_local_path = 3;
+ repeated .CMsgSetLocalFileRequestMapping.AdditionalRoute routes = 4;
+}
+
+message CMsgBrowserErrorStrings {
+ optional uint32 browser_handle = 1;
+ optional string title = 2;
+ optional string header = 3;
+ optional string cache_miss = 4;
+ optional string bad_url = 5;
+ optional string connection_problem = 6;
+ optional string proxy_problem = 7;
+ optional string unknown = 8;
+}
+
+message CMsgBrowserSetName {
+ optional uint32 browser_handle = 1;
+ optional string name = 2;
+}
+
+message CMsgBrowserSize {
+ optional uint32 browser_handle = 1;
+ optional double width = 2;
+ optional double height = 3;
+}
+
+message CMsgBrowserSetMinSize {
+ optional uint32 browser_handle = 1;
+ optional double width = 2;
+ optional double height = 3;
+}
+
+message CMsgBrowserPosition {
+ optional uint32 browser_handle = 1;
+ optional double x = 2;
+ optional double y = 3;
+ optional double x_local = 4;
+ optional double y_local = 5;
+}
+
+message CMsgBrowserResized {
+ optional uint32 browser_handle = 1;
+ optional double x = 2;
+ optional double y = 3;
+ optional double width = 4;
+ optional double height = 5;
+ optional double dpi_horizontal = 6;
+ optional double dpi_vertical = 7;
+ optional string display_name = 8;
+}
+
+message CMsgPostURL {
+ optional uint32 browser_handle = 1;
+ optional string url = 2;
+ optional string post = 3;
+ optional uint32 pageserial = 4;
+}
+
+message CMsgAddHeader {
+ optional uint32 browser_handle = 1;
+ optional string key = 2;
+ optional string value = 3;
+}
+
+message CMsgStopLoad {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgReload {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgGoForward {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgGoBack {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgWasHidden {
+ optional uint32 browser_handle = 1;
+ optional bool hidden = 2;
+}
+
+message CMsgSetWindowVisibility {
+ optional uint32 browser_handle = 1;
+ optional bool visible = 2;
+}
+
+message CMsgClearHistory {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgClearAllBrowsingData {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgCopy {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgPaste {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgExecuteJavaScript {
+ optional uint32 browser_handle = 1;
+ optional string script = 2;
+}
+
+message CMsgSetFocus {
+ optional uint32 browser_handle = 1;
+ optional bool focus = 2;
+}
+
+message CMsgHorizontalScrollBarSize {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgHorizontalScrollBarSizeResponse {
+ optional uint32 browser_handle = 1;
+ optional uint32 scroll_max = 6;
+ optional uint32 scroll = 7;
+ optional float zoom = 8;
+ optional bool visible = 9;
+ optional uint32 page_size = 10;
+}
+
+message CMsgVerticalScrollBarSize {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgVerticalScrollBarSizeResponse {
+ optional uint32 browser_handle = 1;
+ optional uint32 scroll_max = 6;
+ optional uint32 scroll = 7;
+ optional float zoom = 8;
+ optional bool visible = 9;
+ optional uint32 page_size = 10;
+}
+
+message CMsgFind {
+ optional uint32 browser_handle = 1;
+ optional string find = 2;
+ optional bool infind = 3;
+ optional bool reverse = 4 [default = false];
+}
+
+message CMsgStopFind {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgSetHorizontalScroll {
+ optional uint32 browser_handle = 1;
+ optional uint32 scroll = 2;
+}
+
+message CMsgSetVerticalScroll {
+ optional uint32 browser_handle = 1;
+ optional uint32 scroll = 2;
+}
+
+message CMsgSetZoomLevel {
+ optional uint32 browser_handle = 1;
+ optional double zoom = 2;
+}
+
+message CMsgViewSource {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgBrowserReady {
+ optional uint32 browser_handle = 1;
+ optional string vr_overlay_key = 2;
+ optional fixed64 hwnd_browser = 3;
+}
+
+message CMsgURLChanged {
+ optional uint32 browser_handle = 1;
+ optional string url = 2;
+ optional string postData = 3;
+ optional bool bIsRedirect = 4;
+ optional string pagetitle = 5;
+ optional bool bNewNavigation = 6;
+}
+
+message CHistoryEntry {
+ optional string url = 1;
+}
+
+message CMsgHistoryChanged {
+ optional uint32 browser_handle = 1;
+ optional uint32 index = 2;
+ repeated .CHistoryEntry entries = 3;
+}
+
+message CMsgLoadError {
+ optional uint32 browser_handle = 1;
+ optional int32 error_code = 2;
+ optional string url = 3;
+ optional string error_description = 4;
+}
+
+message CHTMLHeader {
+ optional string key = 1;
+ optional string value = 2;
+}
+
+message CHTMLPageSecurityInfo {
+ optional bool bIsSecure = 1 [default = false];
+ optional bool bHasCertError = 2 [default = false];
+ optional string issuerName = 3;
+ optional string certName = 4;
+ optional int32 certExpiry = 5 [default = 0];
+ optional int32 nCertBits = 6 [default = 0];
+ optional bool bIsEVCert = 7 [default = false];
+}
+
+message CMsgFinishedRequest {
+ optional uint32 browser_handle = 1;
+ optional string url = 2;
+ optional string pageTitle = 3;
+}
+
+message CMsgLoadedRequest {
+ optional uint32 browser_handle = 1;
+ optional string url = 2;
+ optional string pageTitle = 3;
+ repeated .CHTMLHeader headers = 5;
+}
+
+message CMsgPageSecurity {
+ optional uint32 browser_handle = 1;
+ optional string url = 2;
+ optional .CHTMLPageSecurityInfo security_info = 3;
+}
+
+message CMsgStartRequest {
+ optional uint32 browser_handle = 1;
+ optional string url = 2;
+ optional string target = 3;
+ optional string postData = 4;
+ optional bool bIsRedirect = 5;
+}
+
+message CMsgStartRequestResponse {
+ optional uint32 browser_handle = 1;
+ optional bool bAllow = 2;
+}
+
+message CMsgShowPopup {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgHidePopup {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgSizePopup {
+ optional uint32 browser_handle = 1;
+ optional int32 x = 2;
+ optional int32 y = 3;
+ optional uint32 wide = 4;
+ optional uint32 tall = 5;
+}
+
+message CMsgOpenNewTab {
+ optional uint32 browser_handle = 1;
+ optional string url = 2;
+ optional bool bForeground = 3;
+}
+
+message CMsgPopupHTMLWindow {
+ optional uint32 browser_handle = 1;
+ optional string url = 2;
+ optional int32 x = 3 [default = -2147483648];
+ optional int32 y = 4 [default = -2147483648];
+ optional uint32 wide = 5;
+ optional uint32 tall = 6;
+ optional uint32 popup_index = 7;
+ optional bool trusted_creator = 8;
+ optional string name = 9;
+ optional uint64 hwnd = 10;
+ optional uint32 parent_popup_index = 11;
+}
+
+message CMsgPopupHTMLWindowResponse {
+ optional uint32 browser_handle = 1;
+ optional bool bAllow = 2;
+}
+
+message CMsgSetHTMLTitle {
+ optional uint32 browser_handle = 1;
+ optional string title = 2;
+}
+
+message CMsgLoadingResource {
+ optional uint32 browser_handle = 1;
+ optional string url = 2;
+}
+
+message CMsgStatusText {
+ optional uint32 browser_handle = 1;
+ optional string text = 2;
+}
+
+message CMsgSetCursor {
+ optional uint32 browser_handle = 1;
+ optional uint32 cursor = 2;
+ optional bytes custom_data = 3;
+ optional uint32 wide = 4;
+ optional uint32 tall = 5;
+ optional uint32 xhotspot = 6;
+ optional uint32 yhotspot = 7;
+}
+
+message CMsgFileLoadDialog {
+ optional uint32 browser_handle = 1;
+ optional string title = 2;
+ optional string initialFile = 3;
+ repeated string accept_types = 4;
+ optional bool is_save = 5;
+}
+
+message CMsgFileLoadDialogResponse {
+ optional uint32 browser_handle = 1;
+ repeated string files = 2;
+}
+
+message CMsgShowToolTip {
+ optional uint32 browser_handle = 1;
+ optional string text = 2;
+}
+
+message CMsgUpdateToolTip {
+ optional uint32 browser_handle = 1;
+ optional string text = 2;
+}
+
+message CMsgHideToolTip {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgSearchResults {
+ optional uint32 browser_handle = 1;
+ optional int32 activeMatch = 2;
+ optional int32 results = 3;
+}
+
+message CMsgClose {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgSetSharedPaintBuffers {
+ optional uint32 browser_handle = 1;
+ optional uint32 wide = 2;
+ optional uint32 tall = 3;
+ optional uint64 source_pid = 4;
+ optional uint64 source_handle = 5;
+ optional uint64 handle = 6;
+}
+
+message CMsgAckSharedPaintBuffers {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgNeedsPaint {
+ optional uint32 browser_handle = 1;
+ optional uint32 scrollx = 10;
+ optional uint32 scrolly = 11;
+ optional float pagescale = 12;
+ optional uint32 pageserial = 15;
+ optional uint32 avg_frame_ms = 20;
+ optional float stddev_sum_frame_ms = 21;
+ optional uint32 long_frame_ms = 22;
+}
+
+message CMsgComboNeedsPaint {
+ optional uint32 browser_handle = 1;
+ optional uint64 rgba = 2;
+ optional uint32 combobox_wide = 3 [default = 0];
+ optional uint32 combobox_tall = 4 [default = 0];
+ optional uint64 shared_memory_handle = 5 [default = 0];
+ optional uint64 shared_memory_size = 7 [default = 0];
+}
+
+message CMsgNeedsSharedTexturePaint {
+ optional uint32 browser_handle = 1;
+ optional uint32 share_handle = 2;
+ optional uint32 width = 3;
+ optional uint32 height = 4;
+ optional uint32 scrollx = 5;
+ optional uint32 scrolly = 6;
+ optional float pagescale = 7;
+ optional uint32 pageserial = 8;
+}
+
+message CMsgGameOverlayTexturePaint {
+ optional uint32 browser_handle = 1;
+ optional uint32 width = 3;
+ optional uint32 height = 4;
+ optional uint32 scrollx = 5;
+ optional uint32 scrolly = 6;
+ optional float pagescale = 7;
+ optional uint32 pageserial = 8;
+}
+
+message CMsgGetZoom {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgGetZoomResponse {
+ optional uint32 browser_handle = 1;
+ optional float zoom = 2;
+}
+
+message CMsgLinkAtPosition {
+ optional uint32 browser_handle = 1;
+ optional uint32 x = 2;
+ optional uint32 y = 3;
+}
+
+message CMsgLinkAtPositionResponse {
+ optional uint32 browser_handle = 1;
+ optional uint32 x = 2;
+ optional uint32 y = 3;
+ optional string url = 4;
+ optional bool blivelink = 5;
+ optional bool binput = 6;
+}
+
+message CMsgZoomToElementAtPosition {
+ optional uint32 browser_handle = 1;
+ optional uint32 x = 2;
+ optional uint32 y = 3;
+}
+
+message CMsgZoomToElementAtPositionResponse {
+ optional uint32 browser_handle = 1;
+ optional float scale = 2;
+ optional float duration = 3;
+}
+
+message CMsgScalePageToValue {
+ optional uint32 browser_handle = 1;
+ optional float scale = 2;
+ optional float x = 3;
+ optional float y = 4;
+}
+
+message CMsgForcePopupsToDirectHWND {
+ optional uint32 browser_handle = 1;
+ optional bool force_direct_hwnd_popups = 2;
+}
+
+message CMsgScalePageToValueResponse {
+ optional uint32 browser_handle = 1;
+ optional float zoom = 2;
+}
+
+message CMsgSavePageToJPEG {
+ optional uint32 browser_handle = 1;
+ optional string url = 2;
+ optional string filename = 3;
+ optional uint32 width = 4;
+ optional uint32 height = 5;
+}
+
+message CMsgSavePageToJPEGResponse {
+ optional uint32 browser_handle = 1;
+ optional string url = 2;
+ optional string filename = 3;
+}
+
+message CMsgJSAlert {
+ optional uint32 browser_handle = 1;
+ optional string message = 2;
+}
+
+message CMsgJSConfirm {
+ optional uint32 browser_handle = 1;
+ optional string message = 2;
+}
+
+message CMsgJSDialogResponse {
+ optional uint32 browser_handle = 1;
+ optional bool result = 2;
+}
+
+message CMsgCanGoBackAndForward {
+ optional uint32 browser_handle = 1;
+ optional bool bgoback = 2;
+ optional bool bgoforward = 3;
+}
+
+message CMsgOpenSteamURL {
+ optional uint32 browser_handle = 1;
+ optional string url = 2;
+ optional string referrer = 3;
+}
+
+message CMsgSetCookie {
+ optional string key = 1;
+ optional string value = 2;
+ optional string path = 3;
+ optional string host = 4;
+ optional uint32 expires = 5;
+ optional bool secure = 6;
+ optional bool httponly = 7;
+}
+
+message CMsgSetTargetFrameRate {
+ optional uint32 browser_handle = 1;
+ optional uint32 nTargetFrameRate = 2;
+}
+
+message CMsgPauseRepaint {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgFullRepaint {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgRequestFullScreen {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgExitFullScreen {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgToggleFindInPageDialog {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgSetPIDShuttingDown {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgDisableBackgroundThrottling {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgAckPIDShuttingDown {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgGetCookiesForURL {
+ optional uint32 browser_handle = 1;
+ optional string url = 2;
+}
+
+message CCookie {
+ optional string name = 1;
+ optional string value = 2;
+ optional string domain = 3;
+ optional string path = 4;
+}
+
+message CMsgGetCookiesForURLResponse {
+ optional uint32 browser_handle = 1;
+ optional string url = 2;
+ repeated .CCookie cookies = 3;
+}
+
+message CMsgNodeHasFocus {
+ optional uint32 browser_handle = 1;
+ optional bool bInput = 2;
+ optional string name = 3;
+ optional string elementtagname = 4;
+ optional string searchbuttontext = 5;
+ optional bool bHasMultipleInputs = 6;
+ optional string input_type = 7;
+ optional bool bIsMainFrame = 8;
+}
+
+message CMsgZoomToFocusedElement {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgCloseFullScreenFlashIfOpen {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgPauseFullScreenFlashMovieIfOpen {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgFocusedNodeText {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgFocusedNodeTextResponse {
+ optional uint32 browser_handle = 1;
+ optional string value = 2;
+}
+
+message CMsgBuildID {
+ optional uint64 build_id = 1;
+}
+
+message CMsgOpenDevTools {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgCloseDevTools {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgUnlockH264 {
+ optional uint32 browser_handle = 1;
+ optional string unlock_code = 2;
+}
+
+message CMsgScreenInformationChanged {
+ optional uint32 browser_handle = 1;
+ optional uint32 override_width = 2;
+ optional uint32 override_height = 3;
+ optional uint32 monitor_left = 4;
+ optional uint32 monitor_top = 5;
+ optional uint32 monitor_right = 6;
+ optional uint32 monitor_bottom = 7;
+ optional uint32 usable_left = 8;
+ optional uint32 usable_top = 9;
+ optional uint32 usable_right = 10;
+ optional uint32 usable_bottom = 11;
+}
+
+message CMsgClearAllCookies {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgScreenDPI {
+ optional uint32 browser_handle = 1;
+ optional float dpi_scaling = 2;
+}
+
+message CMsgAckScreenDPI {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgAuthedSteamDomains {
+ repeated string domains = 1;
+}
+
+message CMsgSteamAuthNeeded {
+ optional bool filler = 1;
+}
+
+message CMsgSteamAuthCookiesSet {
+ optional bool success = 1;
+}
+
+message CMsgJSRegisterMethod {
+ optional uint32 browser_handle = 1;
+ optional string name = 2;
+ optional .EJSRegisterMethodType method_type = 3 [default = k_EJSRegisterMethodType_Invalid];
+}
+
+message CMsgJSValue {
+ message JSObjectProperty {
+ optional string name = 1;
+ optional .CMsgJSValue value = 2;
+ }
+
+ optional bool bool_value = 1;
+ optional int32 int_value = 2;
+ optional uint32 uint_value = 3;
+ optional double double_value = 4;
+ optional string string_value = 5;
+ optional uint64 function_handle = 6;
+ optional bytes bytes_value = 12;
+ optional bool is_array = 8;
+ repeated .CMsgJSValue array_values = 9;
+ optional bool is_object = 10;
+ repeated .CMsgJSValue.JSObjectProperty object_properties = 11;
+}
+
+message CMsgJSMethodCall {
+ optional uint32 browser_handle = 1;
+ optional uint32 owning_browser_handle = 2;
+ optional string name = 3;
+ repeated .CMsgJSValue arguments = 4;
+}
+
+message CMsgJSExecuteCallback {
+ optional uint32 browser_handle = 1;
+ optional uint32 owning_browser_handle = 2;
+ optional uint64 function_handle = 3;
+ repeated .CMsgJSValue arguments = 4;
+}
+
+message CMsgJSReleaseCallback {
+ optional uint32 browser_handle = 1;
+ optional uint32 owning_browser_handle = 2;
+ optional uint64 function_handle = 3;
+}
+
+message CMsgJSRaiseException {
+ optional uint32 browser_handle = 1;
+ optional uint32 owning_browser_handle = 2;
+ optional string exception = 3;
+}
+
+message CMsgLoadLocalization {
+ optional uint32 browser_handle = 1;
+ optional string localization_path = 2;
+ optional string language = 3;
+}
+
+message CMsgNotifyUserActivation {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgSetNetFakeLocalSystemState {
+ optional uint32 state = 1;
+}
+
+message CMsgJumpListLink {
+ optional string display_name = 1;
+ optional string url_link = 2;
+ optional string icon_path = 3;
+}
+
+message CMSgJumpListMRUApp {
+ optional uint32 appid = 1;
+ optional string display_name = 2;
+ optional string url_link = 3;
+ optional string icon_path = 4;
+}
+
+message CMsgSetJumpList {
+ optional string steam_path = 1;
+ optional string mru_title = 2;
+ repeated .CMSgJumpListMRUApp apps = 3;
+ repeated .CMsgJumpListLink links = 4;
+}
+
+message CMsgSetGameOverlayTargetPIDs {
+ optional uint32 browser_handle = 1;
+ repeated uint32 target_pid = 2;
+}
+
+message CMsgGameOverlayTargetTextureID {
+ optional uint32 browser_handle = 1;
+ optional uint32 target_pid = 2;
+ optional uint32 texture_handle = 3;
+}
+
+message CMsgDraggableRegionsChanged {
+ message DraggableRects {
+ optional int32 x = 1;
+ optional int32 y = 2;
+ optional int32 width = 3;
+ optional int32 height = 4;
+ optional bool draggable = 5;
+ }
+
+ optional uint32 browser_handle = 1;
+ repeated .CMsgDraggableRegionsChanged.DraggableRects rects = 2;
+}
+
+message CMsgResizeGripChanged {
+ optional uint32 browser_handle = 1;
+ optional int32 width = 2;
+ optional int32 height = 3;
+}
+
+message CMsgSetWindowPosition {
+ optional uint32 browser_handle = 1;
+ optional double x = 2;
+ optional double y = 3;
+ optional double width = 4;
+ optional double height = 5;
+ optional double min_width = 6;
+ optional double min_height = 7;
+}
+
+message CMsgShowWindow {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgHideWindow {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgBringWindowToFront {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgSetForegroundWindow {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgMaximizeRestoreWindow {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgMinimizeWindow {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgShowBrowserContextMenu {
+ message ContextCommand {
+ optional int32 id = 1;
+ optional string label = 2;
+ }
+
+ optional uint32 browser_handle = 1;
+ repeated .CMsgShowBrowserContextMenu.ContextCommand custom_commands = 2;
+}
+
+message CMsgHandleContextMenuCommand {
+ optional uint32 browser_handle = 1;
+ optional int32 command_id = 2;
+}
+
+message CMsgTouchGesture {
+ optional uint32 browser_handle = 1;
+ optional int32 id = 2;
+ optional uint32 gesture = 3;
+ optional double x = 4;
+ optional double y = 5;
+ optional double width = 6;
+ optional double height = 7;
+ optional uint32 tap_count = 8;
+ optional double pinch_scale = 9;
+}
+
+message CMsgSetTouchGesturesToCancel {
+ optional uint32 browser_handle = 1;
+ repeated uint32 gestures = 2;
+}
+
+message CMsgImeSetComposition {
+ optional uint32 browser_handle = 1;
+ optional string text = 2;
+}
+
+message CMsgImeCommitText {
+ optional uint32 browser_handle = 1;
+ optional string text = 2;
+}
+
+message CMsgImeCancelComposition {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgImeCompositionRangeChanged {
+ optional uint32 browser_handle = 1;
+ optional uint32 x = 2;
+ optional uint32 y = 3;
+}
+
+message CMsgInspectElement {
+ optional uint32 browser_handle = 1;
+ optional uint32 x = 2;
+ optional uint32 y = 3;
+}
+
+message CMsgDisableF5 {
+ optional uint32 browser_handle = 1;
+ optional bool disable = 2;
+}
+
+message CMsgStartDownload {
+ optional uint32 browser_handle = 1;
+ optional string url = 2;
+}
+
+message CMsgSetTopWindow {
+ optional uint32 browser_handle = 1;
+}
+
+message CMsgBrowserViewPostMessageToParentRequest {
+ optional uint32 browser_handle = 1;
+ optional string message = 2;
+ optional string args = 3;
+ optional string requesting_url = 4;
+}
+
+message CMsgBlockedRequest {
+ optional uint32 browser_handle = 1;
+ optional string url = 2;
+}
+
+message CMsgBrowserFocusChanged {
+ optional uint32 browser_handle = 1;
+ optional bool focused = 2;
+}
+
+message CMsgSetProtocolBlockList {
+ optional uint32 browser_handle = 1;
+ optional string list = 2;
+}
+
+message CMsgSetForceDeviceScaleFactors {
+ optional double dpi_scale = 1;
+ optional double browser_scale = 2;
+}
+
+message CMsgSetUIMode {
+ optional int32 ui_mode = 1;
+}
+
+message CMsgPopupCreated {
+ optional uint32 browser_handle = 1;
+}
diff --git a/protobuf_files/orig/steam/offline_ticket.proto b/protobuf_files/orig/steam/offline_ticket.proto
new file mode 100644
index 00000000..3afd3bec
--- /dev/null
+++ b/protobuf_files/orig/steam/offline_ticket.proto
@@ -0,0 +1,8 @@
+message Offline_Ticket {
+ optional bytes encrypted_ticket = 1;
+ optional bytes signature = 2;
+ optional int32 kdf1 = 3;
+ optional bytes salt1 = 4;
+ optional int32 kdf2 = 5;
+ optional bytes salt2 = 6;
+}
diff --git a/protobuf_files/orig/steam/renderer/rendermessages.proto b/protobuf_files/orig/steam/renderer/rendermessages.proto
new file mode 100644
index 00000000..a940e436
--- /dev/null
+++ b/protobuf_files/orig/steam/renderer/rendermessages.proto
@@ -0,0 +1,893 @@
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+message CMsgBeginFrame {
+ optional double frame_paint_time = 1;
+ optional uint32 surface_width = 2;
+ optional uint32 surface_height = 3;
+ optional uint32 render_target = 4;
+ optional double ui_scale_factor = 5;
+ optional bool empty_frame = 6;
+ optional bool clear_gpu_resources_before_frame = 7;
+}
+
+message CMsgEndFrame {
+ optional uint32 mouse_cursor_texture_id = 1;
+ optional float mouse_cursor_hotspot_x = 2;
+ optional float mouse_cursor_hotspot_y = 3;
+}
+
+message CMsgClearBackbuffer {
+ optional uint32 clear_color_rgba = 1;
+}
+
+message CMsgDeleteTexture {
+ optional uint64 texture_pointer = 1;
+}
+
+message CMsgDeletePanel {
+ optional uint64 context_id = 1;
+}
+
+message CMsgDeleteParticleSystem {
+ optional uint64 panel_handle = 1;
+ optional uint32 brush_index = 2;
+}
+
+message CMsgPoint {
+ optional double x = 1;
+ optional double y = 2;
+ optional double z = 3;
+}
+
+message CMsgMatrix4x4 {
+ optional double m00 = 1;
+ optional double m01 = 2;
+ optional double m02 = 3;
+ optional double m03 = 4;
+ optional double m10 = 5;
+ optional double m11 = 6;
+ optional double m12 = 7;
+ optional double m13 = 8;
+ optional double m20 = 9;
+ optional double m21 = 10;
+ optional double m22 = 11;
+ optional double m23 = 12;
+ optional double m30 = 13;
+ optional double m31 = 14;
+ optional double m32 = 15;
+ optional double m33 = 16;
+}
+
+message CRadiusData {
+ message CCornerRadius {
+ optional double horizontal = 1;
+ optional double vertical = 2;
+ }
+
+ optional .CRadiusData.CCornerRadius top_left = 1;
+ optional .CRadiusData.CCornerRadius top_right = 2;
+ optional .CRadiusData.CCornerRadius bottom_right = 3;
+ optional .CRadiusData.CCornerRadius bottom_left = 4;
+}
+
+message CBorderData {
+ message CBorderSide {
+ optional uint32 style = 1;
+ optional double width = 2;
+ optional uint32 color = 3;
+ }
+
+ optional .CBorderData.CBorderSide top = 1;
+ optional .CBorderData.CBorderSide right = 2;
+ optional .CBorderData.CBorderSide bottom = 3;
+ optional .CBorderData.CBorderSide left = 4;
+}
+
+message CBoxShadowData {
+ optional bool inset = 1;
+ optional double horizontal_offset = 2;
+ optional double vertical_offset = 3;
+ optional double blur_radius = 4;
+ optional double spread_distance = 5;
+ optional uint32 color = 6;
+ optional bool fill = 7;
+ optional bool animating = 8;
+}
+
+message CTextShadowData {
+ optional double horizontal_offset = 2;
+ optional double vertical_offset = 3;
+ optional double blur_radius = 4;
+ optional uint32 color = 6;
+ optional bool animating = 8;
+ optional double strength = 9;
+}
+
+message CRadialClipData {
+ optional double center_x = 1;
+ optional double center_y = 2;
+ optional double start_angle = 3;
+ optional double sector_angle = 4;
+}
+
+message CMsgClipData {
+ optional bool rect_clip = 1;
+ optional double left = 2;
+ optional double top = 3;
+ optional double right = 4;
+ optional double bottom = 5;
+ optional .CRadialClipData radial_clip = 6;
+}
+
+message CMsgPushCompositingLayer {
+ optional uint64 layer_id = 1;
+ optional double width = 2;
+ optional double height = 3;
+ optional double layer_quad_top_left_x = 4;
+ optional double layer_quad_top_left_y = 5;
+ optional double layer_quad_top_left_z = 6;
+ optional double layer_quad_top_right_x = 7;
+ optional double layer_quad_top_right_y = 8;
+ optional double layer_quad_top_right_z = 9;
+ optional double layer_quad_bottom_left_x = 10;
+ optional double layer_quad_bottom_left_y = 11;
+ optional double layer_quad_bottom_left_z = 12;
+ optional double layer_quad_bottom_right_x = 13;
+ optional double layer_quad_bottom_right_y = 14;
+ optional double layer_quad_bottom_right_z = 15;
+ optional double transform_m00 = 16;
+ optional double transform_m01 = 17;
+ optional double transform_m02 = 18;
+ optional double transform_m03 = 19;
+ optional double transform_m10 = 20;
+ optional double transform_m11 = 21;
+ optional double transform_m12 = 22;
+ optional double transform_m13 = 23;
+ optional double transform_m20 = 24;
+ optional double transform_m21 = 25;
+ optional double transform_m22 = 26;
+ optional double transform_m23 = 27;
+ optional double transform_m30 = 28;
+ optional double transform_m31 = 29;
+ optional double transform_m32 = 30;
+ optional double transform_m33 = 31;
+ optional double perspective_depth = 32;
+ optional double opacity = 33;
+ optional uint32 composition_color = 34;
+ optional double saturation = 35;
+ optional double hue_shift = 36;
+ optional double brightness = 37;
+ optional double contrast = 38;
+ optional uint32 opacity_mask_texture_id = 39;
+ optional double opacity_mask_opacity = 40;
+ optional .CBorderData border = 41;
+ optional .CRadiusData border_radius = 42;
+ optional .CBoxShadowData box_shadow = 43;
+ optional double gaussianblur_passes = 44;
+ optional double gaussianblur_stddevhor = 45;
+ optional double gaussianblur_stddevver = 46;
+ optional double scale_2d_factors_x = 47;
+ optional double scale_2d_factors_y = 48;
+ optional double rotate_2d = 49;
+ optional bool needs_clear = 50;
+ optional bool needs_depth = 51;
+ optional bool needs_intermediate_texture = 52;
+ optional bool needs_redraw_every_frame = 53;
+ optional .CTextShadowData text_shadow = 54;
+ optional uint32 mix_blend_mode = 55;
+ optional double occluded_left_edge = 56;
+ optional double occluded_top_edge = 57;
+ optional double occluded_right_edge = 58;
+ optional double occluded_bottom_edge = 59;
+ optional .CRadialClipData radial_clip = 60;
+ optional double motionblur_velocity = 61;
+ optional double motionblur_dirx = 62;
+ optional double motionblur_diry = 63;
+ optional string composition_layer_texture_name = 64;
+}
+
+message CMsgPopCompositingLayer {
+}
+
+message CMsgFreeCompositingLayer {
+ optional uint64 layer_id = 1;
+}
+
+message CMsgTransitionData {
+ optional double start_time = 1;
+ optional double delay_seconds = 2;
+ optional double duration_seconds = 3;
+ optional uint32 timing_func = 4 [default = 0];
+ optional float cubic_bezier_0 = 5;
+ optional float cubic_bezier_1 = 6;
+ optional float cubic_bezier_2 = 7;
+ optional float cubic_bezier_3 = 8;
+}
+
+message CMsgAnimationData {
+ optional double start_time = 1;
+ optional double delay_seconds = 2;
+ optional double duration_seconds = 3;
+ optional uint32 timing_func = 4;
+ optional float cubic_bezier_0 = 5;
+ optional float cubic_bezier_1 = 6;
+ optional float cubic_bezier_2 = 7;
+ optional float cubic_bezier_3 = 8;
+ optional uint32 direction = 9;
+ optional float iteration = 10;
+ repeated .CMsgAnimationFrameData frames = 11;
+}
+
+message CMsgAnimationFrameData {
+ optional float percent = 1;
+ optional uint32 timing_func = 2 [default = 0];
+ optional float cubic_bezier_0 = 3;
+ optional float cubic_bezier_1 = 4;
+ optional float cubic_bezier_2 = 5;
+ optional float cubic_bezier_3 = 6;
+
+ extensions 1000 to max;
+}
+
+message CMsgPointWithTransition {
+ extend .CMsgAnimationFrameData {
+ optional .CMsgPointWithTransition.AnimationFrameData animation_frame_data = 1012;
+ }
+
+ message AnimationFrameData {
+ optional .CMsgPoint data = 1;
+ }
+
+ optional .CMsgPoint base = 1;
+ optional .CMsgPoint transition = 2;
+ optional .CMsgTransitionData transition_data = 3;
+ optional uint32 style_symbol = 4;
+ repeated .CMsgAnimationData animations = 5;
+}
+
+message CMsgColor {
+ extend .CMsgAnimationFrameData {
+ optional .CMsgColor.AnimationFrameData animation_frame_data = 1001;
+ }
+
+ message AnimationFrameData {
+ optional uint32 data = 1;
+ }
+
+ optional uint32 base = 1;
+ optional uint32 transition = 2;
+ optional .CMsgTransitionData transition_data = 3;
+ optional uint32 style_symbol = 4;
+ repeated .CMsgAnimationData animations = 5;
+}
+
+message CMsgColorStop {
+ optional double position = 1;
+ optional uint32 color_rgba = 2;
+}
+
+message CMsgLinearGradient {
+ optional .CMsgPoint start_position = 1;
+ optional .CMsgPoint end_position = 2;
+ repeated .CMsgColorStop color_stop = 3;
+}
+
+message CMsgRadialGradient {
+ optional .CMsgPoint center_position = 1;
+ optional .CMsgPoint offset_distance = 2;
+ optional .CMsgPoint radii = 3;
+ repeated .CMsgColorStop color_stop = 4;
+}
+
+message CMsgParticle {
+ optional .CMsgPoint particle_position = 1;
+ optional float particle_size = 2;
+ optional float particle_sharpness = 3;
+ optional uint32 color_rgba = 4;
+}
+
+message CMsgParticleSystem {
+ optional .CMsgPoint base_position = 1;
+ optional .CMsgPoint base_position_variance = 2;
+ optional double particle_size = 3;
+ optional double particle_size_variance = 4;
+ optional double particles_per_second = 5;
+ optional double particles_per_second_variance = 6;
+ optional double particle_lifespan_seconds = 7;
+ optional double particle_lifespan_seconds_variance = 8;
+ optional .CMsgPoint particle_initial_velocity = 9;
+ optional .CMsgPoint particle_initial_velocity_variance = 10;
+ optional .CMsgPoint gravity_acceleration = 11;
+ optional .CMsgPoint gravity_acceleration_particle_variance = 12;
+ optional uint32 color_start_rgba = 13;
+ optional uint32 color_start_rgba_variance = 14;
+ optional uint32 color_end_rgba = 15;
+ optional uint32 color_end_rgba_variance = 16;
+ optional uint64 parent_panel_handle = 17;
+ optional uint32 parent_brush_index = 18;
+ optional float particle_sharpness = 19;
+ optional float particle_sharpness_variance = 20;
+ optional float particle_flicker = 21;
+ optional float particle_flicker_variance = 22;
+ optional .CMsgPoint particle_velocity_min = 23;
+ optional .CMsgPoint particle_velocity_max = 24;
+ repeated .CMsgParticle particles = 50;
+}
+
+message CMsgFillBrush {
+ optional double opacity = 1;
+ optional uint32 color_rgba = 2;
+ optional .CMsgLinearGradient linear_gradient = 3;
+ optional .CMsgRadialGradient radial_gradient = 4;
+ optional .CMsgParticleSystem particle_system = 5;
+}
+
+message CMsgFillBrushCollection {
+ extend .CMsgAnimationFrameData {
+ optional .CMsgFillBrushCollection.AnimationFrameData animation_frame_data = 1007;
+ }
+
+ message AnimationFrameData {
+ repeated .CMsgFillBrush data = 1;
+ }
+
+ repeated .CMsgFillBrush base = 1;
+ repeated .CMsgFillBrush transition = 2;
+ optional .CMsgTransitionData transition_data = 3;
+ optional uint32 style_symbol = 4;
+ repeated .CMsgAnimationData animations = 5;
+}
+
+message CMsgRenderFillBrushCollection {
+ repeated .CMsgFillBrush fill_brush = 1;
+}
+
+message CMsgPanelPosition {
+ extend .CMsgAnimationFrameData {
+ optional .CMsgPanelPosition.AnimationFrameData animation_frame_data = 1011;
+ }
+
+ message AnimationFrameData {
+ optional .CMsgPoint data = 1;
+ }
+
+ optional .CMsgPoint base = 1;
+ optional .CMsgPoint transition = 2;
+ optional .CMsgTransitionData transition_data = 3;
+ optional uint32 style_symbol = 4;
+ repeated .CMsgAnimationData animations = 5;
+ optional .CMsgPoint scroll_offset = 6;
+ optional .CMsgPoint scroll_offset_target = 7;
+ optional .CMsgTransitionData scroll_transition_x = 8;
+ optional .CMsgTransitionData scroll_transition_y = 9;
+}
+
+message CMsgOpacity {
+ extend .CMsgAnimationFrameData {
+ optional .CMsgOpacity.AnimationFrameData animation_frame_data = 1004;
+ }
+
+ message AnimationFrameData {
+ optional double data = 1;
+ }
+
+ optional double base = 1;
+ optional double transition = 2;
+ optional .CMsgTransitionData transition_data = 3;
+ optional uint32 style_symbol = 4;
+ repeated .CMsgAnimationData animations = 5;
+}
+
+message CMsgRotate2D {
+ extend .CMsgAnimationFrameData {
+ optional .CMsgRotate2D.AnimationFrameData animation_frame_data = 1014;
+ }
+
+ message AnimationFrameData {
+ optional double data = 1;
+ }
+
+ optional double base = 1;
+ optional double transition = 2;
+ optional .CMsgTransitionData transition_data = 3;
+ optional uint32 style_symbol = 4;
+ repeated .CMsgAnimationData animations = 5;
+}
+
+message CMsgOpacityMaskData {
+ optional uint32 opacity_mask_texture_id = 1;
+ optional double opacity_mask_opacity = 2;
+}
+
+message CMsgOpacityMask {
+ extend .CMsgAnimationFrameData {
+ optional .CMsgOpacityMask.AnimationFrameData animation_frame_data = 1013;
+ }
+
+ message AnimationFrameData {
+ optional .CMsgOpacityMaskData data = 1;
+ }
+
+ optional .CMsgOpacityMaskData base = 1;
+ optional .CMsgOpacityMaskData transition = 2;
+ optional .CMsgTransitionData transition_data = 3;
+ optional uint32 style_symbol = 4;
+ repeated .CMsgAnimationData animations = 5;
+}
+
+message CMsgHueShift {
+ extend .CMsgAnimationFrameData {
+ optional .CMsgHueShift.AnimationFrameData animation_frame_data = 1019;
+ }
+
+ message AnimationFrameData {
+ optional double data = 1;
+ }
+
+ optional double base = 1;
+ optional double transition = 2;
+ optional .CMsgTransitionData transition_data = 3;
+ optional uint32 style_symbol = 4;
+ repeated .CMsgAnimationData animations = 5;
+}
+
+message CMsgSaturation {
+ extend .CMsgAnimationFrameData {
+ optional .CMsgSaturation.AnimationFrameData animation_frame_data = 1005;
+ }
+
+ message AnimationFrameData {
+ optional double data = 1;
+ }
+
+ optional double base = 1;
+ optional double transition = 2;
+ optional .CMsgTransitionData transition_data = 3;
+ optional uint32 style_symbol = 4;
+ repeated .CMsgAnimationData animations = 5;
+}
+
+message CMsgBrightness {
+ extend .CMsgAnimationFrameData {
+ optional .CMsgBrightness.AnimationFrameData animation_frame_data = 1020;
+ }
+
+ message AnimationFrameData {
+ optional double data = 1;
+ }
+
+ optional double base = 1;
+ optional double transition = 2;
+ optional .CMsgTransitionData transition_data = 3;
+ optional uint32 style_symbol = 4;
+ repeated .CMsgAnimationData animations = 5;
+}
+
+message CMsgContrast {
+ extend .CMsgAnimationFrameData {
+ optional .CMsgContrast.AnimationFrameData animation_frame_data = 1021;
+ }
+
+ message AnimationFrameData {
+ optional double data = 1;
+ }
+
+ optional double base = 1;
+ optional double transition = 2;
+ optional .CMsgTransitionData transition_data = 3;
+ optional uint32 style_symbol = 4;
+ repeated .CMsgAnimationData animations = 5;
+}
+
+message CMsgGaussianValues {
+ optional double passes = 1;
+ optional double stddev_hor = 2;
+ optional double stddev_ver = 3;
+}
+
+message CMsgGaussianBlur {
+ extend .CMsgAnimationFrameData {
+ optional .CMsgGaussianBlur.AnimationFrameData animation_frame_data = 1008;
+ }
+
+ message AnimationFrameData {
+ optional .CMsgGaussianValues data = 1;
+ }
+
+ optional .CMsgGaussianValues base = 1;
+ optional .CMsgGaussianValues transition = 2;
+ optional .CMsgTransitionData transition_data = 3;
+ optional uint32 style_symbol = 4;
+ repeated .CMsgAnimationData animations = 5;
+}
+
+message CMsgMotionBlurValues {
+ optional double velocity = 1;
+ optional double dirx = 2;
+ optional double diry = 3;
+}
+
+message CMsgMotionBlur {
+ extend .CMsgAnimationFrameData {
+ optional .CMsgMotionBlur.AnimationFrameData animation_frame_data = 1022;
+ }
+
+ message AnimationFrameData {
+ optional .CMsgMotionBlurValues data = 1;
+ }
+
+ optional .CMsgMotionBlurValues base = 1;
+ optional .CMsgMotionBlurValues transition = 2;
+ optional .CMsgTransitionData transition_data = 3;
+ repeated .CMsgAnimationData animations = 4;
+ optional uint32 style_symbol = 5;
+}
+
+message CMsg3DTransformPerspective {
+ extend .CMsgAnimationFrameData {
+ optional .CMsg3DTransformPerspective.AnimationFrameData animation_frame_data = 1003;
+ }
+
+ message AnimationFrameData {
+ optional double data = 1;
+ }
+
+ optional double base = 1;
+ optional double transition = 2;
+ optional .CMsgTransitionData transition_data = 3;
+ optional uint32 style_symbol = 4;
+ repeated .CMsgAnimationData animations = 5;
+}
+
+message CMsg3DTransformPerspectiveOrigin {
+ extend .CMsgAnimationFrameData {
+ optional .CMsg3DTransformPerspectiveOrigin.AnimationFrameData animation_frame_data = 1002;
+ }
+
+ message AnimationFrameData {
+ optional .CMsgPoint data = 1;
+ }
+
+ optional .CMsgPoint base = 1;
+ optional .CMsgPoint transition = 2;
+ optional .CMsgTransitionData transition_data = 3;
+ optional uint32 style_symbol = 4;
+ repeated .CMsgAnimationData animations = 5;
+}
+
+message CMsgTransformOriginData {
+ optional double x = 1;
+ optional double y = 2;
+ optional bool x_is_percent = 3;
+ optional bool y_is_percent = 4;
+ optional bool is_parent_relative = 5;
+}
+
+message CMsg3DTransformOrigin {
+ extend .CMsgAnimationFrameData {
+ optional .CMsg3DTransformOrigin.AnimationFrameData animation_frame_data = 1015;
+ }
+
+ message AnimationFrameData {
+ optional .CMsgTransformOriginData data = 1;
+ }
+
+ optional .CMsgTransformOriginData base = 1;
+ optional .CMsgTransformOriginData transition = 2;
+ optional .CMsgTransitionData transition_data = 3;
+ optional uint32 style_symbol = 4;
+ repeated .CMsgAnimationData animations = 5;
+}
+
+message CMsg3DTransformMatrix {
+ extend .CMsgAnimationFrameData {
+ optional .CMsg3DTransformMatrix.AnimationFrameData animation_frame_data = 1000;
+ }
+
+ message AnimationFrameData {
+ optional .CMsgMatrix4x4 data = 1;
+ }
+
+ optional .CMsgMatrix4x4 base = 1;
+ optional .CMsgTransitionData transition_data = 2;
+ optional .CMsgMatrix4x4 transition = 3;
+ optional uint32 style_symbol = 4;
+ repeated .CMsgAnimationData animations = 5;
+}
+
+message CMsgBorderRadius {
+ extend .CMsgAnimationFrameData {
+ optional .CMsgBorderRadius.AnimationFrameData animation_frame_data = 1006;
+ }
+
+ message AnimationFrameData {
+ optional .CRadiusData data = 1;
+ }
+
+ optional .CRadiusData base = 1;
+ optional .CMsgTransitionData transition_data = 2;
+ optional .CRadiusData transition = 3;
+ optional uint32 style_symbol = 4;
+ repeated .CMsgAnimationData animations = 5;
+}
+
+message CMsgBorder {
+ extend .CMsgAnimationFrameData {
+ optional .CMsgBorder.AnimationFrameData animation_frame_data = 1009;
+ }
+
+ message AnimationFrameData {
+ optional .CBorderData data = 1;
+ }
+
+ optional .CBorderData base = 1;
+ optional .CMsgTransitionData transition_data = 2;
+ optional .CBorderData transition = 3;
+ optional uint32 style_symbol = 4;
+ repeated .CMsgAnimationData animations = 5;
+}
+
+message CMsgBoxShadow {
+ extend .CMsgAnimationFrameData {
+ optional .CMsgBoxShadow.AnimationFrameData animation_frame_data = 1010;
+ }
+
+ message AnimationFrameData {
+ optional .CBoxShadowData data = 1;
+ }
+
+ optional .CBoxShadowData base = 1;
+ optional .CMsgTransitionData transition_data = 2;
+ optional .CBoxShadowData transition = 3;
+ optional uint32 style_symbol = 4;
+ repeated .CMsgAnimationData animations = 5;
+}
+
+message CMsgTextShadow {
+ extend .CMsgAnimationFrameData {
+ optional .CMsgTextShadow.AnimationFrameData animation_frame_data = 1017;
+ }
+
+ message AnimationFrameData {
+ optional .CTextShadowData data = 1;
+ }
+
+ optional .CTextShadowData base = 1;
+ optional .CMsgTransitionData transition_data = 2;
+ optional .CTextShadowData transition = 3;
+ optional uint32 style_symbol = 4;
+ repeated .CMsgAnimationData animations = 5;
+}
+
+message CMsgClip {
+ extend .CMsgAnimationFrameData {
+ optional .CMsgClip.AnimationFrameData animation_frame_data = 1018;
+ }
+
+ message AnimationFrameData {
+ optional .CMsgClipData data = 1;
+ }
+
+ optional .CMsgClipData base = 1;
+ optional .CMsgTransitionData transition_data = 2;
+ optional .CMsgClipData transition = 3;
+ optional uint32 style_symbol = 4;
+ repeated .CMsgAnimationData animations = 5;
+}
+
+message CMsgPushClipLayer {
+ optional .CMsgPoint top_left = 1;
+ optional .CMsgPoint bottom_right = 2;
+ optional .CRadiusData border_radius = 3;
+}
+
+message CMsgPopClipLayer {
+}
+
+message CMsgPushPanelContextInLayer {
+ optional double transform_m00 = 1;
+ optional double transform_m01 = 2;
+ optional double transform_m02 = 3;
+ optional double transform_m03 = 4;
+ optional double transform_m10 = 5;
+ optional double transform_m11 = 6;
+ optional double transform_m12 = 7;
+ optional double transform_m13 = 8;
+ optional double transform_m20 = 9;
+ optional double transform_m21 = 10;
+ optional double transform_m22 = 11;
+ optional double transform_m23 = 12;
+ optional double transform_m30 = 13;
+ optional double transform_m31 = 14;
+ optional double transform_m32 = 15;
+ optional double transform_m33 = 16;
+ optional .CBoxShadowData box_shadow = 17;
+ optional double width = 18;
+ optional double height = 19;
+ optional double position_x = 20;
+ optional double position_y = 21;
+ optional double position_z = 22;
+ optional .CBorderData border = 23;
+ optional double scroll_x = 24;
+ optional double scroll_y = 25;
+}
+
+message CMsgPopPanelContextInLayer {
+}
+
+message CMsgPushAAndTContext {
+ optional uint64 context_id = 1;
+ optional double width = 3;
+ optional double height = 4;
+ optional bool chilren_have_3dtransforms = 5;
+ optional float zindex = 6;
+ optional .CMsgPanelPosition panel_position = 7;
+ optional .CMsg3DTransformMatrix transform_matrix = 8;
+ optional .CMsg3DTransformOrigin transform_origin = 9;
+ optional .CMsg3DTransformPerspective transform_perspective = 10;
+ optional .CMsg3DTransformPerspectiveOrigin transform_perspective_origin = 11;
+ optional .CMsgOpacity opacity = 12;
+ optional .CMsgColor wash_color = 13;
+ optional .CMsgHueShift hue_shift = 14;
+ optional .CMsgSaturation saturation = 15;
+ optional .CMsgBrightness brightness = 16;
+ optional .CMsgContrast contrast = 17;
+ optional .CMsgOpacityMask opacity_mask = 18;
+ optional .CMsgBorderRadius border_radius = 19;
+ optional .CMsgGaussianBlur gaussian_blur = 20;
+ optional .CMsgBorder border = 21;
+ optional .CMsgBoxShadow box_shadow = 22;
+ optional .CMsgPointWithTransition scale_2d_centered = 23;
+ optional .CMsgRotate2D rotate_2d_centered = 24;
+ optional .CMsgTextShadow text_shadow = 25;
+ optional .CMsgClip clip = 26;
+ optional bool suppress_clip_to_bounds = 27;
+ optional int32 needs_full_repaint = 28;
+ optional bool needs_intermediate_texture = 29;
+ optional bool clip_after_transform = 30;
+ optional bool wants_hit_test = 31;
+ optional bool wants_hit_test_children = 32;
+ optional uint32 mix_blend_mode = 33;
+ optional bool opaque_background = 34;
+ optional uint32 child_panel_count = 35;
+ optional bool wants_screenspace_quad_output = 36;
+ optional .CMsgMotionBlur motion_blur = 37;
+ optional string composition_layer_texture_name = 38;
+}
+
+message CMsgPopAAndTContext {
+ optional uint64 context_id = 1;
+}
+
+message CMsgBeginPaintBackground {
+}
+
+message CMsgEndPaintBackground {
+}
+
+message CMsgBeginPaintLast {
+}
+
+message CMsgEndPaintLast {
+}
+
+message CMsgDrawFilledRect {
+ optional .CMsgPoint top_left = 1;
+ optional .CMsgPoint bottom_right = 2;
+ optional .CMsgFillBrushCollection fill_brush_collection = 3;
+ optional uint32 antialiasing = 4;
+}
+
+message CMsgRenderFilledRect {
+ optional .CMsgPoint top_left = 1;
+ optional .CMsgPoint bottom_right = 2;
+ optional .CMsgRenderFillBrushCollection fill_brush_collection = 3;
+ optional uint32 antialiasing = 4;
+}
+
+message CMsgDrawTexturedRect {
+ optional .CMsgPoint top_left = 1;
+ optional .CMsgPoint bottom_right = 2;
+ optional uint32 texture_id = 3;
+ optional .CMsgPoint texture_top_left = 4;
+ optional .CMsgPoint texture_bottom_right = 5;
+ optional int32 texture_serial = 6 [default = 0];
+ optional uint32 texture_sample_mode = 7 [default = 0];
+ optional .CMsgOpacity texture_opacity = 8;
+}
+
+message CMsgRenderTexturedRect {
+ optional .CMsgPoint top_left = 1;
+ optional .CMsgPoint bottom_right = 2;
+ optional uint32 texture_id = 3;
+ optional .CMsgPoint texture_top_left = 4;
+ optional .CMsgPoint texture_bottom_right = 5;
+ optional int32 texture_serial = 6 [default = 0];
+ optional uint32 texture_sample_mode = 7 [default = 0];
+ optional float texture_opacity = 8 [default = 1];
+}
+
+message CMsgLockTexture {
+ optional uint32 texture_id = 1;
+ optional int32 texture_serial = 2 [default = 0];
+}
+
+message CMsgTextInlineObject {
+ optional float width = 1;
+ optional float height = 2;
+}
+
+message CMsgTextFormat {
+ optional string font_name = 1;
+ optional double font_size = 2;
+ optional int32 font_weight = 3 [default = -1];
+ optional int32 font_style = 4 [default = -1];
+ optional bool underline = 5;
+ optional bool strikethrough = 6;
+ optional .CMsgFillBrushCollection fill_brush_collection = 7;
+ optional int32 letter_spacing = 8 [default = 0];
+ optional .CMsgTextInlineObject inline_object = 9;
+}
+
+message CMsgTextRangeFormat {
+ optional uint32 start_index = 1;
+ optional uint32 end_index = 2;
+ optional .CMsgTextFormat format = 3;
+}
+
+message CMsgRenderTextFormat {
+ optional string font_name = 1;
+ optional double font_size = 2;
+ optional int32 font_weight = 3 [default = -1];
+ optional int32 font_style = 4 [default = -1];
+ optional bool underline = 5;
+ optional bool strikethrough = 6;
+ optional .CMsgRenderFillBrushCollection fill_brush_collection = 7;
+ optional int32 letter_spacing = 8 [default = 0];
+ optional .CMsgTextInlineObject inline_object = 9;
+}
+
+message CMsgRenderTextRangeFormat {
+ optional uint32 start_index = 1;
+ optional uint32 end_index = 2;
+ optional .CMsgRenderTextFormat format = 3;
+}
+
+message CMsgDrawTextRegion {
+ optional bytes raw_text = 11;
+ optional int32 text_chars = 12;
+ optional int32 text_encoding = 13;
+ optional .CMsgTextFormat default_format = 3;
+ optional uint32 text_align = 4;
+ optional uint32 line_height = 5;
+ optional .CMsgPoint top_left = 6;
+ optional .CMsgPoint bottom_right = 7;
+ optional bool wrapping = 8;
+ optional bool ellipsis = 9;
+ repeated .CMsgTextRangeFormat range_formats = 10;
+}
+
+message CMsgRenderTextRegion {
+ optional bytes raw_text = 12;
+ optional int32 text_chars = 13;
+ optional int32 text_encoding = 14;
+ optional .CMsgRenderTextFormat default_format = 3;
+ optional uint32 text_align = 4;
+ optional uint32 line_height = 5;
+ optional .CMsgPoint top_left = 6;
+ optional .CMsgPoint bottom_right = 7;
+ optional bool wrapping = 8;
+ optional bool ellipsis = 9;
+ repeated .CMsgRenderTextRangeFormat range_formats = 10;
+ optional .CTextShadowData text_shadow = 11;
+}
+
+message CMsgRequestRenderCallback {
+ optional bytes callback_obj = 1;
+ optional .CMsgPoint top_left = 2;
+ optional .CMsgPoint bottom_right = 3;
+ optional .CMsgPoint top_left_padding = 4;
+ optional .CMsgPoint bottom_right_padding = 5;
+ optional bool needs_redraw_every_frame = 6;
+}
diff --git a/protobuf_files/orig/steam/steamdatagram_messages_auth.proto b/protobuf_files/orig/steam/steamdatagram_messages_auth.proto
new file mode 100644
index 00000000..c97793e4
--- /dev/null
+++ b/protobuf_files/orig/steam/steamdatagram_messages_auth.proto
@@ -0,0 +1,65 @@
+import "steamnetworkingsockets_messages_certs.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+message CMsgSteamDatagramRelayAuthTicket {
+ message ExtraField {
+ optional string name = 1;
+ optional string string_value = 2;
+ optional sint64 int64_value = 3;
+ optional fixed64 fixed64_value = 5;
+ }
+
+ optional fixed32 time_expiry = 1;
+ optional string authorized_client_identity_string = 14;
+ optional string gameserver_identity_string = 15;
+ optional fixed32 authorized_public_ip = 3;
+ optional bytes gameserver_address = 11;
+ optional uint32 app_id = 7;
+ optional uint32 virtual_port = 10;
+ repeated .CMsgSteamDatagramRelayAuthTicket.ExtraField extra_fields = 8;
+ optional fixed64 legacy_authorized_steam_id = 2;
+ optional fixed64 legacy_gameserver_steam_id = 4;
+ optional fixed32 legacy_gameserver_pop_id = 9;
+ optional bytes legacy_authorized_client_identity_binary = 12;
+ optional bytes legacy_gameserver_identity_binary = 13;
+}
+
+message CMsgSteamDatagramSignedRelayAuthTicket {
+ optional fixed64 reserved_do_not_use = 1;
+ optional bytes ticket = 3;
+ optional bytes signature = 4;
+ optional fixed64 key_id = 2;
+ repeated .CMsgSteamDatagramCertificateSigned certs = 5;
+}
+
+message CMsgSteamDatagramCachedCredentialsForApp {
+ optional bytes private_key = 1;
+ optional bytes cert = 2;
+ repeated bytes relay_tickets = 3;
+}
+
+message CMsgSteamDatagramGameCoordinatorServerLogin {
+ optional uint32 time_generated = 1;
+ optional uint32 appid = 2;
+ optional bytes routing = 3;
+ optional bytes appdata = 4;
+ optional bytes legacy_identity_binary = 5;
+ optional string identity_string = 6;
+ optional fixed64 dummy_steam_id = 99;
+}
+
+message CMsgSteamDatagramSignedGameCoordinatorServerLogin {
+ optional .CMsgSteamDatagramCertificateSigned cert = 1;
+ optional bytes login = 2;
+ optional bytes signature = 3;
+}
+
+message CMsgSteamDatagramHostedServerAddressPlaintext {
+ optional fixed32 ipv4 = 1;
+ optional bytes ipv6 = 2;
+ optional uint32 port = 3;
+ optional fixed64 routing_secret = 4;
+ optional uint32 protocol_version = 5;
+}
diff --git a/protobuf_files/orig/steam/steamdatagram_messages_sdr.proto b/protobuf_files/orig/steam/steamdatagram_messages_sdr.proto
new file mode 100644
index 00000000..7cdc47ac
--- /dev/null
+++ b/protobuf_files/orig/steam/steamdatagram_messages_sdr.proto
@@ -0,0 +1,528 @@
+import "steamnetworkingsockets_messages_certs.proto";
+import "steamnetworkingsockets_messages.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+enum ESteamDatagramMsgID {
+ k_ESteamDatagramMsg_Invalid = 0;
+ k_ESteamDatagramMsg_RouterPingRequest = 1;
+ k_ESteamDatagramMsg_RouterPingReply = 2;
+ k_ESteamDatagramMsg_GameserverPingRequest = 3;
+ k_ESteamDatagramMsg_GameserverSessionRequest = 5;
+ k_ESteamDatagramMsg_GameserverSessionEstablished = 6;
+ k_ESteamDatagramMsg_NoSession = 7;
+ k_ESteamDatagramMsg_Diagnostic = 8;
+ k_ESteamDatagramMsg_DataClientToRouter = 9;
+ k_ESteamDatagramMsg_DataRouterToServer = 10;
+ k_ESteamDatagramMsg_DataServerToRouter = 11;
+ k_ESteamDatagramMsg_DataRouterToClient = 12;
+ k_ESteamDatagramMsg_Stats = 13;
+ k_ESteamDatagramMsg_ClientPingSampleRequest = 14;
+ k_ESteamDatagramMsg_ClientPingSampleReply = 15;
+ k_ESteamDatagramMsg_ClientToRouterSwitchedPrimary = 16;
+ k_ESteamDatagramMsg_RelayHealth = 17;
+ k_ESteamDatagramMsg_ConnectRequest = 18;
+ k_ESteamDatagramMsg_ConnectOK = 19;
+ k_ESteamDatagramMsg_ConnectionClosed = 20;
+ k_ESteamDatagramMsg_NoConnection = 21;
+ k_ESteamDatagramMsg_TicketDecryptRequest = 22;
+ k_ESteamDatagramMsg_TicketDecryptReply = 23;
+ k_ESteamDatagramMsg_P2PSessionRequest = 24;
+ k_ESteamDatagramMsg_P2PSessionEstablished = 25;
+ k_ESteamDatagramMsg_P2PStatsClient = 26;
+ k_ESteamDatagramMsg_P2PStatsRelay = 27;
+ k_ESteamDatagramMsg_P2PBadRoute = 28;
+ k_ESteamDatagramMsg_GameserverPingReply = 29;
+ k_ESteamDatagramMsg_LegacyGameserverRegistration = 30;
+ k_ESteamDatagramMsg_SetSecondaryAddressRequest = 31;
+ k_ESteamDatagramMsg_SetSecondaryAddressResult = 32;
+ k_ESteamDatagramMsg_RelayToRelayPingRequest = 33;
+ k_ESteamDatagramMsg_RelayToRelayPingReply = 34;
+}
+
+message CMsgSteamNetworkingIPAddress {
+ optional fixed32 v4 = 1;
+ optional bytes v6 = 2;
+}
+
+message CMsgSteamDatagramSignedMessageGeneric {
+ optional .CMsgSteamDatagramCertificateSigned cert = 1;
+ optional bytes signed_data = 2;
+ optional bytes signature = 3;
+ optional bytes dummy_pad = 1023;
+}
+
+message CMsgSteamDatagramRouterPingReply {
+ message RouteException {
+ optional fixed32 data_center_id = 1;
+ optional uint32 flags = 2;
+ optional uint32 penalty = 3;
+ }
+
+ message AltAddress {
+ enum Protocol {
+ DefaultProtocol = 0;
+ NetworkNext = 1;
+ }
+
+ optional fixed32 ipv4 = 1;
+ optional uint32 port = 2;
+ optional uint32 penalty = 3;
+ optional .CMsgSteamDatagramRouterPingReply.AltAddress.Protocol protocol = 4 [default = DefaultProtocol];
+ optional string id = 5;
+ }
+
+ enum Flags {
+ FLAG_MAYBE_MORE_DATA_CENTERS = 1;
+ FLAG_MAYBE_MORE_ALT_ADDRESSES = 2;
+ }
+
+ optional fixed32 client_timestamp = 1;
+ repeated fixed32 latency_datacenter_ids = 2 [packed = true];
+ repeated uint32 latency_ping_ms = 3 [packed = true];
+ repeated fixed32 latency_datacenter_ids_p2p = 14 [packed = true];
+ repeated uint32 latency_ping_ms_p2p = 15 [packed = true];
+ optional fixed32 your_public_ip = 4;
+ optional fixed32 your_public_port = 11;
+ optional fixed32 server_time = 5;
+ optional fixed64 challenge = 6;
+ optional uint32 seconds_until_shutdown = 7;
+ optional fixed32 client_cookie = 8;
+ optional uint32 scoring_penalty_relay_cluster = 9;
+ optional uint32 flags = 12;
+ repeated .CMsgSteamDatagramRouterPingReply.RouteException route_exceptions = 10;
+ repeated .CMsgSteamDatagramRouterPingReply.AltAddress alt_addresses = 13;
+}
+
+message CMsgSteamDatagramGameserverPingRequestBody {
+ optional fixed32 relay_popid = 1;
+ optional .CMsgSteamNetworkingIPAddress your_public_ip = 2;
+ optional uint32 your_public_port = 3;
+ optional uint64 relay_unix_time = 4;
+ optional fixed64 routing_secret = 5;
+ repeated .CMsgSteamNetworkingIPAddress my_ips = 6;
+ optional bytes echo = 8;
+}
+
+message CMsgSteamDatagramGameserverPingRequestEnvelope {
+ optional .CMsgSteamDatagramCertificateSigned cert = 6;
+ optional bytes signed_data = 7;
+ optional bytes signature = 8;
+ optional fixed32 legacy_your_public_ip = 1;
+ optional fixed32 legacy_your_public_port = 5;
+ optional fixed32 legacy_relay_unix_time = 2;
+ optional fixed64 legacy_challenge = 3;
+ optional fixed32 legacy_router_timestamp = 4;
+ optional bytes dummy_pad = 1023;
+}
+
+message CMsgSteamDatagramGameserverPingReplyData {
+ optional fixed32 echo_relay_unix_time = 2;
+ optional bytes echo = 8;
+ optional fixed64 legacy_challenge = 3;
+ optional fixed32 legacy_router_timestamp = 4;
+ optional fixed32 data_center_id = 5;
+ optional uint32 appid = 6;
+ optional uint32 protocol_version = 7;
+ optional string build = 9;
+ optional uint64 network_config_version = 10;
+ optional fixed32 my_unix_time = 11;
+}
+
+message CMsgSteamDatagramNoSessionRelayToClient {
+ optional fixed32 connection_id = 7;
+ optional fixed32 your_public_ip = 2;
+ optional fixed32 your_public_port = 6;
+ optional fixed32 server_time = 3;
+ optional fixed64 challenge = 4;
+ optional uint32 seconds_until_shutdown = 5;
+}
+
+message CMsgSteamDatagramNoSessionRelayToPeer {
+ optional uint32 legacy_relay_session_id = 1;
+ optional fixed32 from_relay_session_id = 2;
+ optional fixed32 from_connection_id = 7;
+ optional fixed64 kludge_pad = 99;
+}
+
+message CMsgSteamDatagramClientPingSampleRequest {
+ optional fixed32 connection_id = 1;
+}
+
+message CMsgSteamDatagramClientPingSampleReply {
+ message POP {
+ message AltAddress {
+ optional string id = 1;
+ optional uint32 front_ping_ms = 2;
+ optional uint32 penalty = 3;
+ }
+
+ optional fixed32 pop_id = 1;
+ optional uint32 default_front_ping_ms = 2;
+ optional uint32 cluster_penalty = 4;
+ repeated .CMsgSteamDatagramClientPingSampleReply.POP.AltAddress alt_addresses = 7;
+ optional uint32 default_e2e_ping_ms = 3;
+ optional uint32 default_e2e_score = 5;
+ optional fixed32 p2p_via_peer_relay_pop_id = 6;
+ optional uint32 best_dc_ping_ms = 9;
+ optional uint32 best_dc_score = 10;
+ optional fixed32 best_dc_via_relay_pop_id = 11;
+ optional uint32 default_dc_ping_ms = 12;
+ optional uint32 default_dc_score = 13;
+ optional fixed32 default_dc_via_relay_pop_id = 14;
+ optional uint32 test_dc_ping_ms = 15;
+ optional uint32 test_dc_score = 16;
+ optional fixed32 test_dc_via_relay_pop_id = 17;
+ }
+
+ message LegacyDataCenter {
+ optional fixed32 data_center_id = 1;
+ optional fixed32 best_dc_via_relay_pop_id = 2;
+ optional uint32 best_dc_ping_ms = 3;
+ }
+
+ optional fixed32 connection_id = 1;
+ optional bool override_active = 4;
+ repeated .CMsgSteamDatagramClientPingSampleReply.POP pops = 2;
+ repeated .CMsgSteamDatagramClientPingSampleReply.LegacyDataCenter legacy_data_centers = 3;
+}
+
+message CMsgSteamDatagramClientSwitchedPrimary {
+ message RouterQuality {
+ optional uint32 score = 1;
+ optional uint32 front_ping = 2;
+ optional uint32 back_ping = 3;
+ optional uint32 seconds_until_down = 4;
+ }
+
+ optional fixed32 connection_id = 1;
+ optional fixed32 from_ip = 2;
+ optional uint32 from_port = 3;
+ optional fixed32 from_router_cluster = 4;
+ optional uint32 from_active_time = 5;
+ optional uint32 from_active_packets_recv = 6;
+ optional string from_dropped_reason = 7;
+ optional uint32 gap_ms = 8;
+ optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_now = 9;
+ optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_now = 10;
+ optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality from_quality_then = 11;
+ optional .CMsgSteamDatagramClientSwitchedPrimary.RouterQuality to_quality_then = 12;
+}
+
+message CMsgSteamDatagramConnectRequest {
+ optional fixed32 connection_id = 1;
+ optional fixed64 my_timestamp = 4;
+ optional uint32 ping_est_ms = 5;
+ optional uint32 virtual_port = 9;
+ optional uint32 gameserver_relay_session_id = 2;
+ optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 6;
+ optional .CMsgSteamDatagramCertificateSigned cert = 7;
+ optional fixed64 routing_secret = 10;
+ optional fixed64 legacy_client_steam_id = 3;
+}
+
+message CMsgSteamDatagramConnectOK {
+ optional fixed32 client_connection_id = 1;
+ optional fixed32 server_connection_id = 7;
+ optional fixed64 your_timestamp = 3;
+ optional uint32 delay_time_usec = 4;
+ optional uint32 gameserver_relay_session_id = 2;
+ optional .CMsgSteamDatagramSessionCryptInfoSigned crypt = 5;
+ optional .CMsgSteamDatagramCertificateSigned cert = 6;
+}
+
+message CMsgSteamNetworkingP2PSDRRoutingSummary {
+ optional uint32 initial_ping = 1;
+ optional uint32 initial_ping_front_local = 2;
+ optional uint32 initial_ping_front_remote = 3;
+ optional uint32 initial_score = 4;
+ optional fixed32 initial_pop_local = 5;
+ optional fixed32 initial_pop_remote = 6;
+ optional uint32 best_ping = 11;
+ optional uint32 best_ping_front_local = 12;
+ optional uint32 best_ping_front_remote = 13;
+ optional uint32 best_score = 14;
+ optional fixed32 best_pop_local = 15;
+ optional fixed32 best_pop_remote = 16;
+ optional uint32 best_time = 17;
+ optional uint32 negotiation_ms = 7;
+ optional uint32 selected_seconds = 8;
+}
+
+message CMsgSteamDatagramP2PRoutingSummary {
+ optional .CMsgSteamNetworkingICESessionSummary ice = 2;
+ optional .CMsgSteamNetworkingP2PSDRRoutingSummary sdr = 3;
+}
+
+message CMsgSteamDatagramConnectionClosed {
+ enum ERelayMode {
+ None = 0;
+ EndToEnd = 1;
+ ClosedByPeer = 2;
+ }
+
+ optional fixed32 to_connection_id = 7;
+ optional fixed32 from_connection_id = 8;
+ optional string from_identity_string = 15;
+ optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_from_identity_binary = 13;
+ optional fixed64 legacy_from_steam_id = 3;
+ optional uint32 legacy_gameserver_relay_session_id = 2;
+ optional fixed32 to_relay_session_id = 9;
+ optional fixed32 from_relay_session_id = 10;
+ optional bytes forward_target_relay_routing_token = 11;
+ optional uint32 forward_target_revision = 12;
+ optional .CMsgSteamDatagramConnectionClosed.ERelayMode relay_mode = 4 [default = None];
+ optional string debug = 5;
+ optional uint32 reason_code = 6;
+ optional fixed64 routing_secret = 14;
+ optional bool not_primary_session = 16;
+ optional bool not_primary_transport = 19;
+ optional .CMsgSteamDatagramConnectionQuality quality_relay = 17;
+ optional .CMsgSteamDatagramConnectionQuality quality_e2e = 18;
+ optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 21;
+}
+
+message CMsgSteamDatagramNoConnection {
+ optional fixed32 to_connection_id = 5;
+ optional fixed32 from_connection_id = 6;
+ optional uint32 legacy_gameserver_relay_session_id = 2;
+ optional fixed32 to_relay_session_id = 9;
+ optional fixed32 from_relay_session_id = 10;
+ optional string from_identity_string = 7;
+ optional fixed64 legacy_from_steam_id = 3;
+ optional bool end_to_end = 4;
+ optional bool not_primary_session = 12;
+ optional bool not_primary_transport = 15;
+ optional .CMsgSteamDatagramConnectionQuality quality_relay = 13;
+ optional .CMsgSteamDatagramConnectionQuality quality_e2e = 14;
+ optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 16;
+ optional fixed64 routing_secret = 11;
+ optional fixed32 dummy_pad = 1023;
+}
+
+message CMsgSteamDatagramGameserverSessionRequest {
+ optional bytes ticket = 1;
+ optional fixed32 challenge_time = 3;
+ optional fixed64 challenge = 4;
+ optional fixed32 client_connection_id = 5;
+ optional fixed32 server_connection_id = 8;
+ optional uint64 network_config_version = 6;
+ optional uint32 protocol_version = 7;
+ optional string platform = 9;
+ optional string build = 10;
+ optional string dev_gameserver_identity = 100;
+ optional .CMsgSteamDatagramCertificateSigned dev_client_cert = 101;
+}
+
+message CMsgSteamDatagramGameserverSessionEstablished {
+ optional fixed32 connection_id = 1;
+ optional string gameserver_identity_string = 2;
+ optional uint32 seconds_until_shutdown = 4;
+ optional uint32 seq_num_r2c = 6;
+ optional bytes dummy_legacy_identity_binary = 7;
+ optional fixed64 legacy_gameserver_steamid = 3;
+}
+
+message CMsgSteamDatagramConnectionStatsClientToRouter {
+ enum Flags {
+ ACK_REQUEST_RELAY = 1;
+ ACK_REQUEST_E2E = 2;
+ ACK_REQUEST_IMMEDIATE = 4;
+ NOT_PRIMARY_SESSION = 8;
+ }
+
+ optional .CMsgSteamDatagramConnectionQuality quality_relay = 1;
+ optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
+ repeated fixed32 ack_relay = 4;
+ repeated fixed32 legacy_ack_e2e = 5;
+ optional uint32 flags = 6;
+ optional fixed32 client_connection_id = 8;
+ optional uint32 seq_num_c2r = 9;
+ optional uint32 seq_num_e2e = 10;
+}
+
+message CMsgSteamDatagramConnectionStatsRouterToClient {
+ enum Flags {
+ ACK_REQUEST_RELAY = 1;
+ ACK_REQUEST_E2E = 2;
+ ACK_REQUEST_IMMEDIATE = 4;
+ }
+
+ optional .CMsgSteamDatagramConnectionQuality quality_relay = 1;
+ optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
+ optional uint32 seconds_until_shutdown = 6;
+ optional fixed32 migrate_request_ip = 10;
+ optional uint32 migrate_request_port = 11;
+ optional uint32 scoring_penalty_relay_cluster = 12;
+ repeated fixed32 ack_relay = 13;
+ repeated fixed32 legacy_ack_e2e = 14;
+ optional uint32 flags = 15;
+ optional fixed32 client_connection_id = 7;
+ optional uint32 seq_num_r2c = 8;
+ optional uint32 seq_num_e2e = 9;
+}
+
+message CMsgSteamDatagramConnectionStatsRouterToServer {
+ enum Flags {
+ ACK_REQUEST_RELAY = 1;
+ ACK_REQUEST_E2E = 2;
+ ACK_REQUEST_IMMEDIATE = 4;
+ }
+
+ optional .CMsgSteamDatagramConnectionQuality quality_relay = 1;
+ optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
+ repeated fixed32 ack_relay = 10;
+ repeated fixed32 legacy_ack_e2e = 11;
+ optional uint32 flags = 12;
+ optional uint32 seq_num_r2s = 5;
+ optional uint32 seq_num_e2e = 6;
+ optional string client_identity_string = 15;
+ optional fixed64 legacy_client_steam_id = 7;
+ optional uint32 relay_session_id = 8;
+ optional fixed32 client_connection_id = 9;
+ optional fixed32 server_connection_id = 13;
+ optional fixed64 routing_secret = 14;
+}
+
+message CMsgSteamDatagramConnectionStatsServerToRouter {
+ enum Flags {
+ ACK_REQUEST_RELAY = 1;
+ ACK_REQUEST_E2E = 2;
+ ACK_REQUEST_IMMEDIATE = 4;
+ }
+
+ optional .CMsgSteamDatagramConnectionQuality quality_relay = 1;
+ optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
+ repeated fixed32 ack_relay = 8;
+ repeated fixed32 legacy_ack_e2e = 9;
+ optional uint32 flags = 10;
+ optional uint32 seq_num_s2r = 3;
+ optional uint32 seq_num_e2e = 4;
+ optional uint32 relay_session_id = 6;
+ optional fixed32 client_connection_id = 7;
+ optional fixed32 server_connection_id = 11;
+}
+
+message CMsgSteamDatagramP2PSessionRequestBody {
+ message EncryptedData {
+ optional string peer_identity_string = 1;
+ }
+
+ optional fixed32 challenge_time = 1;
+ optional fixed64 challenge = 2;
+ optional fixed32 client_connection_id = 3;
+ optional fixed64 legacy_peer_steam_id = 4;
+ optional string peer_identity_string = 11;
+ optional fixed32 peer_connection_id = 5;
+ optional bytes encrypted_data = 14;
+ optional uint32 encryption_your_public_key_lead_byte = 15;
+ optional bytes encryption_my_ephemeral_public_key = 16;
+ optional uint32 protocol_version = 8;
+ optional uint64 network_config_version = 9;
+ optional string platform = 12;
+ optional string build = 13;
+}
+
+message CMsgSteamDatagramP2PSessionRequest {
+ optional .CMsgSteamDatagramCertificateSigned cert = 1;
+ optional bytes body = 2;
+ optional bytes signature = 3;
+}
+
+message CMsgSteamDatagramP2PSessionEstablished {
+ optional fixed32 connection_id = 1;
+ optional uint32 seconds_until_shutdown = 3;
+ optional bytes relay_routing_token = 4;
+ optional uint32 seq_num_r2c = 5;
+}
+
+message CMsgSteamDatagramConnectionStatsP2PClientToRouter {
+ enum Flags {
+ ACK_REQUEST_RELAY = 1;
+ ACK_REQUEST_E2E = 2;
+ ACK_REQUEST_IMMEDIATE = 4;
+ NOT_PRIMARY_SESSION = 8;
+ NOT_PRIMARY_TRANSPORT_E2E = 16;
+ }
+
+ optional .CMsgSteamDatagramConnectionQuality quality_relay = 1;
+ optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
+ optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing_summary = 14;
+ repeated fixed32 ack_relay = 3;
+ repeated fixed32 legacy_ack_e2e = 4;
+ optional uint32 flags = 5;
+ optional bytes forward_target_relay_routing_token = 6;
+ optional uint32 forward_target_revision = 7;
+ optional bytes routes = 8;
+ optional uint32 ack_peer_routes_revision = 9;
+ optional fixed32 connection_id = 10;
+ optional uint32 seq_num_c2r = 11;
+ optional uint32 seq_num_e2e = 12;
+}
+
+message CMsgSteamDatagramConnectionStatsP2PRouterToClient {
+ enum Flags {
+ ACK_REQUEST_RELAY = 1;
+ ACK_REQUEST_E2E = 2;
+ ACK_REQUEST_IMMEDIATE = 4;
+ NOT_PRIMARY_TRANSPORT_E2E = 16;
+ }
+
+ optional .CMsgSteamDatagramConnectionQuality quality_relay = 1;
+ optional .CMsgSteamDatagramConnectionQuality quality_e2e = 2;
+ optional uint32 seconds_until_shutdown = 3;
+ optional fixed32 migrate_request_ip = 4;
+ optional uint32 migrate_request_port = 5;
+ optional uint32 scoring_penalty_relay_cluster = 6;
+ repeated fixed32 ack_relay = 7;
+ repeated fixed32 legacy_ack_e2e = 8;
+ optional uint32 flags = 9;
+ optional uint32 ack_forward_target_revision = 10;
+ optional bytes routes = 11;
+ optional uint32 ack_peer_routes_revision = 12;
+ optional fixed32 connection_id = 13;
+ optional uint32 seq_num_r2c = 14;
+ optional uint32 seq_num_e2e = 15;
+}
+
+message CMsgSteamDatagramP2PBadRouteRouterToClient {
+ optional fixed32 connection_id = 1;
+ optional bytes failed_relay_routing_token = 2;
+ optional uint32 ack_forward_target_revision = 3;
+ optional fixed64 kludge_pad = 99;
+}
+
+message CMsgSteamDatagramP2PRoutes {
+ message RelayCluster {
+ optional fixed32 pop_id = 1;
+ optional uint32 ping_ms = 2;
+ optional uint32 score_penalty = 3;
+ optional bytes session_relay_routing_token = 4;
+ }
+
+ message Route {
+ optional fixed32 my_pop_id = 1;
+ optional fixed32 your_pop_id = 2;
+ optional uint32 legacy_score = 3;
+ optional uint32 interior_score = 4;
+ }
+
+ repeated .CMsgSteamDatagramP2PRoutes.RelayCluster relay_clusters = 1;
+ repeated .CMsgSteamDatagramP2PRoutes.Route routes = 2;
+ optional uint32 revision = 3;
+}
+
+message CMsgSteamDatagramSetSecondaryAddressRequest {
+ optional fixed32 client_main_ip = 1;
+ optional fixed32 client_main_port = 2;
+ optional fixed32 client_connection_id = 3;
+ optional string client_identity = 4;
+ optional bool request_send_duplication = 5;
+ optional bytes kludge_pad = 99;
+}
+
+message CMsgSteamDatagramSetSecondaryAddressResult {
+ optional bool success = 1;
+ optional string message = 2;
+}
diff --git a/protobuf_files/orig/steam/steammessages_accounthardware.steamclient.proto b/protobuf_files/orig/steam/steammessages_accounthardware.steamclient.proto
new file mode 100644
index 00000000..1839f687
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_accounthardware.steamclient.proto
@@ -0,0 +1,201 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+enum EValveIndexComponent {
+ k_EValveIndexComponentUnknown = 0;
+ k_EValveIndexComponentHMD = 1;
+ k_EValveIndexComponentLeftKnuckle = 2;
+ k_EValveIndexComponentRightKnuckle = 3;
+}
+
+message CAccountHardware_RegisterSteamController_Request {
+ optional string serial_number = 1;
+ optional string controller_code = 2;
+}
+
+message CAccountHardware_RegisterSteamController_Response {
+}
+
+message CAccountHardware_CompleteSteamControllerRegistration_Request {
+ optional string serial_number = 1;
+ optional string controller_code = 2;
+}
+
+message CAccountHardware_CompleteSteamControllerRegistration_Response {
+}
+
+message CAccountHardware_QueryAccountsRegisteredToSerial_Request {
+ optional string serial_number = 1;
+ optional string controller_code = 2;
+}
+
+message CAccountHardware_QueryAccountsRegisteredToSerial_Accounts {
+ optional uint32 accountid = 1;
+ optional bool registration_complete = 2;
+}
+
+message CAccountHardware_QueryAccountsRegisteredToSerial_Response {
+ repeated .CAccountHardware_QueryAccountsRegisteredToSerial_Accounts accounts = 1;
+}
+
+message CAccountHardware_SteamControllerSetConfig_ControllerConfig {
+ optional string appidorname = 1;
+ optional uint64 publishedfileid = 2;
+ optional string templatename = 3;
+}
+
+message CAccountHardware_SteamControllerSetConfig_Request {
+ optional string serial_number = 1;
+ optional string controller_code = 2;
+ optional uint32 accountid = 3;
+ repeated .CAccountHardware_SteamControllerSetConfig_ControllerConfig configurations = 4;
+ optional int32 controller_type = 5 [default = 2];
+ optional bool only_for_this_serial = 6 [default = false];
+}
+
+message CAccountHardware_SteamControllerSetConfig_Response {
+}
+
+message CAccountHardware_SteamControllerGetConfig_Request {
+ optional string serial_number = 1;
+ optional string controller_code = 2;
+ optional uint32 accountid = 3;
+ optional string appidorname = 4;
+ optional int32 controller_type = 5 [default = 2];
+ optional bool only_for_this_serial = 6 [default = false];
+}
+
+message CAccountHardware_SteamControllerGetConfig_ControllerConfig {
+ optional string appidorname = 1;
+ optional uint64 publishedfileid = 2;
+ optional string templatename = 3;
+ optional string serial_number = 4;
+ optional bool autosave = 5 [default = false];
+}
+
+message CAccountHardware_SteamControllerGetConfig_Response {
+ repeated .CAccountHardware_SteamControllerGetConfig_ControllerConfig configurations = 1;
+}
+
+message CAccountHardware_DeRegisterSteamController_Request {
+ optional string serial_number = 1;
+ optional string controller_code = 2;
+ optional uint32 accountid = 3;
+}
+
+message CAccountHardware_DeRegisterSteamController_Response {
+}
+
+message CAccountHardware_SetPersonalizationFile_Request {
+ optional string serial_number = 1;
+ optional uint64 publishedfileid = 2;
+ optional uint32 accountid = 3;
+}
+
+message CAccountHardware_SetPersonalizationFile_Response {
+}
+
+message CAccountHardware_GetPersonalizationFile_Request {
+ optional string serial_number = 1;
+ optional uint32 accountid = 2;
+}
+
+message CAccountHardware_GetPersonalizationFile_Response {
+ optional uint64 publishedfileid = 1;
+}
+
+message CAccountHardware_VRCompatibilityCheck_Request {
+ message Pair {
+ optional string key = 1;
+ optional string value = 2;
+ }
+
+ optional string product_name = 1 [(description) = "Name of product we're checking"];
+ repeated .CAccountHardware_VRCompatibilityCheck_Request.Pair values = 2 [(description) = "Values from client system probe"];
+}
+
+message CAccountHardware_VRCompatibilityCheck_Response {
+ message Pair {
+ optional string key = 1;
+ optional string value = 2;
+ }
+
+ message ComponentDisplay {
+ optional string name = 1 [(description) = "Name of component (OS, RAM, GPU, etc.)"];
+ optional string image = 2 [(description) = "Name of icon to use"];
+ optional string value = 3 [(description) = "String value to report"];
+ }
+
+ repeated .CAccountHardware_VRCompatibilityCheck_Response.Pair values = 1 [(description) = "Top-level values reported to client"];
+ repeated .CAccountHardware_VRCompatibilityCheck_Response.ComponentDisplay components = 2 [(description) = "Specific values to display"];
+}
+
+message CAccountHardware_RegisterValveIndexComponent_Request {
+ optional string serial_number = 1;
+ optional string manufacturer_serial_number = 2;
+ optional string component_code = 3;
+ optional .EValveIndexComponent component_type = 4 [default = k_EValveIndexComponentUnknown];
+ optional int32 estimated_time_registered = 5;
+}
+
+message CAccountHardware_RegisterValveIndexComponent_Response {
+}
+
+message CAccountHardware_GetSteamDeckComponents_Request {
+ optional string serial_number = 1;
+ optional string controller_code = 2;
+}
+
+message CAccountHardware_GetSteamDeckComponents_Response {
+ optional string json_components = 1;
+}
+
+service AccountHardware {
+ option (service_description) = "A service to use account hardware related methods";
+
+ rpc RegisterSteamController (.CAccountHardware_RegisterSteamController_Request) returns (.CAccountHardware_RegisterSteamController_Response) {
+ option (method_description) = "Records a serial number and the calling user's account info for warranty purposes.";
+ }
+
+ rpc CompleteSteamControllerRegistration (.CAccountHardware_CompleteSteamControllerRegistration_Request) returns (.CAccountHardware_CompleteSteamControllerRegistration_Response) {
+ option (method_description) = "Marks a controller's registration as complete";
+ }
+
+ rpc QueryAccountsRegisteredToController (.CAccountHardware_QueryAccountsRegisteredToSerial_Request) returns (.CAccountHardware_QueryAccountsRegisteredToSerial_Response) {
+ option (method_description) = "Sends back a list of accounts registered to a controller.";
+ }
+
+ rpc SetDesiredControllerConfigForApp (.CAccountHardware_SteamControllerSetConfig_Request) returns (.CAccountHardware_SteamControllerSetConfig_Response) {
+ option (method_description) = "Sets a desired controller config for an app";
+ }
+
+ rpc GetDesiredControllerConfigForApp (.CAccountHardware_SteamControllerGetConfig_Request) returns (.CAccountHardware_SteamControllerGetConfig_Response) {
+ option (method_description) = "Gets a desired controller config for an app";
+ }
+
+ rpc DeRegisterSteamController (.CAccountHardware_DeRegisterSteamController_Request) returns (.CAccountHardware_DeRegisterSteamController_Response) {
+ option (method_description) = "De registers a controller";
+ }
+
+ rpc SetControllerPersonalizationFile (.CAccountHardware_SetPersonalizationFile_Request) returns (.CAccountHardware_SetPersonalizationFile_Response) {
+ option (method_description) = "Stores the file ID of the personalization file";
+ }
+
+ rpc GetControllerPersonalizationFile (.CAccountHardware_GetPersonalizationFile_Request) returns (.CAccountHardware_GetPersonalizationFile_Response) {
+ option (method_description) = "Gets the file ID of the personalization file";
+ }
+
+ rpc VRCompatibilityCheck (.CAccountHardware_VRCompatibilityCheck_Request) returns (.CAccountHardware_VRCompatibilityCheck_Response) {
+ option (method_description) = "Check system info for compatibility with VR";
+ }
+
+ rpc RegisterValveIndexComponent (.CAccountHardware_RegisterValveIndexComponent_Request) returns (.CAccountHardware_RegisterValveIndexComponent_Response) {
+ option (method_description) = "Registers a valve index component to a customer";
+ }
+
+ rpc GetSteamDeckComponents (.CAccountHardware_GetSteamDeckComponents_Request) returns (.CAccountHardware_GetSteamDeckComponents_Response) {
+ option (method_description) = "Returns the components that went into the given Steam Deck";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_appoverview.proto b/protobuf_files/orig/steam/steammessages_appoverview.proto
new file mode 100644
index 00000000..bce7b2d9
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_appoverview.proto
@@ -0,0 +1,187 @@
+import "enums.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = true;
+
+enum EDisplayStatus {
+ k_EDisplayStatusInvalid = 0;
+ k_EDisplayStatusLaunching = 1;
+ k_EDisplayStatusUninstalling = 2;
+ k_EDisplayStatusInstalling = 3;
+ k_EDisplayStatusRunning = 4;
+ k_EDisplayStatusValidating = 5;
+ k_EDisplayStatusUpdating = 6;
+ k_EDisplayStatusDownloading = 7;
+ k_EDisplayStatusSynchronizing = 8;
+ k_EDisplayStatusReadyToInstall = 9;
+ k_EDisplayStatusReadyToPreload = 10;
+ k_EDisplayStatusReadyToLaunch = 11;
+ k_EDisplayStatusRegionRestricted = 12;
+ k_EDisplayStatusPresaleOnly = 13;
+ k_EDisplayStatusInvalidPlatform = 14;
+ k_EDisplayStatusPreloadComplete = 16;
+ k_EDisplayStatusBorrowerLocked = 17;
+ k_EDisplayStatusUpdatePaused = 18;
+ k_EDisplayStatusUpdateQueued = 19;
+ k_EDisplayStatusUpdateRequired = 20;
+ k_EDisplayStatusUpdateDisabled = 21;
+ k_EDisplayStatusDownloadPaused = 22;
+ k_EDisplayStatusDownloadQueued = 23;
+ k_EDisplayStatusDownloadRequired = 24;
+ k_EDisplayStatusDownloadDisabled = 25;
+ k_EDisplayStatusLicensePending = 26;
+ k_EDisplayStatusLicenseExpired = 27;
+ k_EDisplayStatusAvailForFree = 28;
+ k_EDisplayStatusAvailToBorrow = 29;
+ k_EDisplayStatusAvailGuestPass = 30;
+ k_EDisplayStatusPurchase = 31;
+ k_EDisplayStatusUnavailable = 32;
+ k_EDisplayStatusNotLaunchable = 33;
+ k_EDisplayStatusCloudError = 34;
+ k_EDisplayStatusCloudOutOfDate = 35;
+ k_EDisplayStatusTerminating = 36;
+}
+
+enum EAppCloudStatus {
+ k_EAppCloudStatusInvalid = 0;
+ k_EAppCloudStatusDisabled = 1;
+ k_EAppCloudStatusUnknown = 2;
+ k_EAppCloudStatusSynchronized = 3;
+ k_EAppCloudStatusChecking = 4;
+ k_EAppCloudStatusOutOfSync = 5;
+ k_EAppCloudStatusUploading = 6;
+ k_EAppCloudStatusDownloading = 7;
+ k_EAppCloudStatusSyncFailed = 8;
+ k_EAppCloudStatusConflict = 9;
+ k_EAppCloudStatusPendingElsewhere = 10;
+}
+
+enum EProtoAppType {
+ k_EAppTypeInvalid = 0;
+ k_EAppTypeGame = 1;
+ k_EAppTypeApplication = 2;
+ k_EAppTypeTool = 4;
+ k_EAppTypeDemo = 8;
+ k_EAppTypeDeprected = 16;
+ k_EAppTypeDLC = 32;
+ k_EAppTypeGuide = 64;
+ k_EAppTypeDriver = 128;
+ k_EAppTypeConfig = 256;
+ k_EAppTypeHardware = 512;
+ k_EAppTypeFranchise = 1024;
+ k_EAppTypeVideo = 2048;
+ k_EAppTypePlugin = 4096;
+ k_EAppTypeMusicAlbum = 8192;
+ k_EAppTypeSeries = 16384;
+ k_EAppTypeComic = 32768;
+ k_EAppTypeBeta = 65536;
+ k_EAppTypeShortcut = 1073741824;
+ k_EAppTypeDepotOnly = -2147483648;
+}
+
+enum EAppAssociationType {
+ k_EAppAssociationTypeInvalid = 0;
+ k_EAppAssociationTypePublisher = 1;
+ k_EAppAssociationTypeDeveloper = 2;
+ k_EAppAssociationTypeFranchise = 3;
+}
+
+enum EAppControllerSupportLevel {
+ k_EAppControllerSupportLevelNone = 0;
+ k_EAppControllerSupportLevelPartial = 1;
+ k_EAppControllerSupportLevelFull = 2;
+}
+
+enum EAppGamepadGyroTrackpadSupportLevel {
+ k_EAppGamepadGyroTrackpadSupportLevelUnknown = -1;
+ k_EAppGamepadGyroTrackpadSupportLevelNoGamepad = 0;
+ k_EAppGamepadGyroTrackpadSupportLevelGamepad = 1;
+ k_EAppGamepadGyroTrackpadSupportLevelSimultaneous = 2;
+}
+
+message CAppOverview_AppAssociation {
+ optional .EAppAssociationType type = 1 [default = k_EAppAssociationTypeInvalid];
+ optional string name = 2;
+}
+
+message CAppOverview_PerClientData {
+ optional uint64 clientid = 1;
+ optional string client_name = 2;
+ optional .EDisplayStatus display_status = 3 [default = k_EDisplayStatusInvalid];
+ optional uint32 status_percentage = 4 [default = 0];
+ optional string active_beta = 5;
+ optional bool installed = 6;
+ optional uint64 bytes_downloaded = 7 [default = 0];
+ optional uint64 bytes_total = 8 [default = 0];
+ optional bool streaming_to_local_client = 9;
+ optional bool is_available_on_current_platform = 10;
+ optional bool is_invalid_os_type = 11;
+ optional uint32 playtime_left = 12;
+ optional .EAppCloudStatus cloud_status = 13 [default = k_EAppCloudStatusInvalid];
+}
+
+message CAppOverview {
+ optional uint32 appid = 1;
+ optional string display_name = 2;
+ optional bool visible_in_game_list = 4;
+ optional string sort_as = 6;
+ optional .EProtoAppType app_type = 7 [default = k_EAppTypeInvalid];
+ optional uint32 mru_index = 13;
+ optional uint32 rt_recent_activity_time = 14 [default = 0];
+ optional uint32 minutes_playtime_forever = 16 [default = 0];
+ optional uint32 minutes_playtime_last_two_weeks = 17 [default = 0];
+ optional uint32 rt_last_time_played = 18 [default = 0];
+ repeated uint32 store_tag = 19;
+ repeated .CAppOverview_AppAssociation association = 20;
+ repeated uint32 store_category = 23;
+ optional uint32 rt_original_release_date = 25 [default = 0];
+ optional uint32 rt_steam_release_date = 26 [default = 0];
+ optional string icon_hash = 27;
+ optional .EAppControllerSupportLevel controller_support = 31 [default = k_EAppControllerSupportLevelNone];
+ optional bool vr_supported = 32;
+ optional uint32 metacritic_score = 36;
+ optional uint64 size_on_disk = 37;
+ optional bool third_party_mod = 38;
+ optional string icon_data = 39;
+ optional string icon_data_format = 40;
+ optional string gameid = 41;
+ optional string library_capsule_filename = 42;
+ repeated .CAppOverview_PerClientData per_client_data = 43;
+ optional uint64 most_available_clientid = 44;
+ optional uint64 selected_clientid = 45;
+ optional uint32 rt_store_asset_mtime = 46;
+ optional uint32 rt_custom_image_mtime = 47;
+ optional uint32 optional_parent_app_id = 48;
+ optional uint32 owner_account_id = 49;
+ optional uint32 review_score_with_bombs = 53;
+ optional uint32 review_percentage_with_bombs = 54;
+ optional uint32 review_score_without_bombs = 55;
+ optional uint32 review_percentage_without_bombs = 56;
+ optional string library_id = 57;
+ optional bool vr_only = 58;
+ optional uint32 mastersub_appid = 59;
+ optional string mastersub_includedwith_logo = 60;
+ optional string site_license_site_name = 62;
+ optional uint32 shortcut_override_appid = 63;
+ optional .ESteamDeckCompatibilityCategory steam_deck_compat_category = 64 [default = k_ESteamDeckCompatibilityCategory_Unknown];
+ optional uint32 rt_last_time_locally_played = 65;
+ optional uint32 rt_purchased_time = 66;
+ optional string header_filename = 67;
+}
+
+message CAppOverview_Change {
+ repeated .CAppOverview app_overview = 1;
+ repeated uint32 removed_appid = 2;
+ optional bool full_update = 3;
+ optional bool update_complete = 4;
+}
+
+message CAppBootstrapData {
+ optional uint32 appid = 1;
+ optional bool hidden = 2;
+ repeated string user_tag = 3;
+}
+
+message CLibraryBootstrapData {
+ repeated .CAppBootstrapData app_data = 1;
+}
diff --git a/protobuf_files/orig/steam/steammessages_auth.steamclient.proto b/protobuf_files/orig/steam/steammessages_auth.steamclient.proto
new file mode 100644
index 00000000..f39bf912
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_auth.steamclient.proto
@@ -0,0 +1,411 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+import "enums.proto";
+
+option cc_generic_services = true;
+
+enum EAuthTokenPlatformType {
+ k_EAuthTokenPlatformType_Unknown = 0;
+ k_EAuthTokenPlatformType_SteamClient = 1;
+ k_EAuthTokenPlatformType_WebBrowser = 2;
+ k_EAuthTokenPlatformType_MobileApp = 3;
+}
+
+enum EAuthSessionGuardType {
+ k_EAuthSessionGuardType_Unknown = 0;
+ k_EAuthSessionGuardType_None = 1;
+ k_EAuthSessionGuardType_EmailCode = 2;
+ k_EAuthSessionGuardType_DeviceCode = 3;
+ k_EAuthSessionGuardType_DeviceConfirmation = 4;
+ k_EAuthSessionGuardType_EmailConfirmation = 5;
+ k_EAuthSessionGuardType_MachineToken = 6;
+ k_EAuthSessionGuardType_LegacyMachineAuth = 7;
+}
+
+enum EAuthSessionSecurityHistory {
+ k_EAuthSessionSecurityHistory_Invalid = 0;
+ k_EAuthSessionSecurityHistory_UsedPreviously = 1;
+ k_EAuthSessionSecurityHistory_NoPriorHistory = 2;
+}
+
+enum EAuthTokenRevokeAction {
+ k_EAuthTokenRevokeLogout = 0;
+ k_EAuthTokenRevokePermanent = 1;
+ k_EAuthTokenRevokeReplaced = 2;
+ k_EAuthTokenRevokeSupport = 3;
+ k_EAuthTokenRevokeConsume = 4;
+}
+
+enum EAuthTokenState {
+ k_EAuthTokenState_Invalid = 0;
+ k_EAuthTokenState_New = 1;
+ k_EAuthTokenState_Confirmed = 2;
+ k_EAuthTokenState_Issued = 3;
+ k_EAuthTokenState_Denied = 4;
+ k_EAuthTokenState_LoggedOut = 5;
+ k_EAuthTokenState_Consumed = 6;
+ k_EAuthTokenState_Revoked = 99;
+}
+
+message CAuthentication_GetPasswordRSAPublicKey_Request {
+ optional string account_name = 1 [(description) = "user-provided account name to get an RSA key for"];
+}
+
+message CAuthentication_GetPasswordRSAPublicKey_Response {
+ optional string publickey_mod = 1 [(description) = "the public key modulus"];
+ optional string publickey_exp = 2 [(description) = "the public key exponent"];
+ optional uint64 timestamp = 3 [(description) = "the timestamp the key was generated"];
+}
+
+message CAuthentication_DeviceDetails {
+ optional string device_friendly_name = 1 [(description) = "User-supplied, or client-supplied, friendly name of device"];
+ optional .EAuthTokenPlatformType platform_type = 2 [default = k_EAuthTokenPlatformType_Unknown, (description) = "EAuthTokenPlatformType, claimed, of device"];
+ optional int32 os_type = 3 [(description) = "EOSType, claimed, of authorized device"];
+ optional uint32 gaming_device_type = 4 [(description) = "EGamingDeviceType, claimed, of authorized device for steam client-type devices"];
+}
+
+message CAuthentication_BeginAuthSessionViaQR_Request {
+ optional string device_friendly_name = 1;
+ optional .EAuthTokenPlatformType platform_type = 2 [default = k_EAuthTokenPlatformType_Unknown];
+ optional .CAuthentication_DeviceDetails device_details = 3 [(description) = "User-supplied details about the device attempting to sign in"];
+ optional string website_id = 4 [default = "Unknown", (description) = "(EMachineAuthWebDomain) identifier of client requesting auth"];
+}
+
+message CAuthentication_AllowedConfirmation {
+ optional .EAuthSessionGuardType confirmation_type = 1 [default = k_EAuthSessionGuardType_Unknown, (description) = "authentication can proceed with this confirmation type"];
+ optional string associated_message = 2 [(description) = "message to be interpreted depending on the confirmation type. for email confirmation, this might be the redacted email address to which email was sent."];
+}
+
+message CAuthentication_BeginAuthSessionViaQR_Response {
+ optional uint64 client_id = 1 [(description) = "unique identifier of requestor, also used for routing, portion of QR code"];
+ optional string challenge_url = 2 [(description) = "URL based on client ID, which will be rendered as QR code"];
+ optional bytes request_id = 3 [(description) = "unique request ID to be presented by requestor at poll time - must not be rendered in QR"];
+ optional float interval = 4 [(description) = "refresh interval with which requestor should call PollAuthSessionStatus"];
+ repeated .CAuthentication_AllowedConfirmation allowed_confirmations = 5 [(description) = "the confirmation types that will be able to confirm the request"];
+ optional int32 version = 6 [(description) = "version of the QR data"];
+}
+
+message CAuthentication_BeginAuthSessionViaCredentials_Request {
+ optional string device_friendly_name = 1;
+ optional string account_name = 2;
+ optional string encrypted_password = 3 [(description) = "password, RSA encrypted client side"];
+ optional uint64 encryption_timestamp = 4 [(description) = "timestamp to map to a key - STime"];
+ optional bool remember_login = 5 [(description) = "deprecated"];
+ optional .EAuthTokenPlatformType platform_type = 6 [default = k_EAuthTokenPlatformType_Unknown];
+ optional .ESessionPersistence persistence = 7 [default = k_ESessionPersistence_Persistent, (description) = "whether we are requesting a persistent or an ephemeral session"];
+ optional string website_id = 8 [default = "Unknown", (description) = "(EMachineAuthWebDomain) identifier of client requesting auth"];
+ optional .CAuthentication_DeviceDetails device_details = 9 [(description) = "User-supplied details about the device attempting to sign in"];
+ optional string guard_data = 10 [(description) = "steam guard data for client login"];
+ optional uint32 language = 11;
+ optional int32 qos_level = 12 [default = 2, (description) = "[ENetQOSLevel] client-specified priority for this auth attempt"];
+}
+
+message CAuthentication_BeginAuthSessionViaCredentials_Response {
+ optional uint64 client_id = 1 [(description) = "unique identifier of requestor, also used for routing"];
+ optional bytes request_id = 2 [(description) = "unique request ID to be presented by requestor at poll time - must not be transferred or displayed"];
+ optional float interval = 3 [(description) = "refresh interval with which requestor should call PollAuthSessionStatus"];
+ repeated .CAuthentication_AllowedConfirmation allowed_confirmations = 4 [(description) = "the confirmation types that will be able to confirm the request"];
+ optional uint64 steamid = 5 [(description) = "steamid of the account logging in - will only be included if the credentials were correct"];
+ optional string weak_token = 6 [(description) = "partial-authentication token - limited lifetime and scope, included only if credentials were valid"];
+ optional string agreement_session_url = 7 [(description) = "agreement the user needs to agree to"];
+ optional string extended_error_message = 8 [(description) = "error string to display if supported by the client"];
+}
+
+message CAuthentication_PollAuthSessionStatus_Request {
+ optional uint64 client_id = 1;
+ optional bytes request_id = 2;
+ optional fixed64 token_to_revoke = 3 [(description) = "If this is set to a token owned by this user, that token will be retired"];
+}
+
+message CAuthentication_PollAuthSessionStatus_Response {
+ optional uint64 new_client_id = 1 [(description) = "if challenge is old, this is the new client id"];
+ optional string new_challenge_url = 2 [(description) = "if challenge is old, this is the new challenge ID to re-render for mobile confirmation"];
+ optional string refresh_token = 3 [(description) = "if login has been confirmed, this is the requestor's new refresh token"];
+ optional string access_token = 4 [(description) = "if login has been confirmed, this is a new token subordinate to refresh_token"];
+ optional bool had_remote_interaction = 5 [(description) = "whether or not the auth session appears to have had remote interaction from a potential confirmer"];
+ optional string account_name = 6 [(description) = "account name of authenticating account, for use by UI layer"];
+ optional string new_guard_data = 7 [(description) = "if login has been confirmed, may contain remembered machine ID for future login"];
+ optional string agreement_session_url = 8 [(description) = "agreement the user needs to agree to"];
+}
+
+message CAuthentication_GetAuthSessionInfo_Request {
+ optional uint64 client_id = 1 [(description) = "client ID from scanned QR Code, used for routing"];
+}
+
+message CAuthentication_GetAuthSessionInfo_Response {
+ optional string ip = 1 [(description) = "IP address of requestor"];
+ optional string geoloc = 2 [(description) = "geoloc info of requestor"];
+ optional string city = 3 [(description) = "city of requestor"];
+ optional string state = 4 [(description) = "state of requestor"];
+ optional string country = 5 [(description) = "country of requestor"];
+ optional .EAuthTokenPlatformType platform_type = 6 [default = k_EAuthTokenPlatformType_Unknown, (description) = "platform type of requestor"];
+ optional string device_friendly_name = 7 [(description) = "name of requestor device"];
+ optional int32 version = 8 [(description) = "version field"];
+ optional .EAuthSessionSecurityHistory login_history = 9 [default = k_EAuthSessionSecurityHistory_Invalid, (description) = "whether the ip has previuously been used on the account successfully"];
+ optional bool requestor_location_mismatch = 10 [(description) = "whether the requestor location matches this requests location"];
+ optional bool high_usage_login = 11 [(description) = "whether this login has seen high usage recently"];
+ optional .ESessionPersistence requested_persistence = 12 [default = k_ESessionPersistence_Invalid, (description) = "session persistence requestor has indicated they want"];
+}
+
+message CAuthentication_UpdateAuthSessionWithMobileConfirmation_Request {
+ optional int32 version = 1 [(description) = "version field"];
+ optional uint64 client_id = 2 [(description) = "pending client ID, from scanned QR Code"];
+ optional fixed64 steamid = 3 [(description) = "user who wants to login"];
+ optional bytes signature = 4 [(description) = "HMAC digest over {version,client_id,steamid} via user's private key"];
+ optional bool confirm = 5 [default = false, (description) = "Whether to confirm the login (true) or deny the login (false)"];
+ optional .ESessionPersistence persistence = 6 [default = k_ESessionPersistence_Persistent, (description) = "whether we are requesting a persistent or an ephemeral session"];
+}
+
+message CAuthentication_UpdateAuthSessionWithMobileConfirmation_Response {
+}
+
+message CAuthentication_UpdateAuthSessionWithSteamGuardCode_Request {
+ optional uint64 client_id = 1 [(description) = "pending client ID, from initialized session"];
+ optional fixed64 steamid = 2 [(description) = "user who wants to login"];
+ optional string code = 3 [(description) = "confirmation code"];
+ optional .EAuthSessionGuardType code_type = 4 [default = k_EAuthSessionGuardType_Unknown, (description) = "type of confirmation code"];
+}
+
+message CAuthentication_UpdateAuthSessionWithSteamGuardCode_Response {
+ optional string agreement_session_url = 7 [(description) = "agreement the user needs to agree to"];
+}
+
+message CAuthentication_AccessToken_GenerateForApp_Request {
+ optional string refresh_token = 1;
+ optional fixed64 steamid = 2;
+}
+
+message CAuthentication_AccessToken_GenerateForApp_Response {
+ optional string access_token = 1;
+}
+
+message CAuthentication_RefreshToken_Enumerate_Request {
+}
+
+message CAuthentication_RefreshToken_Enumerate_Response {
+ message TokenUsageEvent {
+ optional uint32 time = 1 [(description) = "Approximate time of history event (may be deliberately fuzzed or omitted)"];
+ optional .CMsgIPAddress ip = 2 [(description) = "IP at which event was observed"];
+ optional string locale = 3;
+ optional string country = 4 [(description) = "Location (country code) of event, as inferred from IP"];
+ optional string state = 5 [(description) = "Location (state code) of event, as inferred from IP"];
+ optional string city = 6 [(description) = "Location (city) of event, as inferred from IP"];
+ }
+
+ message RefreshTokenDescription {
+ optional fixed64 token_id = 1 [(description) = "Persistent token/device identifier"];
+ optional string token_description = 2 [(description) = "client-supplied friendly name for the device"];
+ optional uint32 time_updated = 3;
+ optional .EAuthTokenPlatformType platform_type = 4 [default = k_EAuthTokenPlatformType_Unknown, (description) = "gross platform type (mobile/client/browser)"];
+ optional bool logged_in = 5 [(description) = "If true, this token is currently valid. False indicates it is a machine token - ok for steamguard if you know the credential"];
+ optional uint32 os_platform = 6 [(description) = "EPlatformType - rough classification of device OS, if known"];
+ optional uint32 auth_type = 7 [(description) = "EAuthTokenGuardType - device authorization mechanism, if known"];
+ optional uint32 gaming_device_type = 8 [(description) = "EGamingDeviceType - classify console/PC/SteamDeck, if known; applies only for Steam Client devices"];
+ optional .CAuthentication_RefreshToken_Enumerate_Response.TokenUsageEvent first_seen = 9 [(description) = "Information about original authorization event"];
+ optional .CAuthentication_RefreshToken_Enumerate_Response.TokenUsageEvent last_seen = 10 [(description) = "Information about most-recently seen, if known for this device"];
+ optional int32 os_type = 11 [(description) = "EOSType - specific device OS, if known"];
+ }
+
+ repeated .CAuthentication_RefreshToken_Enumerate_Response.RefreshTokenDescription refresh_tokens = 1;
+ optional fixed64 requesting_token = 2;
+}
+
+message CAuthentication_GetAuthSessionsForAccount_Request {
+}
+
+message CAuthentication_GetAuthSessionsForAccount_Response {
+ repeated uint64 client_ids = 1 [(description) = "unique identifier of requestor, also used for routing"];
+}
+
+message CAuthentication_MigrateMobileSession_Request {
+ optional fixed64 steamid = 1 [(description) = "Steam ID of the user to migrate"];
+ optional string token = 2 [(description) = "WG Token to migrate"];
+ optional string signature = 3 [(description) = "Signature over the wg token using the user's 2FA token"];
+}
+
+message CAuthentication_MigrateMobileSession_Response {
+ optional string refresh_token = 1;
+ optional string access_token = 2;
+}
+
+message CAuthentication_RefreshToken_Revoke_Request {
+ optional fixed64 token_id = 1;
+ optional fixed64 steamid = 2 [(description) = "Token holder if an admin action on behalf of another user"];
+ optional .EAuthTokenRevokeAction revoke_action = 3 [default = k_EAuthTokenRevokePermanent, (description) = "Select between logout and logout-and-forget-machine"];
+ optional bytes signature = 4 [(description) = "required signature over token_id"];
+}
+
+message CAuthentication_RefreshToken_Revoke_Response {
+}
+
+message CAuthenticationSupport_QueryRefreshTokensByAccount_Request {
+ optional fixed64 steamid = 1 [(description) = "SteamID of the account to query (required)"];
+ optional bool include_revoked_tokens = 2 [(description) = "Includes tokens that are revoked or expired in the query"];
+}
+
+message CSupportRefreshTokenDescription {
+ message TokenUsageEvent {
+ optional uint32 time = 1 [(description) = "Approximate time of history event (may be deliberately fuzzed or omitted)"];
+ optional .CMsgIPAddress ip = 2 [(description) = "IP at which event was observed"];
+ optional string country = 3 [(description) = "Location (country code) of event, as inferred from IP"];
+ optional string state = 4 [(description) = "Location (state code) of event, as inferred from IP"];
+ optional string city = 5 [(description) = "Location (city) of event, as inferred from IP"];
+ }
+
+ optional fixed64 token_id = 1;
+ optional string token_description = 2;
+ optional uint32 time_updated = 3;
+ optional .EAuthTokenPlatformType platform_type = 4 [default = k_EAuthTokenPlatformType_Unknown];
+ optional .EAuthTokenState token_state = 5 [default = k_EAuthTokenState_Invalid];
+ optional fixed64 owner_steamid = 6;
+ optional uint32 os_platform = 7 [(description) = "EPlatformType - rough classification of device OS, if known"];
+ optional int32 os_type = 8 [(description) = "EOSType - specific device OS, if known"];
+ optional uint32 auth_type = 9 [(description) = "EAuthTokenGuardType - device authorization mechanism, if known"];
+ optional uint32 gaming_device_type = 10 [(description) = "EGamingDeviceType - classify console/PC/SteamDeck, if known; applies only for Steam Client devices"];
+ optional .CSupportRefreshTokenDescription.TokenUsageEvent first_seen = 11 [(description) = "Information about original authorization event"];
+ optional .CSupportRefreshTokenDescription.TokenUsageEvent last_seen = 12 [(description) = "Information about most-recently seen, if known for this device"];
+}
+
+message CAuthenticationSupport_QueryRefreshTokensByAccount_Response {
+ repeated .CSupportRefreshTokenDescription refresh_tokens = 1;
+ optional int32 last_token_reset = 2;
+}
+
+message CAuthenticationSupport_QueryRefreshTokenByID_Request {
+ optional fixed64 token_id = 1 [(description) = "Token ID of the token to look up (required)"];
+}
+
+message CAuthenticationSupport_QueryRefreshTokenByID_Response {
+ repeated .CSupportRefreshTokenDescription refresh_tokens = 1;
+}
+
+message CAuthenticationSupport_RevokeToken_Request {
+ optional fixed64 token_id = 1 [(description) = "Token ID of the token to revoke (required)"];
+ optional fixed64 steamid = 2 [(description) = "Steam ID of the owner of that token (required)"];
+}
+
+message CAuthenticationSupport_RevokeToken_Response {
+}
+
+message CAuthenticationSupport_GetTokenHistory_Request {
+ optional fixed64 token_id = 1 [(description) = "Token ID of the token to get history for (required)"];
+}
+
+message CSupportRefreshTokenAudit {
+ optional int32 action = 1;
+ optional uint32 time = 2;
+ optional .CMsgIPAddress ip = 3;
+ optional fixed64 actor = 4;
+}
+
+message CAuthenticationSupport_GetTokenHistory_Response {
+ repeated .CSupportRefreshTokenAudit history = 1;
+}
+
+message CCloudGaming_CreateNonce_Request {
+ optional string platform = 1;
+ optional uint32 appid = 2;
+}
+
+message CCloudGaming_CreateNonce_Response {
+ optional string nonce = 1;
+ optional uint32 expiry = 2;
+}
+
+message CCloudGaming_GetTimeRemaining_Request {
+ optional string platform = 1;
+ repeated uint32 appid_list = 2;
+}
+
+message CCloudGaming_TimeRemaining {
+ optional uint32 appid = 1;
+ optional uint32 minutes_remaining = 2;
+}
+
+message CCloudGaming_GetTimeRemaining_Response {
+ repeated .CCloudGaming_TimeRemaining entries = 2;
+}
+
+service Authentication {
+ option (service_description) = "Authentication Service";
+
+ rpc GetPasswordRSAPublicKey (.CAuthentication_GetPasswordRSAPublicKey_Request) returns (.CAuthentication_GetPasswordRSAPublicKey_Response) {
+ option (method_description) = "Fetches RSA public key to use to encrypt passwords for a given account name";
+ }
+
+ rpc BeginAuthSessionViaQR (.CAuthentication_BeginAuthSessionViaQR_Request) returns (.CAuthentication_BeginAuthSessionViaQR_Response) {
+ option (method_description) = "start authentication process";
+ }
+
+ rpc BeginAuthSessionViaCredentials (.CAuthentication_BeginAuthSessionViaCredentials_Request) returns (.CAuthentication_BeginAuthSessionViaCredentials_Response) {
+ option (method_description) = "start authentication process";
+ }
+
+ rpc PollAuthSessionStatus (.CAuthentication_PollAuthSessionStatus_Request) returns (.CAuthentication_PollAuthSessionStatus_Response) {
+ option (method_description) = "poll during authentication process";
+ }
+
+ rpc GetAuthSessionInfo (.CAuthentication_GetAuthSessionInfo_Request) returns (.CAuthentication_GetAuthSessionInfo_Response) {
+ option (method_description) = "get metadata of specific auth session, this will also implicitly bind the calling account";
+ }
+
+ rpc UpdateAuthSessionWithMobileConfirmation (.CAuthentication_UpdateAuthSessionWithMobileConfirmation_Request) returns (.CAuthentication_UpdateAuthSessionWithMobileConfirmation_Response) {
+ option (method_description) = "approve an authentication session via mobile 2fa";
+ }
+
+ rpc UpdateAuthSessionWithSteamGuardCode (.CAuthentication_UpdateAuthSessionWithSteamGuardCode_Request) returns (.CAuthentication_UpdateAuthSessionWithSteamGuardCode_Response) {
+ option (method_description) = "approve an authentication session via steam guard code";
+ }
+
+ rpc GenerateAccessTokenForApp (.CAuthentication_AccessToken_GenerateForApp_Request) returns (.CAuthentication_AccessToken_GenerateForApp_Response) {
+ option (method_description) = "Given a refresh token for a client app audience (e.g. desktop client / mobile client), generate an access token";
+ }
+
+ rpc EnumerateTokens (.CAuthentication_RefreshToken_Enumerate_Request) returns (.CAuthentication_RefreshToken_Enumerate_Response) {
+ option (method_description) = "Enumerate durable (refresh) tokens for the given subject account";
+ }
+
+ rpc GetAuthSessionsForAccount (.CAuthentication_GetAuthSessionsForAccount_Request) returns (.CAuthentication_GetAuthSessionsForAccount_Response) {
+ option (method_description) = "Gets all active auth sessions for an account for reference by the mobile app";
+ }
+
+ rpc MigrateMobileSession (.CAuthentication_MigrateMobileSession_Request) returns (.CAuthentication_MigrateMobileSession_Response) {
+ option (method_description) = "Migrates a WG token to an access and refresh token using a signature generated with the user's 2FA secret";
+ }
+
+ rpc RevokeRefreshToken (.CAuthentication_RefreshToken_Revoke_Request) returns (.CAuthentication_RefreshToken_Revoke_Response) {
+ option (method_description) = "Mark the given refresh token as revoked";
+ }
+}
+
+service AuthenticationSupport {
+ option (service_description) = "Authentication Support Service";
+
+ rpc QueryRefreshTokensByAccount (.CAuthenticationSupport_QueryRefreshTokensByAccount_Request) returns (.CAuthenticationSupport_QueryRefreshTokensByAccount_Response) {
+ option (method_description) = "Asks the server for a list of refresh tokens associated with an account";
+ }
+
+ rpc QueryRefreshTokenByID (.CAuthenticationSupport_QueryRefreshTokenByID_Request) returns (.CAuthenticationSupport_QueryRefreshTokenByID_Response) {
+ option (method_description) = "Asks the server for a list of refresh tokens associated with an account";
+ }
+
+ rpc RevokeToken (.CAuthenticationSupport_RevokeToken_Request) returns (.CAuthenticationSupport_RevokeToken_Response) {
+ option (method_description) = "Revokes a user's auth token";
+ }
+
+ rpc GetTokenHistory (.CAuthenticationSupport_GetTokenHistory_Request) returns (.CAuthenticationSupport_GetTokenHistory_Response) {
+ option (method_description) = "Gets the audit history for a user's auth token";
+ }
+}
+
+service CloudGaming {
+ option (service_description) = "Methods for Steam cloud gaming operations";
+
+ rpc CreateNonce (.CCloudGaming_CreateNonce_Request) returns (.CCloudGaming_CreateNonce_Response) {
+ option (method_description) = "Create a nonce for a cloud gaming service session";
+ }
+
+ rpc GetTimeRemaining (.CCloudGaming_GetTimeRemaining_Request) returns (.CCloudGaming_GetTimeRemaining_Response) {
+ option (method_description) = "Get the amount of streaming time remaining for a set of apps";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_base.proto b/protobuf_files/orig/steam/steammessages_base.proto
new file mode 100644
index 00000000..d64ce8ac
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_base.proto
@@ -0,0 +1,314 @@
+import "google/protobuf/descriptor.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = true;
+option (force_php_generation) = true;
+
+extend .google.protobuf.MessageOptions {
+ optional int32 msgpool_soft_limit = 50000 [default = 32];
+ optional int32 msgpool_hard_limit = 50001 [default = 384];
+}
+
+extend .google.protobuf.FileOptions {
+ optional bool force_php_generation = 50000 [default = false];
+}
+
+extend .google.protobuf.FieldOptions {
+ optional bool php_output_always_number = 50020 [default = false];
+ optional bool allow_field_named_steam_id = 50024 [default = false];
+}
+
+enum EBanContentCheckResult {
+ k_EBanContentCheckResult_NotScanned = 0;
+ k_EBanContentCheckResult_Reset = 1;
+ k_EBanContentCheckResult_NeedsChecking = 2;
+ k_EBanContentCheckResult_VeryUnlikely = 5;
+ k_EBanContentCheckResult_Unlikely = 30;
+ k_EBanContentCheckResult_Possible = 50;
+ k_EBanContentCheckResult_Likely = 75;
+ k_EBanContentCheckResult_VeryLikely = 100;
+}
+
+enum EProtoClanEventType {
+ k_EClanOtherEvent = 1;
+ k_EClanGameEvent = 2;
+ k_EClanPartyEvent = 3;
+ k_EClanMeetingEvent = 4;
+ k_EClanSpecialCauseEvent = 5;
+ k_EClanMusicAndArtsEvent = 6;
+ k_EClanSportsEvent = 7;
+ k_EClanTripEvent = 8;
+ k_EClanChatEvent = 9;
+ k_EClanGameReleaseEvent = 10;
+ k_EClanBroadcastEvent = 11;
+ k_EClanSmallUpdateEvent = 12;
+ k_EClanPreAnnounceMajorUpdateEvent = 13;
+ k_EClanMajorUpdateEvent = 14;
+ k_EClanDLCReleaseEvent = 15;
+ k_EClanFutureReleaseEvent = 16;
+ k_EClanESportTournamentStreamEvent = 17;
+ k_EClanDevStreamEvent = 18;
+ k_EClanFamousStreamEvent = 19;
+ k_EClanGameSalesEvent = 20;
+ k_EClanGameItemSalesEvent = 21;
+ k_EClanInGameBonusXPEvent = 22;
+ k_EClanInGameLootEvent = 23;
+ k_EClanInGamePerksEvent = 24;
+ k_EClanInGameChallengeEvent = 25;
+ k_EClanInGameContestEvent = 26;
+ k_EClanIRLEvent = 27;
+ k_EClanNewsEvent = 28;
+ k_EClanBetaReleaseEvent = 29;
+ k_EClanInGameContentReleaseEvent = 30;
+ k_EClanFreeTrial = 31;
+ k_EClanSeasonRelease = 32;
+ k_EClanSeasonUpdate = 33;
+ k_EClanCrosspostEvent = 34;
+ k_EClanInGameEventGeneral = 35;
+}
+
+enum PartnerEventNotificationType {
+ k_EEventStart = 0;
+ k_EEventBroadcastStart = 1;
+ k_EEventMatchStart = 2;
+ k_EEventPartnerMaxType = 3;
+}
+
+message CMsgIPAddress {
+ oneof ip {
+ fixed32 v4 = 1;
+ bytes v6 = 2;
+ }
+}
+
+message CMsgIPAddressBucket {
+ optional .CMsgIPAddress original_ip_address = 1;
+ optional fixed64 bucket = 2;
+}
+
+message CMsgGCRoutingProtoBufHeader {
+ optional uint64 dst_gcid_queue = 1;
+ optional uint32 dst_gc_dir_index = 2;
+}
+
+message CMsgProtoBufHeader {
+ optional fixed64 steamid = 1;
+ optional int32 client_sessionid = 2;
+ optional uint32 routing_appid = 3;
+ optional fixed64 jobid_source = 10 [default = 18446744073709551615];
+ optional fixed64 jobid_target = 11 [default = 18446744073709551615];
+ optional string target_job_name = 12;
+ optional int32 seq_num = 24;
+ optional int32 eresult = 13 [default = 2];
+ optional string error_message = 14;
+ optional uint32 auth_account_flags = 16;
+ optional uint32 token_source = 22;
+ optional bool admin_spoofing_user = 23;
+ optional int32 transport_error = 17 [default = 1];
+ optional uint64 messageid = 18 [default = 18446744073709551615];
+ optional uint32 publisher_group_id = 19;
+ optional uint32 sysid = 20;
+ optional uint64 trace_tag = 21;
+ optional uint32 webapi_key_id = 25;
+ optional bool is_from_external_source = 26;
+ repeated uint32 forward_to_sysid = 27;
+ optional uint32 cm_sysid = 28;
+ optional uint32 launcher_type = 31 [default = 0];
+ optional uint32 realm = 32 [default = 0];
+ optional int32 timeout_ms = 33 [default = -1];
+ optional string debug_source = 34;
+ optional uint32 debug_source_string_index = 35;
+ optional uint64 token_id = 36;
+ optional .CMsgGCRoutingProtoBufHeader routing_gc = 37;
+
+ oneof ip_addr {
+ uint32 ip = 15;
+ bytes ip_v6 = 29;
+ }
+}
+
+message CMsgMulti {
+ optional uint32 size_unzipped = 1;
+ optional bytes message_body = 2;
+}
+
+message CMsgProtobufWrapped {
+ optional bytes message_body = 1;
+}
+
+message CMsgAuthTicket {
+ optional uint32 estate = 1;
+ optional uint32 eresult = 2 [default = 2];
+ optional fixed64 steamid = 3;
+ optional fixed64 gameid = 4;
+ optional uint32 h_steam_pipe = 5;
+ optional uint32 ticket_crc = 6;
+ optional bytes ticket = 7;
+ optional bytes server_secret = 8;
+}
+
+message CCDDBAppDetailCommon {
+ optional uint32 appid = 1;
+ optional string name = 2;
+ optional string icon = 3;
+ optional bool tool = 6;
+ optional bool demo = 7;
+ optional bool media = 8;
+ optional bool community_visible_stats = 9;
+ optional string friendly_name = 10;
+ optional string propagation = 11;
+ optional bool has_adult_content = 12;
+ optional bool is_visible_in_steam_china = 13;
+ optional uint32 app_type = 14;
+ optional bool has_adult_content_sex = 15;
+ optional bool has_adult_content_violence = 16;
+ repeated uint32 content_descriptorids = 17;
+}
+
+message CMsgAppRights {
+ optional bool edit_info = 1;
+ optional bool publish = 2;
+ optional bool view_error_data = 3;
+ optional bool download = 4;
+ optional bool upload_cdkeys = 5;
+ optional bool generate_cdkeys = 6;
+ optional bool view_financials = 7;
+ optional bool manage_ceg = 8;
+ optional bool manage_signing = 9;
+ optional bool manage_cdkeys = 10;
+ optional bool edit_marketing = 11;
+ optional bool economy_support = 12;
+ optional bool economy_support_supervisor = 13;
+ optional bool manage_pricing = 14;
+ optional bool broadcast_live = 15;
+ optional bool view_marketing_traffic = 16;
+ optional bool edit_store_display_content = 17;
+}
+
+message CCuratorPreferences {
+ optional uint32 supported_languages = 1;
+ optional bool platform_windows = 2;
+ optional bool platform_mac = 3;
+ optional bool platform_linux = 4;
+ optional bool vr_content = 5;
+ optional bool adult_content_violence = 6;
+ optional bool adult_content_sex = 7;
+ optional uint32 timestamp_updated = 8;
+ repeated uint32 tagids_curated = 9;
+ repeated uint32 tagids_filtered = 10;
+ optional string website_title = 11;
+ optional string website_url = 12;
+ optional string discussion_url = 13;
+ optional bool show_broadcast = 14;
+}
+
+message CLocalizationToken {
+ optional uint32 language = 1;
+ optional string localized_string = 2;
+}
+
+message CClanEventUserNewsTuple {
+ optional uint32 clanid = 1;
+ optional fixed64 event_gid = 2;
+ optional fixed64 announcement_gid = 3;
+ optional uint32 rtime_start = 4;
+ optional uint32 rtime_end = 5;
+ optional uint32 priority_score = 6;
+ optional uint32 type = 7;
+ optional uint32 clamp_range_slot = 8;
+ optional uint32 appid = 9;
+ optional uint32 rtime32_last_modified = 10;
+}
+
+message CClanMatchEventByRange {
+ optional uint32 rtime_before = 1;
+ optional uint32 rtime_after = 2;
+ optional uint32 qualified = 3;
+ repeated .CClanEventUserNewsTuple events = 4;
+}
+
+message CCommunity_ClanAnnouncementInfo {
+ optional uint64 gid = 1;
+ optional uint64 clanid = 2;
+ optional uint64 posterid = 3;
+ optional string headline = 4;
+ optional uint32 posttime = 5;
+ optional uint32 updatetime = 6;
+ optional string body = 7;
+ optional int32 commentcount = 8;
+ repeated string tags = 9;
+ optional int32 language = 10;
+ optional bool hidden = 11;
+ optional fixed64 forum_topic_id = 12;
+ optional fixed64 event_gid = 13;
+ optional int32 voteupcount = 14;
+ optional int32 votedowncount = 15;
+ optional .EBanContentCheckResult ban_check_result = 16 [default = k_EBanContentCheckResult_NotScanned];
+ optional bool banned = 17;
+}
+
+message CClanEventData {
+ optional fixed64 gid = 1;
+ optional fixed64 clan_steamid = 2;
+ optional string event_name = 3;
+ optional .EProtoClanEventType event_type = 4 [default = k_EClanOtherEvent];
+ optional uint32 appid = 5;
+ optional string server_address = 6;
+ optional string server_password = 7;
+ optional uint32 rtime32_start_time = 8;
+ optional uint32 rtime32_end_time = 9;
+ optional int32 comment_count = 10;
+ optional fixed64 creator_steamid = 11;
+ optional fixed64 last_update_steamid = 12;
+ optional string event_notes = 13;
+ optional string jsondata = 14;
+ optional .CCommunity_ClanAnnouncementInfo announcement_body = 15;
+ optional bool published = 16;
+ optional bool hidden = 17;
+ optional uint32 rtime32_visibility_start = 18;
+ optional uint32 rtime32_visibility_end = 19;
+ optional uint32 broadcaster_accountid = 20;
+ optional uint32 follower_count = 21;
+ optional uint32 ignore_count = 22;
+ optional fixed64 forum_topic_id = 23;
+ optional uint32 rtime32_last_modified = 24;
+ optional fixed64 news_post_gid = 25;
+ optional uint32 rtime_mod_reviewed = 26;
+ optional uint32 featured_app_tagid = 27;
+ repeated uint32 referenced_appids = 28;
+ optional uint32 build_id = 29;
+ optional string build_branch = 30;
+}
+
+message CBilling_Address {
+ optional string first_name = 1;
+ optional string last_name = 2;
+ optional string address1 = 3;
+ optional string address2 = 4;
+ optional string city = 5;
+ optional string us_state = 6;
+ optional string country_code = 7;
+ optional string postcode = 8;
+ optional int32 zip_plus4 = 9;
+ optional string phone = 10;
+}
+
+message CPackageReservationStatus {
+ optional uint32 packageid = 1;
+ optional int32 reservation_state = 2;
+ optional int32 queue_position = 3;
+ optional int32 total_queue_size = 4;
+ optional string reservation_country_code = 5;
+ optional bool expired = 6;
+ optional uint32 time_expires = 7;
+ optional uint32 time_reserved = 8;
+}
+
+message CMsgKeyValuePair {
+ optional string name = 1;
+ optional string value = 2;
+}
+
+message CMsgKeyValueSet {
+ repeated .CMsgKeyValuePair pairs = 1;
+}
diff --git a/protobuf_files/orig/steam/steammessages_broadcast.steamclient.proto b/protobuf_files/orig/steam/steammessages_broadcast.steamclient.proto
new file mode 100644
index 00000000..7b66a07c
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_broadcast.steamclient.proto
@@ -0,0 +1,758 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+enum EBroadcastWatchLocation {
+ k_EBroadcastWatchLocation_Invalid = 0;
+ k_EBroadcastWatchLocation_SteamTV_Tab = 1;
+ k_EBroadcastWatchLocation_SteamTV_WatchParty = 2;
+ k_EBroadcastWatchLocation_Chat_Tab = 3;
+ k_EBroadcastWatchLocation_Chat_WatchParty = 4;
+ k_EBroadcastWatchLocation_CommunityPage = 5;
+ k_EBroadcastWatchLocation_StoreAppPage = 6;
+ k_EBroadcastWatchLocation_InGame = 7;
+ k_EBroadcastWatchLocation_BigPicture = 8;
+ k_EBroadcastWatchLocation_SalesPage = 9;
+ k_EBroadcastWatchLocation_CuratorPage = 10;
+ k_EBroadcastWatchLocation_DeveloperPage = 11;
+ k_EBroadcastWatchLocation_Chat_Friends = 12;
+ k_EBroadcastWatchLocation_SteamTV_Web = 13;
+}
+
+enum EBroadcastChatPermission {
+ k_EBroadcastChatPermissionPublic = 0;
+ k_EBroadcastChatPermissionOwnsApp = 1;
+}
+
+message CBroadcast_BeginBroadcastSession_Request {
+ optional int32 permission = 1;
+ optional uint64 gameid = 2;
+ optional uint64 client_instance_id = 3;
+ optional string title = 4;
+ optional uint32 cellid = 5;
+ optional uint64 rtmp_token = 6;
+ optional bool thumbnail_upload = 7;
+ optional string client_beta = 8;
+ optional uint32 sysid = 9;
+ optional bool allow_webrtc = 10;
+}
+
+message CBroadcast_BeginBroadcastSession_Response {
+ optional fixed64 broadcast_id = 1;
+ optional string thumbnail_upload_address = 2 [(description) = "Http address to upload the thumbnail data."];
+ optional string thumbnail_upload_token = 3 [(description) = "token to authorize as broadcaster to upload content to the relay."];
+ optional uint32 thumbnail_interval_seconds = 4 [(description) = "how many seconds between thumbnails"];
+ optional uint32 heartbeat_interval_seconds = 5 [(description) = "how many seconds between session heartbeats"];
+}
+
+message CBroadcast_EndBroadcastSession_Request {
+ optional fixed64 broadcast_id = 1;
+}
+
+message CBroadcast_EndBroadcastSession_Response {
+}
+
+message CBroadcast_StartBroadcastUpload_Request {
+ optional fixed64 broadcast_id = 1;
+ optional uint32 cellid = 2;
+ optional bool as_rtmp = 3;
+ optional uint32 delay_seconds = 4;
+ optional uint64 rtmp_token = 5 [default = 0, (description) = "Only set during RTMP uploads; secret key from the user."];
+ optional uint32 upload_ip_address = 6;
+ optional bool is_replay = 7;
+ optional uint32 sysid = 8;
+}
+
+message CBroadcast_StartBroadcastUpload_Response {
+ optional string upload_token = 1;
+ optional string upload_address = 2;
+ optional fixed64 broadcast_upload_id = 3;
+ optional bool enable_replay = 6;
+ optional string http_address = 7;
+}
+
+message CBroadcast_NotifyBroadcastUploadStop_Notification {
+ optional fixed64 broadcast_upload_id = 1;
+ optional uint32 upload_result = 2;
+}
+
+message CBroadcast_WatchBroadcast_Request {
+ optional fixed64 steamid = 1 [(description) = "broadcaster steamID."];
+ optional fixed64 existing_broadcast_id = 2 [(description) = "broadcast session ID (optional, rejoin if specified)."];
+ optional fixed64 viewer_token = 3 [(description) = "viewer token received from last WatchRequest call, from browser storage."];
+ optional uint32 client_cell = 5;
+ optional .EBroadcastWatchLocation watch_location = 6 [default = k_EBroadcastWatchLocation_Invalid];
+ optional bool is_webrtc = 7;
+}
+
+message CBroadcast_WatchBroadcast_Response {
+ enum EWatchResponse {
+ k_EWatchResponseReady = 1;
+ k_EWatchResponseNotAvailable = 2;
+ k_EWatchResponseWaitingForApproval = 3;
+ k_EWatchResponseWaitingForStart = 4;
+ k_EWatchResponseInvalidSession = 5;
+ k_EWatchResponseTooManyBroadcasts = 6;
+ k_EWatchResponseWaitingForReconnect = 7;
+ k_EWatchResponseSystemNotSupported = 8;
+ k_EWatchResponseUserRestricted = 9;
+ k_EWatchResponseClientOutOfDate = 10;
+ k_EWatchResponsePoorUploadQuality = 11;
+ k_EWatchResponseMissingSubscription = 12;
+ }
+
+ optional .CBroadcast_WatchBroadcast_Response.EWatchResponse response = 1 [default = k_EWatchResponseReady];
+ optional string mpd_url = 2;
+ optional fixed64 broadcast_id = 3;
+ optional uint64 gameid = 4;
+ optional string title = 5;
+ optional uint32 num_viewers = 6;
+ optional int32 permission = 7;
+ optional bool is_rtmp = 8;
+ optional int32 seconds_delay = 9;
+ optional fixed64 viewer_token = 10;
+ optional string hls_m3u8_master_url = 11;
+ optional int32 heartbeat_interval = 12;
+ optional string thumbnail_url = 13;
+ optional bool is_webrtc = 14;
+ optional fixed64 webrtc_session_id = 15;
+ optional string webrtc_offer_sdp = 16;
+ optional string webrtc_turn_server = 17;
+ optional bool is_replay = 18;
+ optional int32 duration = 19;
+ optional string cdn_auth_url_parameters = 20;
+}
+
+message CBroadcast_HeartbeatBroadcast_Notification {
+ optional fixed64 steamid = 1 [(description) = "broadcaster steamID."];
+ optional fixed64 broadcast_id = 2 [(description) = "broadcast session ID."];
+ optional fixed64 viewer_token = 3 [(description) = "viewer token received from last WatchRequest call, from browser storage."];
+ optional uint32 representation = 4 [(description) = "video stream representation watching"];
+}
+
+message CBroadcast_StopWatchingBroadcast_Notification {
+ optional fixed64 steamid = 1 [(description) = "broadcaster steamID."];
+ optional fixed64 broadcast_id = 2 [(description) = "broadcast session ID."];
+ optional fixed64 viewer_token = 3 [(description) = "viewer token received from last WatchRequest call, from browser storage."];
+}
+
+message CBroadcast_GetBroadcastStatus_Request {
+ optional fixed64 steamid = 1 [(description) = "broadcaster steamID."];
+ optional fixed64 broadcast_id = 2 [(description) = "broadcast session ID to proof that user is allowed to see details."];
+}
+
+message CBroadcast_GetBroadcastStatus_Response {
+ optional uint64 gameid = 1;
+ optional string title = 2;
+ optional uint32 num_viewers = 3;
+ optional int32 permission = 4;
+ optional bool is_rtmp = 5;
+ optional int32 seconds_delay = 6;
+ optional bool is_publisher = 7;
+ optional string thumbnail_url = 8;
+ optional int32 update_interval = 9;
+ optional bool is_uploading = 10;
+ optional uint32 duration = 11;
+ optional bool is_replay = 12;
+ optional bool is_capturing_vod = 13;
+ optional bool is_store_whitelisted = 14;
+}
+
+message CBroadcast_GetBroadcastThumbnail_Request {
+ optional fixed64 steamid = 1;
+ optional fixed64 broadcast_id = 2;
+}
+
+message CBroadcast_GetBroadcastThumbnail_Response {
+ optional string thumbnail_url = 1;
+ optional int32 update_interval = 2;
+ optional int32 num_viewers = 3;
+ optional int32 duration = 4;
+}
+
+message CBroadcast_InviteToBroadcast_Request {
+ optional fixed64 steamid = 1;
+ optional bool approval_response = 2;
+}
+
+message CBroadcast_InviteToBroadcast_Response {
+ optional bool success = 1;
+}
+
+message CBroadcast_SendBroadcastStateToServer_Request {
+ optional int32 permission = 1;
+ optional uint64 gameid = 2;
+ optional string title = 3;
+ optional string game_data_config = 4;
+}
+
+message CBroadcast_SendBroadcastStateToServer_Response {
+}
+
+message CBroadcast_NotifyBroadcastSessionHeartbeat_Notification {
+ optional fixed64 broadcast_id = 1;
+}
+
+message CBroadcast_GetBroadcastChatInfo_Request {
+ optional fixed64 steamid = 1;
+ optional fixed64 broadcast_id = 2;
+ optional uint32 client_ip = 3;
+ optional uint32 client_cell = 4;
+}
+
+message CBroadcast_GetBroadcastChatInfo_Response {
+ optional fixed64 chat_id = 1;
+ optional string view_url_template = 3;
+ repeated uint32 flair_group_ids = 4;
+}
+
+message CBroadcast_PostChatMessage_Request {
+ optional fixed64 chat_id = 1;
+ optional string message = 2;
+ optional uint32 instance_id = 3;
+ optional uint32 language = 4 [default = 0, (description) = "ELanguage of the user posting the message, default is english"];
+ optional string country_code = 5 [(description) = "The two letter country code"];
+}
+
+message CBroadcast_PostChatMessage_Response {
+ optional string persona_name = 1;
+ optional bool in_game = 2;
+ optional int32 result = 3;
+ optional int32 cooldown_time_seconds = 4;
+}
+
+message CBroadcast_UpdateChatMessageFlair_Request {
+ optional fixed64 chat_id = 1;
+ optional string flair = 2;
+}
+
+message CBroadcast_UpdateChatMessageFlair_Response {
+ optional int32 result = 1;
+ optional fixed64 chat_id = 2;
+ optional string flair = 3;
+}
+
+message CBroadcast_MuteBroadcastChatUser_Request {
+ optional fixed64 chat_id = 1;
+ optional fixed64 user_steamid = 2;
+ optional bool muted = 3;
+}
+
+message CBroadcast_MuteBroadcastChatUser_Response {
+}
+
+message CBroadcast_RemoveUserChatText_Request {
+ optional fixed64 chat_id = 1;
+ optional fixed64 user_steamid = 2;
+}
+
+message CBroadcast_RemoveUserChatText_Response {
+}
+
+message CBroadcast_GetBroadcastChatUserNames_Request {
+ optional fixed64 chat_id = 1;
+ repeated fixed64 user_steamid = 2;
+}
+
+message CBroadcast_GetBroadcastChatUserNames_Response {
+ message PersonaName {
+ optional fixed64 steam_id = 1 [(allow_field_named_steam_id) = true];
+ optional string persona = 2;
+ }
+
+ repeated .CBroadcast_GetBroadcastChatUserNames_Response.PersonaName persona_names = 1;
+}
+
+message CBroadcast_StartBuildClip_Request {
+ optional fixed64 steamid = 1;
+ optional fixed64 broadcast_session_id = 2;
+ optional int32 first_segment = 3;
+ optional int32 num_segments = 4;
+ optional string clip_description = 5;
+}
+
+message CBroadcast_StartBuildClip_Response {
+ optional fixed64 broadcast_clip_id = 1;
+}
+
+message CBroadcast_GetBuildClipStatus_Request {
+ optional fixed64 broadcast_clip_id = 1;
+}
+
+message CBroadcast_GetBuildClipStatus_Response {
+}
+
+message CBroadcast_SetClipDetails_Request {
+ optional uint64 broadcast_clip_id = 1 [(description) = "Clip ID"];
+ optional uint32 start_time = 2 [(description) = "start time of the clip"];
+ optional uint32 end_time = 3 [(description) = "end time of the clip"];
+ optional string video_description = 4;
+}
+
+message CBroadcast_SetClipDetails_Response {
+}
+
+message CBroadcast_GetClipDetails_Request {
+ optional uint64 broadcast_clip_id = 1 [(description) = "List of clip IDs we want details for"];
+}
+
+message CBroadcast_GetClipDetails_Response {
+ optional uint64 broadcast_clip_id = 1 [(description) = "broadcast clip ID"];
+ optional uint64 video_id = 2 [(description) = "matching unique video ID"];
+ optional uint64 channel_id = 3 [(description) = "Broadcast Channel ID"];
+ optional uint32 app_id = 4 [(description) = "App ID stream is tagged with"];
+ optional uint32 accountid_broadcaster = 5 [(description) = "Account ID of broadcaster"];
+ optional uint32 accountid_clipmaker = 6 [(description) = "Account ID of clip-maker"];
+ optional string video_description = 7 [(description) = "Short name or description of this clip"];
+ optional uint32 start_time = 8 [(description) = "Wall time clip was broadcasted live"];
+ optional uint32 length_milliseconds = 9 [(description) = "length of video in MS"];
+ optional string thumbnail_path = 10 [(description) = "Path for thumbnail URL"];
+}
+
+message CBroadcast_SetRTMPInfo_Request {
+ optional int32 broadcast_permission = 1;
+ optional bool update_token = 2;
+ optional int32 broadcast_delay = 3;
+ optional uint32 app_id = 4;
+ optional uint32 required_app_id = 5;
+ optional .EBroadcastChatPermission broadcast_chat_permission = 6 [default = k_EBroadcastChatPermissionPublic, (description) = "Who is permitted to send a chat message during broadcast"];
+ optional int32 broadcast_buffer = 7 [(description) = "Previous seconds we keep of the stream available"];
+ optional fixed64 steamid = 8 [(description) = "broadcaster steamID if not logged-in user"];
+ optional uint32 chat_rate_limit = 9 [(description) = "Seconds required between chat messages"];
+ optional bool enable_replay = 10 [(description) = "Enable replay of last upload"];
+ optional bool is_partner_chat_only = 11 [(description) = "When true, then only steamwork partner can create chat messages."];
+ optional string wordban_list = 12;
+}
+
+message CBroadcast_SetRTMPInfo_Response {
+}
+
+message CBroadcast_GetRTMPInfo_Request {
+ optional uint32 ip = 1;
+ optional fixed64 steamid = 2 [(description) = "broadcaster steamID if not logged-in user"];
+}
+
+message CBroadcast_GetRTMPInfo_Response {
+ optional int32 broadcast_permission = 1;
+ optional string rtmp_host = 2;
+ optional string rtmp_token = 3;
+ optional int32 broadcast_delay = 4;
+ optional uint32 app_id = 5;
+ optional uint32 required_app_id = 6;
+ optional .EBroadcastChatPermission broadcast_chat_permission = 7 [default = k_EBroadcastChatPermissionPublic, (description) = "Who is permitted to send a chat message during broadcast"];
+ optional int32 broadcast_buffer = 8 [(description) = "Seconds we keep streams available"];
+ optional fixed64 steamid = 9 [(description) = "broadcaster steamID"];
+ optional uint32 chat_rate_limit = 10 [(description) = "Seconds required between chat messages"];
+ optional bool enable_replay = 11 [(description) = "Enable replay of last upload"];
+ optional bool is_partner_chat_only = 12 [(description) = "When true, then only steamwork partner can create chat messages."];
+ optional string wordban_list = 13;
+}
+
+message CBroadcast_WebRTCHaveTURNServer_Notification {
+ optional fixed64 broadcast_session_id = 1;
+ optional string turn_server = 2;
+}
+
+message CBroadcast_WebRTCStartResult_Request {
+ optional fixed64 webrtc_session_id = 1;
+ optional bool started = 2;
+ optional string offer = 3;
+ optional uint32 resolution_x = 4;
+ optional uint32 resolution_y = 5;
+ optional uint32 fps = 6;
+}
+
+message CBroadcast_WebRTCStartResult_Response {
+}
+
+message CBroadcast_WebRTCStopped_Request {
+ optional fixed64 webrtc_session_id = 1;
+}
+
+message CBroadcast_WebRTCStopped_Response {
+}
+
+message CBroadcast_WebRTCSetAnswer_Request {
+ optional fixed64 broadcaster_steamid = 1;
+ optional fixed64 webrtc_session_id = 2;
+ optional string answer = 3;
+}
+
+message CBroadcast_WebRTCSetAnswer_Response {
+}
+
+message CBroadcast_WebRTCLookupTURNServer_Request {
+ optional uint32 cellid = 1;
+}
+
+message CBroadcast_WebRTCLookupTURNServer_Response {
+ optional string turn_server = 1;
+}
+
+message CBroadcast_WebRTC_Candidate {
+ optional string sdp_mid = 1;
+ optional int32 sdp_mline_index = 2;
+ optional string candidate = 3;
+}
+
+message CBroadcast_WebRTCAddHostCandidate_Request {
+ optional fixed64 webrtc_session_id = 1;
+ optional .CBroadcast_WebRTC_Candidate candidate = 2;
+}
+
+message CBroadcast_WebRTCAddHostCandidate_Response {
+}
+
+message CBroadcast_WebRTCAddViewerCandidate_Request {
+ optional fixed64 broadcaster_steamid = 1;
+ optional fixed64 webrtc_session_id = 2;
+ optional .CBroadcast_WebRTC_Candidate candidate = 3;
+}
+
+message CBroadcast_WebRTCAddViewerCandidate_Response {
+}
+
+message CBroadcast_WebRTCGetHostCandidates_Request {
+ optional fixed64 broadcaster_steamid = 1;
+ optional fixed64 webrtc_session_id = 2;
+ optional uint32 candidate_generation = 3;
+}
+
+message CBroadcast_WebRTCGetHostCandidates_Response {
+ optional uint32 candidate_generation = 1;
+ repeated .CBroadcast_WebRTC_Candidate candidates = 2;
+}
+
+message CBroadcast_GetBroadcastUploadStats_Request {
+ optional uint32 row_limit = 1 [default = 100, (description) = "How many at maximum to return."];
+ optional uint32 start_time = 2 [default = 0, (description) = "Start time"];
+ optional uint64 upload_id = 3 [(description) = "Optional relay upload ID - not compatible with session_id"];
+ optional fixed64 steamid = 4 [(description) = "Optional the steamid whose stats you want, otherwise the user logged in - admin only"];
+ optional uint64 session_id = 5 [(description) = "Optional broadcast session ID - not compatiable with upload_id"];
+}
+
+message CBroadcast_GetBroadcastUploadStats_Response {
+ message UploadStats {
+ optional uint32 upload_result = 1 [(description) = ""];
+ optional uint32 time_stopped = 2 [(description) = "time broadcast upload stopped"];
+ optional uint32 seconds_uploaded = 3 [(description) = "seconds of vido uploaded"];
+ optional uint32 max_viewers = 4 [(description) = "max concurrent viewers"];
+ optional uint32 resolution_x = 5 [(description) = "horizontal resultion"];
+ optional uint32 resolution_y = 6 [(description) = "vertical resultion"];
+ optional uint32 avg_bandwidth = 7 [(description) = ""];
+ optional uint64 total_bytes = 8 [(description) = "total byte uploaded by broadcaster"];
+ optional uint32 app_id = 9 [(description) = "game broadcasted"];
+ optional uint32 total_unique_viewers = 10 [(description) = "total unique viewers seen"];
+ optional uint64 total_seconds_watched = 11 [(description) = "total number of seconds watched by all viewers"];
+ optional uint32 time_started = 12 [(description) = "time broadcast upload started"];
+ optional uint64 upload_id = 13 [(description) = "broadcast relay upload id"];
+ optional string local_address = 14 [(description) = "upload to server address"];
+ optional string remote_address = 15 [(description) = "upload from client address"];
+ optional uint32 frames_per_second = 16 [(description) = "frames per second"];
+ optional uint32 num_representations = 17 [(description) = "number of video represetations"];
+ optional string app_name = 18 [(description) = "game name"];
+ optional bool is_replay = 19 [(description) = "replay of previous recording"];
+ optional uint64 session_id = 20 [(description) = "broadcast session id"];
+ }
+
+ repeated .CBroadcast_GetBroadcastUploadStats_Response.UploadStats upload_stats = 1;
+}
+
+message CBroadcast_GetBroadcastViewerStats_Request {
+ optional uint64 upload_id = 1 [(description) = "Get stats for this stream"];
+ optional fixed64 steamid = 2 [(description) = "Optional: The steamid of the broadcast whose details you are requesting."];
+}
+
+message CBroadcast_GetBroadcastViewerStats_Response {
+ message ViewerStats {
+ optional uint32 time = 1 [(description) = "time of record"];
+ optional uint32 num_viewers = 2 [(description) = "current number of viewers"];
+ }
+
+ message CountryStats {
+ optional string country_code = 1 [(description) = "country code"];
+ optional uint32 num_viewers = 2 [(description) = "number of viewers"];
+ }
+
+ repeated .CBroadcast_GetBroadcastViewerStats_Response.ViewerStats viewer_stats = 1;
+ repeated .CBroadcast_GetBroadcastViewerStats_Response.CountryStats country_stats = 2;
+}
+
+message CBroadcast_BroadcastViewerState_Notification {
+ enum EViewerState {
+ k_EViewerNeedsApproval = 1;
+ k_EViewerWatching = 2;
+ k_EViewerLeft = 3;
+ }
+
+ optional fixed64 steamid = 1;
+ optional .CBroadcast_BroadcastViewerState_Notification.EViewerState state = 2 [default = k_EViewerNeedsApproval];
+}
+
+message CBroadcast_WaitingBroadcastViewer_Notification {
+ optional fixed64 broadcast_id = 1;
+}
+
+message CBroadcast_BroadcastUploadStarted_Notification {
+ optional fixed64 broadcast_id = 1;
+ optional string upload_token = 2;
+ optional string upload_address = 3;
+ optional string http_address = 4;
+ optional fixed64 broadcast_upload_id = 5;
+ optional uint32 heartbeat_interval_seconds = 6 [(description) = "how many seconds between session heartbeats"];
+ optional bool is_rtmp = 7;
+}
+
+message CBroadcast_StopBroadcastUpload_Notification {
+ optional fixed64 broadcast_id = 1;
+ optional fixed64 broadcast_relay_id = 2;
+ optional uint32 upload_result = 3;
+ optional bool too_many_poor_uploads = 4;
+}
+
+message CBroadcast_SessionClosed_Notification {
+ optional fixed64 broadcast_id = 1;
+}
+
+message CBroadcast_ViewerBroadcastInvite_Notification {
+ optional fixed64 broadcaster_steamid = 1;
+}
+
+message CBroadcast_BroadcastStatus_Notification {
+ optional fixed64 broadcast_id = 1;
+ optional int32 num_viewers = 2;
+}
+
+message CBroadcast_BroadcastChannelLive_Notification {
+ optional fixed64 broadcast_channel_id = 1;
+ optional string broadcast_channel_name = 2;
+ optional string broadcast_channel_avatar = 3;
+}
+
+message CBroadcast_SendThumbnailToRelay_Notification {
+ optional string thumbnail_upload_token = 1;
+ optional fixed64 thumbnail_broadcast_session_id = 2;
+ optional bytes thumbnail_data = 3;
+ optional uint32 thumbnail_width = 4;
+ optional uint32 thumbnail_height = 5;
+}
+
+message CBroadcast_WebRTCNeedTURNServer_Notification {
+ optional fixed64 broadcast_session_id = 1;
+}
+
+message CBroadcast_WebRTCStart_Notification {
+ optional fixed64 broadcast_session_id = 1;
+ optional fixed64 webrtc_session_id = 2;
+ optional fixed64 viewer_steamid = 3;
+ optional fixed64 viewer_token = 4;
+}
+
+message CBroadcast_WebRTCSetAnswer_Notification {
+ optional fixed64 broadcast_session_id = 1;
+ optional fixed64 webrtc_session_id = 2;
+ optional string answer = 3;
+}
+
+message CBroadcast_WebRTCAddViewerCandidate_Notification {
+ optional fixed64 broadcast_session_id = 1;
+ optional fixed64 webrtc_session_id = 2;
+ optional .CBroadcast_WebRTC_Candidate candidate = 3;
+}
+
+service Broadcast {
+ option (service_description) = "Methods for Steam broadcast operations";
+
+ rpc BeginBroadcastSession (.CBroadcast_BeginBroadcastSession_Request) returns (.CBroadcast_BeginBroadcastSession_Response) {
+ option (method_description) = "Request from client to directory to begin a broadcast session. No data being sent to relay; just available for broadcast.";
+ }
+
+ rpc EndBroadcastSession (.CBroadcast_EndBroadcastSession_Request) returns (.CBroadcast_EndBroadcastSession_Response) {
+ option (method_description) = "Request from client to stop a broadcast session. Any uploads will terminate.";
+ }
+
+ rpc StartBroadcastUpload (.CBroadcast_StartBroadcastUpload_Request) returns (.CBroadcast_StartBroadcastUpload_Response) {
+ option (method_description) = "Request from client to begin sending video for a broadcast.";
+ }
+
+ rpc NotifyBroadcastUploadStop (.CBroadcast_NotifyBroadcastUploadStop_Notification) returns (.NoResponse) {
+ option (method_description) = "Tells directory that client stopped uploading broadcast";
+ }
+
+ rpc WatchBroadcast (.CBroadcast_WatchBroadcast_Request) returns (.CBroadcast_WatchBroadcast_Response) {
+ option (method_description) = "Request from viewer to watch a broadcast";
+ }
+
+ rpc HeartbeatBroadcast (.CBroadcast_HeartbeatBroadcast_Notification) returns (.NoResponse) {
+ option (method_description) = "Notify directory that user is still watching.";
+ }
+
+ rpc StopWatchingBroadcast (.CBroadcast_StopWatchingBroadcast_Notification) returns (.NoResponse) {
+ option (method_description) = "Request to immediately stop watching a broadcast. Optional Method, if not called, viewer will time out.";
+ }
+
+ rpc GetBroadcastStatus (.CBroadcast_GetBroadcastStatus_Request) returns (.CBroadcast_GetBroadcastStatus_Response) {
+ option (method_description) = "Request from viewer about broadcast details";
+ }
+
+ rpc GetBroadcastThumbnail (.CBroadcast_GetBroadcastThumbnail_Request) returns (.CBroadcast_GetBroadcastThumbnail_Response) {
+ option (method_description) = "Request thumbnail URL for broadcast";
+ }
+
+ rpc InviteToBroadcast (.CBroadcast_InviteToBroadcast_Request) returns (.CBroadcast_InviteToBroadcast_Response) {
+ option (method_description) = "Invites another steam user to watch the caller's broadcast";
+ }
+
+ rpc SendBroadcastStateToServer (.CBroadcast_SendBroadcastStateToServer_Request) returns (.CBroadcast_SendBroadcastStateToServer_Response) {
+ option (method_description) = "Sends users current broadcast state (permissions, game) to the server";
+ }
+
+ rpc NotifyBroadcastSessionHeartbeat (.CBroadcast_NotifyBroadcastSessionHeartbeat_Notification) returns (.NoResponse) {
+ option (method_description) = "Tells directory broadcast session is still available";
+ }
+
+ rpc GetBroadcastChatInfo (.CBroadcast_GetBroadcastChatInfo_Request) returns (.CBroadcast_GetBroadcastChatInfo_Response) {
+ option (method_description) = "Gets chat room info for a broadcast";
+ }
+
+ rpc PostChatMessage (.CBroadcast_PostChatMessage_Request) returns (.CBroadcast_PostChatMessage_Response) {
+ option (method_description) = "Post chat message to specified chat room";
+ }
+
+ rpc UpdateChatMessageFlair (.CBroadcast_UpdateChatMessageFlair_Request) returns (.CBroadcast_UpdateChatMessageFlair_Response) {
+ option (method_description) = "Update chat message flair in the specified chat room";
+ }
+
+ rpc MuteBroadcastChatUser (.CBroadcast_MuteBroadcastChatUser_Request) returns (.CBroadcast_MuteBroadcastChatUser_Response) {
+ option (method_description) = "Mute a user in your broadcast chat";
+ }
+
+ rpc RemoveUserChatText (.CBroadcast_RemoveUserChatText_Request) returns (.CBroadcast_RemoveUserChatText_Response) {
+ option (method_description) = "Tell all viewers to remove user chat text";
+ }
+
+ rpc GetBroadcastChatUserNames (.CBroadcast_GetBroadcastChatUserNames_Request) returns (.CBroadcast_GetBroadcastChatUserNames_Response) {
+ option (method_description) = "Get names for list of users in chat";
+ }
+
+ rpc StartBuildClip (.CBroadcast_StartBuildClip_Request) returns (.CBroadcast_StartBuildClip_Response) {
+ option (method_description) = "Start building a broadcast clip";
+ }
+
+ rpc GetBuildClipStatus (.CBroadcast_GetBuildClipStatus_Request) returns (.CBroadcast_GetBuildClipStatus_Response) {
+ option (method_description) = "Start building a broadcast clip";
+ }
+
+ rpc SetClipDetails (.CBroadcast_SetClipDetails_Request) returns (.CBroadcast_SetClipDetails_Response) {
+ option (method_description) = "Updates a broadcast clip";
+ }
+
+ rpc GetClipDetails (.CBroadcast_GetClipDetails_Request) returns (.CBroadcast_GetClipDetails_Response) {
+ option (method_description) = "Get details for Broadcast Clips";
+ }
+
+ rpc SetRTMPInfo (.CBroadcast_SetRTMPInfo_Request) returns (.CBroadcast_SetRTMPInfo_Response) {
+ option (method_description) = "Sets RTMP broadcast info";
+ }
+
+ rpc GetRTMPInfo (.CBroadcast_GetRTMPInfo_Request) returns (.CBroadcast_GetRTMPInfo_Response) {
+ option (method_description) = "Gets RTMP broadcast info";
+ }
+
+ rpc NotifyWebRTCHaveTURNServer (.CBroadcast_WebRTCHaveTURNServer_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from client to server with the client's TURN server";
+ }
+
+ rpc WebRTCStartResult (.CBroadcast_WebRTCStartResult_Request) returns (.CBroadcast_WebRTCStartResult_Response) {
+ option (method_description) = "Notify the server that a WebRTC session has been created by the host";
+ }
+
+ rpc WebRTCStopped (.CBroadcast_WebRTCStopped_Request) returns (.CBroadcast_WebRTCStopped_Response) {
+ option (method_description) = "Notify the server that a WebRTC session has been stopped by the host";
+ }
+
+ rpc WebRTCSetAnswer (.CBroadcast_WebRTCSetAnswer_Request) returns (.CBroadcast_WebRTCSetAnswer_Response) {
+ option (method_description) = "Notify the server that a WebRTC session has been created by the viewer";
+ }
+
+ rpc WebRTCLookupTURNServer (.CBroadcast_WebRTCLookupTURNServer_Request) returns (.CBroadcast_WebRTCLookupTURNServer_Response) {
+ option (method_description) = "Lookup the best TURN server for this client";
+ }
+
+ rpc WebRTCAddHostCandidate (.CBroadcast_WebRTCAddHostCandidate_Request) returns (.CBroadcast_WebRTCAddHostCandidate_Response) {
+ option (method_description) = "Add an ICE candidate for the host side of a WebRTC session";
+ }
+
+ rpc WebRTCAddViewerCandidate (.CBroadcast_WebRTCAddViewerCandidate_Request) returns (.CBroadcast_WebRTCAddViewerCandidate_Response) {
+ option (method_description) = "Add an ICE candidate for the viewer side of a WebRTC session";
+ }
+
+ rpc WebRTCGetHostCandidates (.CBroadcast_WebRTCGetHostCandidates_Request) returns (.CBroadcast_WebRTCGetHostCandidates_Response) {
+ option (method_description) = "Get the ICE candidates for the host side of a WebRTC session";
+ }
+
+ rpc GetBroadcastUploadStats (.CBroadcast_GetBroadcastUploadStats_Request) returns (.CBroadcast_GetBroadcastUploadStats_Response) {
+ option (method_description) = "Gets broadcast upload stats for user";
+ }
+
+ rpc GetBroadcastViewerStats (.CBroadcast_GetBroadcastViewerStats_Request) returns (.CBroadcast_GetBroadcastViewerStats_Response) {
+ option (method_description) = "Gets viewer stats for given broadcast";
+ }
+}
+
+service BroadcastClient {
+ option (service_execution_site) = k_EProtoExecutionSiteSteamClient;
+
+ rpc NotifyBroadcastViewerState (.CBroadcast_BroadcastViewerState_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from server to client that a viewers state has changed";
+ }
+
+ rpc NotifyWaitingBroadcastViewer (.CBroadcast_WaitingBroadcastViewer_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from server to client one or more users is waiting for user to start broadcast";
+ }
+
+ rpc NotifyBroadcastUploadStarted (.CBroadcast_BroadcastUploadStarted_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from server to client with information about a broadcast";
+ }
+
+ rpc NotifyStopBroadcastUpload (.CBroadcast_StopBroadcastUpload_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from server to client telling it to stop uploading when the last viewer has disconnected from their broadcast";
+ }
+
+ rpc NotifySessionClosed (.CBroadcast_SessionClosed_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from server to client telling it a session has been closed unexpectedly by the directory";
+ }
+
+ rpc NotifyViewerBroadcastInvite (.CBroadcast_ViewerBroadcastInvite_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from server to client that a broadcaster is inviting a viewer to watch their broadcast";
+ }
+
+ rpc NotifyBroadcastStatus (.CBroadcast_BroadcastStatus_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from server to client about current broadcast status";
+ }
+
+ rpc NotifyBroadcastChannelLive (.CBroadcast_BroadcastChannelLive_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from server to client about current broadcast status";
+ }
+
+ rpc SendThumbnailToRelay (.CBroadcast_SendThumbnailToRelay_Notification) returns (.NoResponse) {
+ option (method_description) = "Send thumbnails to relay";
+ }
+
+ rpc NotifyWebRTCNeedTURNServer (.CBroadcast_WebRTCNeedTURNServer_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from server to client that it needs the client's TURN server";
+ }
+
+ rpc NotifyWebRTCStart (.CBroadcast_WebRTCStart_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from server to client that it should start a WebRTC session";
+ }
+
+ rpc NotifyWebRTCSetAnswer (.CBroadcast_WebRTCSetAnswer_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from server to client about the broadcast viewer WebRTC answer";
+ }
+
+ rpc NotifyWebRTCAddViewerCandidate (.CBroadcast_WebRTCAddViewerCandidate_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from server to client about a broadcast viewer WebRTC ICE candidate";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_chat.steamclient.proto b/protobuf_files/orig/steam/steammessages_chat.steamclient.proto
new file mode 100644
index 00000000..150367eb
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_chat.steamclient.proto
@@ -0,0 +1,1281 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+import "steammessages_clientserver_friends.proto";
+
+option cc_generic_services = true;
+
+enum EChatRoomJoinState {
+ k_EChatRoomJoinState_Default = 0;
+ k_EChatRoomJoinState_None = 1;
+ k_EChatRoomJoinState_Joined = 2;
+ k_EChatRoomJoinState_TestInvalid = 99;
+}
+
+enum EChatRoomGroupRank {
+ k_EChatRoomGroupRank_Default = 0;
+ k_EChatRoomGroupRank_Viewer = 10;
+ k_EChatRoomGroupRank_Guest = 15;
+ k_EChatRoomGroupRank_Member = 20;
+ k_EChatRoomGroupRank_Moderator = 30;
+ k_EChatRoomGroupRank_Officer = 40;
+ k_EChatRoomGroupRank_Owner = 50;
+ k_EChatRoomGroupRank_TestInvalid = 99;
+}
+
+enum EChatRoomNotificationLevel {
+ k_EChatroomNotificationLevel_Invalid = 0;
+ k_EChatroomNotificationLevel_None = 1;
+ k_EChatroomNotificationLevel_MentionMe = 2;
+ k_EChatroomNotificationLevel_MentionAll = 3;
+ k_EChatroomNotificationLevel_AllMessages = 4;
+}
+
+enum EChatRoomServerMessage {
+ k_EChatRoomServerMsg_Invalid = 0;
+ k_EChatRoomServerMsg_RenameChatRoom = 1;
+ k_EChatRoomServerMsg_Joined = 2;
+ k_EChatRoomServerMsg_Parted = 3;
+ k_EChatRoomServerMsg_Kicked = 4;
+ k_EChatRoomServerMsg_Invited = 5;
+ k_EChatRoomServerMsg_InviteDismissed = 8;
+ k_EChatRoomServerMsg_ChatRoomTaglineChanged = 9;
+ k_EChatRoomServerMsg_ChatRoomAvatarChanged = 10;
+ k_EChatRoomServerMsg_AppCustom = 11;
+}
+
+enum EChatRoomMessageReactionType {
+ k_EChatRoomMessageReactionType_Invalid = 0;
+ k_EChatRoomMessageReactionType_Emoticon = 1;
+ k_EChatRoomMessageReactionType_Sticker = 2;
+}
+
+enum EChatRoomMemberStateChange {
+ k_EChatRoomMemberStateChange_Invalid = 0;
+ k_EChatRoomMemberStateChange_Joined = 1;
+ k_EChatRoomMemberStateChange_Parted = 2;
+ k_EChatRoomMemberStateChange_Kicked = 3;
+ k_EChatRoomMemberStateChange_Invited = 4;
+ k_EChatRoomMemberStateChange_RankChanged = 7;
+ k_EChatRoomMemberStateChange_InviteDismissed = 8;
+ k_EChatRoomMemberStateChange_Muted = 9;
+ k_EChatRoomMemberStateChange_Banned = 10;
+ k_EChatRoomMemberStateChange_RolesChanged = 12;
+}
+
+message CChat_RequestFriendPersonaStates_Request {
+}
+
+message CChat_RequestFriendPersonaStates_Response {
+}
+
+message CChatRoom_CreateChatRoomGroup_Request {
+ optional fixed64 steamid_partner = 1;
+ optional fixed64 steamid_invited = 2;
+ optional string name = 3;
+ repeated fixed64 steamid_invitees = 4;
+ optional uint32 watching_broadcast_accountid = 6;
+ optional uint64 watching_broadcast_channel_id = 7;
+}
+
+message CChatRole {
+ optional uint64 role_id = 1;
+ optional string name = 2;
+ optional uint32 ordinal = 3;
+}
+
+message CChatRoleActions {
+ optional uint64 role_id = 1;
+ optional bool can_create_rename_delete_channel = 2;
+ optional bool can_kick = 3;
+ optional bool can_ban = 4;
+ optional bool can_invite = 5;
+ optional bool can_change_tagline_avatar_name = 6;
+ optional bool can_chat = 7;
+ optional bool can_view_history = 8;
+ optional bool can_change_group_roles = 9;
+ optional bool can_change_user_roles = 10;
+ optional bool can_mention_all = 11;
+ optional bool can_set_watching_broadcast = 12;
+}
+
+message CChatPartyBeacon {
+ optional uint32 app_id = 1;
+ optional fixed64 steamid_owner = 2;
+ optional fixed64 beacon_id = 3;
+ optional string game_metadata = 4;
+}
+
+message CChatRoomGroupHeaderState {
+ optional uint64 chat_group_id = 1;
+ optional string chat_name = 2;
+ optional uint32 clanid = 13;
+ optional uint32 accountid_owner = 14;
+ optional uint32 appid = 21;
+ optional string tagline = 15;
+ optional bytes avatar_sha = 16;
+ optional uint64 default_role_id = 17;
+ repeated .CChatRole roles = 18;
+ repeated .CChatRoleActions role_actions = 19;
+ optional uint32 watching_broadcast_accountid = 20;
+ repeated .CChatPartyBeacon party_beacons = 22;
+ optional uint64 watching_broadcast_channel_id = 23;
+ optional uint64 active_minigame_id = 24;
+ optional string avatar_ugc_url = 25;
+ optional bool disabled = 26;
+}
+
+message CChatRoomMember {
+ optional uint32 accountid = 1;
+ optional .EChatRoomJoinState state = 3 [default = k_EChatRoomJoinState_Default];
+ optional .EChatRoomGroupRank rank = 4 [default = k_EChatRoomGroupRank_Default];
+ optional uint32 time_kick_expire = 6;
+ repeated uint64 role_ids = 7;
+}
+
+message CChatRoomState {
+ optional uint64 chat_id = 1;
+ optional string chat_name = 2;
+ optional bool voice_allowed = 3;
+ repeated uint32 members_in_voice = 4;
+ optional uint32 time_last_message = 5;
+ optional uint32 sort_order = 6;
+ optional string last_message = 7;
+ optional uint32 accountid_last_message = 8;
+}
+
+message CChatRoomGroupState {
+ optional .CChatRoomGroupHeaderState header_state = 1;
+ repeated .CChatRoomMember members = 2;
+ optional uint64 default_chat_id = 4;
+ repeated .CChatRoomState chat_rooms = 5;
+ repeated .CChatRoomMember kicked = 7;
+}
+
+message CUserChatRoomState {
+ optional uint64 chat_id = 1;
+ optional uint32 time_joined = 2;
+ optional uint32 time_last_ack = 3;
+ optional .EChatRoomNotificationLevel desktop_notification_level = 4 [default = k_EChatroomNotificationLevel_Invalid];
+ optional .EChatRoomNotificationLevel mobile_notification_level = 5 [default = k_EChatroomNotificationLevel_Invalid];
+ optional uint32 time_last_mention = 6;
+ optional bool unread_indicator_muted = 7 [default = false];
+ optional uint32 time_first_unread = 8;
+}
+
+message CUserChatRoomGroupState {
+ optional uint64 chat_group_id = 1;
+ optional uint32 time_joined = 2;
+ repeated .CUserChatRoomState user_chat_room_state = 3;
+ optional .EChatRoomNotificationLevel desktop_notification_level = 4 [default = k_EChatroomNotificationLevel_Invalid];
+ optional .EChatRoomNotificationLevel mobile_notification_level = 5 [default = k_EChatroomNotificationLevel_Invalid];
+ optional uint32 time_last_group_ack = 6;
+ optional bool unread_indicator_muted = 7 [default = false];
+}
+
+message CChatRoom_CreateChatRoomGroup_Response {
+ optional uint64 chat_group_id = 1;
+ optional .CChatRoomGroupState state = 2;
+ optional .CUserChatRoomGroupState user_chat_state = 3;
+}
+
+message CChatRoom_SaveChatRoomGroup_Request {
+ optional uint64 chat_group_id = 1;
+ optional string name = 2;
+}
+
+message CChatRoom_SaveChatRoomGroup_Response {
+}
+
+message CChatRoom_RenameChatRoomGroup_Request {
+ optional uint64 chat_group_id = 1;
+ optional string name = 2;
+}
+
+message CChatRoom_RenameChatRoomGroup_Response {
+ optional string name = 1;
+}
+
+message CChatRoom_SetChatRoomGroupTagline_Request {
+ optional uint64 chat_group_id = 1;
+ optional string tagline = 2;
+}
+
+message CChatRoom_SetChatRoomGroupTagline_Response {
+}
+
+message CChatRoom_SetChatRoomGroupAvatar_Request {
+ optional uint64 chat_group_id = 1;
+ optional bytes avatar_sha = 2;
+}
+
+message CChatRoom_SetChatRoomGroupAvatar_Response {
+}
+
+message CChatRoom_SetChatRoomGroupWatchingBroadcast_Request {
+ optional uint64 chat_group_id = 1;
+ optional uint32 watching_broadcast_accountid = 2;
+ optional uint64 watching_broadcast_channel_id = 3;
+}
+
+message CChatRoom_SetChatRoomGroupWatchingBroadcast_Response {
+}
+
+message CChatRoom_JoinMiniGameForChatRoomGroup_Request {
+ optional uint64 chat_group_id = 1;
+ optional uint64 chat_id = 2;
+}
+
+message CChatRoom_JoinMiniGameForChatRoomGroup_Response {
+ optional uint64 minigame_id = 1;
+}
+
+message CChatRoom_EndMiniGameForChatRoomGroup_Request {
+ optional uint64 chat_group_id = 1;
+ optional uint64 chat_id = 2;
+ optional uint64 minigame_id = 3;
+}
+
+message CChatRoom_EndMiniGameForChatRoomGroup_Response {
+}
+
+message CChatRoom_MuteUser_Request {
+ optional uint64 chat_group_id = 1;
+ optional fixed64 steamid = 2;
+ optional int32 expiration = 3;
+}
+
+message CChatRoom_MuteUser_Response {
+}
+
+message CChatRoom_KickUser_Request {
+ optional uint64 chat_group_id = 1;
+ optional fixed64 steamid = 2;
+ optional int32 expiration = 3;
+}
+
+message CChatRoom_KickUser_Response {
+}
+
+message CChatRoom_SetUserBanState_Request {
+ optional uint64 chat_group_id = 1;
+ optional fixed64 steamid = 2;
+ optional bool ban_state = 3;
+}
+
+message CChatRoom_SetUserBanState_Response {
+}
+
+message CChatRoom_RevokeInvite_Request {
+ optional uint64 chat_group_id = 1;
+ optional fixed64 steamid = 2;
+}
+
+message CChatRoom_RevokeInvite_Response {
+}
+
+message CChatRoom_CreateRole_Request {
+ optional uint64 chat_group_id = 1;
+ optional string name = 2;
+}
+
+message CChatRoom_CreateRole_Response {
+ optional .CChatRoleActions actions = 2;
+}
+
+message CChatRoom_GetRoles_Request {
+ optional uint64 chat_group_id = 1;
+}
+
+message CChatRoom_GetRoles_Response {
+ repeated .CChatRole roles = 1;
+}
+
+message CChatRoom_RenameRole_Request {
+ optional uint64 chat_group_id = 1;
+ optional uint64 role_id = 2;
+ optional string name = 3;
+}
+
+message CChatRoom_RenameRole_Response {
+}
+
+message CChatRoom_ReorderRole_Request {
+ optional uint64 chat_group_id = 1;
+ optional uint64 role_id = 2;
+ optional uint32 ordinal = 3;
+}
+
+message CChatRoom_ReorderRole_Response {
+}
+
+message CChatRoom_DeleteRole_Request {
+ optional uint64 chat_group_id = 1;
+ optional uint64 role_id = 2;
+}
+
+message CChatRoom_DeleteRole_Response {
+}
+
+message CChatRoom_GetRoleActions_Request {
+ optional uint64 chat_group_id = 1;
+ optional uint64 role_id = 2;
+}
+
+message CChatRoom_GetRoleActions_Response {
+ repeated .CChatRoleActions actions = 1;
+}
+
+message CChatRoom_ReplaceRoleActions_Request {
+ optional uint64 chat_group_id = 1;
+ optional uint64 role_id = 2;
+ optional .CChatRoleActions actions = 4;
+}
+
+message CChatRoom_ReplaceRoleActions_Response {
+}
+
+message CChatRoom_AddRoleToUser_Request {
+ optional uint64 chat_group_id = 1;
+ optional uint64 role_id = 3;
+ optional fixed64 steamid = 4;
+}
+
+message CChatRoom_AddRoleToUser_Response {
+}
+
+message CChatRoom_GetRolesForUser_Request {
+ optional uint64 chat_group_id = 1;
+ optional fixed64 steamid = 3;
+}
+
+message CChatRoom_GetRolesForUser_Response {
+ repeated uint64 role_ids = 1;
+}
+
+message CChatRoom_DeleteRoleFromUser_Request {
+ optional uint64 chat_group_id = 1;
+ optional uint64 role_id = 3;
+ optional fixed64 steamid = 4;
+}
+
+message CChatRoom_DeleteRoleFromUser_Response {
+}
+
+message CChatRoom_JoinChatRoomGroup_Request {
+ optional uint64 chat_group_id = 1;
+ optional string invite_code = 2;
+ optional uint64 chat_id = 3;
+}
+
+message CChatRoom_JoinChatRoomGroup_Response {
+ optional .CChatRoomGroupState state = 1;
+ optional .CUserChatRoomGroupState user_chat_state = 3;
+ optional uint64 join_chat_id = 4;
+ optional uint32 time_expire = 5;
+}
+
+message CChatRoom_InviteFriendToChatRoomGroup_Request {
+ optional uint64 chat_group_id = 1;
+ optional fixed64 steamid = 2;
+ optional uint64 chat_id = 3;
+ optional bool skip_friendsui_check = 4;
+}
+
+message CChatRoom_InviteFriendToChatRoomGroup_Response {
+}
+
+message CChatRoom_LeaveChatRoomGroup_Request {
+ optional uint64 chat_group_id = 1;
+}
+
+message CChatRoom_LeaveChatRoomGroup_Response {
+}
+
+message CChatRoom_CreateChatRoom_Request {
+ optional uint64 chat_group_id = 1;
+ optional string name = 2;
+ optional bool allow_voice = 3;
+}
+
+message CChatRoom_CreateChatRoom_Response {
+ optional .CChatRoomState chat_room = 1;
+}
+
+message CChatRoom_DeleteChatRoom_Request {
+ optional uint64 chat_group_id = 1;
+ optional uint64 chat_id = 2;
+}
+
+message CChatRoom_DeleteChatRoom_Response {
+}
+
+message CChatRoom_RenameChatRoom_Request {
+ optional uint64 chat_group_id = 1;
+ optional uint64 chat_id = 2;
+ optional string name = 3;
+}
+
+message CChatRoom_RenameChatRoom_Response {
+}
+
+message CChatRoom_ReorderChatRoom_Request {
+ optional uint64 chat_group_id = 1;
+ optional uint64 chat_id = 2;
+ optional uint64 move_after_chat_id = 3;
+}
+
+message CChatRoom_ReorderChatRoom_Response {
+}
+
+message CChatRoom_SendChatMessage_Request {
+ optional uint64 chat_group_id = 1;
+ optional uint64 chat_id = 2;
+ optional string message = 3;
+ optional bool echo_to_sender = 4;
+}
+
+message CChatRoom_SendChatMessage_Response {
+ optional string modified_message = 1;
+ optional uint32 server_timestamp = 2;
+ optional uint32 ordinal = 3;
+ optional string message_without_bb_code = 4;
+}
+
+message CChatRoom_JoinVoiceChat_Request {
+ optional uint64 chat_group_id = 1;
+ optional uint64 chat_id = 2;
+}
+
+message CChatRoom_JoinVoiceChat_Response {
+ optional uint64 voice_chatid = 1;
+}
+
+message CChatRoom_LeaveVoiceChat_Request {
+ optional uint64 chat_group_id = 1;
+ optional uint64 chat_id = 2;
+}
+
+message CChatRoom_LeaveVoiceChat_Response {
+}
+
+message CChatRoom_GetMessageHistory_Request {
+ optional uint64 chat_group_id = 1;
+ optional uint64 chat_id = 2;
+ optional uint32 last_time = 3;
+ optional uint32 last_ordinal = 4;
+ optional uint32 start_time = 5;
+ optional uint32 start_ordinal = 6;
+ optional uint32 max_count = 7;
+}
+
+message ServerMessage {
+ optional .EChatRoomServerMessage message = 1 [default = k_EChatRoomServerMsg_Invalid];
+ optional string string_param = 2;
+ optional uint32 accountid_param = 3;
+}
+
+message CChatRoom_GetMessageHistory_Response {
+ message ChatMessage {
+ message MessageReaction {
+ optional .EChatRoomMessageReactionType reaction_type = 1 [default = k_EChatRoomMessageReactionType_Invalid];
+ optional string reaction = 2;
+ optional uint32 num_reactors = 3;
+ optional bool has_user_reacted = 4;
+ }
+
+ optional uint32 sender = 1;
+ optional uint32 server_timestamp = 2;
+ optional string message = 3;
+ optional uint32 ordinal = 4;
+ optional .ServerMessage server_message = 5;
+ optional bool deleted = 6;
+ repeated .CChatRoom_GetMessageHistory_Response.ChatMessage.MessageReaction reactions = 7;
+ }
+
+ repeated .CChatRoom_GetMessageHistory_Response.ChatMessage messages = 1;
+ optional bool more_available = 4;
+}
+
+message CChatRoom_GetMyChatRoomGroups_Request {
+}
+
+message CChatRoom_GetChatRoomGroupSummary_Response {
+ optional uint64 chat_group_id = 1;
+ optional string chat_group_name = 2;
+ optional uint32 active_member_count = 3;
+ optional uint32 active_voice_member_count = 4;
+ optional uint64 default_chat_id = 5;
+ repeated .CChatRoomState chat_rooms = 6;
+ optional uint32 clanid = 7;
+ optional string chat_group_tagline = 8;
+ optional uint32 accountid_owner = 9;
+ repeated uint32 top_members = 10;
+ optional bytes chat_group_avatar_sha = 11;
+ optional .EChatRoomGroupRank rank = 12 [default = k_EChatRoomGroupRank_Default];
+ optional uint64 default_role_id = 13;
+ repeated uint64 role_ids = 14;
+ repeated .CChatRoleActions role_actions = 15;
+ optional uint32 watching_broadcast_accountid = 16;
+ optional uint32 appid = 17;
+ repeated .CChatPartyBeacon party_beacons = 18;
+ optional uint64 watching_broadcast_channel_id = 19;
+ optional uint64 active_minigame_id = 20;
+ optional string avatar_ugc_url = 21;
+ optional bool disabled = 22;
+}
+
+message CChatRoomSummaryPair {
+ optional .CUserChatRoomGroupState user_chat_group_state = 1;
+ optional .CChatRoom_GetChatRoomGroupSummary_Response group_summary = 2;
+}
+
+message CChatRoom_GetMyChatRoomGroups_Response {
+ repeated .CChatRoomSummaryPair chat_room_groups = 1;
+}
+
+message CChatRoom_GetChatRoomGroupState_Request {
+ optional uint64 chat_group_id = 1;
+}
+
+message CChatRoom_GetChatRoomGroupState_Response {
+ optional .CChatRoomGroupState state = 1;
+}
+
+message CChatRoom_GetChatRoomGroupSummary_Request {
+ optional uint64 chat_group_id = 1;
+}
+
+message CChatRoom_SetAppChatRoomGroupForceActive_Request {
+ optional uint64 chat_group_id = 1;
+ optional uint32 requesting_app_id = 2;
+}
+
+message CChatRoom_SetAppChatRoomGroupForceActive_Response {
+ optional uint32 result = 1;
+ repeated uint32 accounts_in_channel = 2;
+}
+
+message CChatRoom_SetAppChatRoomGroupStopForceActive_Notification {
+ optional uint64 chat_group_id = 1;
+ optional uint32 requesting_app_id = 2;
+}
+
+message CChatRoom_AckChatMessage_Notification {
+ optional uint64 chat_group_id = 1;
+ optional uint64 chat_id = 2;
+ optional uint32 timestamp = 3;
+}
+
+message CChatRoom_CreateInviteLink_Request {
+ optional uint64 chat_group_id = 1;
+ optional uint32 seconds_valid = 2;
+ optional uint64 chat_id = 3;
+}
+
+message CChatRoom_CreateInviteLink_Response {
+ optional string invite_code = 1;
+ optional uint32 seconds_valid = 2;
+}
+
+message CChatRoom_GetInviteLinkInfo_Request {
+ optional string invite_code = 1;
+}
+
+message CChatRoom_GetInviteLinkInfo_Response {
+ optional fixed64 steamid_sender = 3;
+ optional uint32 time_expires = 4;
+ optional uint64 chat_id = 6;
+ optional .CChatRoom_GetChatRoomGroupSummary_Response group_summary = 8;
+ optional .CUserChatRoomGroupState user_chat_group_state = 9;
+ optional uint32 time_kick_expire = 10;
+ optional bool banned = 11;
+}
+
+message CChatRoom_GetInviteInfo_Request {
+ optional fixed64 steamid_invitee = 1;
+ optional uint64 chat_group_id = 2;
+ optional uint64 chat_id = 3;
+ optional string invite_code = 4;
+}
+
+message CChatRoom_GetInviteInfo_Response {
+ optional .CChatRoom_GetChatRoomGroupSummary_Response group_summary = 1;
+ optional uint32 time_kick_expire = 2;
+ optional bool banned = 3;
+}
+
+message CChatRoom_GetInviteLinksForGroup_Request {
+ optional uint64 chat_group_id = 1;
+}
+
+message CChatRoom_GetInviteLinksForGroup_Response {
+ message LinkInfo {
+ optional string invite_code = 1;
+ optional fixed64 steamid_creator = 2;
+ optional uint32 time_expires = 3;
+ optional uint64 chat_id = 4;
+ }
+
+ repeated .CChatRoom_GetInviteLinksForGroup_Response.LinkInfo invite_links = 1;
+}
+
+message CChatRoom_GetBanList_Request {
+ optional uint64 chat_group_id = 1;
+}
+
+message CChatRoom_GetBanList_Response {
+ message BanInfo {
+ optional uint32 accountid = 1;
+ optional uint32 accountid_actor = 2;
+ optional uint32 time_banned = 3;
+ optional string ban_reason = 4;
+ }
+
+ repeated .CChatRoom_GetBanList_Response.BanInfo bans = 1;
+}
+
+message CChatRoom_GetInviteList_Request {
+ optional uint64 chat_group_id = 1;
+}
+
+message CChatRoomGroupInvite {
+ optional uint32 accountid = 1;
+ optional uint32 accountid_actor = 2;
+ optional uint32 time_invited = 3;
+}
+
+message CChatRoom_GetInviteList_Response {
+ repeated .CChatRoomGroupInvite invites = 1;
+}
+
+message CChatRoom_DeleteInviteLink_Request {
+ optional uint64 chat_group_id = 1;
+ optional string invite_code = 2;
+}
+
+message CChatRoom_DeleteInviteLink_Response {
+}
+
+message CChatRoom_SetSessionActiveChatRoomGroups_Request {
+ repeated uint64 chat_group_ids = 1;
+ repeated uint64 chat_groups_data_requested = 2;
+ optional int32 virtualize_members_threshold = 3 [(description) = "If a chat room has more members than this threshold, we will opt in to a virtualized list"];
+}
+
+message CChatRoom_SetSessionActiveChatRoomGroups_Response {
+ repeated .CChatRoomGroupState chat_states = 1;
+ repeated uint64 virtualize_members_chat_group_ids = 2;
+}
+
+message CChatRoom_SetUserChatGroupPreferences_Request {
+ message ChatGroupPreferences {
+ optional .EChatRoomNotificationLevel desktop_notification_level = 1 [default = k_EChatroomNotificationLevel_Invalid];
+ optional .EChatRoomNotificationLevel mobile_notification_level = 2 [default = k_EChatroomNotificationLevel_Invalid];
+ optional bool unread_indicator_muted = 3;
+ }
+
+ message ChatRoomPreferences {
+ optional uint64 chat_id = 1;
+ optional .EChatRoomNotificationLevel desktop_notification_level = 2 [default = k_EChatroomNotificationLevel_Invalid];
+ optional .EChatRoomNotificationLevel mobile_notification_level = 3 [default = k_EChatroomNotificationLevel_Invalid];
+ optional bool unread_indicator_muted = 4;
+ }
+
+ optional uint64 chat_group_id = 1;
+ optional .CChatRoom_SetUserChatGroupPreferences_Request.ChatGroupPreferences chat_group_preferences = 2;
+ repeated .CChatRoom_SetUserChatGroupPreferences_Request.ChatRoomPreferences chat_room_preferences = 3;
+}
+
+message CChatRoom_SetUserChatGroupPreferences_Response {
+}
+
+message CChatRoom_DeleteChatMessages_Request {
+ message Message {
+ optional uint32 server_timestamp = 1;
+ optional uint32 ordinal = 2;
+ }
+
+ optional uint64 chat_group_id = 1;
+ optional uint64 chat_id = 2;
+ repeated .CChatRoom_DeleteChatMessages_Request.Message messages = 3;
+}
+
+message CChatRoom_DeleteChatMessages_Response {
+}
+
+message CChatRoom_UpdateMemberListView_Notification {
+ optional uint64 chat_group_id = 1;
+ optional uint64 view_id = 2 [(description) = "Client-generated ID. Should send the same value on all requests for the same view"];
+ optional int32 start = 3;
+ optional int32 end = 4;
+ optional int32 client_changenumber = 5 [(description) = "Any updates from this call on will have this changenumber present. Can be used to guarantee in-order updates."];
+ optional bool delete_view = 6 [(description) = "Indicates this view has been deleted."];
+ repeated int32 persona_subscribe_accountids = 7;
+ repeated int32 persona_unsubscribe_accountids = 8;
+}
+
+message CChatRoom_SearchMembers_Request {
+ optional uint64 chat_group_id = 1;
+ optional uint64 search_id = 2 [(description) = "Client-supplied id. For find-as-you-type searches, as search narrows the server will not return persona states previously returned for a given searchid."];
+ optional string search_text = 3;
+ optional int32 max_results = 4;
+}
+
+message CChatRoom_SearchMembers_Response {
+ message MemberMatch {
+ optional int32 accountid = 1;
+ optional .CMsgClientPersonaState.Friend persona = 2;
+ }
+
+ repeated .CChatRoom_SearchMembers_Response.MemberMatch matching_members = 1;
+ optional uint32 status_flags = 2;
+}
+
+message CChatRoom_UpdateMessageReaction_Request {
+ optional uint64 chat_group_id = 1;
+ optional uint64 chat_id = 2;
+ optional uint32 server_timestamp = 3;
+ optional uint32 ordinal = 4;
+ optional .EChatRoomMessageReactionType reaction_type = 5 [default = k_EChatRoomMessageReactionType_Invalid];
+ optional string reaction = 6;
+ optional bool is_add = 7;
+}
+
+message CChatRoom_UpdateMessageReaction_Response {
+ optional uint32 num_reactors = 1;
+}
+
+message CChatRoom_GetMessageReactionReactors_Request {
+ optional uint64 chat_group_id = 1;
+ optional uint64 chat_id = 2;
+ optional uint32 server_timestamp = 3;
+ optional uint32 ordinal = 4;
+ optional .EChatRoomMessageReactionType reaction_type = 5 [default = k_EChatRoomMessageReactionType_Invalid];
+ optional string reaction = 6;
+ optional uint32 limit = 7;
+}
+
+message CChatRoom_GetMessageReactionReactors_Response {
+ repeated uint32 reactors = 1;
+}
+
+message CClanChatRooms_GetClanChatRoomInfo_Request {
+ optional fixed64 steamid = 1;
+ optional bool autocreate = 2 [default = true, (description) = "Create a default chat room if none has been created before."];
+}
+
+message CClanChatRooms_GetClanChatRoomInfo_Response {
+ optional .CChatRoom_GetChatRoomGroupSummary_Response chat_group_summary = 1;
+}
+
+message CClanChatRooms_SetClanChatRoomPrivate_Request {
+ optional fixed64 steamid = 1;
+ optional bool chat_room_private = 2;
+}
+
+message CClanChatRooms_SetClanChatRoomPrivate_Response {
+ optional bool chat_room_private = 1;
+}
+
+message CChatMentions {
+ optional bool mention_all = 1;
+ optional bool mention_here = 2;
+ repeated uint32 mention_accountids = 3;
+}
+
+message CChatRoom_IncomingChatMessage_Notification {
+ optional uint64 chat_group_id = 1;
+ optional uint64 chat_id = 2;
+ optional fixed64 steamid_sender = 3;
+ optional string message = 4;
+ optional uint32 timestamp = 5;
+ optional .CChatMentions mentions = 6;
+ optional uint32 ordinal = 7;
+ optional .ServerMessage server_message = 8;
+ optional string message_no_bbcode = 9;
+ optional string chat_name = 10 [(description) = "A name to use for the chat, intended for notifications"];
+}
+
+message CChatRoom_ChatMessageModified_Notification {
+ message ChatMessage {
+ optional uint32 server_timestamp = 1;
+ optional uint32 ordinal = 2;
+ optional bool deleted = 3;
+ }
+
+ optional uint64 chat_group_id = 1;
+ optional uint64 chat_id = 2;
+ repeated .CChatRoom_ChatMessageModified_Notification.ChatMessage messages = 3;
+}
+
+message CChatRoom_MemberStateChange_Notification {
+ optional uint64 chat_group_id = 1;
+ optional .CChatRoomMember member = 2;
+ optional .EChatRoomMemberStateChange change = 3 [default = k_EChatRoomMemberStateChange_Invalid];
+}
+
+message CChatRoom_ChatRoomHeaderState_Notification {
+ optional .CChatRoomGroupHeaderState header_state = 1;
+}
+
+message CChatRoom_ChatRoomGroupRoomsChange_Notification {
+ optional uint64 chat_group_id = 1;
+ optional uint64 default_chat_id = 2;
+ repeated .CChatRoomState chat_rooms = 3;
+}
+
+message CChatRoom_NotifyShouldRejoinChatRoomVoiceChat_Notification {
+ optional uint64 chat_id = 1;
+ optional uint64 chat_group_id = 2;
+}
+
+message ChatRoomClient_NotifyChatGroupUserStateChanged_Notification {
+ optional uint64 chat_group_id = 1;
+ optional .CUserChatRoomGroupState user_chat_group_state = 2;
+ optional .CChatRoom_GetChatRoomGroupSummary_Response group_summary = 3;
+ optional .EChatRoomMemberStateChange user_action = 4 [default = k_EChatRoomMemberStateChange_Invalid];
+}
+
+message ChatRoomClient_NotifyChatRoomDisconnect_Notification {
+ repeated uint64 chat_group_ids = 1;
+}
+
+message CChatRoomMemberListView {
+ optional int32 start = 3;
+ optional int32 end = 4;
+ optional int32 total_count = 5;
+ optional int32 client_changenumber = 6 [(description) = "Value sent by the client on the last UpdateMemberListView call. "];
+ optional int32 server_changenumber = 7 [(description) = "Value incremented by the server on each MemberListViewUpdated call. "];
+}
+
+message CChatRoomMemberSummaryCounts {
+ optional int32 ingame = 1;
+ optional int32 online = 2;
+ optional int32 offline = 3;
+}
+
+message CChatRoomClient_MemberListViewUpdated_Notification {
+ message MemberListViewEntry {
+ optional int32 rank = 1;
+ optional uint32 accountid = 2;
+ optional .CMsgClientPersonaState.Friend persona = 3;
+ }
+
+ optional uint64 chat_group_id = 1;
+ optional uint64 view_id = 2 [(description) = "Thew view_id supplied when the client created the view. "];
+ optional .CChatRoomMemberListView view = 3;
+ repeated .CChatRoomClient_MemberListViewUpdated_Notification.MemberListViewEntry members = 4;
+ optional uint32 status_flags = 5;
+ optional .CChatRoomMemberSummaryCounts member_summary = 6;
+ repeated .CMsgClientPersonaState.Friend subscribed_personas = 7;
+}
+
+message CChatRoom_MessageReaction_Notification {
+ optional uint64 chat_group_id = 1;
+ optional uint64 chat_id = 2;
+ optional uint32 server_timestamp = 3;
+ optional uint32 ordinal = 4;
+ optional fixed64 reactor = 5;
+ optional .EChatRoomMessageReactionType reaction_type = 6 [default = k_EChatRoomMessageReactionType_Invalid];
+ optional string reaction = 7;
+ optional bool is_add = 8;
+}
+
+message CChatUsability_ClientUsabilityMetrics_Notification {
+ message Settings {
+ optional bool notifications_show_ingame = 1;
+ optional bool notifications_show_online = 2;
+ optional bool notifications_show_message = 3;
+ optional bool notifications_events_and_announcements = 4;
+ optional bool sounds_play_ingame = 5;
+ optional bool sounds_play_online = 6;
+ optional bool sounds_play_message = 7;
+ optional bool sounds_events_and_announcements = 8;
+ optional bool always_new_chat_window = 9;
+ optional bool force_alphabetic_friend_sorting = 10;
+ optional int32 chat_flash_mode = 11;
+ optional bool remember_open_chats = 12;
+ optional bool compact_quick_access = 13;
+ optional bool compact_friends_list = 14;
+ optional bool notifications_show_chat_room_notification = 15;
+ optional bool sounds_play_chat_room_notification = 16;
+ optional bool hide_offline_friends_in_tag_groups = 17;
+ optional bool hide_categorized_friends = 18;
+ optional bool categorize_in_game_friends_by_game = 19;
+ optional int32 chat_font_size = 20;
+ optional bool use24hour_clock = 21;
+ optional bool do_not_disturb_mode = 22;
+ optional bool disable_embed_inlining = 23;
+ optional bool sign_into_friends = 24;
+ optional bool animated_avatars = 25;
+ }
+
+ message VoiceSettings {
+ optional float voice_input_gain = 1;
+ optional float voice_output_gain = 2;
+ optional int32 noise_gate_level = 3;
+ optional bool voice_use_echo_cancellation = 4;
+ optional bool voice_use_noise_cancellation = 5;
+ optional bool voice_use_auto_gain_control = 6;
+ optional bool selected_non_default_mic = 7;
+ optional bool selected_non_default_output = 8;
+ optional bool push_to_talk_enabled = 9;
+ optional bool push_to_mute_enabled = 10;
+ optional bool play_ptt_sounds = 11;
+ }
+
+ message UIState {
+ message CategoryCollapseState {
+ optional bool in_game_collapsed = 1;
+ optional bool online_collapsed = 2;
+ optional bool offline_collapsed = 3;
+ optional int32 game_groups_collapsed = 4;
+ optional int32 categories_collapsed = 5;
+ }
+
+ optional int32 friends_list_height = 1;
+ optional int32 friends_list_width = 2;
+ optional bool friends_list_docked = 3;
+ optional bool friends_list_collapsed = 4;
+ optional int32 friends_list_group_chats_height = 5;
+ optional bool friends_list_visible = 6;
+ optional int32 chat_popups_opened = 7;
+ optional int32 group_chat_tabs_opened = 8;
+ optional int32 friend_chat_tabs_opened = 9;
+ optional int32 chat_window_width = 10;
+ optional int32 chat_window_height = 11;
+ optional .CChatUsability_ClientUsabilityMetrics_Notification.UIState.CategoryCollapseState category_collapse = 12;
+ optional int32 group_chat_left_col_collapsed = 13;
+ optional int32 group_chat_right_col_collapsed = 14;
+ optional bool in_one_on_one_voice_chat = 15;
+ optional bool in_group_voice_chat = 16;
+ }
+
+ message Metrics {
+ optional int32 friends_count = 1;
+ optional int32 friends_category_count = 2;
+ optional int32 friends_categorized_count = 3;
+ optional int32 friends_online_count = 4;
+ optional int32 friends_in_game_count = 5;
+ optional int32 friends_in_game_singleton_count = 6;
+ optional int32 game_group_count = 7;
+ optional int32 friends_favorite_count = 8;
+ optional int32 group_chat_count = 9;
+ optional int32 group_chat_favorite_count = 10;
+ }
+
+ optional uint32 metrics_run_id = 1;
+ optional uint32 client_build = 2;
+ optional uint32 metrics_version = 3;
+ optional bool in_web = 4;
+ optional .CChatUsability_ClientUsabilityMetrics_Notification.Settings settings = 10;
+ optional .CChatUsability_ClientUsabilityMetrics_Notification.VoiceSettings voice_settings = 11;
+ optional .CChatUsability_ClientUsabilityMetrics_Notification.UIState ui_state = 12;
+ optional .CChatUsability_ClientUsabilityMetrics_Notification.Metrics metrics = 13;
+}
+
+message CChatUsability_RequestClientUsabilityMetrics_Notification {
+ optional uint32 metrics_run_id = 1;
+}
+
+service Chat {
+ option (service_description) = "Chat-related services";
+
+ rpc RequestFriendPersonaStates (.CChat_RequestFriendPersonaStates_Request) returns (.CChat_RequestFriendPersonaStates_Response) {
+ option (method_description) = "Request to be notified of online friend persona state information. Responses sent via CMsgClientPersonaState.";
+ }
+}
+
+service ChatRoom {
+ option (service_description) = "Service for joining, managing, and using multi-user chat rooms";
+
+ rpc CreateChatRoomGroup (.CChatRoom_CreateChatRoomGroup_Request) returns (.CChatRoom_CreateChatRoomGroup_Response) {
+ option (method_description) = "Create's a chat group that can contain other chat rooms";
+ }
+
+ rpc SaveChatRoomGroup (.CChatRoom_SaveChatRoomGroup_Request) returns (.CChatRoom_SaveChatRoomGroup_Response) {
+ option (method_description) = "Saves's a chat group";
+ }
+
+ rpc RenameChatRoomGroup (.CChatRoom_RenameChatRoomGroup_Request) returns (.CChatRoom_RenameChatRoomGroup_Response) {
+ option (method_description) = "Rename a chat room group";
+ }
+
+ rpc SetChatRoomGroupTagline (.CChatRoom_SetChatRoomGroupTagline_Request) returns (.CChatRoom_SetChatRoomGroupTagline_Response) {
+ option (method_description) = "Set tagline for a chat room group";
+ }
+
+ rpc SetChatRoomGroupAvatar (.CChatRoom_SetChatRoomGroupAvatar_Request) returns (.CChatRoom_SetChatRoomGroupAvatar_Response) {
+ option (method_description) = "Set avatar SHA for a chat room group";
+ }
+
+ rpc SetChatRoomGroupWatchingBroadcast (.CChatRoom_SetChatRoomGroupWatchingBroadcast_Request) returns (.CChatRoom_SetChatRoomGroupWatchingBroadcast_Response) {
+ option (method_description) = "Sets a broadcast that the chat room group is watching";
+ }
+
+ rpc JoinMiniGameForChatRoomGroup (.CChatRoom_JoinMiniGameForChatRoomGroup_Request) returns (.CChatRoom_JoinMiniGameForChatRoomGroup_Response) {
+ option (method_description) = "Joins the minigame for the chat room group or starts a new one (Winter 2019 sale party game)";
+ }
+
+ rpc EndMiniGameForChatRoomGroup (.CChatRoom_EndMiniGameForChatRoomGroup_Request) returns (.CChatRoom_EndMiniGameForChatRoomGroup_Response) {
+ option (method_description) = "Ends the minigame in the chat room group";
+ }
+
+ rpc MuteUserInGroup (.CChatRoom_MuteUser_Request) returns (.CChatRoom_MuteUser_Response) {
+ option (method_description) = "Mute user in group";
+ }
+
+ rpc KickUserFromGroup (.CChatRoom_KickUser_Request) returns (.CChatRoom_KickUser_Response) {
+ option (method_description) = "Kick user from group";
+ }
+
+ rpc SetUserBanState (.CChatRoom_SetUserBanState_Request) returns (.CChatRoom_SetUserBanState_Response) {
+ option (method_description) = "Ban/unban user from group";
+ }
+
+ rpc RevokeInviteToGroup (.CChatRoom_RevokeInvite_Request) returns (.CChatRoom_RevokeInvite_Response) {
+ option (method_description) = "Revoke a direct invitation of a user";
+ }
+
+ rpc CreateRole (.CChatRoom_CreateRole_Request) returns (.CChatRoom_CreateRole_Response) {
+ option (method_description) = "Create role for goup";
+ }
+
+ rpc GetRoles (.CChatRoom_GetRoles_Request) returns (.CChatRoom_GetRoles_Response) {
+ option (method_description) = "Get all roles in group";
+ }
+
+ rpc RenameRole (.CChatRoom_RenameRole_Request) returns (.CChatRoom_RenameRole_Response) {
+ option (method_description) = "Rename role for goup";
+ }
+
+ rpc ReorderRole (.CChatRoom_ReorderRole_Request) returns (.CChatRoom_ReorderRole_Response) {
+ option (method_description) = "Reorder role with a goup";
+ }
+
+ rpc DeleteRole (.CChatRoom_DeleteRole_Request) returns (.CChatRoom_DeleteRole_Response) {
+ option (method_description) = "Delete role from group";
+ }
+
+ rpc GetRoleActions (.CChatRoom_GetRoleActions_Request) returns (.CChatRoom_GetRoleActions_Response) {
+ option (method_description) = "Get all defined roles and actions in group";
+ }
+
+ rpc ReplaceRoleActions (.CChatRoom_ReplaceRoleActions_Request) returns (.CChatRoom_ReplaceRoleActions_Response) {
+ option (method_description) = "Replace role actions in group";
+ }
+
+ rpc AddRoleToUser (.CChatRoom_AddRoleToUser_Request) returns (.CChatRoom_AddRoleToUser_Response) {
+ option (method_description) = "Add role to user in group";
+ }
+
+ rpc GetRolesForUser (.CChatRoom_GetRolesForUser_Request) returns (.CChatRoom_GetRolesForUser_Response) {
+ option (method_description) = "Get all roles assigned to user in group";
+ }
+
+ rpc DeleteRoleFromUser (.CChatRoom_DeleteRoleFromUser_Request) returns (.CChatRoom_DeleteRoleFromUser_Response) {
+ option (method_description) = "Delete role from user in group";
+ }
+
+ rpc JoinChatRoomGroup (.CChatRoom_JoinChatRoomGroup_Request) returns (.CChatRoom_JoinChatRoomGroup_Response) {
+ option (method_description) = "Join a multi-user chat room";
+ }
+
+ rpc InviteFriendToChatRoomGroup (.CChatRoom_InviteFriendToChatRoomGroup_Request) returns (.CChatRoom_InviteFriendToChatRoomGroup_Response) {
+ option (method_description) = "Invite a friend to a multi-user chat room";
+ }
+
+ rpc LeaveChatRoomGroup (.CChatRoom_LeaveChatRoomGroup_Request) returns (.CChatRoom_LeaveChatRoomGroup_Response) {
+ option (method_description) = "Leaves a chat room group and all related chats";
+ }
+
+ rpc CreateChatRoom (.CChatRoom_CreateChatRoom_Request) returns (.CChatRoom_CreateChatRoom_Response) {
+ option (method_description) = "Creates a chat room inside a chat room group";
+ }
+
+ rpc DeleteChatRoom (.CChatRoom_DeleteChatRoom_Request) returns (.CChatRoom_DeleteChatRoom_Response) {
+ option (method_description) = "Deletes a chat room inside a chat room group";
+ }
+
+ rpc RenameChatRoom (.CChatRoom_RenameChatRoom_Request) returns (.CChatRoom_RenameChatRoom_Response) {
+ option (method_description) = "Renames a chat room inside a chat room group";
+ }
+
+ rpc ReorderChatRoom (.CChatRoom_ReorderChatRoom_Request) returns (.CChatRoom_ReorderChatRoom_Response) {
+ option (method_description) = "Reorders a chat room inside a chat room group";
+ }
+
+ rpc SendChatMessage (.CChatRoom_SendChatMessage_Request) returns (.CChatRoom_SendChatMessage_Response) {
+ option (method_description) = "Send a chat message to a multi-user chat room";
+ }
+
+ rpc JoinVoiceChat (.CChatRoom_JoinVoiceChat_Request) returns (.CChatRoom_JoinVoiceChat_Response) {
+ option (method_description) = "Join the voice chat in a multi-room chat (should already be in the chat room)";
+ }
+
+ rpc LeaveVoiceChat (.CChatRoom_LeaveVoiceChat_Request) returns (.CChatRoom_LeaveVoiceChat_Response) {
+ option (method_description) = "Leave the voice chat in a multi-room chat";
+ }
+
+ rpc GetMessageHistory (.CChatRoom_GetMessageHistory_Request) returns (.CChatRoom_GetMessageHistory_Response) {
+ option (method_description) = "Get the history of messages in a chat room. You must currently be a member of the chat room.";
+ }
+
+ rpc GetMyChatRoomGroups (.CChatRoom_GetMyChatRoomGroups_Request) returns (.CChatRoom_GetMyChatRoomGroups_Response) {
+ option (method_description) = "Get a list of our chat rooms";
+ }
+
+ rpc GetChatRoomGroupState (.CChatRoom_GetChatRoomGroupState_Request) returns (.CChatRoom_GetChatRoomGroupState_Response) {
+ option (method_description) = "Get information about a single chat room";
+ }
+
+ rpc GetChatRoomGroupSummary (.CChatRoom_GetChatRoomGroupSummary_Request) returns (.CChatRoom_GetChatRoomGroupSummary_Response) {
+ option (method_description) = "Get basic information about a chat room group";
+ }
+
+ rpc SetAppChatRoomGroupForceActive (.CChatRoom_SetAppChatRoomGroupForceActive_Request) returns (.CChatRoom_SetAppChatRoomGroupForceActive_Response) {
+ option (method_description) = "Force a group chat to be considered active on the server for this user";
+ }
+
+ rpc SetAppChatRoomGroupStopForceActive (.CChatRoom_SetAppChatRoomGroupStopForceActive_Notification) returns (.NoResponse) {
+ option (method_description) = "If a group chat is forced active (see SetAppChatRoomGroupForceActive), decrement the force count";
+ }
+
+ rpc AckChatMessage (.CChatRoom_AckChatMessage_Notification) returns (.NoResponse) {
+ option (method_description) = "Acknowledge that we have seen the most recent chat message in a chat";
+ }
+
+ rpc CreateInviteLink (.CChatRoom_CreateInviteLink_Request) returns (.CChatRoom_CreateInviteLink_Response) {
+ option (method_description) = "Creates a chatroom invite link";
+ }
+
+ rpc GetInviteLinkInfo (.CChatRoom_GetInviteLinkInfo_Request) returns (.CChatRoom_GetInviteLinkInfo_Response) {
+ option (method_description) = "Returns chat room info about provided link";
+ }
+
+ rpc GetInviteInfo (.CChatRoom_GetInviteInfo_Request) returns (.CChatRoom_GetInviteInfo_Response) {
+ option (method_description) = "Returns chat room info about any invite involving the sender and passed group id";
+ }
+
+ rpc GetInviteLinksForGroup (.CChatRoom_GetInviteLinksForGroup_Request) returns (.CChatRoom_GetInviteLinksForGroup_Response) {
+ option (method_description) = "Returns all invite links for the specified group";
+ }
+
+ rpc GetBanList (.CChatRoom_GetBanList_Request) returns (.CChatRoom_GetBanList_Response) {
+ option (method_description) = "Gets a list of users who have been banned from a chat room";
+ }
+
+ rpc GetInviteList (.CChatRoom_GetInviteList_Request) returns (.CChatRoom_GetInviteList_Response) {
+ option (method_description) = "Gets a list of users who have been invited to a chat room";
+ }
+
+ rpc DeleteInviteLink (.CChatRoom_DeleteInviteLink_Request) returns (.CChatRoom_DeleteInviteLink_Response) {
+ option (method_description) = "Deletes specified invite link";
+ }
+
+ rpc SetSessionActiveChatRoomGroups (.CChatRoom_SetSessionActiveChatRoomGroups_Request) returns (.CChatRoom_SetSessionActiveChatRoomGroups_Response) {
+ option (method_description) = "Set which chat rooms we are using in the active session";
+ }
+
+ rpc SetUserChatGroupPreferences (.CChatRoom_SetUserChatGroupPreferences_Request) returns (.CChatRoom_SetUserChatGroupPreferences_Response) {
+ option (method_description) = "Set preferences around chat notifications for a group";
+ }
+
+ rpc DeleteChatMessages (.CChatRoom_DeleteChatMessages_Request) returns (.CChatRoom_DeleteChatMessages_Response) {
+ option (method_description) = "Deletes specified chat messages";
+ }
+
+ rpc UpdateMemberListView (.CChatRoom_UpdateMemberListView_Notification) returns (.NoResponse) {
+ option (method_description) = "A client is indicating it has an active view into the members list.";
+ }
+
+ rpc SearchMembers (.CChatRoom_SearchMembers_Request) returns (.CChatRoom_SearchMembers_Response) {
+ option (method_description) = "Search chat room members by name.";
+ }
+
+ rpc UpdateMessageReaction (.CChatRoom_UpdateMessageReaction_Request) returns (.CChatRoom_UpdateMessageReaction_Response) {
+ option (method_description) = "Adds/removes a reaction to/from a chat room message";
+ }
+
+ rpc GetMessageReactionReactors (.CChatRoom_GetMessageReactionReactors_Request) returns (.CChatRoom_GetMessageReactionReactors_Response) {
+ option (method_description) = "Fetches a list of reactors for a specified reaction";
+ }
+}
+
+service ClanChatRooms {
+ option (service_description) = "Methods for getting clan chat information";
+
+ rpc GetClanChatRoomInfo (.CClanChatRooms_GetClanChatRoomInfo_Request) returns (.CClanChatRooms_GetClanChatRoomInfo_Response) {
+ option (method_description) = "Get a list of chat rooms for a clan, optionally creating a new one";
+ }
+
+ rpc SetClanChatRoomPrivate (.CClanChatRooms_SetClanChatRoomPrivate_Request) returns (.CClanChatRooms_SetClanChatRoomPrivate_Response) {
+ option (method_description) = "Set a clan chat room to be members only (or public)";
+ }
+}
+
+service ChatRoomClient {
+ option (service_description) = "Client notifications for chat events";
+ option (service_execution_site) = k_EProtoExecutionSiteSteamClient;
+
+ rpc NotifyIncomingChatMessage (.CChatRoom_IncomingChatMessage_Notification) returns (.NoResponse) {
+ option (method_description) = "New chat message for a chat room";
+ }
+
+ rpc NotifyChatMessageModified (.CChatRoom_ChatMessageModified_Notification) returns (.NoResponse) {
+ option (method_description) = "An existing chat message has been modified on the backend";
+ }
+
+ rpc NotifyMemberStateChange (.CChatRoom_MemberStateChange_Notification) returns (.NoResponse) {
+ option (method_description) = "A chat room member's state has changed (join/part/permissions)";
+ }
+
+ rpc NotifyChatRoomHeaderStateChange (.CChatRoom_ChatRoomHeaderState_Notification) returns (.NoResponse) {
+ option (method_description) = "Chat Room header / metadata has changed";
+ }
+
+ rpc NotifyChatRoomGroupRoomsChange (.CChatRoom_ChatRoomGroupRoomsChange_Notification) returns (.NoResponse) {
+ option (method_description) = "Something about a chatroom group changed (created, deleted, etc.)";
+ }
+
+ rpc NotifyShouldRejoinChatRoomVoiceChat (.CChatRoom_NotifyShouldRejoinChatRoomVoiceChat_Notification) returns (.NoResponse) {
+ option (method_description) = "Voice chat was recreated or dropped on the backend and client needs to rejoin to remain in chat.";
+ }
+
+ rpc NotifyChatGroupUserStateChanged (.ChatRoomClient_NotifyChatGroupUserStateChanged_Notification) returns (.NoResponse) {
+ option (method_description) = "User chat group state (preferences, ack state, etc) have changed.";
+ }
+
+ rpc NotifyAckChatMessageEcho (.CChatRoom_AckChatMessage_Notification) returns (.NoResponse) {
+ option (method_description) = "A session acked an unread message, echo to other sessions.";
+ }
+
+ rpc NotifyChatRoomDisconnect (.ChatRoomClient_NotifyChatRoomDisconnect_Notification) returns (.NoResponse) {
+ option (method_description) = "The ChatRoom server hosting the chat rooms has reconnected to the user's Chat server (may have restarted), client should refresh state.";
+ }
+
+ rpc NotifyMemberListViewUpdated (.CChatRoomClient_MemberListViewUpdated_Notification) returns (.NoResponse) {
+ option (method_description) = "The list of members for a chat room with virtualized member list has changed on the server (or client requested)";
+ }
+
+ rpc NotifyMessageReaction (.CChatRoom_MessageReaction_Notification) returns (.NoResponse) {
+ option (method_description) = "New message reaction";
+ }
+}
+
+service ChatUsability {
+ option (service_description) = "Client notifications for chat events";
+
+ rpc NotifyClientUsabilityMetrics (.CChatUsability_ClientUsabilityMetrics_Notification) returns (.NoResponse) {
+ option (method_description) = "Incoming metrics from the client";
+ }
+}
+
+service ChatUsabilityClient {
+ option (service_description) = "Client notifications for chat usability";
+ option (service_execution_site) = k_EProtoExecutionSiteSteamClient;
+
+ rpc NotifyRequestClientUsabilityMetrics (.CChatUsability_RequestClientUsabilityMetrics_Notification) returns (.NoResponse) {
+ option (method_description) = "Request client send usability metrics";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_client_objects.proto b/protobuf_files/orig/steam/steammessages_client_objects.proto
new file mode 100644
index 00000000..d7fddce1
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_client_objects.proto
@@ -0,0 +1,614 @@
+import "enums.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+enum ECloudPendingRemoteOperation {
+ k_ECloudPendingRemoteOperationNone = 0;
+ k_ECloudPendingRemoteOperationAppSessionActive = 1;
+ k_ECloudPendingRemoteOperationUploadInProgress = 2;
+ k_ECloudPendingRemoteOperationUploadPending = 3;
+ k_ECloudPendingRemoteOperationAppSessionSuspended = 4;
+}
+
+enum ESteamDeckKeyboardLayout {
+ k_ESteamDeckKeyboardLayout_QWERTY = 0;
+ k_ESteamDeckKeyboardLayout_Bulgarian = 1;
+ k_ESteamDeckKeyboardLayout_Chinese_Simplified = 2;
+ k_ESteamDeckKeyboardLayout_Chinese_Traditional = 3;
+ k_ESteamDeckKeyboardLayout_Czech = 4;
+ k_ESteamDeckKeyboardLayout_Danish = 5;
+ k_ESteamDeckKeyboardLayout_Finnish = 6;
+ k_ESteamDeckKeyboardLayout_French = 7;
+ k_ESteamDeckKeyboardLayout_German = 8;
+ k_ESteamDeckKeyboardLayout_Greek = 9;
+ k_ESteamDeckKeyboardLayout_Hungarian = 10;
+ k_ESteamDeckKeyboardLayout_Italian = 11;
+ k_ESteamDeckKeyboardLayout_Japanese = 12;
+ k_ESteamDeckKeyboardLayout_Korean = 13;
+ k_ESteamDeckKeyboardLayout_Norwegian = 14;
+ k_ESteamDeckKeyboardLayout_Polish = 15;
+ k_ESteamDeckKeyboardLayout_Portuguese = 16;
+ k_ESteamDeckKeyboardLayout_Romanian = 17;
+ k_ESteamDeckKeyboardLayout_Russian = 18;
+ k_ESteamDeckKeyboardLayout_Spanish = 19;
+ k_ESteamDeckKeyboardLayout_Swedish = 20;
+ k_ESteamDeckKeyboardLayout_Thai = 21;
+ k_ESteamDeckKeyboardLayout_Turkish_F = 22;
+ k_ESteamDeckKeyboardLayout_Turkish_Q = 23;
+ k_ESteamDeckKeyboardLayout_Ukrainian = 24;
+ k_ESteamDeckKeyboardLayout_Vietnamese = 25;
+ k_ESteamDeckKeyboardLayout_QWERTY_International = 26;
+ k_ESteamDeckKeyboardLayout_Dvorak = 27;
+ k_ESteamDeckKeyboardLayout_Colemak = 28;
+ k_ESteamDeckKeyboardLayout_Bulgarian_Phonetic_Traditional = 29;
+ k_ESteamDeckKeyboardLayout_Bulgarian_Phonetic = 30;
+ k_ESteamDeckKeyboardLayout_Chinese_Traditional_Bopomofo = 31;
+ k_ESteamDeckKeyboardLayout_Chinese_Traditional_Cangjie = 32;
+ k_ESteamDeckKeyboardLayout_Japanese_Kana = 33;
+ k_ESteamDeckKeyboardLayout_Chinese_Traditional_Quick = 34;
+}
+
+message SteamMessagesClientIClientForcedEnumDependencies {
+ optional .EBluetoothDeviceType a = 1 [default = k_BluetoothDeviceType_Invalid];
+ optional .EStorageBlockContentType b = 2 [default = k_EStorageBlockContentType_Invalid];
+ optional .EStorageBlockFileSystemType c = 3 [default = k_EStorageBlockFileSystemType_Invalid];
+ optional .ESDCardFormatStage d = 4 [default = k_ESDCardFormatStage_Invalid];
+}
+
+message CMsgNetworkDeviceIP4Address {
+ optional int32 ip = 1 [default = 0];
+ optional int32 netmask = 2;
+}
+
+message CMsgNetworkDeviceIP4Config {
+ repeated .CMsgNetworkDeviceIP4Address addresses = 1;
+ repeated int32 dns_ip = 2;
+ optional int32 gateway_ip = 3;
+ optional bool is_dhcp_enabled = 4;
+ optional bool is_default_route = 5;
+ optional bool is_enabled = 6 [default = false];
+}
+
+message CMsgNetworkDeviceIP6Address {
+ optional string ip = 1;
+}
+
+message CMsgNetworkDeviceIP6Config {
+ repeated .CMsgNetworkDeviceIP6Address addresses = 1;
+ repeated string dns_ip = 2;
+ optional string gateway_ip = 3;
+ optional bool is_dhcp_enabled = 4;
+ optional bool is_default_route = 5;
+ optional bool is_enabled = 6 [default = false];
+}
+
+message CMsgNetworkDevicesData {
+ message Device {
+ message Wired {
+ optional bool is_cable_present = 1 [default = false];
+ optional uint32 speed_mbit = 2;
+ optional string friendly_name = 3;
+ }
+
+ message Wireless {
+ message AP {
+ optional uint32 id = 1 [default = 0];
+ optional int32 estrength = 2;
+ optional string ssid = 3;
+ optional bool is_active = 4;
+ optional bool is_autoconnect = 5;
+ optional int32 esecurity = 6;
+ optional string user_name = 7;
+ optional string password = 8;
+ optional int32 strength_raw = 9;
+ }
+
+ repeated .CMsgNetworkDevicesData.Device.Wireless.AP aps = 1;
+ optional int32 esecurity_supported = 2;
+ }
+
+ optional uint32 id = 1 [default = 0];
+ optional int32 etype = 2;
+ optional int32 estate = 3;
+ optional string mac = 4;
+ optional string vendor = 5;
+ optional string product = 6;
+ optional .CMsgNetworkDeviceIP4Config ip4 = 7;
+ optional .CMsgNetworkDeviceIP6Config ip6 = 8;
+ optional .CMsgNetworkDevicesData.Device.Wired wired = 9;
+ optional .CMsgNetworkDevicesData.Device.Wireless wireless = 10;
+ }
+
+ repeated .CMsgNetworkDevicesData.Device devices = 1;
+ optional bool is_wifi_enabled = 2;
+ optional bool is_wifi_scanning_enabled = 3;
+}
+
+message CMsgNetworkDeviceConnect {
+ message KnownAP {
+ optional uint32 ap_id = 1;
+ }
+
+ message CustomAP {
+ optional string ssid = 1;
+ optional int32 esecurity = 2;
+ }
+
+ message Credentials {
+ optional string username = 1;
+ optional string password = 2;
+ }
+
+ optional uint32 device_id = 1 [default = 0];
+ optional .CMsgNetworkDeviceConnect.Credentials credentials = 4;
+ optional .CMsgNetworkDeviceIP4Config ip4 = 5;
+ optional .CMsgNetworkDeviceIP6Config ip6 = 6;
+
+ oneof ap_info {
+ .CMsgNetworkDeviceConnect.KnownAP ap_known = 2;
+ .CMsgNetworkDeviceConnect.CustomAP ap_custom = 3;
+ }
+}
+
+message CMsgStorageDevicesData {
+ message Drive {
+ optional uint32 id = 1 [default = 0];
+ optional string model = 2;
+ optional string vendor = 3;
+ optional string serial = 4;
+ optional bool is_ejectable = 5;
+ optional uint64 size_bytes = 6;
+ optional .EStorageDriveMediaType media_type = 7 [default = k_EStorageDriveMediaType_Invalid];
+ }
+
+ message BlockDevice {
+ optional uint32 id = 1 [default = 0];
+ optional uint32 drive_id = 2 [default = 0];
+ optional string path = 3;
+ optional string friendly_path = 4;
+ optional string label = 5;
+ optional uint64 size_bytes = 6;
+ optional bool is_formattable = 7;
+ optional bool is_read_only = 8;
+ optional bool is_root_device = 9;
+ optional .EStorageBlockContentType content_type = 10 [default = k_EStorageBlockContentType_Invalid];
+ optional .EStorageBlockFileSystemType filesystem_type = 11 [default = k_EStorageBlockFileSystemType_Invalid];
+ optional string mount_path = 12;
+ }
+
+ repeated .CMsgStorageDevicesData.Drive drives = 1;
+ repeated .CMsgStorageDevicesData.BlockDevice block_devices = 2;
+ optional bool is_unmount_supported = 3;
+ optional bool is_trim_supported = 4;
+ optional bool is_trim_running = 5;
+}
+
+message CCloud_PendingRemoteOperation {
+ optional .ECloudPendingRemoteOperation operation = 1 [default = k_ECloudPendingRemoteOperationNone];
+ optional string machine_name = 2;
+ optional uint64 client_id = 3;
+ optional uint32 time_last_updated = 4;
+}
+
+message CMsgCloudPendingRemoteOperations {
+ repeated .CCloud_PendingRemoteOperation operations = 1;
+}
+
+message CMsgBluetoothDevicesData {
+ message Adapter {
+ optional uint32 id = 1 [default = 0];
+ optional string mac = 2;
+ optional string name = 3;
+ optional bool is_enabled = 4;
+ optional bool is_discovering = 5;
+ }
+
+ message Device {
+ optional uint32 id = 1 [default = 0];
+ optional uint32 adapter_id = 2 [default = 0];
+ optional .EBluetoothDeviceType etype = 3 [default = k_BluetoothDeviceType_Invalid];
+ optional string mac = 4;
+ optional string name = 5;
+ optional bool is_connected = 6;
+ optional bool is_paired = 7;
+ optional int32 strength_raw = 8;
+ }
+
+ message Manager {
+ optional bool is_bluetooth_enabled = 1;
+ }
+
+ repeated .CMsgBluetoothDevicesData.Adapter adapters = 1;
+ repeated .CMsgBluetoothDevicesData.Device devices = 2;
+ optional .CMsgBluetoothDevicesData.Manager manager = 3;
+}
+
+message CMsgSystemPerfDiagnosticEntry {
+ optional string name = 1;
+ optional string value = 2;
+}
+
+message CMsgSystemPerfNetworkInterface {
+ optional string name = 1;
+ optional double timestamp = 2;
+ optional int64 tx_bytes_total = 3;
+ optional int64 rx_bytes_total = 4;
+ optional int32 tx_bytes_per_sec = 5;
+ optional int32 rx_bytes_per_sec = 6;
+}
+
+message CMsgSystemPerfDiagnosticInfo {
+ repeated .CMsgSystemPerfDiagnosticEntry entries = 1;
+ repeated .CMsgSystemPerfNetworkInterface interfaces = 2;
+ optional float battery_temp_c = 3;
+}
+
+message CMsgSystemPerfLimits {
+ optional int32 cpu_governor_manual_min_mhz = 1;
+ optional int32 cpu_governor_manual_max_mhz = 2;
+ optional int32 fsr_sharpness_min = 3;
+ optional int32 fsr_sharpness_max = 4;
+ optional int32 gpu_performance_manual_min_mhz = 5;
+ optional int32 gpu_performance_manual_max_mhz = 6;
+ optional bool perf_overlay_is_standalone = 7;
+ optional bool is_dynamic_vrs_available = 8;
+ optional bool is_manual_display_refresh_rate_available = 9;
+ repeated .EGPUPerformanceLevel gpu_performance_levels_available = 10;
+ optional int32 display_refresh_manual_hz_min = 11;
+ optional int32 display_refresh_manual_hz_max = 12;
+ repeated int32 fps_limit_options = 13;
+ optional int32 tdp_limit_min = 14;
+ optional int32 tdp_limit_max = 15;
+ optional bool is_nis_supported = 16;
+ optional int32 nis_sharpness_min = 17;
+ optional int32 nis_sharpness_max = 18;
+ optional int32 display_external_refresh_manual_hz_min = 19;
+ optional int32 display_external_refresh_manual_hz_max = 20;
+ repeated int32 fps_limit_options_external = 21;
+ optional bool is_tearing_supported = 22;
+ optional bool is_vrr_supported = 23;
+ optional bool is_dynamic_refresh_rate_in_steam_supported = 24;
+ optional bool is_split_scaling_and_filtering_supported = 25;
+ repeated .ESplitScalingFilter split_scaling_filters_available = 26;
+ repeated .ESplitScalingScaler split_scaling_scalers_available = 27;
+ optional bool is_hdr_supported = 28;
+}
+
+message CMsgSystemPerfSettingsGlobal {
+ optional float diagnostic_update_rate = 1;
+ optional .ESystemServiceState system_trace_service_state = 2 [default = k_ESystemServiceState_Unavailable];
+ optional .ESystemServiceState graphics_profiling_service_state = 3 [default = k_ESystemServiceState_Unavailable];
+ optional .ESystemServiceState perf_overlay_service_state = 4 [default = k_ESystemServiceState_Unavailable];
+ optional .EGraphicsPerfOverlayLevel perf_overlay_level = 5 [default = k_EGraphicsPerfOverlayLevel_Hidden];
+ optional bool is_show_perf_overlay_over_steam_enabled = 6;
+ optional bool is_advanced_settings_enabled = 7;
+ optional bool allow_external_display_refresh_control = 8;
+ optional bool is_hdr_enabled = 9;
+ optional bool force_hdr_10pq_output_debug = 11;
+ optional .EHDRToneMapOperator hdr_on_sdr_tonemap_operator = 12 [default = k_EHDRToneMapOperator_Invalid];
+ optional bool is_hdr_debug_heatmap_enabled = 13;
+ optional bool debug_force_hdr_support = 14;
+ optional bool force_hdr_wide_gammut_for_sdr = 15 [default = true];
+ optional bool allow_experimental_hdr = 16;
+ optional float sdr_to_hdr_brightness = 17;
+}
+
+message CMsgSystemPerfSettingsPerApp {
+ optional int32 gpu_performance_manual_mhz = 1;
+ optional int32 fps_limit = 2;
+ optional bool is_variable_resolution_enabled = 3;
+ optional bool is_dynamic_refresh_rate_enabled = 4;
+ optional int32 tdp_limit = 5;
+ optional .ECPUGovernor cpu_governor = 6 [default = k_ECPUGovernor_Invalid];
+ optional int32 cpu_governor_manual_mhz = 7;
+ optional int32 scaling_filter = 8;
+ optional int32 fsr_sharpness = 9;
+ optional bool is_fps_limit_enabled = 10;
+ optional bool is_tdp_limit_enabled = 11;
+ optional bool is_low_latency_mode_enabled = 12;
+ optional int32 display_refresh_manual_hz = 13;
+ optional bool is_game_perf_profile_enabled = 14;
+ optional .EGPUPerformanceLevel gpu_performance_level = 15 [default = k_EGPUPerformanceLevel_Invalid];
+ optional int32 nis_sharpness = 16;
+ optional int32 display_external_refresh_manual_hz = 17;
+ optional int32 fps_limit_external = 18;
+ optional bool is_tearing_enabled = 19;
+ optional bool is_vrr_enabled = 20;
+ optional bool is_composite_debug_enabled = 21;
+ optional bool force_composite = 22;
+ optional bool use_dynamic_refresh_rate_in_steam = 23;
+ optional .ESplitScalingFilter split_scaling_filter = 24 [default = k_ESplitScalingFilter_Invalid];
+ optional .ESplitScalingScaler split_scaling_scaler = 25 [default = k_ESplitScalingScaler_Invalid];
+}
+
+message CMsgSystemPerfSettings {
+ optional .CMsgSystemPerfSettingsGlobal global = 1;
+ optional .CMsgSystemPerfSettingsPerApp per_app = 2;
+}
+
+message CMsgSystemPerfSettingsV1 {
+ optional float diagnostic_update_rate = 1;
+ optional .ESystemServiceState system_trace_service_state = 2 [default = k_ESystemServiceState_Unavailable];
+ optional .ESystemServiceState graphics_profiling_service_state = 3 [default = k_ESystemServiceState_Unavailable];
+ optional .ESystemServiceState perf_overlay_service_state = 4 [default = k_ESystemServiceState_Unavailable];
+ optional .EGraphicsPerfOverlayLevel perf_overlay_level = 5 [default = k_EGraphicsPerfOverlayLevel_Hidden];
+ optional .EGPUPerformanceLevel gpu_performance_level = 6 [default = k_EGPUPerformanceLevel_Invalid];
+ optional int32 gpu_performance_manual_mhz = 7;
+ optional int32 fps_limit = 8;
+ optional bool is_variable_resolution_enabled = 9;
+ optional bool is_dynamic_refresh_rate_enabled = 10;
+ optional int32 tdp_limit = 11;
+ optional .ECPUGovernor cpu_governor = 12 [default = k_ECPUGovernor_Invalid];
+ optional int32 cpu_governor_manual_mhz = 13;
+ optional int32 scaling_filter = 14;
+ optional int32 fsr_sharpness = 15;
+ optional bool is_fps_limit_enabled = 16;
+ optional bool is_tdp_limit_enabled = 17;
+ optional bool is_show_perf_overlay_over_steam_enabled = 18;
+ optional bool is_low_latency_mode_enabled = 19;
+ optional int32 display_refresh_manual_hz = 20;
+ optional bool is_game_perf_profile_enabled = 21;
+}
+
+message CMsgSystemPerfState {
+ optional .CMsgSystemPerfLimits limits = 1;
+ optional .CMsgSystemPerfSettings settings = 2;
+ optional uint64 current_game_id = 3;
+ optional uint64 active_profile_game_id = 4;
+}
+
+message CMsgSystemPerfUpdateSettings {
+ optional uint64 gameid = 1;
+
+ oneof update {
+ bool reset_to_default = 2;
+ .CMsgSystemPerfSettings settings_delta = 3;
+ }
+}
+
+message CMsgSystemDockUpdateState {
+ optional .EUpdaterState state = 1 [default = k_EUpdaterState_Invalid];
+ optional fixed32 rtime_last_checked = 2;
+ optional string version_current = 3;
+ optional string version_available = 4;
+ optional float stage_progress = 5;
+ optional fixed32 rtime_estimated_completion = 6;
+ optional int32 old_fw_workaround = 7;
+}
+
+message CMsgSystemDockState {
+ optional .CMsgSystemDockUpdateState update_state = 1;
+}
+
+message CMsgSystemDockUpdateFirmware {
+ optional bool check_only = 1;
+}
+
+message CMsgSystemAudioVolume {
+ message ChannelEntry {
+ optional .ESystemAudioChannel echannel = 1 [default = k_SystemAudioChannel_Invalid];
+ optional float volume = 2;
+ }
+
+ repeated .CMsgSystemAudioVolume.ChannelEntry entries = 1;
+ optional bool is_muted = 2;
+}
+
+message CMsgSystemAudioManagerObject {
+ optional uint32 id = 1;
+ optional fixed32 rtime_last_update = 2;
+}
+
+message CMsgSystemAudioManagerDevice {
+ optional .CMsgSystemAudioManagerObject base = 1;
+ optional string name = 2;
+ optional string nick = 3;
+ optional string description = 4;
+ optional string api = 5;
+}
+
+message CMsgSystemAudioManagerNode {
+ optional .CMsgSystemAudioManagerObject base = 1;
+ optional uint32 device_id = 2;
+ optional string name = 3;
+ optional string nick = 4;
+ optional string description = 5;
+ optional .ESystemAudioDirection edirection = 6 [default = k_SystemAudioDirection_Invalid];
+ optional .CMsgSystemAudioVolume volume = 7;
+}
+
+message CMsgSystemAudioManagerPort {
+ optional .CMsgSystemAudioManagerObject base = 1;
+ optional uint32 node_id = 3;
+ optional string name = 4;
+ optional string alias = 5;
+ optional .ESystemAudioPortType etype = 6 [default = k_SystemAudioPortType_Invalid];
+ optional .ESystemAudioPortDirection edirection = 7 [default = k_SystemAudioPortDirection_Invalid];
+ optional bool is_physical = 8;
+ optional bool is_terminal = 9;
+ optional bool is_control = 10;
+ optional bool is_monitor = 11;
+}
+
+message CMsgSystemAudioManagerLink {
+ optional .CMsgSystemAudioManagerObject base = 1;
+ optional uint32 output_node_id = 2;
+ optional uint32 output_port_id = 3;
+ optional uint32 input_node_id = 4;
+ optional uint32 input_port_id = 5;
+}
+
+message CMsgSystemAudioManagerStateHW {
+ repeated .CMsgSystemAudioManagerDevice devices = 1;
+ repeated .CMsgSystemAudioManagerNode nodes = 2;
+ repeated .CMsgSystemAudioManagerPort ports = 3;
+ repeated .CMsgSystemAudioManagerLink links = 4;
+}
+
+message CMsgSystemAudioManagerState {
+ optional fixed32 rtime_filter = 1;
+ optional int32 counter = 2;
+ optional .CMsgSystemAudioManagerStateHW hw = 3;
+}
+
+message CMsgSystemAudioManagerUpdateSomething {
+ optional int32 counter = 1;
+}
+
+message CMsgSystemDisplayMode {
+ optional int32 id = 1;
+ optional int32 width = 2;
+ optional int32 height = 3;
+ optional int32 refresh_hz = 4;
+}
+
+message CMsgSystemDisplay {
+ optional int32 id = 1;
+ optional string name = 2;
+ optional string description = 3;
+ optional bool is_primary = 4;
+ optional bool is_enabled = 5;
+ optional bool is_internal = 6;
+ optional bool has_mode_override = 7;
+ optional int32 width_mm = 8;
+ optional int32 height_mm = 9;
+ optional int32 current_mode_id = 10;
+ repeated .CMsgSystemDisplayMode modes = 11;
+ optional int32 refresh_rate_min = 12;
+ optional int32 refresh_rate_max = 13;
+ optional bool is_vrr_capable = 14;
+ optional bool is_vrr_enabled = 15;
+ optional bool is_hdr_capable = 16;
+ optional bool is_hdr_enabled = 17;
+}
+
+message CMsgSystemDisplayManagerState {
+ repeated .CMsgSystemDisplay displays = 1;
+ optional bool is_mode_switching_supported = 2;
+ optional .ESystemDisplayCompatibilityMode compatibility_mode = 3 [default = k_ESystemDisplayCompatibilityMode_Invalid];
+}
+
+message CMsgSystemDisplayManagerSetMode {
+ optional int32 display_id = 1;
+ optional int32 mode_id = 2;
+}
+
+message CMsgSystemManagerSettings {
+ optional float idle_backlight_dim_battery_seconds = 1;
+ optional float idle_backlight_dim_ac_seconds = 2;
+ optional float idle_suspend_battery_seconds = 3;
+ optional float idle_suspend_ac_seconds = 4;
+ optional bool idle_suspend_supressed = 5;
+ optional bool is_adaptive_brightness_available = 6;
+ optional bool display_adaptive_brightness_enabled = 7;
+ optional bool is_display_colorprofile_available = 8;
+ optional .EColorProfile display_colorprofile = 9 [default = k_EColorProfile_Invalid];
+ optional bool display_nightmode_enabled = 10;
+ optional float display_nightmode_tintstrength = 11;
+ optional float display_nightmode_maxhue = 12;
+ optional float display_nightmode_maxsat = 13;
+ optional float display_nightmode_uiexp = 14;
+ optional float display_nightmode_blend = 15;
+ optional bool display_nightmode_reset = 16;
+ optional bool display_nightmode_schedule_enabled = 17;
+ optional float display_nightmode_schedule_starttime = 18;
+ optional float display_nightmode_schedule_endtime = 19;
+ optional bool display_diagnostics_enabled = 20;
+ optional float als_lux_latest = 21;
+ optional float als_lux_median = 22;
+ optional float display_brightness_linear = 23;
+ optional float display_brightness_adaptivemin = 24;
+ optional float display_brightness_adaptivemax = 25;
+ optional bool is_wifi_powersave_enabled = 26;
+ optional bool is_fan_control_available = 27;
+ optional .ESystemFanControlMode fan_control_mode = 28 [default = k_SystemFanControlMode_Invalid];
+}
+
+message CMsgSelectOSBranchParams {
+ optional .EOSBranch branch = 1 [default = k_EOSBranch_Unknown];
+ optional string custom_branch = 2;
+}
+
+message CMsgSystemUpdateProgress {
+ optional float stage_progress = 1;
+ optional int64 stage_size_bytes = 2;
+ optional fixed32 rtime_estimated_completion = 3;
+}
+
+message CMsgSystemUpdateCheckResult {
+ optional .EUpdaterType type = 1 [default = k_EUpdaterType_Invalid];
+ optional uint32 eresult = 2 [default = 2];
+ optional fixed32 rtime_checked = 3;
+ optional bool available = 4;
+ optional string version = 5;
+ optional string auto_message = 6;
+}
+
+message CMsgSystemUpdateApplyParams {
+ repeated .EUpdaterType apply_types = 1;
+}
+
+message CMsgSystemUpdateApplyResult {
+ optional .EUpdaterType type = 1 [default = k_EUpdaterType_Invalid];
+ optional uint32 eresult = 2 [default = 2];
+ optional bool requires_client_restart = 3 [default = false];
+ optional bool requires_system_restart = 4 [default = false];
+}
+
+message CMsgSystemUpdateState {
+ optional .EUpdaterState state = 1 [default = k_EUpdaterState_Invalid];
+ optional .CMsgSystemUpdateProgress progress = 2;
+ repeated .CMsgSystemUpdateCheckResult update_check_results = 3;
+ repeated .CMsgSystemUpdateApplyResult update_apply_results = 4;
+ optional bool supports_os_updates = 5;
+}
+
+message CMsgAchievementChange {
+ optional uint32 appid = 1;
+}
+
+message CMsgCellList {
+ message Cell {
+ optional uint32 cell_id = 1;
+ optional string loc_name = 2;
+ }
+
+ repeated .CMsgCellList.Cell cells = 1;
+}
+
+message CMsgShortcutInfo {
+ optional uint32 appid = 1;
+ optional string exe = 2;
+ optional string start_dir = 3;
+ optional string icon = 4;
+ optional string path = 5;
+ optional string args = 6;
+ optional string app_name = 7;
+ optional uint32 override_appid = 8;
+ optional string flatpak_appid = 9;
+ repeated string tags = 10;
+ optional bool is_remote = 11;
+ optional bool is_hidden = 12;
+ optional bool is_temporary = 13;
+ optional bool is_openvr = 14;
+ optional bool allow_desktop_config = 15;
+ optional bool allow_overlay = 16;
+ optional uint32 rt_last_played_time = 17;
+ optional bool is_devkit_shortcut = 18;
+ optional string devkit_gameid = 19;
+}
+
+message CMsgShortcutAppIds {
+ repeated uint32 appids = 1;
+}
+
+message CMsgMonitorInfo {
+ message MonitorInfo {
+ required string monitor_device_name = 1;
+ required string monitor_display_name = 2;
+ }
+
+ required string selected_display_name = 1;
+ repeated .CMsgMonitorInfo.MonitorInfo monitors = 2;
+}
diff --git a/protobuf_files/orig/steam/steammessages_clientlanp2p.proto b/protobuf_files/orig/steam/steammessages_clientlanp2p.proto
new file mode 100644
index 00000000..340b502d
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_clientlanp2p.proto
@@ -0,0 +1,42 @@
+import "steammessages_base.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+message CMsgClientLANP2PRequestChunks {
+ message ChunkKey {
+ optional uint32 depot_id = 1;
+ optional bytes sha = 2;
+ }
+
+ repeated .CMsgClientLANP2PRequestChunks.ChunkKey chunk_keys = 1;
+}
+
+message CMsgClientLANP2PRequestChunksResponse {
+ message ChunkData {
+ optional uint32 result = 1;
+ optional uint32 depot_id = 2;
+ optional bytes sha = 3;
+ optional bytes chunk_data = 4;
+ optional bool encrypted = 5;
+ optional bool compressed = 6;
+ }
+
+ repeated .CMsgClientLANP2PRequestChunksResponse.ChunkData chunk_responses = 1;
+}
+
+message CMsgClientPeerChunkRequest {
+ optional uint32 app_id = 1;
+ optional uint32 depot_id = 2;
+ optional bytes sha = 3;
+}
+
+message CMsgClientPeerChunkResponse {
+ optional uint32 result = 1;
+ optional uint32 app_id = 2;
+ optional uint32 depot_id = 3;
+ optional bytes sha = 4;
+ optional bool encrypted = 5;
+ optional bool compressed = 6;
+ optional bytes chunk_data = 7;
+}
diff --git a/protobuf_files/orig/steam/steammessages_clientmetrics.steamclient.proto b/protobuf_files/orig/steam/steammessages_clientmetrics.steamclient.proto
new file mode 100644
index 00000000..0e0af10d
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_clientmetrics.steamclient.proto
@@ -0,0 +1,194 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+import "clientmetrics.proto";
+
+option cc_generic_services = true;
+
+enum ESteamPipeWorkType {
+ k_ESteamPipeClientWorkType_Invalid = 0;
+ k_ESteamPipeClientWorkType_StageFromChunkStores = 1;
+}
+
+enum ESteamPipeOperationType {
+ k_ESteamPipeOperationType_Invalid = 0;
+ k_ESteamPipeOperationType_DecryptCPU = 1;
+ k_ESteamPipeOperationType_DiskRead = 2;
+ k_ESteamPipeOperationType_DiskWrite = 3;
+}
+
+message CClientMetrics_AppInterfaceCreation {
+ optional string raw_version = 1;
+ optional string requested_interface_type = 2;
+}
+
+message CClientMetrics_AppInterfaceMethodCounts {
+ optional string interface_name = 1;
+ optional string method_name = 2;
+ optional uint32 call_count = 3;
+}
+
+message CClientMetrics_AppInterfaceStats_Notification {
+ optional uint64 game_id = 1;
+ repeated .CClientMetrics_AppInterfaceCreation interfaces_created = 2;
+ repeated .CClientMetrics_AppInterfaceMethodCounts methods_called = 3;
+ optional uint32 session_length_seconds = 4;
+}
+
+message CClientMetrics_IPv6Connectivity_Result {
+ optional uint32 protocol_tested = 1;
+ optional uint32 connectivity_state = 2;
+}
+
+message CClientMetrics_IPv6Connectivity_Notification {
+ optional uint32 cell_id = 1;
+ repeated .CClientMetrics_IPv6Connectivity_Result results = 2;
+ optional bool private_ip_is_rfc6598 = 3;
+}
+
+message CClientMetrics_SteamPipeWorkStats_Operation {
+ optional .ESteamPipeOperationType type = 1 [default = k_ESteamPipeOperationType_Invalid];
+ optional uint32 num_ops = 2;
+ optional uint64 num_bytes = 3;
+ optional uint64 busy_time_ms = 4;
+ optional uint64 idle_time_ms = 5;
+ optional uint64 sum_run_time_ms = 6;
+ optional uint64 sum_wait_time_ms = 7;
+}
+
+message CClientMetrics_SteamPipeWorkStats_Notification {
+ optional uint32 appid = 1;
+ optional uint32 depotid = 2;
+ optional .ESteamPipeWorkType work_type = 3 [default = k_ESteamPipeClientWorkType_Invalid];
+ repeated .CClientMetrics_SteamPipeWorkStats_Operation operations = 4;
+ optional uint32 hardware_type = 5;
+}
+
+message CClientMetrics_ReportReactUsage_Notification {
+ message RouteData {
+ optional string route = 1;
+ optional uint32 count = 2;
+ }
+
+ message ComponentData {
+ optional string component = 1;
+ optional uint32 count = 2;
+ }
+
+ message ActionData {
+ optional string action = 1;
+ optional uint32 count = 2;
+ }
+
+ optional string product = 1;
+ optional string version = 2;
+ repeated .CClientMetrics_ReportReactUsage_Notification.RouteData routes = 3;
+ repeated .CClientMetrics_ReportReactUsage_Notification.ComponentData components = 4;
+ repeated .CClientMetrics_ReportReactUsage_Notification.ActionData actions = 5;
+}
+
+message CClientMetrics_ReportClientError_Notification {
+ message Error {
+ optional string identifier = 1;
+ optional string message = 2;
+ optional uint32 count = 3;
+ }
+
+ optional string product = 1;
+ optional string version = 2;
+ repeated .CClientMetrics_ReportClientError_Notification.Error errors = 3;
+}
+
+message CClientMetrics_ClientBootstrap_Notification {
+ optional .CClientMetrics_ClientBootstrap_Summary summary = 1;
+}
+
+message CClientMetrics_DownloadRates_Notification {
+ message StatsInfo {
+ optional uint32 source_type = 1;
+ optional uint32 source_id = 2;
+ optional uint64 bytes = 3;
+ optional string host_name = 4;
+ optional uint64 microseconds = 5;
+ optional bool used_ipv6 = 6;
+ optional bool proxied = 7;
+ optional bool used_http2 = 8;
+ optional uint32 cache_hits = 9;
+ optional uint32 cache_misses = 10;
+ optional uint64 hit_bytes = 11;
+ optional uint64 miss_bytes = 12;
+ }
+
+ optional uint32 cell_id = 1;
+ repeated .CClientMetrics_DownloadRates_Notification.StatsInfo stats = 2;
+ optional uint32 throttling_kbps = 3;
+}
+
+message CClientMetrics_ContentValidation_Notification {
+ optional int32 validation_result = 1;
+ optional uint32 app_id = 2;
+ optional bool staged_files = 3;
+ optional bool user_initiated = 4;
+ optional bool early_out = 5;
+ optional uint32 chunks_scanned = 6;
+ optional uint32 chunks_corrupt = 7;
+ optional uint64 bytes_scanned = 8;
+ optional uint64 chunk_bytes_corrupt = 9;
+ optional uint64 total_file_size_corrupt = 10;
+}
+
+message CClientMetrics_CloudAppSyncStats_Notification {
+ optional uint32 app_id = 1;
+ optional uint32 platform_type = 2;
+ optional bool preload = 3;
+ optional bool blocking_app_launch = 4;
+ optional uint32 files_uploaded = 5;
+ optional uint32 files_downloaded = 6;
+ optional uint32 files_deleted = 7;
+ optional uint64 bytes_uploaded = 8;
+ optional uint64 bytes_downloaded = 9;
+ optional uint64 microsec_total = 10;
+ optional uint64 microsec_init_caches = 11;
+ optional uint64 microsec_validate_state = 12;
+ optional uint64 microsec_ac_launch = 13;
+ optional uint64 microsec_ac_prep_user_files = 14;
+ optional uint64 microsec_ac_exit = 15;
+ optional uint64 microsec_build_sync_list = 16;
+ optional uint64 microsec_delete_files = 17;
+ optional uint64 microsec_download_files = 18;
+ optional uint64 microsec_upload_files = 19;
+ optional uint32 hardware_type = 20;
+ optional uint32 files_managed = 21;
+}
+
+message CClientMetrics_ContentDownloadResponse_Counts_Notification {
+ optional uint32 cell_id = 1;
+ optional .CClientMetrics_ContentDownloadResponse_Hosts data = 2;
+}
+
+message CClientMetrics_ReportClientArgs_Notification {
+ repeated string client_args = 1;
+ optional bool gpu_webview_regkey_disabled = 2;
+ optional bool suppress_gpu_chrome = 3;
+ optional bool browser_not_supported = 4;
+ optional bool hw_accel_video_regkey_disabled = 5;
+ optional bool mini_mode_enabled = 6;
+ optional bool fps_counter_enabled = 7;
+ optional bool library_low_bandwidth_mode_enabled = 8;
+ optional bool library_low_perf_mode_enabled = 9;
+}
+
+service ClientMetrics {
+ option (service_description) = "A service for client-reported metrics";
+
+ rpc ClientAppInterfaceStatsReport (.CClientMetrics_AppInterfaceStats_Notification) returns (.NoResponse);
+ rpc ClientIPv6ConnectivityReport (.CClientMetrics_IPv6Connectivity_Notification) returns (.NoResponse);
+ rpc SteamPipeWorkStatsReport (.CClientMetrics_SteamPipeWorkStats_Notification) returns (.NoResponse);
+ rpc ReportReactUsage (.CClientMetrics_ReportReactUsage_Notification) returns (.NoResponse);
+ rpc ReportClientError (.CClientMetrics_ReportClientError_Notification) returns (.NoResponse);
+ rpc ClientBootstrapReport (.CClientMetrics_ClientBootstrap_Notification) returns (.NoResponse);
+ rpc ClientDownloadRatesReport (.CClientMetrics_DownloadRates_Notification) returns (.NoResponse);
+ rpc ClientContentValidationReport (.CClientMetrics_ContentValidation_Notification) returns (.NoResponse);
+ rpc ClientCloudAppSyncStats (.CClientMetrics_CloudAppSyncStats_Notification) returns (.NoResponse);
+ rpc ClientDownloadResponseCodeCounts (.CClientMetrics_ContentDownloadResponse_Counts_Notification) returns (.NoResponse);
+ rpc ReportClientArgs (.CClientMetrics_ReportClientArgs_Notification) returns (.NoResponse);
+}
diff --git a/protobuf_files/orig/steam/steammessages_clientnotificationtypes.proto b/protobuf_files/orig/steam/steammessages_clientnotificationtypes.proto
new file mode 100644
index 00000000..057a62c8
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_clientnotificationtypes.proto
@@ -0,0 +1,176 @@
+option optimize_for = SPEED;
+option cc_generic_services = true;
+
+enum EClientNotificationType {
+ k_EClientNotificationType_Invalid = 0;
+ k_EClientNotificationType_DownloadCompleted = 1;
+ k_EClientNotificationType_FriendInvite = 2;
+ k_EClientNotificationType_FriendInGame = 3;
+ k_EClientNotificationType_FriendOnline = 4;
+ k_EClientNotificationType_Achievement = 5;
+ k_EClientNotificationType_LowBattery = 6;
+ k_EClientNotificationType_SystemUpdate = 7;
+ k_EClientNotificationType_FriendMessage = 8;
+ k_EClientNotificationType_GroupChatMessage = 9;
+ k_EClientNotificationType_FriendInviteRollup = 10;
+ k_EClientNotificationType_FamilySharingDeviceAuthorizationChanged = 11;
+ k_EClientNotificationType_FamilySharingStopPlaying = 12;
+ k_EClientNotificationType_FamilySharingLibraryAvailable = 13;
+ k_EClientNotificationType_Screenshot = 14;
+ k_EClientNotificationType_CloudSyncFailure = 15;
+ k_EClientNotificationType_CloudSyncConflict = 16;
+ k_EClientNotificationType_IncomingVoiceChat = 17;
+ k_EClientNotificationType_ClaimSteamDeckRewards = 18;
+ k_EClientNotificationType_GiftReceived = 19;
+ k_EClientNotificationType_ItemAnnouncement = 20;
+ k_EClientNotificationType_HardwareSurvey = 21;
+ k_EClientNotificationType_LowDiskSpace = 22;
+ k_EClientNotificationType_BatteryTemperature = 23;
+ k_EClientNotificationType_DockUnsupportedFirmware = 24;
+ k_EClientNotificationType_PeerContentUpload = 25;
+ k_EClientNotificationType_CannotReadControllerGuideButton = 26;
+ k_EClientNotificationType_Comment = 27;
+ k_EClientNotificationType_Wishlist = 28;
+ k_EClientNotificationType_TradeOffer = 29;
+ k_EClientNotificationType_AsyncGame = 30;
+ k_EClientNotificationType_General = 31;
+}
+
+enum ESystemUpdateNotificationType {
+ k_ESystemUpdateNotificationType_Invalid = 0;
+ k_ESystemUpdateNotificationType_Available = 1;
+ k_ESystemUpdateNotificationType_NeedsRestart = 2;
+}
+
+message CClientNotificationCloudSyncFailure {
+ optional uint32 appid = 1;
+}
+
+message CClientNotificationCloudSyncConflict {
+ optional uint32 appid = 1;
+}
+
+message CClientNotificationScreenshot {
+ optional string screenshot_handle = 1;
+ optional string description = 2;
+ optional string local_url = 3;
+}
+
+message CClientNotificationDownloadCompleted {
+ optional uint32 appid = 1;
+}
+
+message CClientNotificationFriendInvite {
+ optional fixed64 steamid = 1;
+}
+
+message CClientNotificationFriendInviteRollup {
+ optional uint32 new_invite_count = 1;
+}
+
+message CClientNotificationFriendInGame {
+ optional fixed64 steamid = 1;
+ optional string game_name = 2;
+}
+
+message CClientNotificationFriendOnline {
+ optional fixed64 steamid = 1;
+}
+
+message CClientNotificationAchievement {
+ optional string achievement_id = 1;
+ optional uint32 appid = 2;
+ optional string name = 3;
+ optional string description = 4;
+ optional string image_url = 5;
+ optional bool achieved = 6;
+ optional uint32 rtime_unlocked = 7;
+ optional float min_progress = 8;
+ optional float current_progress = 9;
+ optional float max_progress = 10;
+ optional float global_achieved_pct = 11;
+}
+
+message CClientNotificationLowBattery {
+ optional float pct_remaining = 1;
+}
+
+message CClientNotificationSystemUpdate {
+ optional .ESystemUpdateNotificationType type = 1 [default = k_ESystemUpdateNotificationType_Invalid];
+}
+
+message CClientNotificationFriendMessage {
+ optional string tag = 1;
+ optional string steamid = 2;
+ optional string title = 3;
+ optional string body = 4;
+ optional string icon = 5;
+ optional uint32 notificationid = 6;
+ optional string response_steamurl = 7;
+}
+
+message CClientNotificationGroupChatMessage {
+ optional string tag = 1;
+ optional string steamid_sender = 2;
+ optional string chat_group_id = 3;
+ optional string chat_id = 4;
+ optional string title = 5;
+ optional string body = 6;
+ optional string rawbody = 7;
+ optional string icon = 8;
+ optional uint32 notificationid = 9;
+}
+
+message CClientNotificationFamilySharingDeviceAuthorizationChanged {
+ optional uint32 accountid_owner = 1;
+ optional bool authorized = 2;
+}
+
+message CClientNotificationFamilySharingStopPlaying {
+ optional uint32 accountid_owner = 1;
+ optional uint32 seconds_remaining = 2;
+}
+
+message CClientNotificationFamilySharingLibraryAvailable {
+ optional uint32 accountid_owner = 1;
+}
+
+message CClientNotificationIncomingVoiceChat {
+ optional fixed64 steamid = 1;
+}
+
+message CClientNotificationClaimSteamDeckRewards {
+}
+
+message CClientNotificationGiftReceived {
+ optional string sender_name = 1;
+}
+
+message CClientNotificationItemAnnouncement {
+ optional uint32 new_item_count = 1;
+ optional bool new_backpack_items = 2;
+}
+
+message CClientNotificationHardwareSurveyPending {
+}
+
+message CClientNotificationLowDiskSpace {
+ optional uint32 folder_index = 1;
+}
+
+message CClientNotificationBatteryTemperature {
+ optional uint32 temperature = 1;
+ optional string notification_type = 2;
+}
+
+message CClientNotificationDockUnsupportedFirmware {
+}
+
+message CClientNotificationPeerContentUpload {
+ optional uint32 appid = 1;
+ optional string peer_name = 2;
+}
+
+message CClientNotificationCannotReadControllerGuideButton {
+ optional int32 controller_index = 1;
+}
diff --git a/protobuf_files/orig/steam/steammessages_clientserver.proto b/protobuf_files/orig/steam/steammessages_clientserver.proto
new file mode 100644
index 00000000..02eb7ecc
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_clientserver.proto
@@ -0,0 +1,392 @@
+import "steammessages_base.proto";
+import "encrypted_app_ticket.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+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 CMsgClientGamesPlayed {
+ message ProcessInfo {
+ optional uint32 process_id = 1;
+ optional uint32 process_id_parent = 2;
+ optional bool parent_is_steam = 3;
+ }
+
+ 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];
+ optional int32 game_os_platform = 25;
+ optional uint32 game_build_id = 26;
+ optional uint32 compat_tool_id = 27 [default = 0];
+ optional string compat_tool_cmd = 28;
+ optional uint32 compat_tool_build_id = 29;
+ optional string beta_name = 30;
+ optional uint32 dlc_context = 31;
+ repeated .CMsgClientGamesPlayed.ProcessInfo process_id_list = 32;
+ }
+
+ repeated .CMsgClientGamesPlayed.GamePlayed games_played = 1;
+ optional uint32 client_os_type = 2;
+ optional uint32 cloud_gaming_platform = 3;
+ optional bool recent_reauthentication = 4;
+}
+
+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 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 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;
+ optional bool no_udp_connectivity = 8;
+ optional bool no_tcp_connectivity = 9;
+ optional bool no_websocket_443_connectivity = 10;
+ optional bool no_websocket_non_443_connectivity = 11;
+ }
+
+ 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 CMsgClientReportOverlayDetourFailure {
+ repeated string failure_strings = 1;
+}
+
+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 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;
+}
diff --git a/protobuf_files/orig/steam/steammessages_clientserver_2.proto b/protobuf_files/orig/steam/steammessages_clientserver_2.proto
new file mode 100644
index 00000000..b32e8be9
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_clientserver_2.proto
@@ -0,0 +1,758 @@
+import "steammessages_base.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+message CMsgClientUpdateUserGameInfo {
+ optional fixed64 steamid_idgs = 1;
+ optional fixed64 gameid = 2;
+ optional uint32 game_ip = 3;
+ optional uint32 game_port = 4;
+ optional bytes token = 5;
+}
+
+message CMsgClientRichPresenceUpload {
+ optional bytes rich_presence_kv = 1;
+ repeated fixed64 steamid_broadcast = 2;
+}
+
+message CMsgClientRichPresenceRequest {
+ repeated fixed64 steamid_request = 1;
+}
+
+message CMsgClientRichPresenceInfo {
+ message RichPresence {
+ optional fixed64 steamid_user = 1;
+ optional bytes rich_presence_kv = 2;
+ }
+
+ repeated .CMsgClientRichPresenceInfo.RichPresence rich_presence = 1;
+}
+
+message CMsgClientCheckFileSignature {
+ optional uint32 app_id = 1;
+}
+
+message CMsgClientCheckFileSignatureResponse {
+ optional uint32 app_id = 1;
+ optional uint32 pid = 2;
+ optional uint32 eresult = 3;
+ optional string filename = 4;
+ optional uint32 esignatureresult = 5;
+ optional bytes sha_file = 6;
+ optional bytes signatureheader = 7;
+ optional uint32 filesize = 8;
+ optional uint32 getlasterror = 9;
+ optional uint32 evalvesignaturecheckdetail = 10;
+}
+
+message CMsgClientReadMachineAuth {
+ optional string filename = 1;
+ optional uint32 offset = 2;
+ optional uint32 cubtoread = 3;
+}
+
+message CMsgClientReadMachineAuthResponse {
+ optional string filename = 1;
+ optional uint32 eresult = 2;
+ optional uint32 filesize = 3;
+ optional bytes sha_file = 4;
+ optional uint32 getlasterror = 5;
+ optional uint32 offset = 6;
+ optional uint32 cubread = 7;
+ optional bytes bytes_read = 8;
+ optional string filename_sentry = 9;
+}
+
+message CMsgClientUpdateMachineAuth {
+ optional string filename = 1;
+ optional uint32 offset = 2;
+ optional uint32 cubtowrite = 3;
+ optional bytes bytes = 4;
+ optional uint32 otp_type = 5;
+ optional string otp_identifier = 6;
+ optional bytes otp_sharedsecret = 7;
+ optional uint32 otp_timedrift = 8;
+}
+
+message CMsgClientUpdateMachineAuthResponse {
+ optional string filename = 1;
+ optional uint32 eresult = 2;
+ optional uint32 filesize = 3;
+ optional bytes sha_file = 4;
+ optional uint32 getlasterror = 5;
+ optional uint32 offset = 6;
+ optional uint32 cubwrote = 7;
+ optional int32 otp_type = 8;
+ optional uint32 otp_value = 9;
+ optional string otp_identifier = 10;
+}
+
+message CMsgClientRequestMachineAuth {
+ optional string filename = 1;
+ optional uint32 eresult_sentryfile = 2;
+ optional uint32 filesize = 3;
+ optional bytes sha_sentryfile = 4;
+ optional int32 lock_account_action = 6;
+ optional uint32 otp_type = 7;
+ optional string otp_identifier = 8;
+ optional bytes otp_sharedsecret = 9;
+ optional uint32 otp_value = 10;
+ optional string machine_name = 11;
+ optional string machine_name_userchosen = 12;
+}
+
+message CMsgClientRequestMachineAuthResponse {
+ optional uint32 eresult = 1;
+}
+
+message CMsgClientRegisterKey {
+ optional string key = 1;
+}
+
+message CMsgClientPurchaseResponse {
+ optional int32 eresult = 1 [default = 2];
+ optional int32 purchase_result_details = 2;
+ optional bytes purchase_receipt_info = 3;
+}
+
+message CMsgClientActivateOEMLicense {
+ optional string bios_manufacturer = 1;
+ optional string bios_serialnumber = 2;
+ optional bytes license_file = 3;
+ optional string mainboard_manufacturer = 4;
+ optional string mainboard_product = 5;
+ optional string mainboard_serialnumber = 6;
+}
+
+message CMsgClientRegisterOEMMachine {
+ optional bytes oem_register_file = 1;
+}
+
+message CMsgClientRegisterOEMMachineResponse {
+ optional uint32 eresult = 1;
+}
+
+message CMsgClientPurchaseWithMachineID {
+ optional uint32 package_id = 1;
+ optional bytes machine_info = 2;
+}
+
+message CMsgTrading_InitiateTradeRequest {
+ optional uint32 trade_request_id = 1;
+ optional uint64 other_steamid = 2;
+ optional string other_name = 3;
+}
+
+message CMsgTrading_InitiateTradeResponse {
+ optional uint32 response = 1;
+ optional uint32 trade_request_id = 2;
+ optional uint64 other_steamid = 3;
+ optional uint32 steamguard_required_days = 4;
+ optional uint32 new_device_cooldown_days = 5;
+ optional uint32 default_password_reset_probation_days = 6;
+ optional uint32 password_reset_probation_days = 7;
+ optional uint32 default_email_change_probation_days = 8;
+ optional uint32 email_change_probation_days = 9;
+}
+
+message CMsgTrading_CancelTradeRequest {
+ optional uint64 other_steamid = 1;
+}
+
+message CMsgTrading_StartSession {
+ optional uint64 other_steamid = 1;
+}
+
+message CMsgClientGetCDNAuthToken {
+ optional uint32 depot_id = 1;
+ optional string host_name = 2;
+ optional uint32 app_id = 3;
+}
+
+message CMsgClientGetDepotDecryptionKey {
+ optional uint32 depot_id = 1;
+ optional uint32 app_id = 2;
+}
+
+message CMsgClientGetDepotDecryptionKeyResponse {
+ optional int32 eresult = 1 [default = 2];
+ optional uint32 depot_id = 2;
+ optional bytes depot_encryption_key = 3;
+}
+
+message CMsgClientCheckAppBetaPassword {
+ optional uint32 app_id = 1;
+ optional string betapassword = 2;
+ optional int32 language = 3;
+}
+
+message CMsgClientCheckAppBetaPasswordResponse {
+ message BetaPassword {
+ optional string betaname = 1;
+ optional string betapassword = 2;
+ optional string betadescription = 3;
+ }
+
+ optional int32 eresult = 1 [default = 2];
+ repeated .CMsgClientCheckAppBetaPasswordResponse.BetaPassword betapasswords = 4;
+}
+
+message CMsgClientGetCDNAuthTokenResponse {
+ optional uint32 eresult = 1 [default = 2];
+ optional string token = 2;
+ optional uint32 expiration_time = 3;
+}
+
+message CMsgDownloadRateStatistics {
+ message StatsInfo {
+ optional uint32 source_type = 1;
+ optional uint32 source_id = 2;
+ optional uint32 seconds = 3;
+ optional uint64 bytes = 4;
+ optional string host_name = 5;
+ optional uint64 microseconds = 6;
+ optional bool used_ipv6 = 7;
+ optional bool proxied = 8;
+ }
+
+ optional uint32 cell_id = 1;
+ repeated .CMsgDownloadRateStatistics.StatsInfo stats = 2;
+ optional uint32 throttling_kbps = 3;
+ optional uint32 steam_realm = 4;
+}
+
+message CMsgClientRequestAccountData {
+ optional string account_or_email = 1;
+ optional uint32 action = 2;
+}
+
+message CMsgClientRequestAccountDataResponse {
+ optional uint32 action = 1;
+ optional uint32 eresult = 2;
+ optional string account_name = 3;
+ optional uint32 ct_matches = 4;
+ optional string account_name_suggestion1 = 5;
+ optional string account_name_suggestion2 = 6;
+ optional string account_name_suggestion3 = 7;
+}
+
+message CMsgClientUGSGetGlobalStats {
+ optional uint64 gameid = 1;
+ optional uint32 history_days_requested = 2;
+ optional fixed32 time_last_requested = 3;
+ optional uint32 first_day_cached = 4;
+ optional uint32 days_cached = 5;
+}
+
+message CMsgClientUGSGetGlobalStatsResponse {
+ message Day {
+ message Stat {
+ optional int32 stat_id = 1;
+ optional int64 data = 2;
+ }
+
+ optional uint32 day_id = 1;
+ repeated .CMsgClientUGSGetGlobalStatsResponse.Day.Stat stats = 2;
+ }
+
+ optional int32 eresult = 1 [default = 2];
+ optional fixed32 timestamp = 2;
+ optional int32 day_current = 3;
+ repeated .CMsgClientUGSGetGlobalStatsResponse.Day days = 4;
+}
+
+message CMsgClientRedeemGuestPass {
+ optional fixed64 guest_pass_id = 1;
+}
+
+message CMsgClientRedeemGuestPassResponse {
+ optional uint32 eresult = 1 [default = 2];
+ optional uint32 package_id = 2;
+ optional uint32 must_own_appid = 3;
+}
+
+message CMsgClientGetClanActivityCounts {
+ repeated uint64 steamid_clans = 1;
+}
+
+message CMsgClientGetClanActivityCountsResponse {
+ optional uint32 eresult = 1 [default = 2];
+}
+
+message CMsgClientOGSReportString {
+ optional bool accumulated = 1;
+ optional uint64 sessionid = 2;
+ optional int32 severity = 3;
+ optional string formatter = 4;
+ optional bytes varargs = 5;
+}
+
+message CMsgClientOGSReportBug {
+ optional uint64 sessionid = 1;
+ optional string bugtext = 2;
+ optional bytes screenshot = 3;
+}
+
+message CMsgClientSentLogs {
+}
+
+message CMsgGCClient {
+ optional uint32 appid = 1;
+ optional uint32 msgtype = 2;
+ optional bytes payload = 3;
+ optional fixed64 steamid = 4;
+ optional string gcname = 5;
+ optional uint32 ip = 6;
+}
+
+message CMsgClientRequestFreeLicense {
+ repeated uint32 appids = 2;
+}
+
+message CMsgClientRequestFreeLicenseResponse {
+ optional uint32 eresult = 1 [default = 2];
+ repeated uint32 granted_packageids = 2;
+ repeated uint32 granted_appids = 3;
+}
+
+message CMsgDRMDownloadRequestWithCrashData {
+ optional uint32 download_flags = 1;
+ optional uint32 download_types_known = 2;
+ optional bytes guid_drm = 3;
+ optional bytes guid_split = 4;
+ optional bytes guid_merge = 5;
+ optional string module_name = 6;
+ optional string module_path = 7;
+ optional bytes crash_data = 8;
+}
+
+message CMsgDRMDownloadResponse {
+ optional uint32 eresult = 1 [default = 2];
+ optional uint32 app_id = 2;
+ optional uint32 blob_download_type = 3;
+ optional bytes merge_guid = 4;
+ optional uint32 download_file_dfs_ip = 5;
+ optional uint32 download_file_dfs_port = 6;
+ optional string download_file_url = 7;
+ optional string module_path = 8;
+}
+
+message CMsgDRMFinalResult {
+ optional uint32 eResult = 1 [default = 2];
+ optional uint32 app_id = 2;
+ optional uint32 blob_download_type = 3;
+ optional uint32 error_detail = 4;
+ optional bytes merge_guid = 5;
+ optional uint32 download_file_dfs_ip = 6;
+ optional uint32 download_file_dfs_port = 7;
+ optional string download_file_url = 8;
+}
+
+message CMsgClientDPCheckSpecialSurvey {
+ optional uint32 survey_id = 1;
+}
+
+message CMsgClientDPCheckSpecialSurveyResponse {
+ optional uint32 eResult = 1 [default = 2];
+ optional uint32 state = 2;
+ optional string name = 3;
+ optional string custom_url = 4;
+ optional bool include_software = 5;
+ optional bytes token = 6;
+}
+
+message CMsgClientDPSendSpecialSurveyResponse {
+ optional uint32 survey_id = 1;
+ optional bytes data = 2;
+}
+
+message CMsgClientDPSendSpecialSurveyResponseReply {
+ optional uint32 eResult = 1 [default = 2];
+ optional bytes token = 2;
+}
+
+message CMsgClientRequestForgottenPasswordEmail {
+ optional string account_name = 1;
+ optional string password_tried = 2;
+}
+
+message CMsgClientRequestForgottenPasswordEmailResponse {
+ optional uint32 eResult = 1;
+ optional bool use_secret_question = 2;
+}
+
+message CMsgClientItemAnnouncements {
+ message UnseenItem {
+ optional uint32 appid = 1;
+ optional uint64 context_id = 2;
+ optional uint64 asset_id = 3;
+ optional uint64 amount = 4;
+ optional fixed32 rtime32_gained = 5;
+ optional uint32 source_appid = 6;
+ }
+
+ optional uint32 count_new_items = 1;
+ repeated .CMsgClientItemAnnouncements.UnseenItem unseen_items = 2;
+}
+
+message CMsgClientRequestItemAnnouncements {
+}
+
+message CMsgClientUserNotifications {
+ message Notification {
+ optional uint32 user_notification_type = 1;
+ optional uint32 count = 2;
+ }
+
+ repeated .CMsgClientUserNotifications.Notification notifications = 1;
+}
+
+message CMsgClientCommentNotifications {
+ optional uint32 count_new_comments = 1;
+ optional uint32 count_new_comments_owner = 2;
+ optional uint32 count_new_comments_subscriptions = 3;
+}
+
+message CMsgClientRequestCommentNotifications {
+}
+
+message CMsgClientOfflineMessageNotification {
+ optional uint32 offline_messages = 1;
+ repeated uint32 friends_with_offline_messages = 2;
+}
+
+message CMsgClientRequestOfflineMessageCount {
+}
+
+message CMsgClientChatGetFriendMessageHistory {
+ optional fixed64 steamid = 1;
+}
+
+message CMsgClientChatGetFriendMessageHistoryResponse {
+ message FriendMessage {
+ optional uint32 accountid = 1;
+ optional uint32 timestamp = 2;
+ optional string message = 3;
+ optional bool unread = 4;
+ }
+
+ optional fixed64 steamid = 1;
+ optional uint32 success = 2;
+ repeated .CMsgClientChatGetFriendMessageHistoryResponse.FriendMessage messages = 3;
+}
+
+message CMsgClientChatGetFriendMessageHistoryForOfflineMessages {
+}
+
+message CMsgClientFSGetFriendsSteamLevels {
+ repeated uint32 accountids = 1;
+}
+
+message CMsgClientFSGetFriendsSteamLevelsResponse {
+ message Friend {
+ optional uint32 accountid = 1;
+ optional uint32 level = 2;
+ }
+
+ repeated .CMsgClientFSGetFriendsSteamLevelsResponse.Friend friends = 1;
+}
+
+message CMsgClientEmailAddrInfo {
+ optional string email_address = 1;
+ optional bool email_is_validated = 2;
+ optional bool email_validation_changed = 3;
+ optional bool credential_change_requires_code = 4;
+ optional bool password_or_secretqa_change_requires_code = 5;
+}
+
+message CMsgCREItemVoteSummary {
+ message PublishedFileId {
+ optional fixed64 published_file_id = 1;
+ }
+
+ repeated .CMsgCREItemVoteSummary.PublishedFileId published_file_ids = 1;
+}
+
+message CMsgCREItemVoteSummaryResponse {
+ message ItemVoteSummary {
+ optional fixed64 published_file_id = 1;
+ optional int32 votes_for = 2;
+ optional int32 votes_against = 3;
+ optional int32 reports = 4;
+ optional float score = 5;
+ }
+
+ optional int32 eresult = 1 [default = 2];
+ repeated .CMsgCREItemVoteSummaryResponse.ItemVoteSummary item_vote_summaries = 2;
+}
+
+message CMsgCREUpdateUserPublishedItemVote {
+ optional fixed64 published_file_id = 1;
+ optional bool vote_up = 2;
+}
+
+message CMsgCREUpdateUserPublishedItemVoteResponse {
+ optional int32 eresult = 1 [default = 2];
+}
+
+message CMsgCREGetUserPublishedItemVoteDetails {
+ message PublishedFileId {
+ optional fixed64 published_file_id = 1;
+ }
+
+ repeated .CMsgCREGetUserPublishedItemVoteDetails.PublishedFileId published_file_ids = 1;
+}
+
+message CMsgCREGetUserPublishedItemVoteDetailsResponse {
+ message UserItemVoteDetail {
+ optional fixed64 published_file_id = 1;
+ optional int32 vote = 2 [default = 0];
+ }
+
+ optional int32 eresult = 1 [default = 2];
+ repeated .CMsgCREGetUserPublishedItemVoteDetailsResponse.UserItemVoteDetail user_item_vote_details = 2;
+}
+
+message CMsgFSGetFollowerCount {
+ optional fixed64 steam_id = 1;
+}
+
+message CMsgFSGetFollowerCountResponse {
+ optional int32 eresult = 1 [default = 2];
+ optional int32 count = 2 [default = 0];
+}
+
+message CMsgFSGetIsFollowing {
+ optional fixed64 steam_id = 1;
+}
+
+message CMsgFSGetIsFollowingResponse {
+ optional int32 eresult = 1 [default = 2];
+ optional bool is_following = 2 [default = false];
+}
+
+message CMsgFSEnumerateFollowingList {
+ optional uint32 start_index = 1;
+}
+
+message CMsgFSEnumerateFollowingListResponse {
+ optional int32 eresult = 1 [default = 2];
+ optional int32 total_results = 2;
+ repeated fixed64 steam_ids = 3;
+}
+
+message CMsgDPGetNumberOfCurrentPlayers {
+ optional uint32 appid = 1;
+}
+
+message CMsgDPGetNumberOfCurrentPlayersResponse {
+ optional int32 eresult = 1 [default = 2];
+ optional int32 player_count = 2;
+}
+
+message CMsgClientFriendUserStatusPublished {
+ optional fixed64 friend_steamid = 1;
+ optional uint32 appid = 2;
+ optional string status_text = 3;
+}
+
+message CMsgClientServiceMethodLegacy {
+ optional string method_name = 1;
+ optional bytes serialized_method = 2;
+ optional bool is_notification = 3;
+}
+
+message CMsgClientServiceMethodLegacyResponse {
+ optional string method_name = 1;
+ optional bytes serialized_method_response = 2;
+}
+
+message CMsgClientUIMode {
+ optional uint32 uimode = 1;
+ optional uint32 chat_mode = 2;
+}
+
+message CMsgClientVanityURLChangedNotification {
+ optional string vanity_url = 1;
+}
+
+message CMsgClientAuthorizeLocalDeviceRequest {
+ optional string device_description = 1;
+ optional uint32 owner_account_id = 2;
+ optional uint64 local_device_token = 3;
+}
+
+message CMsgClientAuthorizeLocalDevice {
+ optional int32 eresult = 1 [default = 2];
+ optional uint32 owner_account_id = 2;
+ optional uint64 authed_device_token = 3;
+}
+
+message CMsgClientAuthorizeLocalDeviceNotification {
+ optional int32 eresult = 1 [default = 2];
+ optional uint32 owner_account_id = 2;
+ optional uint64 local_device_token = 3;
+}
+
+message CMsgClientDeauthorizeDeviceRequest {
+ optional uint32 deauthorization_account_id = 1;
+ optional uint64 deauthorization_device_token = 2;
+}
+
+message CMsgClientDeauthorizeDevice {
+ optional int32 eresult = 1 [default = 2];
+ optional uint32 deauthorization_account_id = 2;
+}
+
+message CMsgClientUseLocalDeviceAuthorizations {
+ message DeviceToken {
+ optional uint32 owner_account_id = 1;
+ optional uint64 token_id = 2;
+ }
+
+ repeated uint32 authorization_account_id = 1;
+ repeated .CMsgClientUseLocalDeviceAuthorizations.DeviceToken device_tokens = 2;
+}
+
+message CMsgClientGetAuthorizedDevices {
+}
+
+message CMsgClientGetAuthorizedDevicesResponse {
+ message AuthorizedDevice {
+ optional uint64 auth_device_token = 1;
+ optional string device_name = 2;
+ optional uint32 last_access_time = 3;
+ optional uint32 borrower_id = 4;
+ optional bool is_pending = 5;
+ optional uint32 app_played = 6;
+ }
+
+ optional int32 eresult = 1 [default = 2];
+ repeated .CMsgClientGetAuthorizedDevicesResponse.AuthorizedDevice authorized_device = 2;
+}
+
+message CMsgClientSharedLibraryLockStatus {
+ message LockedLibrary {
+ optional uint32 owner_id = 1;
+ optional uint32 locked_by = 2;
+ }
+
+ repeated .CMsgClientSharedLibraryLockStatus.LockedLibrary locked_library = 1;
+ optional uint32 own_library_locked_by = 2;
+}
+
+message CMsgClientSharedLibraryStopPlaying {
+ message StopApp {
+ optional uint32 app_id = 1;
+ optional uint32 owner_id = 2;
+ }
+
+ optional int32 seconds_left = 1;
+ repeated .CMsgClientSharedLibraryStopPlaying.StopApp stop_apps = 2;
+}
+
+message CMsgClientServiceCall {
+ optional bytes sysid_routing = 1;
+ optional uint32 call_handle = 2;
+ optional uint32 module_crc = 3;
+ optional bytes module_hash = 4;
+ optional uint32 function_id = 5;
+ optional uint32 cub_output_max = 6;
+ optional uint32 flags = 7;
+ optional bytes callparameter = 8;
+ optional bool ping_only = 9;
+ optional uint32 max_outstanding_calls = 10;
+ optional uint32 app_id = 11;
+}
+
+message CMsgClientServiceModule {
+ optional uint32 module_crc = 1;
+ optional bytes module_hash = 2;
+ optional bytes module_content = 3;
+}
+
+message CMsgClientServiceCallResponse {
+ optional bytes sysid_routing = 1;
+ optional uint32 call_handle = 2;
+ optional uint32 module_crc = 3;
+ optional bytes module_hash = 4;
+ optional uint32 ecallresult = 5;
+ optional bytes result_content = 6;
+ optional bytes os_version_info = 7;
+ optional bytes system_info = 8;
+ optional fixed64 load_address = 9;
+ optional bytes exception_record = 10;
+ optional bytes portable_os_version_info = 11;
+ optional bytes portable_system_info = 12;
+ optional bool was_converted = 13;
+ optional uint32 internal_result = 14;
+ optional uint32 current_count = 15;
+ optional uint32 last_call_handle = 16;
+ optional uint32 last_call_module_crc = 17;
+ optional bytes last_call_sysid_routing = 18;
+ optional uint32 last_ecallresult = 19;
+ optional uint32 last_callissue_delta = 20;
+ optional uint32 last_callcomplete_delta = 21;
+}
+
+message CMsgAMUnlockH264 {
+ optional uint32 appid = 1;
+ optional int32 platform = 2;
+ optional int32 reason = 3;
+}
+
+message CMsgAMUnlockH264Response {
+ optional int32 eresult = 1 [default = 2];
+ optional bytes encryption_key = 2;
+}
+
+message CMsgClientPlayingSessionState {
+ optional bool playing_blocked = 2;
+ optional uint32 playing_app = 3;
+}
+
+message CMsgClientKickPlayingSession {
+ optional bool only_stop_game = 1;
+}
+
+message CMsgClientVoiceCallPreAuthorize {
+ optional fixed64 caller_steamid = 1;
+ optional fixed64 receiver_steamid = 2;
+ optional int32 caller_id = 3;
+ optional bool hangup = 4;
+}
+
+message CMsgClientVoiceCallPreAuthorizeResponse {
+ optional fixed64 caller_steamid = 1;
+ optional fixed64 receiver_steamid = 2;
+ optional int32 eresult = 3 [default = 2];
+ optional int32 caller_id = 4;
+}
+
+message CMsgBadgeCraftedNotification {
+ optional uint32 appid = 1;
+ optional uint32 badge_level = 2;
+}
+
+message CMsgClientStartPeerContentServer {
+ optional fixed64 steamid = 1;
+ optional fixed64 client_remote_id = 2;
+ optional uint32 app_id = 3;
+ optional uint32 current_build_id = 4;
+}
+
+message CMsgClientStartPeerContentServerResponse {
+ optional uint32 result = 1;
+ optional uint32 server_port = 2;
+}
+
+message CMsgClientGetPeerContentInfo {
+ optional fixed64 steamid = 1;
+ optional fixed64 client_remote_id = 2;
+}
+
+message CMsgClientGetPeerContentInfoResponse {
+ optional uint32 result = 1;
+ repeated uint32 apps = 2;
+}
diff --git a/protobuf_files/orig/steam/steammessages_clientserver_appinfo.proto b/protobuf_files/orig/steam/steammessages_clientserver_appinfo.proto
new file mode 100644
index 00000000..41bcdabd
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_clientserver_appinfo.proto
@@ -0,0 +1,130 @@
+import "steammessages_base.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+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 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 OBSOLETE_supports_package_tokens = 5;
+ optional uint32 sequence_number = 6;
+}
+
+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;
+}
diff --git a/protobuf_files/orig/steam/steammessages_clientserver_friends.proto b/protobuf_files/orig/steam/steammessages_clientserver_friends.proto
new file mode 100644
index 00000000..62c70e10
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_clientserver_friends.proto
@@ -0,0 +1,260 @@
+import "steammessages_base.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+message CMsgClientFriendMsg {
+ optional fixed64 steamid = 1;
+ optional int32 chat_entry_type = 2;
+ optional bytes message = 3;
+ optional fixed32 rtime32_server_timestamp = 4;
+ optional bool echo_to_sender = 5;
+}
+
+message CMsgClientFriendMsgIncoming {
+ optional fixed64 steamid_from = 1;
+ optional int32 chat_entry_type = 2;
+ optional bool from_limited_account = 3;
+ optional bytes message = 4;
+ optional fixed32 rtime32_server_timestamp = 5;
+}
+
+message CMsgClientAddFriend {
+ optional fixed64 steamid_to_add = 1;
+ optional string accountname_or_email_to_add = 2;
+}
+
+message CMsgClientAddFriendResponse {
+ optional int32 eresult = 1 [default = 2];
+ optional fixed64 steam_id_added = 2;
+ optional string persona_name_added = 3;
+}
+
+message CMsgClientRemoveFriend {
+ optional fixed64 friendid = 1;
+}
+
+message CMsgClientHideFriend {
+ optional fixed64 friendid = 1;
+ optional bool hide = 2;
+}
+
+message CMsgClientFriendsList {
+ message Friend {
+ optional fixed64 ulfriendid = 1;
+ optional uint32 efriendrelationship = 2;
+ }
+
+ optional bool bincremental = 1;
+ repeated .CMsgClientFriendsList.Friend friends = 2;
+ optional uint32 max_friend_count = 3;
+ optional uint32 active_friend_count = 4;
+ optional bool friends_limit_hit = 5;
+}
+
+message CMsgClientFriendsGroupsList {
+ message FriendGroup {
+ optional int32 nGroupID = 1;
+ optional string strGroupName = 2;
+ }
+
+ message FriendGroupsMembership {
+ optional fixed64 ulSteamID = 1;
+ optional int32 nGroupID = 2;
+ }
+
+ optional bool bremoval = 1;
+ optional bool bincremental = 2;
+ repeated .CMsgClientFriendsGroupsList.FriendGroup friendGroups = 3;
+ repeated .CMsgClientFriendsGroupsList.FriendGroupsMembership memberships = 4;
+}
+
+message CMsgClientPlayerNicknameList {
+ message PlayerNickname {
+ optional fixed64 steamid = 1;
+ optional string nickname = 3;
+ }
+
+ optional bool removal = 1;
+ optional bool incremental = 2;
+ repeated .CMsgClientPlayerNicknameList.PlayerNickname nicknames = 3;
+}
+
+message CMsgClientSetPlayerNickname {
+ optional fixed64 steamid = 1;
+ optional string nickname = 2;
+}
+
+message CMsgClientSetPlayerNicknameResponse {
+ optional uint32 eresult = 1;
+}
+
+message CMsgClientRequestFriendData {
+ optional uint32 persona_state_requested = 1;
+ repeated fixed64 friends = 2;
+}
+
+message CMsgClientChangeStatus {
+ optional uint32 persona_state = 1;
+ optional string player_name = 2;
+ optional bool is_auto_generated_name = 3;
+ optional bool high_priority = 4;
+ optional bool persona_set_by_user = 5;
+ optional uint32 persona_state_flags = 6 [default = 0];
+ optional bool need_persona_response = 7;
+ optional bool is_client_idle = 8;
+}
+
+message CMsgPersonaChangeResponse {
+ optional uint32 result = 1;
+ optional string player_name = 2;
+}
+
+message CMsgClientPersonaState {
+ message Friend {
+ message ClanData {
+ optional uint32 ogg_app_id = 1;
+ optional uint64 chat_group_id = 2;
+ }
+
+ message KV {
+ optional string key = 1;
+ optional string value = 2;
+ }
+
+ optional fixed64 friendid = 1;
+ optional uint32 persona_state = 2;
+ optional uint32 game_played_app_id = 3;
+ optional uint32 game_server_ip = 4;
+ optional uint32 game_server_port = 5;
+ optional uint32 persona_state_flags = 6;
+ optional uint32 online_session_instances = 7;
+ optional bool persona_set_by_user = 10;
+ optional string player_name = 15;
+ optional uint32 query_port = 20;
+ optional fixed64 steamid_source = 25;
+ optional bytes avatar_hash = 31;
+ optional uint32 last_logoff = 45;
+ optional uint32 last_logon = 46;
+ optional uint32 last_seen_online = 47;
+ optional uint32 clan_rank = 50;
+ optional string game_name = 55;
+ optional fixed64 gameid = 56;
+ optional bytes game_data_blob = 60;
+ optional .CMsgClientPersonaState.Friend.ClanData clan_data = 64;
+ optional string clan_tag = 65;
+ repeated .CMsgClientPersonaState.Friend.KV rich_presence = 71;
+ optional fixed64 broadcast_id = 72;
+ optional fixed64 game_lobby_id = 73;
+ optional uint32 watching_broadcast_accountid = 74;
+ optional uint32 watching_broadcast_appid = 75;
+ optional uint32 watching_broadcast_viewers = 76;
+ optional string watching_broadcast_title = 77;
+ optional bool is_community_banned = 78;
+ optional bool player_name_pending_review = 79;
+ optional bool avatar_pending_review = 80;
+ }
+
+ optional uint32 status_flags = 1;
+ repeated .CMsgClientPersonaState.Friend friends = 2;
+}
+
+message CMsgClientFriendProfileInfo {
+ optional fixed64 steamid_friend = 1;
+}
+
+message CMsgClientFriendProfileInfoResponse {
+ optional int32 eresult = 1 [default = 2];
+ optional fixed64 steamid_friend = 2;
+ optional uint32 time_created = 3;
+ optional string real_name = 4;
+ optional string city_name = 5;
+ optional string state_name = 6;
+ optional string country_name = 7;
+ optional string headline = 8;
+ optional string summary = 9;
+}
+
+message CMsgClientCreateFriendsGroup {
+ optional fixed64 steamid = 1;
+ optional string groupname = 2;
+ repeated fixed64 steamid_friends = 3;
+}
+
+message CMsgClientCreateFriendsGroupResponse {
+ optional uint32 eresult = 1;
+ optional int32 groupid = 2;
+}
+
+message CMsgClientDeleteFriendsGroup {
+ optional fixed64 steamid = 1;
+ optional int32 groupid = 2;
+}
+
+message CMsgClientDeleteFriendsGroupResponse {
+ optional uint32 eresult = 1;
+}
+
+message CMsgClientManageFriendsGroup {
+ optional int32 groupid = 1;
+ optional string groupname = 2;
+ repeated fixed64 steamid_friends_added = 3;
+ repeated fixed64 steamid_friends_removed = 4;
+}
+
+message CMsgClientManageFriendsGroupResponse {
+ optional uint32 eresult = 1;
+}
+
+message CMsgClientAddFriendToGroup {
+ optional int32 groupid = 1;
+ optional fixed64 steamiduser = 2;
+}
+
+message CMsgClientAddFriendToGroupResponse {
+ optional uint32 eresult = 1;
+}
+
+message CMsgClientRemoveFriendFromGroup {
+ optional int32 groupid = 1;
+ optional fixed64 steamiduser = 2;
+}
+
+message CMsgClientRemoveFriendFromGroupResponse {
+ optional uint32 eresult = 1;
+}
+
+message CMsgClientGetEmoticonList {
+}
+
+message CMsgClientEmoticonList {
+ message Emoticon {
+ optional string name = 1;
+ optional int32 count = 2;
+ optional uint32 time_last_used = 3;
+ optional uint32 use_count = 4;
+ optional uint32 time_received = 5;
+ optional uint32 appid = 6;
+ }
+
+ message Sticker {
+ optional string name = 1;
+ optional int32 count = 2;
+ optional uint32 time_received = 3;
+ optional uint32 appid = 4;
+ optional uint32 time_last_used = 5;
+ optional uint32 use_count = 6;
+ }
+
+ message Effect {
+ optional string name = 1;
+ optional int32 count = 2;
+ optional uint32 time_received = 3;
+ optional bool infinite_use = 4;
+ optional uint32 appid = 5;
+ }
+
+ repeated .CMsgClientEmoticonList.Emoticon emoticons = 1;
+ repeated .CMsgClientEmoticonList.Sticker stickers = 2;
+ repeated .CMsgClientEmoticonList.Effect effects = 3;
+}
diff --git a/protobuf_files/orig/steam/steammessages_clientserver_gameservers.proto b/protobuf_files/orig/steam/steammessages_clientserver_gameservers.proto
new file mode 100644
index 00000000..061b8a50
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_clientserver_gameservers.proto
@@ -0,0 +1,159 @@
+import "steammessages_base.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+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;
+ optional uint32 game_port_local = 10;
+ optional bytes sdr_logon = 8;
+ optional fixed32 fake_ip = 9;
+}
+
+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 CMsgGameServerData {
+ message Player {
+ optional fixed64 steam_id = 1;
+ }
+
+ optional uint32 revision = 24;
+ optional uint32 query_port = 3;
+ optional uint32 game_port = 4;
+ optional uint32 spectator_port = 5;
+ optional string server_name = 22;
+ optional string game_description = 29;
+ optional string spectator_server_name = 27;
+ optional fixed32 fake_ip = 28;
+ optional string sdr_ping_location = 30;
+ optional uint32 app_id = 6;
+ optional string gamedir = 7;
+ optional string version = 8;
+ optional string product = 9;
+ optional string region = 10;
+ repeated .CMsgGameServerData.Player players = 11;
+ optional uint32 max_players = 12;
+ optional uint32 bot_count = 13;
+ optional bool password = 14;
+ optional bool secure = 15;
+ optional bool dedicated = 16;
+ optional string os = 17;
+ optional string game_data = 18;
+ optional string game_type = 20;
+ optional string map = 21;
+}
+
+message CMsgGameServerRemove {
+ optional fixed64 legacy_steam_id_gs = 1;
+ optional uint32 legacy_query_port = 3;
+}
+
+message CMsgClientGMSServerQuery {
+ optional uint32 app_id = 1;
+ optional uint32 geo_location_ip = 2;
+ optional uint32 region_code = 3;
+ optional string filter_text = 4;
+ optional uint32 max_servers = 5;
+}
+
+message CMsgGMSClientServerQueryResponse {
+ message Server {
+ optional uint32 deprecated_server_ip = 1;
+ optional uint32 query_port = 2;
+ optional uint32 auth_players = 3;
+ optional .CMsgIPAddress server_ip = 4;
+ optional fixed64 steam_id = 6;
+ optional uint32 revision = 7;
+ optional uint32 players = 8;
+ optional uint32 game_port = 9;
+ optional fixed32 sdr_popid = 10;
+ optional string sdr_ping_location = 32;
+ optional uint32 flags = 11;
+ optional uint32 app_id = 12;
+ optional uint32 max_players = 13;
+ optional uint32 bots = 14;
+ optional uint32 spectator_port = 15;
+ optional string gamedir_str = 16;
+ optional uint32 gamedir_strindex = 17;
+ optional string map_str = 18;
+ optional uint32 map_strindex = 19;
+ optional string name_str = 20;
+ optional uint32 name_strindex = 21;
+ optional string game_description_str = 22;
+ optional uint32 game_description_strindex = 23;
+ optional string version_str = 24;
+ optional uint32 version_strindex = 25;
+ optional string gametype_str = 26;
+ optional uint32 gametype_strindex = 27;
+ optional string spectator_name_str = 30;
+ optional uint32 spectator_name_strindex = 31;
+ }
+
+ enum EFlags {
+ k_EFlag_HasPassword = 1;
+ k_EFlag_Secure = 2;
+ }
+
+ repeated .CMsgGMSClientServerQueryResponse.Server servers = 1;
+ optional string error = 2;
+ optional .CMsgGMSClientServerQueryResponse.Server default_server_data = 3;
+ repeated string server_strings = 4;
+}
+
+message CMsgGameServerOutOfDate {
+ optional fixed64 steam_id_gs = 1;
+ optional bool reject = 2;
+ optional string message = 3;
+}
+
+message CMsgGSAssociateWithClan {
+ optional fixed64 steam_id_clan = 1;
+}
+
+message CMsgGSAssociateWithClanResponse {
+ optional fixed64 steam_id_clan = 1;
+ optional uint32 eresult = 2 [default = 2];
+}
+
+message CMsgGSComputeNewPlayerCompatibility {
+ optional fixed64 steam_id_candidate = 1;
+}
+
+message CMsgGSComputeNewPlayerCompatibilityResponse {
+ optional fixed64 steam_id_candidate = 1;
+ optional uint32 eresult = 2 [default = 2];
+ optional bool is_clan_member = 3;
+ optional int32 ct_dont_like_you = 4;
+ optional int32 ct_you_dont_like = 5;
+ optional int32 ct_clanmembers_dont_like_you = 6;
+}
diff --git a/protobuf_files/orig/steam/steammessages_clientserver_lbs.proto b/protobuf_files/orig/steam/steammessages_clientserver_lbs.proto
new file mode 100644
index 00000000..466efeb4
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_clientserver_lbs.proto
@@ -0,0 +1,70 @@
+import "steammessages_base.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+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;
+}
diff --git a/protobuf_files/orig/steam/steammessages_clientserver_login.proto b/protobuf_files/orig/steam/steammessages_clientserver_login.proto
new file mode 100644
index 00000000..f68ad765
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_clientserver_login.proto
@@ -0,0 +1,166 @@
+import "steammessages_base.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+message CMsgClientHeartBeat {
+ optional bool send_reply = 1;
+}
+
+message CMsgClientServerTimestampRequest {
+ optional uint64 client_request_timestamp = 1;
+}
+
+message CMsgClientServerTimestampResponse {
+ optional uint64 client_request_timestamp = 1;
+ optional uint64 server_timestamp_ms = 2;
+}
+
+message CMsgClientSecret {
+ optional uint32 version = 1;
+ optional uint32 appid = 2;
+ optional uint32 deviceid = 3;
+ optional fixed64 nonce = 4;
+ optional bytes hmac = 5;
+}
+
+message CMsgClientHello {
+ optional uint32 protocol_version = 1;
+}
+
+message CMsgClientLogon {
+ optional uint32 protocol_version = 1;
+ optional uint32 deprecated_obfustucated_private_ip = 2;
+ optional uint32 cell_id = 3;
+ optional uint32 last_session_id = 4;
+ optional uint32 client_package_version = 5;
+ optional string client_language = 6;
+ optional uint32 client_os_type = 7;
+ optional bool should_remember_password = 8 [default = false];
+ optional string wine_version = 9;
+ optional uint32 deprecated_10 = 10;
+ optional .CMsgIPAddress obfuscated_private_ip = 11;
+ optional uint32 deprecated_public_ip = 20;
+ optional uint32 qos_level = 21;
+ optional fixed64 client_supplied_steam_id = 22;
+ optional .CMsgIPAddress public_ip = 23;
+ optional bytes machine_id = 30;
+ optional uint32 launcher_type = 31 [default = 0];
+ optional uint32 ui_mode = 32 [default = 0];
+ optional uint32 chat_mode = 33 [default = 0];
+ optional bytes steam2_auth_ticket = 41;
+ optional string email_address = 42;
+ optional fixed32 rtime32_account_creation = 43;
+ optional string account_name = 50;
+ optional string password = 51;
+ optional string game_server_token = 52;
+ optional string login_key = 60;
+ optional bool was_converted_deprecated_msg = 70 [default = false];
+ optional string anon_user_target_account_name = 80;
+ optional fixed64 resolved_user_steam_id = 81;
+ optional int32 eresult_sentryfile = 82;
+ optional bytes sha_sentryfile = 83;
+ optional string auth_code = 84;
+ optional int32 otp_type = 85;
+ optional uint32 otp_value = 86;
+ optional string otp_identifier = 87;
+ optional bool steam2_ticket_request = 88;
+ optional bytes sony_psn_ticket = 90;
+ optional string sony_psn_service_id = 91;
+ optional bool create_new_psn_linked_account_if_needed = 92 [default = false];
+ optional string sony_psn_name = 93;
+ optional int32 game_server_app_id = 94;
+ optional bool steamguard_dont_remember_computer = 95;
+ optional string machine_name = 96;
+ optional string machine_name_userchosen = 97;
+ optional string country_override = 98;
+ optional bool is_steam_box = 99;
+ optional uint64 client_instance_id = 100;
+ optional string two_factor_code = 101;
+ optional bool supports_rate_limit_response = 102;
+ optional string web_logon_nonce = 103;
+ optional int32 priority_reason = 104;
+ optional .CMsgClientSecret embedded_client_secret = 105;
+ optional bool disable_partner_autogrants = 106;
+ optional bool is_steam_deck = 107;
+ optional string access_token = 108;
+ optional bool is_chrome_os = 109;
+ optional bool is_tesla = 110;
+}
+
+message CMsgClientLogonResponse {
+ optional int32 eresult = 1 [default = 2];
+ optional int32 legacy_out_of_game_heartbeat_seconds = 2;
+ optional int32 heartbeat_seconds = 3;
+ optional uint32 deprecated_public_ip = 4;
+ optional fixed32 rtime32_server_time = 5;
+ optional uint32 account_flags = 6;
+ optional uint32 cell_id = 7;
+ optional string email_domain = 8;
+ optional bytes steam2_ticket = 9;
+ optional int32 eresult_extended = 10;
+ optional string webapi_authenticate_user_nonce = 11;
+ optional uint32 cell_id_ping_threshold = 12;
+ optional bool deprecated_use_pics = 13;
+ optional string vanity_url = 14;
+ optional .CMsgIPAddress public_ip = 15;
+ optional fixed64 client_supplied_steamid = 20;
+ optional string ip_country_code = 21;
+ optional bytes parental_settings = 22;
+ optional bytes parental_setting_signature = 23;
+ optional int32 count_loginfailures_to_migrate = 24;
+ optional int32 count_disconnects_to_migrate = 25;
+ optional int32 ogs_data_report_time_window = 26;
+ optional uint64 client_instance_id = 27;
+ optional bool force_client_update_check = 28;
+ optional string agreement_session_url = 29;
+ optional uint64 token_id = 30;
+}
+
+message CMsgClientRequestWebAPIAuthenticateUserNonce {
+ optional int32 token_type = 1 [default = -1];
+}
+
+message CMsgClientRequestWebAPIAuthenticateUserNonceResponse {
+ optional int32 eresult = 1 [default = 2];
+ optional string webapi_authenticate_user_nonce = 11;
+ optional int32 token_type = 3 [default = -1];
+}
+
+message CMsgClientLogOff {
+}
+
+message CMsgClientLoggedOff {
+ optional int32 eresult = 1 [default = 2];
+}
+
+message CMsgClientNewLoginKey {
+ optional uint32 unique_id = 1;
+ optional string login_key = 2;
+}
+
+message CMsgClientNewLoginKeyAccepted {
+ optional uint32 unique_id = 1;
+}
+
+message CMsgClientAccountInfo {
+ optional string persona_name = 1;
+ optional string ip_country = 2;
+ optional int32 count_authed_computers = 5;
+ optional uint32 account_flags = 7;
+ optional uint64 facebook_id = 8;
+ optional string facebook_name = 9;
+ optional string steamguard_machine_name_user_chosen = 15;
+ optional bool is_phone_verified = 16;
+ optional uint32 two_factor_state = 17;
+ optional bool is_phone_identifying = 18;
+ optional bool is_phone_needing_reverify = 19;
+}
+
+message CMsgClientChallengeRequest {
+ optional fixed64 steamid = 1;
+}
+
+message CMsgClientChallengeResponse {
+ optional fixed64 challenge = 1;
+}
diff --git a/protobuf_files/orig/steam/steammessages_clientserver_mms.proto b/protobuf_files/orig/steam/steammessages_clientserver_mms.proto
new file mode 100644
index 00000000..f60a9613
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_clientserver_mms.proto
@@ -0,0 +1,228 @@
+import "steammessages_base.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+enum EMMSLobbyStatus {
+ k_EMMSLobbyStatusInvalid = 0;
+ k_EMMSLobbyStatusExists = 1;
+ k_EMMSLobbyStatusDoesNotExist = 2;
+ k_EMMSLobbyStatusNotAMember = 3;
+}
+
+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];
+}
diff --git a/protobuf_files/orig/steam/steammessages_clientserver_ucm.proto b/protobuf_files/orig/steam/steammessages_clientserver_ucm.proto
new file mode 100644
index 00000000..bd138994
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_clientserver_ucm.proto
@@ -0,0 +1,204 @@
+import "steammessages_base.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+message CMsgClientUCMAddScreenshot {
+ message Tag {
+ optional string tag_name = 1;
+ optional string tag_value = 2;
+ }
+
+ optional uint32 appid = 1;
+ optional string filename = 2;
+ optional string thumbname = 3;
+ optional string vr_filename = 14;
+ optional fixed32 rtime32_created = 4;
+ optional uint32 width = 5;
+ optional uint32 height = 6;
+ optional uint32 permissions = 7;
+ optional string caption = 8;
+ optional string shortcut_name = 9;
+ repeated .CMsgClientUCMAddScreenshot.Tag tag = 10;
+ repeated fixed64 tagged_steamid = 11;
+ optional bool spoiler_tag = 12;
+ repeated uint64 tagged_publishedfileid = 13;
+}
+
+message CMsgClientUCMAddScreenshotResponse {
+ optional int32 eresult = 1 [default = 2];
+ optional fixed64 screenshotid = 2 [default = 18446744073709551615];
+}
+
+message CMsgClientUCMDeleteScreenshot {
+ optional fixed64 screenshotid = 1 [default = 18446744073709551615];
+}
+
+message CMsgClientUCMDeleteScreenshotResponse {
+ optional int32 eresult = 1 [default = 2];
+}
+
+message CMsgClientUCMPublishFile {
+ optional uint32 app_id = 1;
+ optional string file_name = 2;
+ optional string preview_file_name = 3;
+ optional uint32 consumer_app_id = 4;
+ optional string title = 5;
+ optional string description = 6;
+ repeated string tags = 8;
+ optional bool workshop_file = 9;
+ optional int32 visibility = 10;
+ optional uint32 file_type = 11;
+ optional string url = 12;
+ optional uint32 video_provider = 13;
+ optional string video_account_name = 14;
+ optional string video_identifier = 15;
+ optional bool in_progress = 16;
+}
+
+message CMsgClientUCMPublishFileResponse {
+ optional int32 eresult = 1 [default = 2];
+ optional fixed64 published_file_id = 2 [default = 18446744073709551615];
+ optional bool needs_workshop_legal_agreement_acceptance = 3 [default = false];
+}
+
+message CMsgClientUCMUpdatePublishedFile {
+ message KeyValueTag {
+ optional string key = 1;
+ optional string value = 2;
+ }
+
+ message AdditionalPreview {
+ optional string original_file_name = 1;
+ optional string internal_file_name = 2;
+ optional string videoid = 3;
+ optional uint32 preview_type = 4;
+ optional int32 update_index = 5 [default = -1];
+ }
+
+ optional uint32 app_id = 1;
+ optional fixed64 published_file_id = 2;
+ optional string file_name = 3;
+ optional string preview_file_name = 4;
+ optional string title = 5;
+ optional string description = 6;
+ repeated string tags = 7;
+ optional int32 visibility = 8;
+ optional bool update_file = 9;
+ optional bool update_preview_file = 10;
+ optional bool update_title = 11;
+ optional bool update_description = 12;
+ optional bool update_tags = 13;
+ optional bool update_visibility = 14;
+ optional string change_description = 15;
+ optional bool update_url = 16;
+ optional string url = 17;
+ optional bool update_content_manifest = 18;
+ optional fixed64 content_manifest = 19;
+ optional string metadata = 20;
+ optional bool update_metadata = 21;
+ optional int32 language = 22 [default = 0];
+ repeated string removed_kvtags = 23;
+ repeated .CMsgClientUCMUpdatePublishedFile.KeyValueTag kvtags = 24;
+ repeated .CMsgClientUCMUpdatePublishedFile.AdditionalPreview previews = 25;
+ repeated int32 previews_to_remove = 26;
+ optional bool clear_in_progress = 27;
+ optional bool remove_all_kvtags = 28;
+ repeated int32 content_descriptors_to_add = 29;
+ repeated int32 content_descriptors_to_remove = 30;
+}
+
+message CMsgClientUCMUpdatePublishedFileResponse {
+ optional int32 eresult = 1 [default = 2];
+ optional bool needs_workshop_legal_agreement_acceptance = 2 [default = false];
+}
+
+message CMsgClientUCMDeletePublishedFile {
+ optional fixed64 published_file_id = 1;
+ optional uint32 app_id = 2;
+}
+
+message CMsgClientUCMDeletePublishedFileResponse {
+ optional int32 eresult = 1 [default = 2];
+}
+
+message CMsgClientUCMEnumerateUserSubscribedFilesWithUpdates {
+ optional uint32 app_id = 1;
+ optional uint32 start_index = 2;
+ optional fixed32 start_time = 3;
+ optional uint32 desired_revision = 4 [default = 0];
+}
+
+message CMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse {
+ message PublishedFileId {
+ optional fixed64 published_file_id = 1;
+ optional fixed32 rtime32_subscribed = 2 [default = 0];
+ optional uint32 appid = 3;
+ optional fixed64 file_hcontent = 4;
+ optional uint32 file_size = 5;
+ optional fixed32 rtime32_last_updated = 6;
+ optional bool is_depot_content = 7;
+ }
+
+ optional int32 eresult = 1 [default = 2];
+ repeated .CMsgClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse.PublishedFileId subscribed_files = 2;
+ optional uint32 total_results = 3;
+}
+
+message CMsgClientUCMPublishedFileUpdated {
+ optional fixed64 published_file_id = 1;
+ optional uint32 app_id = 2;
+ optional uint32 time_updated = 3;
+ optional fixed64 hcontent = 4;
+ optional fixed32 file_size = 5;
+ optional bool is_depot_content = 6;
+ optional uint32 revision = 7;
+}
+
+message CMsgClientWorkshopItemChangesRequest {
+ optional uint32 app_id = 1;
+ optional uint32 last_time_updated = 2;
+ optional uint32 num_items_needed = 3;
+}
+
+message CMsgClientWorkshopItemChangesResponse {
+ message WorkshopItemInfo {
+ optional fixed64 published_file_id = 1;
+ optional uint32 time_updated = 2;
+ optional fixed64 manifest_id = 3;
+ }
+
+ optional int32 eresult = 1 [default = 2];
+ optional uint32 update_time = 2;
+ repeated .CMsgClientWorkshopItemChangesResponse.WorkshopItemInfo workshop_items = 5;
+}
+
+message CMsgClientUCMSetUserPublishedFileAction {
+ optional fixed64 published_file_id = 1;
+ optional uint32 app_id = 2;
+ optional int32 action = 3;
+}
+
+message CMsgClientUCMSetUserPublishedFileActionResponse {
+ optional int32 eresult = 1 [default = 2];
+}
+
+message CMsgClientUCMEnumeratePublishedFilesByUserAction {
+ optional uint32 app_id = 1;
+ optional uint32 start_index = 2;
+ optional int32 action = 3;
+}
+
+message CMsgClientUCMEnumeratePublishedFilesByUserActionResponse {
+ message PublishedFileId {
+ optional fixed64 published_file_id = 1;
+ optional fixed32 rtime_time_stamp = 2 [default = 0];
+ }
+
+ optional int32 eresult = 1 [default = 2];
+ repeated .CMsgClientUCMEnumeratePublishedFilesByUserActionResponse.PublishedFileId published_files = 2;
+ optional uint32 total_results = 3;
+}
+
+message CMsgClientScreenshotsChanged {
+}
diff --git a/protobuf_files/orig/steam/steammessages_clientserver_uds.proto b/protobuf_files/orig/steam/steammessages_clientserver_uds.proto
new file mode 100644
index 00000000..17aa5be7
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_clientserver_uds.proto
@@ -0,0 +1,124 @@
+import "steammessages_base.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+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 CMsgClientGetClientDetails {
+}
+
+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 string os = 2;
+ optional string machine_name = 3;
+ optional string ip_public = 4;
+ optional string ip_private = 5;
+ repeated .CMsgClientGetClientDetailsResponse.Game games_running = 6;
+ optional uint64 bytes_available = 7;
+ optional uint32 protocol_version = 8;
+ optional uint32 clientcomm_version = 9;
+}
+
+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;
+ optional bool include_client_info = 7;
+}
+
+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_to_download = 7;
+ optional uint32 bytes_download_rate = 8;
+ repeated .CMsgClientGetClientAppListResponse.App.DLC dlcs = 9;
+ 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;
+ optional uint64 bytes_staged = 16;
+ optional uint64 bytes_to_stage = 17;
+ optional uint64 bytes_required = 18;
+ optional uint32 source_buildid = 19;
+ optional uint32 target_buildid = 20;
+ optional uint32 estimated_seconds_remaining = 21;
+ optional int32 queue_position = 22;
+ optional bool uninstalling = 23;
+ optional uint32 rt_time_scheduled = 24;
+ }
+
+ repeated .CMsgClientGetClientAppListResponse.App apps = 1;
+ optional uint64 bytes_available = 2;
+ optional .CMsgClientGetClientDetailsResponse client_info = 3;
+}
+
+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 CMsgClientEnableOrDisableDownloads {
+ optional bool enable = 1;
+}
+
+message CMsgClientEnableOrDisableDownloadsResponse {
+ optional uint32 result = 1;
+}
diff --git a/protobuf_files/orig/steam/steammessages_clientserver_ufs.proto b/protobuf_files/orig/steam/steammessages_clientserver_ufs.proto
new file mode 100644
index 00000000..550ba77e
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_clientserver_ufs.proto
@@ -0,0 +1,172 @@
+import "steammessages_base.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+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 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];
+}
diff --git a/protobuf_files/orig/steam/steammessages_clientserver_userstats.proto b/protobuf_files/orig/steam/steammessages_clientserver_userstats.proto
new file mode 100644
index 00000000..fe52e9e6
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_clientserver_userstats.proto
@@ -0,0 +1,80 @@
+import "steammessages_base.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+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;
+}
diff --git a/protobuf_files/orig/steam/steammessages_clientsettings.proto b/protobuf_files/orig/steam/steammessages_clientsettings.proto
new file mode 100644
index 00000000..49ad9084
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_clientsettings.proto
@@ -0,0 +1,131 @@
+import "google/protobuf/descriptor.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = true;
+
+extend .google.protobuf.FieldOptions {
+ optional .EClientSettingStore setting_store = 60000 [default = k_EClientSettingStore_Invalid];
+ optional string setting_name = 60001;
+ optional bool setting_pre_login = 60002;
+ optional bool setting_default_bool = 60003;
+ optional int32 setting_default_int = 60004;
+ optional uint32 setting_default_uint = 60005;
+ optional float setting_default_float = 60006;
+ optional string setting_default_string = 60007;
+ optional bool setting_readonly = 60008;
+ optional string setting_description = 60009;
+}
+
+enum EClientSettingStore {
+ k_EClientSettingStore_Invalid = 0;
+ k_EClientSettingStore_ConfigStore_Install = 1;
+ k_EClientSettingStore_ConfigStore_UserRoaming = 2;
+ k_EClientSettingStore_ConfigStore_UserLocal = 3;
+ k_EClientSettingStore_Registry = 4;
+ k_EClientSettingStore_CustomFunc = 5;
+}
+
+message CMsgHotkey {
+ optional uint32 key_code = 1;
+ optional bool alt_key = 2;
+ optional bool shift_key = 3;
+ optional bool ctrl_key = 4;
+ optional bool meta_key = 5;
+ optional string display_name = 6;
+}
+
+message CMsgClientSettings {
+ optional bool no_save_personal_info = 1 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "Software\\Valve\\Steam\\NoSavePersonalInfo"];
+ optional bool oobe_test_mode_enabled = 2 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "Software\\Valve\\Steam\\OOBETestModeEnabled"];
+ optional bool in_client_beta = 3 [(setting_store) = k_EClientSettingStore_CustomFunc, (setting_pre_login) = true];
+ optional bool is_steam_sideloaded = 4 [(setting_store) = k_EClientSettingStore_CustomFunc, (setting_pre_login) = true];
+ optional string preferred_monitor = 5 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "BigPicture/Monitor"];
+ optional bool steam_cef_gpu_blocklist_disabled = 6 [(setting_store) = k_EClientSettingStore_Registry, (setting_name) = "HKEY_CURRENT_USER\\Software\\Valve\\Steam\\CEFGPUBlocklistDisabled"];
+ optional bool bigpicture_windowed = 7 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "BigPicture/Windowed", (setting_pre_login) = true];
+ optional string display_name = 8 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "UI/Display/Current/Name"];
+ optional bool is_external_display = 9 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "UI/Display/Current/IsExternalDisplay"];
+ optional float steam_os_underscan_level = 10 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "SteamOSScreenUnderscanLevel"];
+ optional bool steam_os_underscan_enabled = 11 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "SteamOSScreenUnderscanEnabled"];
+ optional float min_scale_factor = 12 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "UI/Display/Current/MinScaleFactor"];
+ optional float max_scale_factor = 13 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "UI/Display/Current/MaxScaleFactor"];
+ optional float auto_scale_factor = 14 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "UI/Display/Current/AutoScaleFactor"];
+ optional bool enable_test_updaters = 15 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "EnableTestUpdaters"];
+ optional bool small_mode = 16 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Software\\Valve\\Steam\\SmallMode"];
+ optional bool disable_all_toasts = 17 [(setting_store) = k_EClientSettingStore_ConfigStore_UserRoaming, (setting_name) = "DisableAllToasts"];
+ optional bool disable_toasts_in_game = 18 [(setting_store) = k_EClientSettingStore_ConfigStore_UserRoaming, (setting_name) = "DisableToastsInGame"];
+ optional bool show_family_sharing_notifications = 3000 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "HideSharingNotifications"];
+ optional int32 overlay_fps_counter_corner = 4000 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\InGameOverlayShowFPSCorner"];
+ optional bool overlay_fps_counter_high_contrast = 4001 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\InGameOverlayShowFPSContrast"];
+ optional .CMsgHotkey overlay_key = 4002 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\InGameOverlayShortcutKey", (setting_default_string) = "Shift\tKEY_TAB"];
+ optional .CMsgHotkey screenshot_key = 4003 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\InGameOverlayScreenshotHotKey", (setting_default_string) = "KEY_F12"];
+ optional bool enable_overlay = 4004 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\EnableGameOverlay"];
+ optional bool disable_desktop_game_theater = 4005 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\DisableLaunchInVR"];
+ optional bool enable_screenshot_notification = 4006 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\InGameOverlayScreenshotNotification"];
+ optional bool enable_screenshot_sound = 4007 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\InGameOverlayScreenshotPlaySound"];
+ optional bool save_uncompressed_screenshots = 4008 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\InGameOverlayScreenshotSaveUncompressed"];
+ optional string screenshots_path = 4009 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional int32 default_ping_rate = 4010 [(setting_store) = k_EClientSettingStore_CustomFunc, (setting_readonly) = true, (setting_description) = "Computed default (automatic) server ping rate based on network speed"];
+ optional int32 server_ping_rate = 4011 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional int32 steam_networking_share_ip = 4012 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional string web_browser_home = 4013 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional bool smooth_scroll_webviews = 5000 [(setting_store) = k_EClientSettingStore_Registry, (setting_name) = "HKEY_CURRENT_USER\\Software\\Valve\\Steam\\SmoothScrollWebViews", (setting_default_bool) = true];
+ optional bool enable_gpu_accelerated_webviews = 5001 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional bool enable_hardware_video_decoding = 5003 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional bool run_at_startup = 5004 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional bool enable_dpi_scaling = 5005 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional bool enable_marketing_messages = 5006 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "news\\NotifyAvailableGames"];
+ optional bool start_in_big_picture_mode = 5007 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional uint32 jumplist_flags = 5008 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "system\\JumplistSettings", (setting_default_uint) = 77680];
+ optional int32 library_display_size = 7000 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "LibraryDisplaySize"];
+ optional bool library_whats_new_show_only_product_updates = 7001 [(setting_store) = k_EClientSettingStore_ConfigStore_UserRoaming, (setting_name) = "LibraryWhatsNewShowOnlyProductUpdates"];
+ optional bool show_store_content_on_home = 7002 [(setting_store) = k_EClientSettingStore_ConfigStore_UserRoaming, (setting_name) = "ShowStoreContentOnHome", (setting_default_bool) = true];
+ optional string start_page = 7003 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional bool library_low_bandwidth_mode = 7004 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "LibraryLowBandwidthMode"];
+ optional bool library_low_perf_mode = 7005 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "LibraryLowPerfMode"];
+ optional bool library_disable_community_content = 7006 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "LibraryDisableCommunityContent"];
+ optional bool library_display_icon_in_game_list = 7007 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "LibraryDisplayIconInGameList", (setting_default_bool) = true];
+ optional bool enable_shader_precache = 8000 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional bool enable_shader_background_processing = 8001 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional uint64 shader_precached_size = 8002 [(setting_store) = k_EClientSettingStore_CustomFunc, (setting_readonly) = true];
+ optional bool needs_steam_service_repair = 8003 [(setting_store) = k_EClientSettingStore_CustomFunc, (setting_readonly) = true];
+ optional int32 download_peer_content = 8004 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional bool download_rate_bits_per_s = 8005 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional bool restrict_auto_updates = 8006 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional int32 restrict_auto_updates_start = 8007 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional int32 restrict_auto_updates_end = 8008 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional int32 download_region = 8009 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional bool download_while_app_running = 8010 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional bool download_throttle_while_streaming = 8011 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional int32 download_throttle_rate = 8012 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional bool cloud_enabled = 10000 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional bool show_screenshot_manager = 10001 [(setting_store) = k_EClientSettingStore_ConfigStore_UserRoaming, (setting_name) = "Software\\Valve\\Steam\\ShowScreenshotManager"];
+ optional int32 music_volume = 11000 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional bool music_pause_on_app_start = 11001 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "Music\\PauseOnAppStartedProcess"];
+ optional bool music_pause_on_voice_chat = 11002 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "Music\\PauseOnVoiceChat"];
+ optional bool music_download_high_quality = 11003 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "Music\\DownloadHighQualityAudioSoundtracks"];
+ optional bool music_playlist_notification = 11004 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "Music\\PlaylistNowPlayingNotification"];
+ optional int32 broadcast_permissions = 12000 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Broadcast\\Permissions"];
+ optional int32 broadcast_output_width = 12001 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Broadcast\\OutputWidth"];
+ optional int32 broadcast_output_height = 12002 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Broadcast\\OutputHeight"];
+ optional int32 broadcast_bitrate = 12003 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Broadcast\\MaxKbps"];
+ optional int32 broadcast_encoding_option = 12004 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Broadcast\\EncoderSetting"];
+ optional bool broadcast_record_all_video = 12005 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Broadcast\\IncludeDesktop"];
+ optional bool broadcast_record_all_audio = 12006 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Broadcast\\RecordSystemAudio"];
+ optional bool broadcast_record_microphone = 12007 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Broadcast\\RecordMic"];
+ optional bool broadcast_show_upload_stats = 12008 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Broadcast\\ShowDebugInfo"];
+ optional bool broadcast_show_live_reminder = 12009 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Broadcast\\ShowReminder"];
+ optional int32 broadcast_chat_corner = 12010 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Broadcast\\ShowChat"];
+ optional bool steam_input_configurator_error_msg_enable = 14001 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "SteamInput/Configurator/ErrorMsgEnabled"];
+ optional bool controller_guide_button_focus_steam = 14002 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "Controller_CheckGuideButton"];
+ optional bool controller_ps4_support = 14003 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "SteamController_PS4Support"];
+ optional bool controller_xbox_support = 14004 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "SteamController_XBoxSupport"];
+ optional bool controller_xbox_driver = 14005 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "SteamController_XBoxDriver"];
+ optional bool controller_switch_support = 14006 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "SteamController_SwitchSupport"];
+ optional bool controller_generic_support = 14007 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "SteamController_GenericGamepadSupport"];
+ optional int32 controller_power_off_timeout = 14008 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "CSettingsPanelGameController.Timeout", (setting_default_int) = 15];
+ optional bool turn_off_controller_on_exit = 14009 [(setting_store) = k_EClientSettingStore_ConfigStore_UserLocal, (setting_name) = "CSettingsPanelGameController.TurnOff"];
+ optional bool controller_combine_nintendo_joycons = 14010 [(setting_store) = k_EClientSettingStore_CustomFunc];
+ optional uint64 startup_movie_id = 16000 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "Customization/StartupMovie/MovieID", (setting_pre_login) = true];
+ optional string startup_movie_local_path = 16001 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "Customization/StartupMovie/LocalPath", (setting_pre_login) = true];
+ optional bool startup_movie_shuffle = 16002 [(setting_store) = k_EClientSettingStore_ConfigStore_Install, (setting_name) = "Customization/StartupMovie/Shuffle", (setting_pre_login) = true];
+}
diff --git a/protobuf_files/orig/steam/steammessages_cloud.steamclient.proto b/protobuf_files/orig/steam/steammessages_cloud.steamclient.proto
new file mode 100644
index 00000000..779c4e91
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_cloud.steamclient.proto
@@ -0,0 +1,513 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+import "enums.proto";
+import "steammessages_client_objects.proto";
+
+option cc_generic_services = true;
+
+message CCloud_ClientLogUploadCheck_Notification {
+ optional uint64 client_id = 1;
+}
+
+message CCloud_ClientLogUploadComplete_Notification {
+ optional uint64 client_id = 1;
+ optional uint64 request_id = 2;
+}
+
+message CCloud_GetUploadServerInfo_Request {
+ optional uint32 appid = 1 [(description) = "App ID to which a file will be uploaded to."];
+}
+
+message CCloud_GetUploadServerInfo_Response {
+ optional string server_url = 1;
+}
+
+message CCloud_BeginHTTPUpload_Request {
+ optional uint32 appid = 1 [(description) = "App ID for which the file is being uploaded."];
+ optional uint32 file_size = 2 [(description) = "Original file size in bytes."];
+ optional string filename = 3 [(description) = "Name of the file to store in the cloud."];
+ optional string file_sha = 4 [(description) = "Hex string (40 digits) representing the SHA1 digest of the file."];
+ optional bool is_public = 5 [(description) = "True if the file should be marked public on the UFS, false otherwise."];
+ repeated string platforms_to_sync = 6 [(description) = "Array of string specifying which platforms to sync; value values: all, Windows, MacOS, linux, Switch, iPhoneOS, Android."];
+ repeated string request_headers_names = 7 [(description) = "Names for headers you'll want to set on your upload request. May be left blank."];
+ repeated string request_headers_values = 8 [(description) = "Values for headers you'll want to set on your upload request. The number of names must equal the number of values."];
+ optional uint64 upload_batch_id = 9 [(description) = "ID of this batch returned by prior BeginAppUploadBatch call."];
+}
+
+message CCloud_BeginHTTPUpload_Response {
+ message HTTPHeaders {
+ optional string name = 1;
+ optional string value = 2;
+ }
+
+ optional fixed64 ugcid = 1 [(description) = "UGC ID of the uploaded file."];
+ optional fixed32 timestamp = 2 [(description) = "Server timestamp of file."];
+ optional string url_host = 3 [(description) = "Host name of server to which file should be uploaded via HTTP PUT."];
+ optional string url_path = 4 [(description) = "Relative path on server to which file should be uploaded."];
+ optional bool use_https = 5 [(description) = "If true, use https, otherwise use http."];
+ repeated .CCloud_BeginHTTPUpload_Response.HTTPHeaders request_headers = 6 [(description) = "Name-value pairs to be sent in HTTP PUT request."];
+}
+
+message CCloud_CommitHTTPUpload_Request {
+ optional bool transfer_succeeded = 1 [(description) = "True if the HTTP PUT to the upload URL succeeded (URL provided in response to Cloud.BeginHTTPUpload), false if a failure occurred."];
+ optional uint32 appid = 2 [(description) = "App ID for which the file is being uploaded. Must match the app ID provided to Cloud.BeginHTTPUpload."];
+ optional string file_sha = 3 [(description) = "Hex string (40 digits) representing the SHA1 digest of the file. Must match the SHA1 digest provided to Cloud.BeginHTTPUpload."];
+ optional string filename = 4 [(description) = "Filename as specified in the Cloud.BeginHTTPUpload request."];
+}
+
+message CCloud_CommitHTTPUpload_Response {
+ optional bool file_committed = 1 [(description) = "True if the file was successfully committed, false otherwise."];
+}
+
+message CCloud_BeginUGCUpload_Request {
+ optional uint32 appid = 1 [(description) = "App ID this UGC belongs to."];
+ optional uint32 file_size = 2 [(description) = "File size in bytes."];
+ optional string filename = 3 [(description) = "Name of the file."];
+ optional string file_sha = 4 [(description) = "Hex string (40 digits) representing the SHA1 digest of the file."];
+ optional string content_type = 5 [(description) = "MIME content type of the file"];
+}
+
+message CCloud_BeginUGCUpload_Response {
+ message HTTPHeaders {
+ optional string name = 1;
+ optional string value = 2;
+ }
+
+ optional .EPublishedFileStorageSystem storage_system = 1 [default = k_EPublishedFileStorageSystemInvalid, (description) = "UGC Storage system chosen for this file"];
+ optional fixed64 ugcid = 2 [(description) = "UGC ID of the uploaded file."];
+ optional fixed32 timestamp = 3 [(description) = "Server timestamp of file."];
+ optional string url_host = 4 [(description) = "Host name of server to which file should be uploaded via HTTP PUT."];
+ optional string url_path = 5 [(description) = "Relative path on server to which file should be uploaded."];
+ optional bool use_https = 6 [(description) = "If true, use https, otherwise use http."];
+ repeated .CCloud_BeginUGCUpload_Response.HTTPHeaders request_headers = 7 [(description) = "Name-value pairs to be sent in HTTP PUT request."];
+}
+
+message CCloud_CommitUGCUpload_Request {
+ optional bool transfer_succeeded = 1 [(description) = "True if the HTTP PUT to the upload URL succeeded (URL provided in response to Cloud.BeginUGCUpload), false if a failure occurred."];
+ optional uint32 appid = 2 [(description) = "App ID for which the file is being uploaded. Must match the app ID provided to Cloud.BeginUGCUpload."];
+ optional fixed64 ugcid = 3 [(description) = "UGC ID of the uploaded file."];
+}
+
+message CCloud_CommitUGCUpload_Response {
+ optional bool file_committed = 1 [(description) = "True if the file was successfully committed, false otherwise."];
+}
+
+message CCloud_GetFileDetails_Request {
+ optional uint64 ugcid = 1 [(description) = "ID of the Cloud file to get details for."];
+ optional uint32 appid = 2 [(description) = "App ID the file belongs to."];
+}
+
+message CCloud_UserFile {
+ optional uint32 appid = 1;
+ optional uint64 ugcid = 2;
+ optional string filename = 3;
+ optional uint64 timestamp = 4;
+ optional uint32 file_size = 5;
+ optional string url = 6;
+ optional fixed64 steamid_creator = 7;
+ optional uint32 flags = 8;
+ repeated string platforms_to_sync = 9 [(description) = "Array of string specifying which platforms to sync; value values: all, Windows, MacOS, linux, Switch, iPhoneOS, Android."];
+ optional string file_sha = 10 [(description) = "Hex string (40 digits) representing the SHA1 digest of the file."];
+}
+
+message CCloud_GetFileDetails_Response {
+ optional .CCloud_UserFile details = 1;
+}
+
+message CCloud_EnumerateUserFiles_Request {
+ optional uint32 appid = 1 [(description) = "App ID to enumerate the files of."];
+ optional bool extended_details = 2 [(description) = "(Optional) Get extended details back on the files found. Defaults to only returned the app Id and UGC Id of the files found."];
+ optional uint32 count = 3 [(description) = "(Optional) Maximum number of results to return on this call. Defaults to a maximum of 500 files returned."];
+ optional uint32 start_index = 4 [(description) = "(Optional) Starting index to begin enumeration at. Defaults to the beginning of the list."];
+}
+
+message CCloud_EnumerateUserFiles_Response {
+ repeated .CCloud_UserFile files = 1;
+ optional uint32 total_files = 2;
+}
+
+message CCloud_Delete_Request {
+ optional string filename = 1;
+ optional uint32 appid = 2 [(description) = "App ID the file belongs to."];
+ optional uint64 upload_batch_id = 3 [(description) = "ID of this batch returned by prior BeginAppUploadBatch call."];
+}
+
+message CCloud_Delete_Response {
+}
+
+message CCloud_GetClientEncryptionKey_Request {
+}
+
+message CCloud_GetClientEncryptionKey_Response {
+ optional bytes key = 1 [(description) = "AES-256 encryption key"];
+ optional int32 crc = 2 [(description) = "CRC of key"];
+}
+
+message CCloud_CDNReport_Notification {
+ optional fixed64 steamid = 1;
+ optional string url = 2;
+ optional bool success = 3;
+ optional uint32 http_status_code = 4;
+ optional uint64 expected_bytes = 5;
+ optional uint64 received_bytes = 6;
+ optional uint32 duration = 7;
+}
+
+message CCloud_ExternalStorageTransferReport_Notification {
+ optional string host = 1;
+ optional string path = 2;
+ optional bool is_upload = 3;
+ optional bool success = 4;
+ optional uint32 http_status_code = 5;
+ optional uint64 bytes_expected = 6;
+ optional uint64 bytes_actual = 7;
+ optional uint32 duration_ms = 8;
+ optional uint32 cellid = 9;
+ optional bool proxied = 10;
+ optional bool ipv6_local = 11;
+ optional bool ipv6_remote = 12;
+ optional uint32 time_to_connect_ms = 13;
+ optional uint32 time_to_send_req_ms = 14;
+ optional uint32 time_to_first_byte_ms = 15;
+ optional uint32 time_to_last_byte_ms = 16;
+}
+
+message CCloud_BeginAppUploadBatch_Request {
+ optional uint32 appid = 1 [(description) = "App ID for this batch is for."];
+ optional string machine_name = 2 [(description) = "Client machine name (may be user's alias)."];
+ repeated string files_to_upload = 3 [(description) = "Filenames of files to upload in this batch"];
+ repeated string files_to_delete = 4 [(description) = "Filenames of files to delete in this batch"];
+ optional uint64 client_id = 5 [(description) = "Client ID number"];
+ optional uint64 app_build_id = 6 [(description) = "Current local build of the app which made these changes"];
+}
+
+message CCloud_BeginAppUploadBatch_Response {
+ optional uint64 batch_id = 1 [(description) = "ID of this batch."];
+ optional uint64 app_change_number = 4 [(description) = "New App Change Number"];
+}
+
+message CCloud_CompleteAppUploadBatch_Notification {
+ optional uint32 appid = 1 [(description) = "App ID for this batch is for."];
+ optional uint64 batch_id = 2 [(description) = "ID of this batch."];
+ optional uint32 batch_eresult = 3 [(description) = "result of this batch."];
+}
+
+message CCloud_CompleteAppUploadBatch_Request {
+ optional uint32 appid = 1 [(description) = "App ID for this batch is for."];
+ optional uint64 batch_id = 2 [(description) = "ID of this batch."];
+ optional uint32 batch_eresult = 3 [(description) = "result of this batch."];
+}
+
+message CCloud_CompleteAppUploadBatch_Response {
+}
+
+message CCloud_ClientBeginFileUpload_Request {
+ optional uint32 appid = 1 [(description) = "App ID for which the file is being uploaded."];
+ optional uint32 file_size = 2 [(description) = "file size as transmitted and stored in Cloud."];
+ optional uint32 raw_file_size = 3 [(description) = "file size before any compression and/or encryption."];
+ optional bytes file_sha = 4 [(description) = "SHA-1 of raw file."];
+ optional uint64 time_stamp = 5 [(description) = "Timestamp of file."];
+ optional string filename = 6 [(description) = "Name of the file to store in the cloud."];
+ optional uint32 platforms_to_sync = 7 [default = 4294967295];
+ optional uint32 cell_id = 9 [(description) = "Client's cell ID so we can pick storage location."];
+ optional bool can_encrypt = 10 [(description) = "if true, client can encrypt the file before uploading it"];
+ optional bool is_shared_file = 11 [(description) = "if true, this is going to be UGC or a screenshot or some other shared file"];
+ optional uint32 deprecated_realm = 12 [(description) = "unused"];
+ optional uint64 upload_batch_id = 13 [(description) = "ID of this batch."];
+}
+
+message ClientCloudFileUploadBlockDetails {
+ message HTTPHeaders {
+ optional string name = 1;
+ optional string value = 2;
+ }
+
+ optional string url_host = 1 [(description) = "Host name of server to which file should be uploaded via HTTP PUT."];
+ optional string url_path = 2 [(description) = "Relative path on server to which file should be uploaded."];
+ optional bool use_https = 3 [(description) = "If true, use https, otherwise use http."];
+ optional int32 http_method = 4 [(description) = "EHTTPMethod to use for this block."];
+ repeated .ClientCloudFileUploadBlockDetails.HTTPHeaders request_headers = 5 [(description) = "Name-value pairs to be sent in HTTP PUT request."];
+ optional uint64 block_offset = 6 [(description) = "offset of file block to upload"];
+ optional uint32 block_length = 7 [(description) = "length of file block to upload - if zero, no part of the file is part of this block"];
+ optional bytes explicit_body_data = 8 [(description) = "explicit body data to use, instead of file data, for this block"];
+ optional bool may_parallelize = 9 [(description) = "if true, this request may be done in parallel with other similarly-marked requests"];
+}
+
+message CCloud_ClientBeginFileUpload_Response {
+ optional bool encrypt_file = 1 [(description) = "If true, the file should be encrypted by the client before upload"];
+ repeated .ClientCloudFileUploadBlockDetails block_requests = 2 [(description) = "HTTP requests to make to perform upload"];
+}
+
+message CCloud_ClientCommitFileUpload_Request {
+ optional bool transfer_succeeded = 1 [(description) = "True if all block uploads succeeded, false if any of them failed."];
+ optional uint32 appid = 2 [(description) = "App ID for which the file is being uploaded. Must match the app ID provided to Cloud.BeginFileUpload."];
+ optional bytes file_sha = 3 [(description) = "SHA1 digest of the raw file. Must match the SHA1 digest provided to Cloud.BeginFileUpload."];
+ optional string filename = 4 [(description) = "Filename as specified in the Cloud.BeginFileUpload request."];
+}
+
+message CCloud_ClientCommitFileUpload_Response {
+ optional bool file_committed = 1 [(description) = "True if the file was successfully committed, false otherwise."];
+}
+
+message CCloud_ClientFileDownload_Request {
+ optional uint32 appid = 1 [(description) = "App ID the file is part of."];
+ optional string filename = 2 [(description) = "Filename of the file."];
+ optional uint32 realm = 3 [(description) = "Steam Realm"];
+}
+
+message CCloud_ClientFileDownload_Response {
+ message HTTPHeaders {
+ optional string name = 1;
+ optional string value = 2;
+ }
+
+ optional uint32 appid = 1 [(description) = "Application the file belongs to"];
+ optional uint32 file_size = 2 [(description) = "file size as transmitted and stored in the Cloud"];
+ optional uint32 raw_file_size = 3 [(description) = "file size when decompressed and/or decrypted"];
+ optional bytes sha_file = 4 [(description) = "SHA of file"];
+ optional uint64 time_stamp = 5 [(description) = "Timestamp of file"];
+ optional bool is_explicit_delete = 6 [(description) = "True if this is an explicitly deleted file"];
+ optional string url_host = 7 [(description) = "Host to GET the file from"];
+ optional string url_path = 8 [(description) = "Path on that host to use, including URL parameters if any"];
+ optional bool use_https = 9 [(description) = "If set, use HTTPS, else use HTTP"];
+ repeated .CCloud_ClientFileDownload_Response.HTTPHeaders request_headers = 10 [(description) = "Name-value pairs to be sent in HTTP GET request."];
+ optional bool encrypted = 11;
+}
+
+message CCloud_ClientDeleteFile_Request {
+ optional uint32 appid = 1 [(description) = "App ID for which the file is being deleted."];
+ optional string filename = 2 [(description) = "Filename of file."];
+ optional bool is_explicit_delete = 3 [(description) = "If true, this is a 'delete'; if false, it is a 'forget'"];
+ optional uint64 upload_batch_id = 4 [(description) = "ID of this batch."];
+}
+
+message CCloud_ClientDeleteFile_Response {
+}
+
+message CCloud_ClientConflictResolution_Notification {
+ optional uint32 appid = 1 [(description) = "App ID for which the conflict was resolved."];
+ optional bool chose_local_files = 2 [(description) = "Did the user choose to keep the files local to the machine they are on right now?"];
+}
+
+message CCloud_EnumerateUserApps_Request {
+}
+
+message CCloud_EnumerateUserApps_Response {
+ message Apps {
+ optional uint32 appid = 1;
+ optional int32 totalcount = 2;
+ optional int64 totalsize = 3;
+ }
+
+ repeated .CCloud_EnumerateUserApps_Response.Apps apps = 1;
+}
+
+message CCloud_GetAppFileChangelist_Request {
+ optional uint32 appid = 1 [(description) = "App ID"];
+ optional uint64 synced_change_number = 2 [(description) = "Change Number to which local machine was last successfully synced"];
+}
+
+message CCloud_AppFileInfo {
+ optional string file_name = 1 [(description) = "unqualified filename"];
+ optional bytes sha_file = 2 [(description) = "SHA of file"];
+ optional uint64 time_stamp = 3 [(description) = "server timestamp of last modification"];
+ optional uint32 raw_file_size = 4 [(description) = "size of raw file"];
+ optional .ECloudStoragePersistState persist_state = 5 [default = k_ECloudStoragePersistStatePersisted, (description) = "current persist state of the file"];
+ optional uint32 platforms_to_sync = 6 [(description) = "ERemoteStoragePlatform bits"];
+ optional uint32 path_prefix_index = 7 [(description) = "index into string table of path prefixes"];
+ optional uint32 machine_name_index = 8 [(description) = "what machine last modified this file"];
+}
+
+message CCloud_GetAppFileChangelist_Response {
+ optional uint64 current_change_number = 1 [(description) = "Change Number current on server"];
+ repeated .CCloud_AppFileInfo files = 2 [(description) = "List of files; may be the full list of extant/deleted files, or just a delta from the client list"];
+ optional bool is_only_delta = 3 [(description) = "If true, 'files' omits any files that have not changed since client's change ID"];
+ repeated string path_prefixes = 4 [(description) = "string table of path prefixes"];
+ repeated string machine_names = 5 [(description) = "string table of machine names"];
+ optional uint64 app_buildid_hwm = 6 [(description) = "highest app build ID which has uploaded data"];
+}
+
+message CCloud_AppSessionSuspend_Request {
+ optional uint32 appid = 1;
+ optional uint64 client_id = 2;
+ optional string machine_name = 3;
+ optional bool cloud_sync_completed = 4;
+}
+
+message CCloud_AppSessionSuspend_Response {
+}
+
+message CCloud_AppSessionResume_Request {
+ optional uint32 appid = 1;
+ optional uint64 client_id = 2;
+}
+
+message CCloud_AppSessionResume_Response {
+}
+
+message CCloud_AppLaunchIntent_Request {
+ optional uint32 appid = 1;
+ optional uint64 client_id = 2;
+ optional string machine_name = 3;
+ optional bool ignore_pending_operations = 4;
+}
+
+message CCloud_AppLaunchIntent_Response {
+ repeated .CCloud_PendingRemoteOperation pending_remote_operations = 1 [(description) = "pending remote operations you should be aware of"];
+}
+
+message CCloud_AppExitSyncDone_Notification {
+ optional uint32 appid = 1;
+ optional uint64 client_id = 2;
+ optional bool uploads_completed = 3;
+ optional bool uploads_required = 4;
+}
+
+message CCloud_ClientGetAppQuotaUsage_Request {
+ optional uint32 appid = 1;
+}
+
+message CCloud_ClientGetAppQuotaUsage_Response {
+ optional uint32 existing_files = 1;
+ optional uint64 existing_bytes = 2;
+ optional uint32 max_num_files = 3;
+ optional uint64 max_num_bytes = 4;
+}
+
+message CCloud_AppCloudStateChange_Notification {
+ optional uint32 appid = 1 [(description) = "App which has had a change in cloud state"];
+ optional uint64 app_change_number = 2 [(description) = "New App Change Number"];
+}
+
+message CCloud_ClientLogUploadRequest_Notification {
+ optional uint64 request_id = 1;
+}
+
+service Cloud {
+ option (service_description) = "A service for Steam Cloud operations.";
+
+ rpc ClientLogUploadCheck (.CCloud_ClientLogUploadCheck_Notification) returns (.NoResponse) {
+ option (method_description) = "Client checking for pending log upload requests.";
+ }
+
+ rpc ClientLogUploadComplete (.CCloud_ClientLogUploadComplete_Notification) returns (.NoResponse) {
+ option (method_description) = "Client is flagging a log upload request as completed.";
+ }
+
+ rpc GetUploadServerInfo (.CCloud_GetUploadServerInfo_Request) returns (.CCloud_GetUploadServerInfo_Response) {
+ option (method_description) = "Returns the URL of the proper cloud server for a user.";
+ }
+
+ rpc BeginHTTPUpload (.CCloud_BeginHTTPUpload_Request) returns (.CCloud_BeginHTTPUpload_Response) {
+ option (method_description) = "Begins the process of uploading a file to Steam external storage services. File should be uploaded via HTTP PUT to the returned URL, after which the upload must be finalized by a call to CommitHTTPUpload.";
+ }
+
+ rpc CommitHTTPUpload (.CCloud_CommitHTTPUpload_Request) returns (.CCloud_CommitHTTPUpload_Response) {
+ option (method_description) = "Commits a file upload initiated by BeginHTTPUpload and transferred via HTTP PUT.";
+ }
+
+ rpc BeginUGCUpload (.CCloud_BeginUGCUpload_Request) returns (.CCloud_BeginUGCUpload_Response) {
+ option (method_description) = "Begins the process of uploading a file to Steam external storage services. File should be uploaded via HTTP PUT to the returned URL, after which the upload must be finalized by a call to CommitHTTPUpload.";
+ }
+
+ rpc CommitUGCUpload (.CCloud_CommitUGCUpload_Request) returns (.CCloud_CommitUGCUpload_Response) {
+ option (method_description) = "Commits a file upload initiated by BeginUGCUpload and transferred via HTTP PUT.";
+ }
+
+ rpc GetFileDetails (.CCloud_GetFileDetails_Request) returns (.CCloud_GetFileDetails_Response) {
+ option (method_description) = "Returns details on a Cloud file.";
+ }
+
+ rpc EnumerateUserFiles (.CCloud_EnumerateUserFiles_Request) returns (.CCloud_EnumerateUserFiles_Response) {
+ option (method_description) = "Enumerates Cloud files for a user of a given app ID. Returns up to 500 files at a time.";
+ }
+
+ rpc Delete (.CCloud_Delete_Request) returns (.CCloud_Delete_Response) {
+ option (method_description) = "Deletes a file from the user's cloud.";
+ }
+
+ rpc GetClientEncryptionKey (.CCloud_GetClientEncryptionKey_Request) returns (.CCloud_GetClientEncryptionKey_Response) {
+ option (method_description) = "Gets the user's Cloud file encryption key.";
+ }
+
+ rpc CDNReport (.CCloud_CDNReport_Notification) returns (.NoResponse) {
+ option (method_description) = "Reports the result of a CDN transfer.";
+ }
+
+ rpc ExternalStorageTransferReport (.CCloud_ExternalStorageTransferReport_Notification) returns (.NoResponse) {
+ option (method_description) = "Reports the result of an external Cloud storage transfer.";
+ }
+
+ rpc BeginAppUploadBatch (.CCloud_BeginAppUploadBatch_Request) returns (.CCloud_BeginAppUploadBatch_Response) {
+ option (method_description) = "Indicate a batch of files that will be uploaded / deleted for an app.";
+ }
+
+ rpc CompleteAppUploadBatch (.CCloud_CompleteAppUploadBatch_Notification) returns (.NoResponse) {
+ option (method_description) = "Indicate that the batch is complete or being stopped for some other reason.";
+ }
+
+ rpc CompleteAppUploadBatchBlocking (.CCloud_CompleteAppUploadBatch_Request) returns (.CCloud_CompleteAppUploadBatch_Response) {
+ option (method_description) = "Indicate that the batch is complete or being stopped for some other reason.";
+ }
+
+ rpc ClientBeginFileUpload (.CCloud_ClientBeginFileUpload_Request) returns (.CCloud_ClientBeginFileUpload_Response) {
+ option (method_description) = "Initiate an upload to Cloud.";
+ }
+
+ rpc ClientCommitFileUpload (.CCloud_ClientCommitFileUpload_Request) returns (.CCloud_ClientCommitFileUpload_Response) {
+ option (method_description) = "Commit the file upload or indicate failure.";
+ }
+
+ rpc ClientFileDownload (.CCloud_ClientFileDownload_Request) returns (.CCloud_ClientFileDownload_Response) {
+ option (method_description) = "Initiate a file download.";
+ }
+
+ rpc ClientDeleteFile (.CCloud_ClientDeleteFile_Request) returns (.CCloud_ClientDeleteFile_Response) {
+ option (method_description) = "Delete or forget a file.";
+ }
+
+ rpc ClientConflictResolution (.CCloud_ClientConflictResolution_Notification) returns (.NoResponse) {
+ option (method_description) = "User has picked a resolution for a Cloud conflict.";
+ }
+
+ rpc EnumerateUserApps (.CCloud_EnumerateUserApps_Request) returns (.CCloud_EnumerateUserApps_Response) {
+ option (method_description) = "Enumerates apps stroing cloud files for a user.";
+ }
+
+ rpc GetAppFileChangelist (.CCloud_GetAppFileChangelist_Request) returns (.CCloud_GetAppFileChangelist_Response) {
+ option (method_description) = "Get a list of Cloud file changes for an app given a starting Change Number.";
+ }
+
+ rpc SuspendAppSession (.CCloud_AppSessionSuspend_Request) returns (.CCloud_AppSessionSuspend_Response) {
+ option (method_description) = "An app session is being suspended";
+ }
+
+ rpc ResumeAppSession (.CCloud_AppSessionResume_Request) returns (.CCloud_AppSessionResume_Response) {
+ option (method_description) = "An app session is being resumed";
+ }
+
+ rpc SignalAppLaunchIntent (.CCloud_AppLaunchIntent_Request) returns (.CCloud_AppLaunchIntent_Response) {
+ option (method_description) = "Client intends to launch an app";
+ }
+
+ rpc SignalAppExitSyncDone (.CCloud_AppExitSyncDone_Notification) returns (.NoResponse) {
+ option (method_description) = "Client is done trying to sync after a game session";
+ }
+
+ rpc ClientGetAppQuotaUsage (.CCloud_ClientGetAppQuotaUsage_Request) returns (.CCloud_ClientGetAppQuotaUsage_Response) {
+ option (method_description) = "Client is requesting quota usage for an app";
+ }
+}
+
+service CloudClient {
+ option (service_description) = "Client notifications for Steam cloud events";
+ option (service_execution_site) = k_EProtoExecutionSiteSteamClient;
+
+ rpc NotifyAppStateChange (.CCloud_AppCloudStateChange_Notification) returns (.NoResponse) {
+ option (method_description) = "Cloud state for the given app has changed.";
+ }
+
+ rpc ClientLogUploadRequest (.CCloud_ClientLogUploadRequest_Notification) returns (.NoResponse) {
+ option (method_description) = "Server is requesting log file uploads from the given client.";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_contentsystem.steamclient.proto b/protobuf_files/orig/steam/steammessages_contentsystem.steamclient.proto
new file mode 100644
index 00000000..22c32594
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_contentsystem.steamclient.proto
@@ -0,0 +1,113 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+message CContentServerDirectory_GetServersForSteamPipe_Request {
+ optional uint32 cell_id = 1 [(description) = "client Cell ID"];
+ optional uint32 max_servers = 2 [default = 20, (description) = "max servers in response list"];
+ optional string ip_override = 3 [(description) = "client IP address"];
+ optional int32 launcher_type = 4 [default = 0, (description) = "launcher type"];
+ optional string ipv6_public = 5 [(description) = "client public ipv6 address if it knows it"];
+}
+
+message CContentServerDirectory_ServerInfo {
+ optional string type = 1;
+ optional int32 source_id = 2;
+ optional int32 cell_id = 3;
+ optional int32 load = 4;
+ optional float weighted_load = 5;
+ optional int32 num_entries_in_client_list = 6;
+ optional bool steam_china_only = 7;
+ optional string host = 8;
+ optional string vhost = 9;
+ optional bool use_as_proxy = 10;
+ optional string proxy_request_path_template = 11;
+ optional string https_support = 12;
+ repeated uint32 allowed_app_ids = 13;
+ optional bool preferred_server = 14;
+}
+
+message CContentServerDirectory_GetServersForSteamPipe_Response {
+ repeated .CContentServerDirectory_ServerInfo servers = 1;
+}
+
+message CContentServerDirectory_GetDepotPatchInfo_Request {
+ optional uint32 appid = 1;
+ optional uint32 depotid = 2;
+ optional uint64 source_manifestid = 3;
+ optional uint64 target_manifestid = 4;
+}
+
+message CContentServerDirectory_GetDepotPatchInfo_Response {
+ optional bool is_available = 1;
+ optional uint64 patch_size = 2;
+ optional uint64 patched_chunks_size = 3;
+}
+
+message CContentServerDirectory_GetClientUpdateHosts_Request {
+ optional string cached_signature = 1;
+}
+
+message CContentServerDirectory_GetClientUpdateHosts_Response {
+ optional string hosts_kv = 1;
+ optional uint64 valid_until_time = 2;
+ optional string ip_country = 3;
+}
+
+message CContentServerDirectory_GetManifestRequestCode_Request {
+ optional uint32 app_id = 1;
+ optional uint32 depot_id = 2;
+ optional uint64 manifest_id = 3;
+ optional string app_branch = 4;
+ optional string branch_password_hash = 5;
+}
+
+message CContentServerDirectory_GetManifestRequestCode_Response {
+ optional uint64 manifest_request_code = 1;
+}
+
+message CContentServerDirectory_GetCDNAuthToken_Request {
+ optional uint32 depot_id = 1;
+ optional string host_name = 2;
+ optional uint32 app_id = 3;
+}
+
+message CContentServerDirectory_GetCDNAuthToken_Response {
+ optional string token = 1;
+ optional uint32 expiration_time = 2;
+}
+
+message CContentServerDirectory_RequestPeerContentServer_Request {
+ optional uint64 remote_client_id = 1;
+ optional uint64 steamid = 2;
+ optional uint64 server_remote_client_id = 3;
+ optional uint32 app_id = 4;
+ optional uint32 current_build_id = 5;
+}
+
+message CContentServerDirectory_RequestPeerContentServer_Response {
+ optional uint32 server_port = 1;
+}
+
+message CContentServerDirectory_GetPeerContentInfo_Request {
+ optional uint64 remote_client_id = 1;
+ optional uint64 steamid = 2;
+ optional uint64 server_remote_client_id = 3;
+}
+
+message CContentServerDirectory_GetPeerContentInfo_Response {
+ repeated uint32 appids = 1;
+}
+
+service ContentServerDirectory {
+ option (service_description) = "Content Server and CDN directory";
+
+ rpc GetServersForSteamPipe (.CContentServerDirectory_GetServersForSteamPipe_Request) returns (.CContentServerDirectory_GetServersForSteamPipe_Response);
+ rpc GetDepotPatchInfo (.CContentServerDirectory_GetDepotPatchInfo_Request) returns (.CContentServerDirectory_GetDepotPatchInfo_Response);
+ rpc GetClientUpdateHosts (.CContentServerDirectory_GetClientUpdateHosts_Request) returns (.CContentServerDirectory_GetClientUpdateHosts_Response);
+ rpc GetManifestRequestCode (.CContentServerDirectory_GetManifestRequestCode_Request) returns (.CContentServerDirectory_GetManifestRequestCode_Response);
+ rpc GetCDNAuthToken (.CContentServerDirectory_GetCDNAuthToken_Request) returns (.CContentServerDirectory_GetCDNAuthToken_Response);
+ rpc RequestPeerContentServer (.CContentServerDirectory_RequestPeerContentServer_Request) returns (.CContentServerDirectory_RequestPeerContentServer_Response);
+ rpc GetPeerContentInfo (.CContentServerDirectory_GetPeerContentInfo_Request) returns (.CContentServerDirectory_GetPeerContentInfo_Response);
+}
diff --git a/protobuf_files/orig/steam/steammessages_credentials.steamclient.proto b/protobuf_files/orig/steam/steammessages_credentials.steamclient.proto
new file mode 100644
index 00000000..7e2ddaae
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_credentials.steamclient.proto
@@ -0,0 +1,115 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+message CCredentials_TestAvailablePassword_Request {
+ optional string password = 1;
+ optional bytes sha_digest_password = 2;
+ optional string account_name = 3;
+}
+
+message CCredentials_TestAvailablePassword_Response {
+ optional bool is_valid = 3;
+}
+
+message CCredentials_GetSteamGuardDetails_Request {
+ optional string webcookie = 2 [(description) = "The user's Steam Guard machine auth cookie. If present, it'll be used to get the user's machine ID instead of the AM session."];
+ optional fixed32 timestamp_minimum_wanted = 3;
+ optional int32 deprecated_ipaddress = 4;
+ optional .CMsgIPAddress ip_address = 5;
+}
+
+message CCredentials_GetSteamGuardDetails_Response {
+ message SessionData {
+ optional uint64 machine_id = 1;
+ optional string machine_name_userchosen = 2;
+ optional fixed32 timestamp_machine_steamguard_enabled = 3;
+ optional bool authentication_exists_from_geoloc_before_mintime = 4;
+ optional bool authentication_exists_from_same_ip_before_mintime = 6;
+ optional uint32 public_ipv4 = 7;
+ optional string public_ip_address = 8;
+ }
+
+ optional bool is_steamguard_enabled = 1;
+ optional fixed32 timestamp_steamguard_enabled = 2;
+ optional string deprecated_machine_name_userchosen = 4;
+ optional fixed32 deprecated_timestamp_machine_steamguard_enabled = 5;
+ optional bool deprecated_authentication_exists_from_geoloc_before_mintime = 6;
+ optional uint64 deprecated_machine_id = 7;
+ repeated .CCredentials_GetSteamGuardDetails_Response.SessionData session_data = 8;
+ optional bool is_twofactor_enabled = 9;
+ optional fixed32 timestamp_twofactor_enabled = 10;
+ optional bool is_phone_verified = 11;
+}
+
+message CCredentials_ValidateEmailAddress_Request {
+ optional string stoken = 1;
+}
+
+message CCredentials_ValidateEmailAddress_Response {
+ optional bool was_validated = 1;
+}
+
+message CCredentials_SteamGuardPhishingReport_Request {
+ optional string param_string = 1;
+ optional string ipaddress_actual = 2;
+}
+
+message CCredentials_SteamGuardPhishingReport_Response {
+ optional string ipaddress_loginattempt = 1;
+ optional string countryname_loginattempt = 2;
+ optional string statename_loginattempt = 3;
+ optional string cityname_loginattempt = 4;
+ optional string ipaddress_actual = 5;
+ optional string countryname_actual = 6;
+ optional string statename_actual = 7;
+ optional string cityname_actual = 8;
+ optional string steamguard_code = 9;
+}
+
+message CCredentials_LastCredentialChangeTime_Request {
+ optional bool user_changes_only = 1;
+}
+
+message CCredentials_LastCredentialChangeTime_Response {
+ optional fixed32 timestamp_last_password_change = 1;
+ optional fixed32 timestamp_last_email_change = 2;
+ optional fixed32 timestamp_last_password_reset = 3;
+}
+
+message CCredentials_GetAccountAuthSecret_Request {
+}
+
+message CCredentials_GetAccountAuthSecret_Response {
+ optional int32 secret_id = 1;
+ optional bytes secret = 2;
+}
+
+service Credentials {
+ option (service_description) = "Credentials service";
+
+ rpc TestAvailablePassword (.CCredentials_TestAvailablePassword_Request) returns (.CCredentials_TestAvailablePassword_Response) {
+ option (method_description) = "TestAvailablePassword.";
+ }
+
+ rpc GetSteamGuardDetails (.CCredentials_GetSteamGuardDetails_Request) returns (.CCredentials_GetSteamGuardDetails_Response) {
+ option (method_description) = "GetSteamGuardDetails.";
+ }
+
+ rpc ValidateEmailAddress (.CCredentials_ValidateEmailAddress_Request) returns (.CCredentials_ValidateEmailAddress_Response) {
+ option (method_description) = "Validate an email address given a token";
+ }
+
+ rpc SteamGuardPhishingReport (.CCredentials_SteamGuardPhishingReport_Request) returns (.CCredentials_SteamGuardPhishingReport_Response) {
+ option (method_description) = "SteamGuardPhishingReport";
+ }
+
+ rpc GetCredentialChangeTimeDetails (.CCredentials_LastCredentialChangeTime_Request) returns (.CCredentials_LastCredentialChangeTime_Response) {
+ option (method_description) = "GetCredentialChangeTimeDetails.";
+ }
+
+ rpc GetAccountAuthSecret (.CCredentials_GetAccountAuthSecret_Request) returns (.CCredentials_GetAccountAuthSecret_Response) {
+ option (method_description) = "GetAccountAuthSecret";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_datapublisher.steamclient.proto b/protobuf_files/orig/steam/steammessages_datapublisher.steamclient.proto
new file mode 100644
index 00000000..48845bb4
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_datapublisher.steamclient.proto
@@ -0,0 +1,66 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+message CDataPublisher_ClientContentCorruptionReport_Notification {
+ optional uint32 appid = 1;
+ optional uint32 depotid = 2;
+ optional string download_source = 3 [(description) = "host name of download source"];
+ optional string objectid = 4 [(description) = "Chunk SHA or Manifest ID"];
+ optional uint32 cellid = 5 [(description) = "Client Cell ID"];
+ optional bool is_manifest = 6 [(description) = "The object is a manifest, not a chunk"];
+ optional uint64 object_size = 7 [(description) = "object size in bytes"];
+ optional uint32 corruption_type = 8 [(description) = "See EContentCorruptionType"];
+ optional bool used_https = 9 [(description) = "the request was HTTPS"];
+ optional bool oc_proxy_detected = 10 [(description) = "detected an OpenCache proxy"];
+}
+
+message CDataPublisher_ClientUpdateAppJob_Notification {
+ optional uint32 app_id = 1;
+ repeated uint32 depot_ids = 2;
+ optional uint32 app_state = 3;
+ optional uint32 job_app_error = 4;
+ optional string error_details = 5;
+ optional uint32 job_duration = 6;
+ optional uint32 files_validation_failed = 7;
+ optional uint64 job_bytes_downloaded = 8;
+ optional uint64 job_bytes_staged = 9;
+ optional uint64 bytes_comitted = 10;
+ optional uint32 start_app_state = 11;
+ optional fixed64 stats_machine_id = 12;
+ optional string branch_name = 13;
+ optional uint64 total_bytes_downloaded = 14;
+ optional uint64 total_bytes_staged = 15;
+ optional uint64 total_bytes_restored = 16;
+ optional bool is_borrowed = 17;
+ optional bool is_free_weekend = 18;
+ optional uint64 total_bytes_patched = 20;
+ optional uint64 total_bytes_saved = 21;
+ optional uint32 cell_id = 22;
+}
+
+message CValveHWSurvey_GetSurveySchedule_Request {
+ optional string surveydatetoken = 1;
+ optional fixed64 surveydatetokenversion = 2;
+}
+
+message CValveHWSurvey_GetSurveySchedule_Response {
+ optional uint32 surveydatetoken = 1;
+ optional fixed64 surveydatetokenversion = 2;
+}
+
+service DataPublisher {
+ option (service_description) = "Data Publisher (DP) server services";
+
+ rpc ClientContentCorruptionReport (.CDataPublisher_ClientContentCorruptionReport_Notification) returns (.NoResponse);
+ rpc ClientUpdateAppJobReport (.CDataPublisher_ClientUpdateAppJob_Notification) returns (.NoResponse);
+}
+
+service ValveHWSurvey {
+ option (service_description) = "ValveHWSurvey";
+
+ rpc GetSurveySchedule (.CValveHWSurvey_GetSurveySchedule_Request) returns (.CValveHWSurvey_GetSurveySchedule_Response) {
+ option (method_description) = "Should I run the survey";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_depotbuilder.steamclient.proto b/protobuf_files/orig/steam/steammessages_depotbuilder.steamclient.proto
new file mode 100644
index 00000000..accf42e5
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_depotbuilder.steamclient.proto
@@ -0,0 +1,118 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+message CContentBuilder_InitDepotBuild_Request {
+ optional uint32 appid = 1;
+ optional uint32 depotid = 2;
+ optional uint64 workshop_itemid = 3;
+ optional bool for_local_cs = 4;
+ optional string target_branch = 5;
+}
+
+message CContentBuilder_InitDepotBuild_Response {
+ optional uint64 baseline_manifestid = 1;
+ optional uint32 chunk_size = 2;
+ optional bytes aes_key = 3;
+ optional bytes rsa_key = 4;
+ optional string url_host = 5;
+ optional bool offset_detection_enabled = 6;
+ optional uint32 offset_detection_min_clean_chunk = 7;
+ optional uint32 offset_detection_blast_radius_pre = 8;
+ optional uint32 offset_detection_blast_radius_post = 9;
+ optional uint32 offset_detection_max_distance_pre = 10;
+ optional uint32 offset_detection_max_distance_post = 11;
+}
+
+message CContentBuilder_StartDepotUpload_Request {
+ optional uint32 appid = 1;
+ optional uint32 depotid = 2;
+ optional uint64 workshop_itemid = 3;
+ optional bool for_local_cs = 4;
+ optional uint64 baseline_manifestid = 5;
+ optional uint32 manifest_size = 6;
+}
+
+message CContentBuilder_StartDepotUpload_Response {
+ optional uint64 depot_build_handle = 1;
+}
+
+message CContentBuilder_GetMissingDepotChunks_Request {
+ optional uint32 appid = 1;
+ optional uint64 depot_build_handle = 2;
+}
+
+message CContentBuilder_GetMissingDepotChunks_Response {
+ message Chunks {
+ optional bytes sha = 1;
+ }
+
+ repeated .CContentBuilder_GetMissingDepotChunks_Response.Chunks missing_chunks = 1;
+ optional uint32 total_missing_chunks = 2;
+ optional uint64 total_missing_bytes = 3;
+}
+
+message CContentBuilder_FinishDepotUpload_Request {
+ optional uint32 appid = 1;
+ optional uint64 depot_build_handle = 2;
+}
+
+message CContentBuilder_FinishDepotUpload_Response {
+ optional uint64 manifestid = 1;
+ optional bool prev_reused = 2;
+}
+
+message CContentBuilder_CommitAppBuild_Request {
+ message Depots {
+ optional uint32 depotid = 1;
+ optional uint64 manifestid = 2;
+ }
+
+ optional uint32 appid = 1;
+ repeated .CContentBuilder_CommitAppBuild_Request.Depots depot_manifests = 2;
+ optional string build_notes = 4;
+ optional string live_branch = 5;
+}
+
+message CContentBuilder_CommitAppBuild_Response {
+ optional uint32 buildid = 1;
+}
+
+message CContentBuilder_SignInstallScript_Request {
+ optional uint32 appid = 1;
+ optional uint32 depotid = 2;
+ optional string install_script = 3;
+}
+
+message CContentBuilder_SignInstallScript_Response {
+ optional string signed_install_script = 1;
+}
+
+service ContentBuilder {
+ option (service_description) = "Interface to build and upload depot content";
+
+ rpc InitDepotBuild (.CContentBuilder_InitDepotBuild_Request) returns (.CContentBuilder_InitDepotBuild_Response) {
+ option (method_description) = "Get inital parameters to start building a depot";
+ }
+
+ rpc StartDepotUpload (.CContentBuilder_StartDepotUpload_Request) returns (.CContentBuilder_StartDepotUpload_Response) {
+ option (method_description) = "Start uploading manifest and chunks for a depot";
+ }
+
+ rpc GetMissingDepotChunks (.CContentBuilder_GetMissingDepotChunks_Request) returns (.CContentBuilder_GetMissingDepotChunks_Response) {
+ option (method_description) = "Get list of missing chunks for depot upload";
+ }
+
+ rpc FinishDepotUpload (.CContentBuilder_FinishDepotUpload_Request) returns (.CContentBuilder_FinishDepotUpload_Response) {
+ option (method_description) = "Commit a depot build after manifest and all chunks are uploaded";
+ }
+
+ rpc CommitAppBuild (.CContentBuilder_CommitAppBuild_Request) returns (.CContentBuilder_CommitAppBuild_Response) {
+ option (method_description) = "Combine previous depot uploads into an app build and commit it";
+ }
+
+ rpc SignInstallScript (.CContentBuilder_SignInstallScript_Request) returns (.CContentBuilder_SignInstallScript_Response) {
+ option (method_description) = "Sign an install script";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_deviceauth.steamclient.proto b/protobuf_files/orig/steam/steammessages_deviceauth.steamclient.proto
new file mode 100644
index 00000000..8ac46d01
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_deviceauth.steamclient.proto
@@ -0,0 +1,203 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+message CDeviceAuth_GetOwnAuthorizedDevices_Request {
+ optional fixed64 steamid = 1;
+ optional bool include_canceled = 2;
+}
+
+message CDeviceAuth_GetOwnAuthorizedDevices_Response {
+ message Device {
+ optional fixed64 auth_device_token = 1;
+ optional string device_name = 2;
+ optional bool is_pending = 3;
+ optional bool is_canceled = 4;
+ optional uint32 last_time_used = 5;
+ optional fixed64 last_borrower_id = 6;
+ optional uint32 last_app_played = 7;
+ optional bool is_limited = 8;
+ }
+
+ repeated .CDeviceAuth_GetOwnAuthorizedDevices_Response.Device devices = 1;
+}
+
+message CDeviceAuth_AcceptAuthorizationRequest_Request {
+ optional fixed64 steamid = 1;
+ optional fixed64 auth_device_token = 2;
+ optional fixed64 auth_code = 3;
+ optional fixed64 from_steamid = 4;
+}
+
+message CDeviceAuth_AcceptAuthorizationRequest_Response {
+}
+
+message CDeviceAuth_AuthorizeRemoteDevice_Request {
+ optional fixed64 steamid = 1;
+ optional fixed64 auth_device_token = 2;
+}
+
+message CDeviceAuth_AuthorizeRemoteDevice_Response {
+}
+
+message CDeviceAuth_DeauthorizeRemoteDevice_Request {
+ optional fixed64 steamid = 1;
+ optional fixed64 auth_device_token = 2;
+}
+
+message CDeviceAuth_DeauthorizeRemoteDevice_Response {
+}
+
+message CDeviceAuth_GetUsedAuthorizedDevices_Request {
+ optional fixed64 steamid = 1;
+}
+
+message CDeviceAuth_GetUsedAuthorizedDevices_Response {
+ message Device {
+ optional fixed64 auth_device_token = 1;
+ optional string device_name = 2;
+ optional fixed64 owner_steamid = 3;
+ optional uint32 last_time_used = 4;
+ optional uint32 last_app_played = 5;
+ }
+
+ repeated .CDeviceAuth_GetUsedAuthorizedDevices_Response.Device devices = 1;
+}
+
+message CDeviceAuth_GetAuthorizedBorrowers_Request {
+ optional fixed64 steamid = 1;
+ optional bool include_canceled = 2;
+ optional bool include_pending = 3;
+}
+
+message CDeviceAuth_GetAuthorizedBorrowers_Response {
+ message Borrower {
+ optional fixed64 steamid = 1;
+ optional bool is_pending = 2;
+ optional bool is_canceled = 3;
+ optional uint32 time_created = 4;
+ }
+
+ repeated .CDeviceAuth_GetAuthorizedBorrowers_Response.Borrower borrowers = 1;
+}
+
+message CDeviceAuth_AddAuthorizedBorrowers_Request {
+ optional fixed64 steamid = 1;
+ repeated fixed64 steamid_borrower = 2;
+}
+
+message CDeviceAuth_AddAuthorizedBorrowers_Response {
+ optional int32 seconds_to_wait = 1;
+}
+
+message CDeviceAuth_RemoveAuthorizedBorrowers_Request {
+ optional fixed64 steamid = 1;
+ repeated fixed64 steamid_borrower = 2;
+}
+
+message CDeviceAuth_RemoveAuthorizedBorrowers_Response {
+}
+
+message CDeviceAuth_GetAuthorizedAsBorrower_Request {
+ optional fixed64 steamid = 1;
+ optional bool include_canceled = 2;
+ optional bool include_pending = 3;
+}
+
+message CDeviceAuth_GetAuthorizedAsBorrower_Response {
+ message Lender {
+ optional fixed64 steamid = 1;
+ optional uint32 time_created = 2;
+ optional bool is_pending = 3;
+ optional bool is_canceled = 4;
+ optional bool is_used = 5;
+ optional uint32 time_removed = 6;
+ optional uint32 time_first = 7;
+ }
+
+ repeated .CDeviceAuth_GetAuthorizedAsBorrower_Response.Lender lenders = 1;
+}
+
+message CDeviceAuth_GetExcludedGamesInLibrary_Request {
+ optional fixed64 steamid = 1;
+}
+
+message CDeviceAuth_GetExcludedGamesInLibrary_Response {
+ message ExcludedGame {
+ optional uint32 appid = 1;
+ optional string game_name = 2;
+ optional bool vac_banned = 3;
+ optional bool package_excluded = 4;
+ }
+
+ repeated .CDeviceAuth_GetExcludedGamesInLibrary_Response.ExcludedGame excluded_games = 1;
+}
+
+message CDeviceAuth_GetBorrowerPlayHistory_Request {
+ optional fixed64 steamid = 1;
+ optional uint32 appid = 2;
+}
+
+message CDeviceAuth_GetBorrowerPlayHistory_Response {
+ message GameHistory {
+ optional uint32 appid = 1;
+ optional uint32 time_last = 2;
+ optional uint32 time_total = 3;
+ }
+
+ message LenderHistory {
+ optional fixed64 steamid = 1;
+ repeated .CDeviceAuth_GetBorrowerPlayHistory_Response.GameHistory game_history = 2;
+ }
+
+ repeated .CDeviceAuth_GetBorrowerPlayHistory_Response.LenderHistory lender_history = 1;
+}
+
+service DeviceAuth {
+ option (service_description) = "Library Sharing settings service";
+
+ rpc GetOwnAuthorizedDevices (.CDeviceAuth_GetOwnAuthorizedDevices_Request) returns (.CDeviceAuth_GetOwnAuthorizedDevices_Response) {
+ option (method_description) = "Get list of authorized devices";
+ }
+
+ rpc AcceptAuthorizationRequest (.CDeviceAuth_AcceptAuthorizationRequest_Request) returns (.CDeviceAuth_AcceptAuthorizationRequest_Response) {
+ option (method_description) = "Accept an authorization request by another users";
+ }
+
+ rpc AuthorizeRemoteDevice (.CDeviceAuth_AuthorizeRemoteDevice_Request) returns (.CDeviceAuth_AuthorizeRemoteDevice_Response) {
+ option (method_description) = "Authorize own remote device that has pending request";
+ }
+
+ rpc DeauthorizeRemoteDevice (.CDeviceAuth_DeauthorizeRemoteDevice_Request) returns (.CDeviceAuth_DeauthorizeRemoteDevice_Response) {
+ option (method_description) = "Revoke own device authorization";
+ }
+
+ rpc GetUsedAuthorizedDevices (.CDeviceAuth_GetUsedAuthorizedDevices_Request) returns (.CDeviceAuth_GetUsedAuthorizedDevices_Response) {
+ option (method_description) = "Get list of authorized devices user played borrowed games on";
+ }
+
+ rpc GetAuthorizedBorrowers (.CDeviceAuth_GetAuthorizedBorrowers_Request) returns (.CDeviceAuth_GetAuthorizedBorrowers_Response) {
+ option (method_description) = "Get list of users that can borrow on an authorized device";
+ }
+
+ rpc AddAuthorizedBorrowers (.CDeviceAuth_AddAuthorizedBorrowers_Request) returns (.CDeviceAuth_AddAuthorizedBorrowers_Response) {
+ option (method_description) = "Add users that can borrow on limited authorized devices";
+ }
+
+ rpc RemoveAuthorizedBorrowers (.CDeviceAuth_RemoveAuthorizedBorrowers_Request) returns (.CDeviceAuth_RemoveAuthorizedBorrowers_Response) {
+ option (method_description) = "Remove users that can borrow on limited authorized devices";
+ }
+
+ rpc GetAuthorizedAsBorrower (.CDeviceAuth_GetAuthorizedAsBorrower_Request) returns (.CDeviceAuth_GetAuthorizedAsBorrower_Response) {
+ option (method_description) = "Get list of lenders that authorized given account as borrower";
+ }
+
+ rpc GetExcludedGamesInLibrary (.CDeviceAuth_GetExcludedGamesInLibrary_Request) returns (.CDeviceAuth_GetExcludedGamesInLibrary_Response) {
+ option (method_description) = "Get list of excluded games in lenders library";
+ }
+
+ rpc GetBorrowerPlayHistory (.CDeviceAuth_GetBorrowerPlayHistory_Request) returns (.CDeviceAuth_GetBorrowerPlayHistory_Response) {
+ option (method_description) = "Get list played games as borrower";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_econ.steamclient.proto b/protobuf_files/orig/steam/steammessages_econ.steamclient.proto
new file mode 100644
index 00000000..522fbe09
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_econ.steamclient.proto
@@ -0,0 +1,149 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+message CEcon_GetInventoryItemsWithDescriptions_Request {
+ message FilterOptions {
+ repeated uint64 assetids = 1;
+ repeated uint32 currencyids = 2;
+ optional bool tradable_only = 3;
+ optional bool marketable_only = 4;
+ }
+
+ optional fixed64 steamid = 1;
+ optional uint32 appid = 2;
+ optional uint64 contextid = 3;
+ optional bool get_descriptions = 4;
+ optional bool for_trade_offer_verification = 10;
+ optional string language = 5;
+ optional .CEcon_GetInventoryItemsWithDescriptions_Request.FilterOptions filters = 6;
+ optional uint64 start_assetid = 8;
+ optional int32 count = 9;
+}
+
+message CEcon_Asset {
+ optional uint32 appid = 1;
+ optional uint64 contextid = 2;
+ optional uint64 assetid = 3;
+ optional uint64 classid = 4;
+ optional uint64 instanceid = 5;
+ optional uint32 currencyid = 6 [(description) = "Set currencyid if it's a currency, assetid for an item"];
+ optional int64 amount = 7;
+ optional bool missing = 8;
+ optional int64 est_usd = 9;
+}
+
+message CEconItem_DescriptionLine {
+ optional string type = 1;
+ optional string value = 2;
+ optional string color = 3;
+ optional string label = 4;
+}
+
+message CEconItem_Action {
+ optional string link = 1;
+ optional string name = 2;
+}
+
+message CEconItem_Description {
+ optional int32 appid = 1;
+ optional uint64 classid = 2;
+ optional uint64 instanceid = 3;
+ optional bool currency = 4;
+ optional string background_color = 5;
+ optional string icon_url = 6;
+ optional string icon_url_large = 7;
+ repeated .CEconItem_DescriptionLine descriptions = 8;
+ optional bool tradable = 9;
+ repeated .CEconItem_Action actions = 10;
+ repeated .CEconItem_DescriptionLine owner_descriptions = 11;
+ repeated .CEconItem_Action owner_actions = 12;
+ repeated string fraudwarnings = 13;
+ optional string name = 14;
+ optional string name_color = 15;
+ optional string type = 16;
+ optional string market_name = 17;
+ optional string market_hash_name = 18;
+ optional string market_fee = 19;
+ optional int32 market_fee_app = 28;
+ optional .CEconItem_Description contained_item = 20;
+ repeated .CEconItem_Action market_actions = 21;
+ optional bool commodity = 22;
+ optional int32 market_tradable_restriction = 23;
+ optional int32 market_marketable_restriction = 24;
+ optional bool marketable = 25;
+ repeated .CEconItem_Tag tags = 26;
+ optional string item_expiration = 27;
+ optional string market_buy_country_restriction = 30;
+ optional string market_sell_country_restriction = 31;
+}
+
+message CEconItem_Tag {
+ optional uint32 appid = 1 [(description) = "The app that contains the item"];
+ optional string category = 2 [(description) = "The internal name of the category the tag belongs to"];
+ optional string internal_name = 3 [(description) = "The internal name of the tag"];
+ optional string localized_category_name = 4 [(description) = "The localized name of the category"];
+ optional string localized_tag_name = 5 [(description) = "The localized name of the tag"];
+ optional string color = 6 [(description) = "The color to use when displaying the tag to the user"];
+}
+
+message CEcon_GetInventoryItemsWithDescriptions_Response {
+ repeated .CEcon_Asset assets = 1;
+ repeated .CEconItem_Description descriptions = 2;
+ repeated .CEcon_Asset missing_assets = 3 [(description) = "This list of assets in the original list we could not find in the users inventory"];
+ optional bool more_items = 4;
+ optional uint64 last_assetid = 5;
+ optional uint32 total_inventory_count = 6;
+}
+
+message CEcon_GetTradeOfferAccessToken_Request {
+ optional bool generate_new_token = 1;
+}
+
+message CEcon_GetTradeOfferAccessToken_Response {
+ optional string trade_offer_access_token = 1;
+}
+
+message CEcon_ClientGetItemShopOverlayAuthURL_Request {
+ optional string return_url = 1;
+}
+
+message CEcon_ClientGetItemShopOverlayAuthURL_Response {
+ optional string url = 1;
+}
+
+message CEcon_GetAssetClassInfo_Request {
+ message Class {
+ optional uint64 classid = 1;
+ optional uint64 instanceid = 2;
+ }
+
+ optional string language = 1;
+ optional uint32 appid = 2;
+ repeated .CEcon_GetAssetClassInfo_Request.Class classes = 3;
+}
+
+message CEcon_GetAssetClassInfo_Response {
+ repeated .CEconItem_Description descriptions = 1;
+}
+
+service Econ {
+ option (service_description) = "A service that provides communication with the econ servers";
+
+ rpc GetInventoryItemsWithDescriptions (.CEcon_GetInventoryItemsWithDescriptions_Request) returns (.CEcon_GetInventoryItemsWithDescriptions_Response) {
+ option (method_description) = "Gets a set of items from a users inventory, along with descriptions";
+ }
+
+ rpc GetTradeOfferAccessToken (.CEcon_GetTradeOfferAccessToken_Request) returns (.CEcon_GetTradeOfferAccessToken_Response) {
+ option (method_description) = "Get the user's trade offer access token";
+ }
+
+ rpc ClientGetItemShopOverlayAuthURL (.CEcon_ClientGetItemShopOverlayAuthURL_Request) returns (.CEcon_ClientGetItemShopOverlayAuthURL_Response) {
+ option (method_description) = "Generates a URL which sets a secure cookie for in-game-browser itemshop purchases";
+ }
+
+ rpc GetAssetClassInfo (.CEcon_GetAssetClassInfo_Request) returns (.CEcon_GetAssetClassInfo_Response) {
+ option (method_description) = "Returns description information about the passed in asset classes";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_friendmessages.steamclient.proto b/protobuf_files/orig/steam/steammessages_friendmessages.steamclient.proto
new file mode 100644
index 00000000..93114bdd
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_friendmessages.steamclient.proto
@@ -0,0 +1,168 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+enum EMessageReactionType {
+ k_EMessageReactionType_Invalid = 0;
+ k_EMessageReactionType_Emoticon = 1;
+ k_EMessageReactionType_Sticker = 2;
+}
+
+message CFriendMessages_GetRecentMessages_Request {
+ optional fixed64 steamid1 = 1;
+ optional fixed64 steamid2 = 2;
+ optional uint32 count = 3 [(description) = "If non-zero, cap the number of recent messages to return."];
+ optional bool most_recent_conversation = 4 [(description) = "Grab the block of chat from the most recent conversation (a ~5 minute period)"];
+ optional fixed32 rtime32_start_time = 5 [(description) = "If non-zero, return only messages with timestamps greater or equal to this. If zero, we only return messages from a recent time cutoff."];
+ optional bool bbcode_format = 6 [(description) = "Return the results with bbcode formatting."];
+ optional uint32 start_ordinal = 7 [(description) = "Combined with start time, only messages after this ordinal are returned (dedupes messages in same second)"];
+ optional uint32 time_last = 8 [(description) = "if present/non-zero, return only messages before this."];
+ optional uint32 ordinal_last = 9;
+}
+
+message CFriendMessages_GetRecentMessages_Response {
+ message FriendMessage {
+ message MessageReaction {
+ optional .EMessageReactionType reaction_type = 1 [default = k_EMessageReactionType_Invalid];
+ optional string reaction = 2;
+ repeated uint32 reactors = 3;
+ }
+
+ optional uint32 accountid = 1;
+ optional uint32 timestamp = 2;
+ optional string message = 3;
+ optional uint32 ordinal = 4;
+ repeated .CFriendMessages_GetRecentMessages_Response.FriendMessage.MessageReaction reactions = 5;
+ }
+
+ repeated .CFriendMessages_GetRecentMessages_Response.FriendMessage messages = 1 [(description) = "Array of messages, returned newest to oldest."];
+ optional bool more_available = 4;
+}
+
+message CFriendsMessages_GetActiveMessageSessions_Request {
+ optional uint32 lastmessage_since = 1 [(description) = "return only session information where a chat message has been sent since this time (for polling)"];
+ optional bool only_sessions_with_messages = 2 [(description) = "If non-zero, return only message sessions that have messages since our message cutoff. If zero, we return all active sessions."];
+}
+
+message CFriendsMessages_GetActiveMessageSessions_Response {
+ message FriendMessageSession {
+ optional uint32 accountid_friend = 1;
+ optional uint32 last_message = 2;
+ optional uint32 last_view = 3;
+ optional uint32 unread_message_count = 4;
+ }
+
+ repeated .CFriendsMessages_GetActiveMessageSessions_Response.FriendMessageSession message_sessions = 1;
+ optional uint32 timestamp = 2 [(description) = "This should be passed in the next request as lastmessage_since to poll for updates"];
+}
+
+message CFriendMessages_SendMessage_Request {
+ optional fixed64 steamid = 1;
+ optional int32 chat_entry_type = 2;
+ optional string message = 3;
+ optional bool contains_bbcode = 4;
+ optional bool echo_to_sender = 5;
+ optional bool low_priority = 6;
+ optional string client_message_id = 8;
+}
+
+message CFriendMessages_SendMessage_Response {
+ optional string modified_message = 1;
+ optional uint32 server_timestamp = 2;
+ optional uint32 ordinal = 3;
+ optional string message_without_bb_code = 4;
+}
+
+message CFriendMessages_AckMessage_Notification {
+ optional fixed64 steamid_partner = 1;
+ optional uint32 timestamp = 2;
+}
+
+message CFriendMessages_IsInFriendsUIBeta_Request {
+ optional fixed64 steamid = 1;
+}
+
+message CFriendMessages_IsInFriendsUIBeta_Response {
+ optional bool online_in_friendsui = 1;
+ optional bool has_used_friendsui = 2;
+}
+
+message CFriendMessages_UpdateMessageReaction_Request {
+ optional fixed64 steamid = 1;
+ optional uint32 server_timestamp = 2;
+ optional uint32 ordinal = 3;
+ optional .EMessageReactionType reaction_type = 4 [default = k_EMessageReactionType_Invalid];
+ optional string reaction = 5;
+ optional bool is_add = 6;
+}
+
+message CFriendMessages_UpdateMessageReaction_Response {
+ repeated uint32 reactors = 1;
+}
+
+message CFriendMessages_IncomingMessage_Notification {
+ optional fixed64 steamid_friend = 1;
+ optional int32 chat_entry_type = 2;
+ optional bool from_limited_account = 3;
+ optional string message = 4;
+ optional fixed32 rtime32_server_timestamp = 5;
+ optional uint32 ordinal = 6;
+ optional bool local_echo = 7;
+ optional string message_no_bbcode = 8;
+ optional bool low_priority = 9;
+}
+
+message CFriendMessages_MessageReaction_Notification {
+ optional fixed64 steamid_friend = 1;
+ optional uint32 server_timestamp = 2;
+ optional uint32 ordinal = 3;
+ optional fixed64 reactor = 4;
+ optional .EMessageReactionType reaction_type = 5 [default = k_EMessageReactionType_Invalid];
+ optional string reaction = 6;
+ optional bool is_add = 7;
+}
+
+service FriendMessages {
+ option (service_description) = "A service for relaying and logging friend messages (user-to-user chats and offline messaging)";
+
+ rpc GetRecentMessages (.CFriendMessages_GetRecentMessages_Request) returns (.CFriendMessages_GetRecentMessages_Response) {
+ option (method_description) = "Get a log of recent chat messages between two users";
+ }
+
+ rpc GetActiveMessageSessions (.CFriendsMessages_GetActiveMessageSessions_Request) returns (.CFriendsMessages_GetActiveMessageSessions_Response) {
+ option (method_description) = "Get information about recent offline messages and chats";
+ }
+
+ rpc SendMessage (.CFriendMessages_SendMessage_Request) returns (.CFriendMessages_SendMessage_Response) {
+ option (method_description) = "Send a chat message to a friend";
+ }
+
+ rpc AckMessage (.CFriendMessages_AckMessage_Notification) returns (.NoResponse) {
+ option (method_description) = "Acknowledge that we have seen the most recent message from a friend";
+ }
+
+ rpc IsInFriendsUIBeta (.CFriendMessages_IsInFriendsUIBeta_Request) returns (.CFriendMessages_IsInFriendsUIBeta_Response) {
+ option (method_description) = "See if a friend is in the friendsui beta.";
+ }
+
+ rpc UpdateMessageReaction (.CFriendMessages_UpdateMessageReaction_Request) returns (.CFriendMessages_UpdateMessageReaction_Response) {
+ option (method_description) = "Adds/removes a reaction to/from a friend message";
+ }
+}
+
+service FriendMessagesClient {
+ option (service_execution_site) = k_EProtoExecutionSiteSteamClient;
+
+ rpc IncomingMessage (.CFriendMessages_IncomingMessage_Notification) returns (.NoResponse) {
+ option (method_description) = "New chat message from a friend.";
+ }
+
+ rpc NotifyAckMessageEcho (.CFriendMessages_AckMessage_Notification) returns (.NoResponse) {
+ option (method_description) = "A session acked an unread message, echo to other sessions.";
+ }
+
+ rpc MessageReaction (.CFriendMessages_MessageReaction_Notification) returns (.NoResponse) {
+ option (method_description) = "New message reaction from a friend.";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_gamenetworking.steamclient.proto b/protobuf_files/orig/steam/steammessages_gamenetworking.steamclient.proto
new file mode 100644
index 00000000..3184a71b
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_gamenetworking.steamclient.proto
@@ -0,0 +1,32 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+message CGameNetworking_AllocateFakeIP_Request {
+ optional uint32 app_id = 1;
+ optional uint32 num_fake_ports = 2;
+}
+
+message CGameNetworking_AllocateFakeIP_Response {
+ optional fixed32 fake_ip = 1;
+ repeated uint32 fake_ports = 2;
+}
+
+message CGameNetworking_ReleaseFakeIP_Notification {
+ optional uint32 app_id = 1;
+ optional fixed32 fake_ip = 2;
+ repeated uint32 fake_ports = 3;
+}
+
+service GameNetworking {
+ option (service_description) = "Services that support P2P networking";
+
+ rpc AllocateFakeIP (.CGameNetworking_AllocateFakeIP_Request) returns (.CGameNetworking_AllocateFakeIP_Response) {
+ option (method_description) = "Client is asking to lease a FakeIP.";
+ }
+
+ rpc NotifyReleaseFakeIP (.CGameNetworking_ReleaseFakeIP_Notification) returns (.NoResponse) {
+ option (method_description) = "Client informs server it is done with the FakeIP.";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_gamenetworkingui.proto b/protobuf_files/orig/steam/steammessages_gamenetworkingui.proto
new file mode 100644
index 00000000..a5c67d03
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_gamenetworkingui.proto
@@ -0,0 +1,42 @@
+import "steamnetworkingsockets_messages.proto";
+import "steamdatagram_messages_sdr.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = true;
+
+message CGameNetworkingUI_GlobalState {
+}
+
+message CGameNetworkingUI_ConnectionState {
+ optional string connection_key = 1;
+ optional uint32 appid = 2;
+ optional fixed32 connection_id_local = 3;
+ optional string identity_local = 4;
+ optional string identity_remote = 5;
+ optional uint32 connection_state = 10;
+ optional uint32 start_time = 12;
+ optional uint32 close_time = 13;
+ optional uint32 close_reason = 14;
+ optional string close_message = 15;
+ optional string status_loc_token = 16;
+ optional uint32 transport_kind = 20;
+ optional string sdrpopid_local = 21;
+ optional string sdrpopid_remote = 22;
+ optional string address_remote = 23;
+ optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing = 24;
+ optional uint32 ping_interior = 25;
+ optional uint32 ping_remote_front = 26;
+ optional uint32 ping_default_internet_route = 27;
+ optional .CMsgSteamDatagramConnectionQuality e2e_quality_local = 30;
+ optional .CMsgSteamDatagramConnectionQuality e2e_quality_remote = 31;
+ optional uint64 e2e_quality_remote_instantaneous_time = 32;
+ optional uint64 e2e_quality_remote_lifetime_time = 33;
+ optional .CMsgSteamDatagramConnectionQuality front_quality_local = 40;
+ optional .CMsgSteamDatagramConnectionQuality front_quality_remote = 41;
+ optional uint64 front_quality_remote_instantaneous_time = 42;
+ optional uint64 front_quality_remote_lifetime_time = 43;
+}
+
+message CGameNetworkingUI_Message {
+ repeated .CGameNetworkingUI_ConnectionState connection_state = 1;
+}
diff --git a/protobuf_files/orig/steam/steammessages_gamenotifications.steamclient.proto b/protobuf_files/orig/steam/steammessages_gamenotifications.steamclient.proto
new file mode 100644
index 00000000..592292bb
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_gamenotifications.steamclient.proto
@@ -0,0 +1,156 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+message CGameNotifications_Variable {
+ optional string key = 1 [(description) = "The name of the variable in the localized text -- anywhere that %variablename% is found within the text it will be substituded with the given value"];
+ optional string value = 2 [(description) = "The value of the variable to substitute in the localized text in place of the given variable. Can itself be a localization token."];
+}
+
+message CGameNotifications_LocalizedText {
+ optional string token = 1 [(description) = "A localization token that maps to the desired string."];
+ repeated .CGameNotifications_Variable variables = 2 [(description) = "A list of variables values to substitute in any variables found in the localized string."];
+ optional string rendered_text = 3 [(description) = "Text rendered in the requested language, complete with variable substitutions, if a language was specified."];
+}
+
+message CGameNotifications_UserStatus {
+ optional fixed64 steamid = 1 [(description) = "The specific user's steamid."];
+ optional string state = 2 [(description) = "The user's state. ready -- the user is ready to play. waiting -- The game is waiting on an action from the user. completed, the game is over."];
+ optional .CGameNotifications_LocalizedText title = 3 [(description) = "Title of the session to display to this user in their list of active sessions."];
+ optional .CGameNotifications_LocalizedText message = 4 [(description) = "Subtitle of the session to display to this user user within their list of active sessions."];
+}
+
+message CGameNotifications_CreateSession_Request {
+ optional uint32 appid = 1 [(description) = "The appid to create the session for."];
+ optional uint64 context = 2 [(description) = "Game-specified context value the game can used to associate the session with some object on their backend."];
+ optional .CGameNotifications_LocalizedText title = 3 [(description) = "The title of the session to be displayed within each user's list of sessions."];
+ repeated .CGameNotifications_UserStatus users = 4 [(description) = "The initial state of all users in the session."];
+ optional fixed64 steamid = 5 [(description) = "(Optional) steamid to make the request on behalf of -- if specified, the user must be in the session and all users being added to the session must be friends with the user."];
+}
+
+message CGameNotifications_CreateSession_Response {
+ optional uint64 sessionid = 1 [(description) = "The sessionid of the created session."];
+}
+
+message CGameNotifications_DeleteSession_Request {
+ optional uint64 sessionid = 1 [(description) = "The sessionid to delete."];
+ optional uint32 appid = 2 [(description) = "The appid of the session to delete."];
+ optional fixed64 steamid = 3 [(description) = "(Optional) steamid to make the request on behalf of -- if specified, the user must be in the session."];
+}
+
+message CGameNotifications_DeleteSession_Response {
+}
+
+message CGameNotifications_UpdateSession_Request {
+ optional uint64 sessionid = 1 [(description) = "The sessionid to update."];
+ optional uint32 appid = 2 [(description) = "The appid of the session to update."];
+ optional .CGameNotifications_LocalizedText title = 3 [(description) = "(Optional) The new title of the session. If not specified, the title will not be changed."];
+ repeated .CGameNotifications_UserStatus users = 4 [(description) = "(Optional) A list of users whose state will be updated to reflect the given state. If the users are not already in the session, they will be added to it."];
+ optional fixed64 steamid = 6 [(description) = "(Optional) steamid to make the request on behalf of -- if specified, the user must be in the session and all users being added to the session must be friends with the user."];
+}
+
+message CGameNotifications_UpdateSession_Response {
+}
+
+message CGameNotifications_EnumerateSessions_Request {
+ optional uint32 appid = 1 [(description) = "The sessionid to request details for. Optional. If not specified, all the user's sessions will be returned."];
+ optional bool include_all_user_messages = 3 [(description) = "(Optional) Boolean determining whether the message for all users should be included. Defaults to false."];
+ optional bool include_auth_user_message = 4 [(description) = "(Optional) Boolean determining whether the message for the authenticated user should be included. Defaults to false."];
+ optional string language = 5 [(description) = "(Optional) Language to localize the text in."];
+}
+
+message CGameNotifications_Session {
+ optional uint64 sessionid = 1 [(description) = "The sessionid for this session."];
+ optional uint64 appid = 2 [(description) = "The appid for the session."];
+ optional uint64 context = 3 [(description) = "Game-specified context value the game can used to associate the session with some object on their backend."];
+ optional .CGameNotifications_LocalizedText title = 4 [(description) = "The current title for the session."];
+ optional uint32 time_created = 5 [(description) = "The time the session was created."];
+ optional uint32 time_updated = 6 [(description) = "The last time the session was updated."];
+ repeated .CGameNotifications_UserStatus user_status = 7 [(description) = "The status of all the users in the session."];
+}
+
+message CGameNotifications_EnumerateSessions_Response {
+ repeated .CGameNotifications_Session sessions = 1 [(description) = "A list of the user's sessions."];
+}
+
+message CGameNotifications_GetSessionDetails_Request {
+ message RequestedSession {
+ optional uint64 sessionid = 1 [(description) = "The sessionid to get details for."];
+ optional bool include_auth_user_message = 3 [(description) = "(Optional) Boolean determining whether the message for the authenticated user should be included. Defaults to false."];
+ }
+
+ repeated .CGameNotifications_GetSessionDetails_Request.RequestedSession sessions = 1;
+ optional uint32 appid = 2 [(description) = "The appid for the sessions."];
+ optional string language = 3 [(description) = "Language to localize the text in."];
+}
+
+message CGameNotifications_GetSessionDetails_Response {
+ repeated .CGameNotifications_Session sessions = 1 [(description) = "The details of the session."];
+}
+
+message GameNotificationSettings {
+ optional uint32 appid = 1 [(description) = "The appid to create the session for."];
+ optional bool allow_notifications = 2 [(description) = "Whether the user allows notification for this app."];
+}
+
+message CGameNotifications_UpdateNotificationSettings_Request {
+ repeated .GameNotificationSettings game_notification_settings = 1;
+}
+
+message CGameNotifications_UpdateNotificationSettings_Response {
+}
+
+message CGameNotifications_OnNotificationsRequested_Notification {
+ optional fixed64 steamid = 1 [(description) = "steamid of the user who notifications were requested for."];
+ optional uint32 appid = 2 [(description) = "The appid that requested notifications."];
+}
+
+message CGameNotifications_OnUserStatusChanged_Notification {
+ optional fixed64 steamid = 1 [(description) = "steamid of the user whose status changed."];
+ optional uint64 sessionid = 2 [(description) = "The sessionid of the session where the user's status was changed."];
+ optional uint32 appid = 3 [(description) = "The appid of the session where the user's status changed."];
+ optional .CGameNotifications_UserStatus status = 4 [(description) = "(Optional) New status of the user."];
+ optional bool removed = 5 [(description) = "(Optional) User has been removed from the session."];
+}
+
+service GameNotifications {
+ option (service_description) = "A service for functions related to the asyncronous game notification server.";
+
+ rpc UserCreateSession (.CGameNotifications_CreateSession_Request) returns (.CGameNotifications_CreateSession_Response) {
+ option (method_description) = "Creates an async game session";
+ }
+
+ rpc UserDeleteSession (.CGameNotifications_DeleteSession_Request) returns (.CGameNotifications_DeleteSession_Response) {
+ option (method_description) = "Deletes an async game session";
+ }
+
+ rpc UserUpdateSession (.CGameNotifications_UpdateSession_Request) returns (.CGameNotifications_UpdateSession_Response) {
+ option (method_description) = "Updates an async game session";
+ }
+
+ rpc EnumerateSessions (.CGameNotifications_EnumerateSessions_Request) returns (.CGameNotifications_EnumerateSessions_Response) {
+ option (method_description) = "Enumerates a user's sessions";
+ }
+
+ rpc GetSessionDetails (.CGameNotifications_GetSessionDetails_Request) returns (.CGameNotifications_GetSessionDetails_Response) {
+ option (method_description) = "Get the details for a specific session";
+ }
+
+ rpc UpdateNotificationSettings (.CGameNotifications_UpdateNotificationSettings_Request) returns (.CGameNotifications_UpdateNotificationSettings_Response) {
+ option (method_description) = "Updates whether a user allows game notifications for a specific app";
+ }
+}
+
+service GameNotificationsClient {
+ option (service_description) = "Client notifications";
+ option (service_execution_site) = k_EProtoExecutionSiteSteamClient;
+
+ rpc OnNotificationsRequested (.CGameNotifications_OnNotificationsRequested_Notification) returns (.NoResponse) {
+ option (method_description) = "Requests that the user opt into notifications";
+ }
+
+ rpc OnUserStatusChanged (.CGameNotifications_OnUserStatusChanged_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification that the user's status has changed";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_gameservers.steamclient.proto b/protobuf_files/orig/steam/steammessages_gameservers.steamclient.proto
new file mode 100644
index 00000000..e3103878
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_gameservers.steamclient.proto
@@ -0,0 +1,152 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+message CGameServers_GetServerList_Request {
+ optional string filter = 1 [(description) = "Query filter string."];
+ optional uint32 limit = 2 [default = 100, (description) = "The maximum number of servers to return in the response"];
+}
+
+message CGameServers_GetServerList_Response {
+ message Server {
+ optional string addr = 1 [(description) = "The server's IP and query port"];
+ optional uint32 gameport = 2;
+ optional uint32 specport = 3;
+ optional fixed64 steamid = 4;
+ optional string name = 5;
+ optional uint32 appid = 6;
+ optional string gamedir = 7;
+ optional string version = 8;
+ optional string product = 9;
+ optional int32 region = 10;
+ optional int32 players = 11;
+ optional int32 max_players = 12;
+ optional int32 bots = 13;
+ optional string map = 14;
+ optional bool secure = 15;
+ optional bool dedicated = 16;
+ optional string os = 17;
+ optional string gametype = 18;
+ }
+
+ repeated .CGameServers_GetServerList_Response.Server servers = 1 [(description) = "List of servers matching the filter"];
+}
+
+message CGameServers_GetServerSteamIDsByIP_Request {
+ repeated string server_ips = 1;
+}
+
+message CGameServers_IPsWithSteamIDs_Response {
+ message Server {
+ optional string addr = 1;
+ optional fixed64 steamid = 2;
+ }
+
+ repeated .CGameServers_IPsWithSteamIDs_Response.Server servers = 1;
+}
+
+message CGameServers_GetServerIPsBySteamID_Request {
+ repeated fixed64 server_steamids = 1;
+}
+
+message CGameServers_QueryByFakeIP_Request {
+ enum EQueryType {
+ Query_Invalid = 0;
+ Query_Ping = 1;
+ Query_Players = 2;
+ Query_Rules = 3;
+ }
+
+ optional uint32 fake_ip = 1 [(description) = "FakeIP of server to query."];
+ optional uint32 fake_port = 2 [(description) = "Fake port of server to query."];
+ optional uint32 app_id = 3 [(description) = "AppID to use. Each AppID has its own FakeIP address."];
+ optional .CGameServers_QueryByFakeIP_Request.EQueryType query_type = 4 [default = Query_Invalid, (description) = "What type of query?"];
+}
+
+message CMsgGameServerPingQueryData {
+ optional .CMsgIPAddress server_ip = 1;
+ optional uint32 query_port = 2;
+ optional uint32 game_port = 3;
+ optional uint32 spectator_port = 4;
+ optional string spectator_server_name = 5;
+ optional string server_name = 6;
+ optional fixed64 steamid = 7;
+ optional uint32 app_id = 8;
+ optional string gamedir = 9;
+ optional string map = 10;
+ optional string game_description = 11;
+ optional string gametype = 12;
+ optional uint32 num_players = 13;
+ optional uint32 max_players = 14;
+ optional uint32 num_bots = 15;
+ optional bool password = 16;
+ optional bool secure = 17;
+ optional bool dedicated = 18;
+ optional string version = 19;
+ optional fixed32 sdr_popid = 20;
+ optional string sdr_location_string = 21;
+}
+
+message CMsgGameServerPlayersQueryData {
+ message Player {
+ optional string name = 1;
+ optional uint32 score = 2;
+ optional uint32 time_played = 3;
+ }
+
+ repeated .CMsgGameServerPlayersQueryData.Player players = 1;
+}
+
+message CMsgGameServerRulesQueryData {
+ message Rule {
+ optional string rule = 1;
+ optional string value = 2;
+ }
+
+ repeated .CMsgGameServerRulesQueryData.Rule rules = 1;
+}
+
+message CGameServers_GameServerQuery_Response {
+ optional .CMsgGameServerPingQueryData ping_data = 1;
+ optional .CMsgGameServerPlayersQueryData players_data = 2;
+ optional .CMsgGameServerRulesQueryData rules_data = 3;
+}
+
+message GameServerClient_QueryServerData_Request {
+}
+
+message GameServerClient_QueryServerData_Response {
+ optional .CMsgGameServerPingQueryData ping_data = 1;
+ optional .CMsgGameServerPlayersQueryData players_data = 2;
+ optional .CMsgGameServerRulesQueryData rules_data = 3;
+}
+
+service GameServers {
+ option (service_description) = "A service for searching and managing game servers.";
+
+ rpc GetServerList (.CGameServers_GetServerList_Request) returns (.CGameServers_GetServerList_Response) {
+ option (method_description) = "Gets a list of servers given a filter string";
+ }
+
+ rpc GetServerSteamIDsByIP (.CGameServers_GetServerSteamIDsByIP_Request) returns (.CGameServers_IPsWithSteamIDs_Response) {
+ option (method_description) = "Gets a list of server SteamIDs given a list of IPs";
+ }
+
+ rpc GetServerIPsBySteamID (.CGameServers_GetServerIPsBySteamID_Request) returns (.CGameServers_IPsWithSteamIDs_Response) {
+ option (method_description) = "Gets a list of server IP addresses given a list of SteamIDs";
+ }
+
+ rpc QueryByFakeIP (.CGameServers_QueryByFakeIP_Request) returns (.CGameServers_GameServerQuery_Response) {
+ option (method_description) = "Perform a query on a specific server by FakeIP";
+ }
+}
+
+service GameServerClient {
+ option (service_description) = "Service methods exposed by GameServer Steam clients";
+ option (service_execution_site) = k_EProtoExecutionSiteSteamClient;
+
+ rpc QueryServerData (.GameServerClient_QueryServerData_Request) returns (.GameServerClient_QueryServerData_Response) {
+ option (method_description) = "Steam is asking a gameserver for its data";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_hiddevices.proto b/protobuf_files/orig/steam/steammessages_hiddevices.proto
new file mode 100644
index 00000000..e93b0efe
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_hiddevices.proto
@@ -0,0 +1,156 @@
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+enum EHIDDeviceLocation {
+ k_EDeviceLocationLocal = 0;
+ k_EDeviceLocationRemote = 2;
+ k_EDeviceLocationAny = 3;
+}
+
+enum EHIDDeviceDisconnectMethod {
+ k_EDeviceDisconnectMethodUnknown = 0;
+ k_EDeviceDisconnectMethodBluetooth = 1;
+ k_EDeviceDisconnectMethodFeatureReport = 2;
+ k_EDeviceDisconnectMethodOutputReport = 3;
+}
+
+message CHIDDeviceInfo {
+ optional .EHIDDeviceLocation location = 1 [default = k_EDeviceLocationLocal];
+ optional string path = 2;
+ optional uint32 vendor_id = 3;
+ optional uint32 product_id = 4;
+ optional string serial_number = 5;
+ optional uint32 release_number = 6;
+ optional string manufacturer_string = 7;
+ optional string product_string = 8;
+ optional uint32 usage_page = 9;
+ optional uint32 usage = 10;
+ optional int32 interface_number = 11 [default = -1];
+ optional int32 ostype = 12 [default = -1];
+ optional bool is_generic_gamepad = 13;
+ optional bool is_generic_joystick = 14;
+ optional uint32 caps_bits = 15;
+ optional uint32 session_id = 16;
+ optional uint32 eControllerType_OBSOLETE = 17 [default = 0];
+ optional bool is_xinput_device_OBSOLETE = 18 [default = false];
+ optional uint32 session_remote_play_together_appid = 19;
+}
+
+message CHIDDeviceInputReport {
+ optional bytes full_report = 1;
+ optional bytes delta_report = 2;
+ optional uint32 delta_report_size = 3;
+ optional uint32 delta_report_crc = 4;
+}
+
+message CHIDMessageToRemote {
+ message DeviceOpen {
+ optional .CHIDDeviceInfo info = 1;
+ }
+
+ message DeviceClose {
+ optional uint32 device = 1;
+ }
+
+ message DeviceWrite {
+ optional uint32 device = 1;
+ optional bytes data = 2;
+ }
+
+ message DeviceRead {
+ optional uint32 device = 1;
+ optional uint32 length = 2;
+ optional int32 timeout_ms = 3;
+ }
+
+ message DeviceSendFeatureReport {
+ optional uint32 device = 1;
+ optional bytes data = 2;
+ }
+
+ message DeviceGetFeatureReport {
+ optional uint32 device = 1;
+ optional bytes report_number = 2;
+ optional uint32 length = 3;
+ }
+
+ message DeviceGetVendorString {
+ optional uint32 device = 1;
+ }
+
+ message DeviceGetProductString {
+ optional uint32 device = 1;
+ }
+
+ message DeviceGetSerialNumberString {
+ optional uint32 device = 1;
+ }
+
+ message DeviceStartInputReports {
+ optional uint32 device = 1;
+ optional uint32 length = 2;
+ }
+
+ message DeviceRequestFullReport {
+ optional uint32 device = 1;
+ }
+
+ message DeviceDisconnect {
+ optional uint32 device = 1;
+ optional .EHIDDeviceDisconnectMethod disconnectMethod = 2 [default = k_EDeviceDisconnectMethodUnknown];
+ optional bytes data = 3;
+ }
+
+ optional uint32 request_id = 1;
+
+ oneof command {
+ .CHIDMessageToRemote.DeviceOpen device_open = 2;
+ .CHIDMessageToRemote.DeviceClose device_close = 3;
+ .CHIDMessageToRemote.DeviceWrite device_write = 4;
+ .CHIDMessageToRemote.DeviceRead device_read = 5;
+ .CHIDMessageToRemote.DeviceSendFeatureReport device_send_feature_report = 6;
+ .CHIDMessageToRemote.DeviceGetFeatureReport device_get_feature_report = 7;
+ .CHIDMessageToRemote.DeviceGetVendorString device_get_vendor_string = 8;
+ .CHIDMessageToRemote.DeviceGetProductString device_get_product_string = 9;
+ .CHIDMessageToRemote.DeviceGetSerialNumberString device_get_serial_number_string = 10;
+ .CHIDMessageToRemote.DeviceStartInputReports device_start_input_reports = 11;
+ .CHIDMessageToRemote.DeviceRequestFullReport device_request_full_report = 12;
+ .CHIDMessageToRemote.DeviceDisconnect device_disconnect = 13;
+ }
+}
+
+message CHIDMessageFromRemote {
+ message UpdateDeviceList {
+ repeated .CHIDDeviceInfo devices = 1;
+ }
+
+ message RequestResponse {
+ optional uint32 request_id = 1;
+ optional int32 result = 2;
+ optional bytes data = 3;
+ }
+
+ message DeviceInputReports {
+ message DeviceInputReport {
+ optional uint32 device = 1;
+ repeated .CHIDDeviceInputReport reports = 2;
+ }
+
+ repeated .CHIDMessageFromRemote.DeviceInputReports.DeviceInputReport device_reports = 1;
+ }
+
+ message CloseDevice {
+ optional uint32 device = 1;
+ }
+
+ message CloseAllDevices {
+ }
+
+ oneof command {
+ .CHIDMessageFromRemote.UpdateDeviceList update_device_list = 1;
+ .CHIDMessageFromRemote.RequestResponse response = 2;
+ .CHIDMessageFromRemote.DeviceInputReports reports = 3;
+ .CHIDMessageFromRemote.CloseDevice close_device = 4;
+ .CHIDMessageFromRemote.CloseAllDevices close_all_devices = 5;
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_inventory.steamclient.proto b/protobuf_files/orig/steam/steammessages_inventory.steamclient.proto
new file mode 100644
index 00000000..3118c958
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_inventory.steamclient.proto
@@ -0,0 +1,224 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+message CInventory_GetInventory_Request {
+ optional uint32 appid = 1;
+ optional uint64 steamid = 2;
+}
+
+message CInventory_Response {
+ optional string etag = 1;
+ repeated uint64 removeditemids = 2;
+ optional string item_json = 3;
+ optional string itemdef_json = 4;
+ optional bytes ticket = 5;
+ optional bool replayed = 6 [(description) = "If true, the requestid given was processed earlier."];
+}
+
+message CInventory_ExchangeItem_Request {
+ optional uint32 appid = 1;
+ optional uint64 steamid = 2;
+ repeated uint64 materialsitemid = 3;
+ repeated uint32 materialsquantity = 4;
+ optional uint64 outputitemdefid = 5;
+}
+
+message CInventory_GetEligiblePromoItemDefIDs_Request {
+ optional uint32 appid = 1;
+ optional uint64 steamid = 2;
+}
+
+message CInventory_GetEligiblePromoItemDefIDs_Response {
+ repeated uint64 itemdefids = 1;
+}
+
+message CInventory_AddItem_Request {
+ optional uint32 appid = 1;
+ repeated uint64 itemdefid = 2;
+ repeated string itempropsjson = 3;
+ optional uint64 steamid = 4;
+ optional bool notify = 5 [(description) = "Should notify the user that the item was added to their Steam Inventory."];
+ optional uint64 requestid = 6;
+ optional bool trade_restriction = 7 [(description) = "If true, apply the default trade and market restriction times to this item."];
+ optional bool is_purchase = 8 [default = false, (description) = "If set, treat requestid as a txnid and create this item as a result of user microtransaction purchase."];
+}
+
+message CInventory_ModifyItems_Request {
+ message ItemPropertyUpdate {
+ optional uint64 itemid = 1;
+ optional bool remove_property = 2;
+ optional string property_name = 3;
+ optional bool property_value_bool = 4;
+ optional int64 property_value_int = 5;
+ optional string property_value_string = 6;
+ optional float property_value_float = 7;
+ }
+
+ optional uint32 appid = 1;
+ optional uint64 steamid = 2;
+ repeated .CInventory_ModifyItems_Request.ItemPropertyUpdate updates = 3;
+ optional uint32 timestamp = 4;
+}
+
+message CInventory_ConsumePlaytime_Request {
+ optional uint32 appid = 1;
+ optional uint64 itemdefid = 2;
+}
+
+message CInventory_ConsumeItem_Request {
+ optional uint32 appid = 1;
+ optional uint64 itemid = 2;
+ optional uint32 quantity = 3;
+ optional string timestamp = 4;
+ optional uint64 steamid = 5;
+ optional uint64 requestid = 6;
+}
+
+message CInventory_DevSetNextDrop_Request {
+ optional uint32 appid = 1;
+ optional uint64 itemdefid = 2;
+ optional string droptime = 3;
+}
+
+message CInventory_SplitItemStack_Request {
+ optional uint32 appid = 1;
+ optional uint64 itemid = 2;
+ optional uint32 quantity = 3;
+ optional uint64 steamid = 5;
+}
+
+message CInventory_CombineItemStacks_Request {
+ optional uint32 appid = 1;
+ optional uint64 fromitemid = 2;
+ optional uint64 destitemid = 3;
+ optional uint32 quantity = 4;
+ optional fixed64 steamid = 7;
+}
+
+message CInventory_GetItemDefMeta_Request {
+ optional uint32 appid = 1;
+}
+
+message CInventory_GetItemDefMeta_Response {
+ optional uint32 modified = 1;
+ optional string digest = 2;
+}
+
+message CInventory_GetUserPurchaseInfo_Request {
+}
+
+message CInventory_GetUserPurchaseInfo_Response {
+ optional int32 ecurrency = 1;
+}
+
+message CInventory_PurchaseInit_Request {
+ message LineItem {
+ optional uint64 itemdefid = 1;
+ optional uint32 quantity = 2;
+ }
+
+ optional uint32 appid = 1;
+ optional int32 language = 2;
+ repeated .CInventory_PurchaseInit_Request.LineItem line_items = 3;
+}
+
+message CInventory_PurchaseInit_Response {
+ optional uint64 orderid = 1;
+ optional uint64 transid = 2;
+}
+
+message CInventory_PurchaseFinalize_Request {
+ optional uint32 appid = 1;
+ optional int32 language = 2;
+ optional uint64 orderid = 3;
+}
+
+message CInventory_InspectItem_Request {
+ optional uint64 itemdefid = 1;
+ optional fixed64 itemid = 2;
+ optional string tags = 3;
+}
+
+message CInventoryClient_NewItems_Notification {
+ optional uint32 appid = 1;
+ optional .CInventory_Response inventory_response = 2;
+}
+
+service Inventory {
+ option (service_description) = "A service that provides access to inventory";
+
+ rpc GetInventory (.CInventory_GetInventory_Request) returns (.CInventory_Response) {
+ option (method_description) = "Retrieves a users inventory as a big JSON blob";
+ }
+
+ rpc ExchangeItem (.CInventory_ExchangeItem_Request) returns (.CInventory_Response) {
+ option (method_description) = "Craft an item in a user's inventory";
+ }
+
+ rpc GetEligiblePromoItemDefIDs (.CInventory_GetEligiblePromoItemDefIDs_Request) returns (.CInventory_GetEligiblePromoItemDefIDs_Response) {
+ option (method_description) = "Returns a list of promo item defs the user is eligible for";
+ }
+
+ rpc AddPromoItem (.CInventory_AddItem_Request) returns (.CInventory_Response) {
+ option (method_description) = "Adds a promo item to a user's inventory";
+ }
+
+ rpc SafeModifyItems (.CInventory_ModifyItems_Request) returns (.CInventory_Response) {
+ option (method_description) = "Modify an item in a user's inventory (safe properties only)";
+ }
+
+ rpc ConsumePlaytime (.CInventory_ConsumePlaytime_Request) returns (.CInventory_Response) {
+ option (method_description) = "Consumes playtime and possibly returns a granted item";
+ }
+
+ rpc ConsumeItem (.CInventory_ConsumeItem_Request) returns (.CInventory_Response) {
+ option (method_description) = "Consume an item";
+ }
+
+ rpc DevGenerateItem (.CInventory_AddItem_Request) returns (.CInventory_Response) {
+ option (method_description) = "Grant an item when in developer mode";
+ }
+
+ rpc DevSetNextDrop (.CInventory_DevSetNextDrop_Request) returns (.CInventory_Response) {
+ option (method_description) = "Consume an item";
+ }
+
+ rpc SplitItemStack (.CInventory_SplitItemStack_Request) returns (.CInventory_Response) {
+ option (method_description) = "Split an item stack into two stacks";
+ }
+
+ rpc CombineItemStacks (.CInventory_CombineItemStacks_Request) returns (.CInventory_Response) {
+ option (method_description) = "Combine two stacks of items";
+ }
+
+ rpc GetItemDefMeta (.CInventory_GetItemDefMeta_Request) returns (.CInventory_GetItemDefMeta_Response) {
+ option (method_description) = "Get metadata about the current item definition for this game.";
+ }
+
+ rpc GetUserPurchaseInfo (.CInventory_GetUserPurchaseInfo_Request) returns (.CInventory_GetUserPurchaseInfo_Response) {
+ option (method_description) = "Returns information about the user such as their currency";
+ }
+
+ rpc PurchaseInit (.CInventory_PurchaseInit_Request) returns (.CInventory_PurchaseInit_Response) {
+ option (method_description) = "Initializes a purchase for the user";
+ }
+
+ rpc PurchaseFinalize (.CInventory_PurchaseFinalize_Request) returns (.CInventory_Response) {
+ option (method_description) = "Finalizes a purchase for the user";
+ }
+
+ rpc InspectItem (.CInventory_InspectItem_Request) returns (.CInventory_Response) {
+ option (method_description) = "Get item detail given a valid inspection token";
+ }
+}
+
+service InventoryClient {
+ option (service_description) = "Client notifications inventory service events";
+ option (service_execution_site) = k_EProtoExecutionSiteSteamClient;
+
+ rpc NotifyNewItems (.CInventoryClient_NewItems_Notification) returns (.NoResponse) {
+ option (method_description) = "Notify client that the user received new items";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_linkfilter.steamclient.proto b/protobuf_files/orig/steam/steammessages_linkfilter.steamclient.proto
new file mode 100644
index 00000000..b1a3a2e0
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_linkfilter.steamclient.proto
@@ -0,0 +1,49 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+message CCommunity_GetLinkFilterHashPrefixes_Request {
+ optional uint32 hit_type = 1 [(description) = "The retrieved hits will be filtered to this type."];
+ optional uint32 count = 2 [(description) = "The number of hits to retrieve in a single batch. Specify 0 for no limit."];
+ optional uint64 start = 3 [(description) = "The starting count when retrieving hits in batches."];
+}
+
+message CCommunity_GetLinkFilterHashPrefixes_Response {
+ repeated uint32 hash_prefixes = 1 [(description) = "The first 32 bits of the SHA1 hashes of each hit requested."];
+}
+
+message CCommunity_GetLinkFilterHashes_Request {
+ optional uint32 hit_type = 1 [(description) = "The retrieved hits will be filtered to this type."];
+ optional uint32 count = 2 [(description) = "The number of hits to retrieve in a single batch. Specify 0 for no limit."];
+ optional uint64 start = 3 [(description) = "The starting count when retrieving hits in batches."];
+}
+
+message CCommunity_GetLinkFilterHashes_Response {
+ repeated bytes hashes = 1 [(description) = "A list of hashes returned from our request."];
+}
+
+message CCommunity_GetLinkFilterListVersion_Request {
+ optional uint32 hit_type = 1 [(description) = "The version hashes for this type's chunks will be returned."];
+}
+
+message CCommunity_GetLinkFilterListVersion_Response {
+ optional string version = 1 [(description) = "A hash built using the IDs of the contained hits."];
+ optional uint64 count = 2 [(description) = "The number of hits of this type"];
+}
+
+service CommunityLinkFilter {
+ option (service_description) = "A service for recording data about Steam Community phishing link filtering";
+
+ rpc GetLinkFilterHashPrefixes (.CCommunity_GetLinkFilterHashPrefixes_Request) returns (.CCommunity_GetLinkFilterHashPrefixes_Response) {
+ option (method_description) = "Get a list of hash prefixes for the specified hit type, to use for client caching.";
+ }
+
+ rpc GetLinkFilterHashes (.CCommunity_GetLinkFilterHashes_Request) returns (.CCommunity_GetLinkFilterHashes_Response) {
+ option (method_description) = "Get a list of hashes for the specified hit type, to use for client caching.";
+ }
+
+ rpc GetLinkFilterListVersion (.CCommunity_GetLinkFilterListVersion_Request) returns (.CCommunity_GetLinkFilterListVersion_Response) {
+ option (method_description) = "Get a list of hashes describing the version of each chunk of the requested size.";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_lobbymatchmaking.steamclient.proto b/protobuf_files/orig/steam/steammessages_lobbymatchmaking.steamclient.proto
new file mode 100644
index 00000000..0ea18787
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_lobbymatchmaking.steamclient.proto
@@ -0,0 +1,33 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+enum ELobbyStatus {
+ k_ELobbyStatusInvalid = 0;
+ k_ELobbyStatusExists = 1;
+ k_ELobbyStatusDoesNotExist = 2;
+ k_ELobbyStatusNotAMember = 3;
+}
+
+message LobbyMatchmakingLegacy_GetLobbyStatus_Request {
+ optional uint32 app_id = 1;
+ optional fixed64 steamid_lobby = 2;
+ optional bool claim_ownership = 3;
+ optional bool claim_membership = 4;
+ optional uint32 version_num = 5;
+}
+
+message LobbyMatchmakingLegacy_GetLobbyStatus_Response {
+ optional uint32 app_id = 1;
+ optional fixed64 steamid_lobby = 2;
+ optional .ELobbyStatus lobby_status = 3 [default = k_ELobbyStatusInvalid];
+}
+
+service LobbyMatchmakingLegacy {
+ option (service_description) = "Lobby matchmaking legacy service";
+
+ rpc GetLobbyStatus (.LobbyMatchmakingLegacy_GetLobbyStatus_Request) returns (.LobbyMatchmakingLegacy_GetLobbyStatus_Response) {
+ option (method_description) = "GetLobbyStatus";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_market.steamclient.proto b/protobuf_files/orig/steam/steammessages_market.steamclient.proto
new file mode 100644
index 00000000..aad27d6a
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_market.steamclient.proto
@@ -0,0 +1,26 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+message CEconMarket_IsMarketplaceAllowed_Request {
+ optional string webcookie = 1 [(description) = "The user's Steam Guard machine auth cookie."];
+}
+
+message CEconMarket_IsMarketplaceAllowed_Response {
+ optional bool allowed = 1 [(description) = "Whether or not the user is allowed to use the market"];
+ optional uint32 reason = 2 [(description) = "The reason the user can't use the market, if applicable"];
+ optional uint32 allowed_at_time = 3 [(description) = "The time the user will be allowed to use the market"];
+ optional uint32 steamguard_required_days = 4 [(description) = "The number of days any user is required to have had Steam Guard before they can use the market"];
+ optional bool forms_requested = 7 [(description) = "Whether or not we've requested the user fill out tax forms"];
+ optional bool forms_require_verification = 8 [(description) = "True if we've received forms but they require verification first"];
+ optional uint32 new_device_cooldown_days = 9 [(description) = "The number of days after initial device authorization a user must wait before using the market on that device"];
+}
+
+service EconMarket {
+ option (service_description) = "A service to use market functions";
+
+ rpc IsMarketplaceAllowed (.CEconMarket_IsMarketplaceAllowed_Request) returns (.CEconMarket_IsMarketplaceAllowed_Response) {
+ option (method_description) = "Checks whether or not the authed account is allowed to use the market";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_marketingmessages.steamclient.proto b/protobuf_files/orig/steam/steammessages_marketingmessages.steamclient.proto
new file mode 100644
index 00000000..62076ca2
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_marketingmessages.steamclient.proto
@@ -0,0 +1,226 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+import "steammessages_storebrowse.steamclient.proto";
+
+option cc_generic_services = true;
+
+enum EMarketingMessageType {
+ k_EMarketingMessageInvalid = 0;
+ k_EMarketingMessageNowAvailable = 1;
+ k_EMarketingMessageWeekendDeal = 2;
+ k_EMarketingMessagePrePurchase = 3;
+ k_EMarketingMessagePlayNow = 4;
+ k_EMarketingMessagePreloadNow = 5;
+ k_EMarketingMessageGeneral = 6;
+ k_EMarketingMessageDemoQuit = 7;
+ k_EMarketingMessageGifting = 8;
+ k_EMarketingMessageEJsKorner = 9;
+}
+
+enum EMarketingMessageVisibility {
+ k_EMarketingMessageVisibleBeta = 1;
+ k_EMarketingMessageVisiblePublic = 2;
+}
+
+enum EMarketingMessageAssociationType {
+ k_EMarketingMessageNoAssociation = 0;
+ k_EMarketingMessageAppAssociation = 1;
+ k_EMarketingMessageSubscriptionAssociation = 2;
+ k_EMarketingMessagePublisherAssociation = 3;
+ k_EMarketingMessageGenreAssociation = 4;
+ k_EMarketingMessageBundleAssociation = 5;
+}
+
+enum EMarketingMessageLookupType {
+ k_EMarketingMessageLookupInvalid = 0;
+ k_EMarketingMessageLookupByGID = 1;
+ k_EMarketingMessageLookupActive = 2;
+ k_EMarketingMessageLookupByTitleWithType = 3;
+ k_EMarketingMessageLookupByGIDList = 4;
+}
+
+message CMarketingMessages_GetActiveMarketingMessages_Request {
+ optional string country = 1;
+}
+
+message CMarketingMessageProto {
+ optional fixed64 gid = 1;
+ optional string title = 2;
+ optional .EMarketingMessageType type = 3 [default = k_EMarketingMessageInvalid];
+ optional .EMarketingMessageVisibility visibility = 4 [default = k_EMarketingMessageVisibleBeta];
+ optional uint32 priority = 5;
+ optional .EMarketingMessageAssociationType association_type = 6 [default = k_EMarketingMessageNoAssociation];
+ optional uint32 associated_id = 7;
+ optional string associated_name = 8;
+ optional uint32 start_date = 9;
+ optional uint32 end_date = 10;
+ optional string country_allow = 11;
+ optional string country_deny = 12;
+ optional bool ownership_restrictions_overridden = 13;
+ optional uint32 must_own_appid = 14;
+ optional uint32 must_not_own_appid = 15;
+ optional uint32 must_own_packageid = 16;
+ optional uint32 must_not_own_packageid = 17;
+ optional uint32 must_have_launched_appid = 18;
+ optional string additional_restrictions = 19;
+ optional string template_type = 20;
+ optional string template_vars = 21;
+ optional uint32 flags = 22;
+ optional string creator_name = 23;
+ optional string template_vars_json = 24;
+ optional string additional_restrictions_json = 25;
+}
+
+message CMarketingMessages_GetActiveMarketingMessages_Response {
+ repeated .CMarketingMessageProto messages = 1;
+ optional uint32 time_next_message_age = 2;
+}
+
+message CMarketingMessages_GetMarketingMessagesForUser_Request {
+ optional bool include_seen_messages = 1;
+ optional string country_code = 2;
+ optional int32 elanguage = 3;
+ optional int32 operating_system = 4 [(description) = "EOSType from client"];
+ optional int32 client_package_version = 5;
+ optional .StoreBrowseContext context = 6 [(description) = "Optional, server can fill in from country code/language if not set"];
+ optional .StoreBrowseItemDataRequest data_request = 7 [(description) = "If passed, item data will be returned"];
+}
+
+message CDisplayMarketingMessage {
+ optional fixed64 gid = 1;
+ optional string title = 2;
+ optional .EMarketingMessageType type = 3 [default = k_EMarketingMessageInvalid];
+ optional .StoreItemID associated_item_id = 4;
+ optional .StoreItem associated_item = 5;
+ optional string associated_name = 6;
+ optional string template_type = 10;
+ optional string template_vars_json = 11;
+}
+
+message CMarketingMessages_GetMarketingMessagesForUser_Response {
+ message MarketingMessageForUser {
+ optional bool already_seen = 1;
+ optional .CDisplayMarketingMessage message = 2;
+ }
+
+ repeated .CMarketingMessages_GetMarketingMessagesForUser_Response.MarketingMessageForUser messages = 1;
+}
+
+message CMarketingMessages_DoesUserHavePendingMarketingMessages_Request {
+ optional string country_code = 2;
+ optional int32 elanguage = 3;
+ optional int32 operating_system = 4 [(description) = "EOSType from client"];
+ optional int32 client_package_version = 5;
+}
+
+message CMarketingMessages_DoesUserHavePendingMarketingMessages_Response {
+ optional bool has_pending_messages = 1;
+ optional int32 pending_message_count = 2;
+}
+
+message CMarketingMessages_GetDisplayMarketingMessage_Request {
+ optional fixed64 gid = 1;
+ optional .StoreBrowseContext context = 2;
+ optional .StoreBrowseItemDataRequest data_request = 3 [(description) = "If passed, item data will be returned"];
+}
+
+message CMarketingMessages_GetDisplayMarketingMessage_Response {
+ optional .CDisplayMarketingMessage message = 1;
+}
+
+message CMarketingMessages_MarkMessageSeen_Notification {
+ optional fixed64 gid = 1;
+}
+
+message CMarketingMessages_GetMarketingMessage_Request {
+ optional fixed64 gid = 1;
+}
+
+message CMarketingMessages_GetMarketingMessage_Response {
+ optional .CMarketingMessageProto message = 1;
+}
+
+message CMarketingMessages_CreateMarketingMessage_Request {
+ optional .CMarketingMessageProto message = 1;
+ optional bool from_json = 2 [(description) = "If set, then overwrite the template_vars and additional_restrictions keyvalues from json"];
+}
+
+message CMarketingMessages_CreateMarketingMessage_Response {
+ optional fixed64 gid = 1;
+}
+
+message CMarketingMessages_UpdateMarketingMessage_Request {
+ optional fixed64 gid = 1;
+ optional .CMarketingMessageProto message = 2;
+ optional bool from_json = 3 [(description) = "If set, then overwrite the template_vars and additional_restrictions keyvalues from json"];
+}
+
+message CMarketingMessages_UpdateMarketingMessage_Response {
+}
+
+message CMarketingMessages_DeleteMarketingMessage_Request {
+ optional fixed64 gid = 1;
+}
+
+message CMarketingMessages_DeleteMarketingMessage_Response {
+}
+
+message CMarketingMessages_FindMarketingMessages_Request {
+ optional .EMarketingMessageLookupType lookup_type = 1 [default = k_EMarketingMessageLookupInvalid];
+ optional fixed64 gid = 2;
+ optional .EMarketingMessageType message_type = 3 [default = k_EMarketingMessageInvalid];
+ repeated fixed64 gidlist = 4;
+ optional string title = 5;
+}
+
+message CMarketingMessages_FindMarketingMessages_Response {
+ repeated .CMarketingMessageProto messages = 1;
+}
+
+service MarketingMessages {
+ option (service_description) = "Marketing message data (\"Steam News\" updates at client startup).";
+
+ rpc GetActiveMarketingMessages (.CMarketingMessages_GetActiveMarketingMessages_Request) returns (.CMarketingMessages_GetActiveMarketingMessages_Response) {
+ option (method_description) = "Get a list of active marketing messages.";
+ }
+
+ rpc GetMarketingMessagesForUser (.CMarketingMessages_GetMarketingMessagesForUser_Request) returns (.CMarketingMessages_GetMarketingMessagesForUser_Response) {
+ option (method_description) = "Get a list of active marketing messages filtered for a specific user.";
+ }
+
+ rpc DoesUserHavePendingMarketingMessages (.CMarketingMessages_DoesUserHavePendingMarketingMessages_Request) returns (.CMarketingMessages_DoesUserHavePendingMarketingMessages_Response) {
+ option (method_description) = "Returns a boolean if the user has pending marketing messages. Intended to be fast.";
+ }
+
+ rpc GetDisplayMarketingMessage (.CMarketingMessages_GetDisplayMarketingMessage_Request) returns (.CMarketingMessages_GetDisplayMarketingMessage_Response) {
+ option (method_description) = "Get a single marketing message, cacheable.";
+ }
+
+ rpc GetDisplayMarketingMessageAdmin (.CMarketingMessages_GetDisplayMarketingMessage_Request) returns (.CMarketingMessages_GetDisplayMarketingMessage_Response) {
+ option (method_description) = "Get a single marketing message, cacheable.";
+ }
+
+ rpc MarkMessageSeen (.CMarketingMessages_MarkMessageSeen_Notification) returns (.NoResponse) {
+ option (method_description) = "Mark that a user has viewed a message (so we won't show it again)'.";
+ }
+
+ rpc GetMarketingMessage (.CMarketingMessages_GetMarketingMessage_Request) returns (.CMarketingMessages_GetMarketingMessage_Response) {
+ option (method_description) = "Get a single marketing message. Admin account needed for non-active messages";
+ }
+
+ rpc CreateMarketingMessage (.CMarketingMessages_CreateMarketingMessage_Request) returns (.CMarketingMessages_CreateMarketingMessage_Response) {
+ option (method_description) = "Create a new marketing message.";
+ }
+
+ rpc UpdateMarketingMessage (.CMarketingMessages_UpdateMarketingMessage_Request) returns (.CMarketingMessages_UpdateMarketingMessage_Response) {
+ option (method_description) = "Modify a marketing message.";
+ }
+
+ rpc DeleteMarketingMessage (.CMarketingMessages_DeleteMarketingMessage_Request) returns (.CMarketingMessages_DeleteMarketingMessage_Response) {
+ option (method_description) = "Delete a marketing message.";
+ }
+
+ rpc FindMarketingMessages (.CMarketingMessages_FindMarketingMessages_Request) returns (.CMarketingMessages_FindMarketingMessages_Response) {
+ option (method_description) = "Search for marketing messages by name, type, etc.";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_offline.steamclient.proto b/protobuf_files/orig/steam/steammessages_offline.steamclient.proto
new file mode 100644
index 00000000..25f523de
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_offline.steamclient.proto
@@ -0,0 +1,40 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+import "offline_ticket.proto";
+
+option cc_generic_services = true;
+
+message COffline_GetOfflineLogonTicket_Request {
+ optional uint32 priority = 1;
+ optional bool perform_encryption = 2;
+}
+
+message COffline_GetOfflineLogonTicket_Response {
+ optional bytes serialized_ticket = 1;
+ optional bytes signature = 2;
+ optional .Offline_Ticket encrypted_ticket = 3;
+}
+
+message COffline_GetUnsignedOfflineLogonTicket_Request {
+}
+
+message COffline_OfflineLogonTicket {
+ optional uint32 accountid = 1;
+ optional fixed32 rtime32_creation_time = 2;
+}
+
+message COffline_GetUnsignedOfflineLogonTicket_Response {
+ optional .COffline_OfflineLogonTicket ticket = 1;
+}
+
+service Offline {
+ option (service_description) = "Offline settings service";
+
+ rpc GetOfflineLogonTicket (.COffline_GetOfflineLogonTicket_Request) returns (.COffline_GetOfflineLogonTicket_Response) {
+ option (method_description) = "Get a serialized and signed offline logon ticket for the current user";
+ }
+
+ rpc GetUnsignedOfflineLogonTicket (.COffline_GetUnsignedOfflineLogonTicket_Request) returns (.COffline_GetUnsignedOfflineLogonTicket_Response) {
+ option (method_description) = "Get an unsigned offline logon ticket for the current user";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_parental.steamclient.proto b/protobuf_files/orig/steam/steammessages_parental.steamclient.proto
new file mode 100644
index 00000000..f6fb94c6
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_parental.steamclient.proto
@@ -0,0 +1,186 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+message ParentalApp {
+ optional uint32 appid = 1;
+ optional bool is_allowed = 2;
+}
+
+message ParentalSettings {
+ optional fixed64 steamid = 1;
+ optional uint32 applist_base_id = 2;
+ optional string applist_base_description = 3;
+ repeated .ParentalApp applist_base = 4;
+ repeated .ParentalApp applist_custom = 5;
+ optional uint32 passwordhashtype = 6;
+ optional bytes salt = 7;
+ optional bytes passwordhash = 8;
+ optional bool is_enabled = 9;
+ optional uint32 enabled_features = 10;
+ optional string recovery_email = 11;
+ optional bool is_site_license_lock = 12;
+}
+
+message CParental_EnableParentalSettings_Request {
+ optional string password = 1;
+ optional .ParentalSettings settings = 2;
+ optional string sessionid = 3;
+ optional uint32 enablecode = 4;
+ optional fixed64 steamid = 10;
+}
+
+message CParental_EnableParentalSettings_Response {
+}
+
+message CParental_DisableParentalSettings_Request {
+ optional string password = 1;
+ optional fixed64 steamid = 10;
+}
+
+message CParental_DisableParentalSettings_Response {
+}
+
+message CParental_GetParentalSettings_Request {
+ optional fixed64 steamid = 10;
+}
+
+message CParental_GetParentalSettings_Response {
+ optional .ParentalSettings settings = 1;
+}
+
+message CParental_GetSignedParentalSettings_Request {
+ optional uint32 priority = 1;
+}
+
+message CParental_GetSignedParentalSettings_Response {
+ optional bytes serialized_settings = 1;
+ optional bytes signature = 2;
+}
+
+message CParental_SetParentalSettings_Request {
+ optional string password = 1;
+ optional .ParentalSettings settings = 2;
+ optional string new_password = 3;
+ optional string sessionid = 4;
+ optional fixed64 steamid = 10;
+}
+
+message CParental_SetParentalSettings_Response {
+}
+
+message CParental_ValidateToken_Request {
+ optional string unlock_token = 1;
+}
+
+message CParental_ValidateToken_Response {
+}
+
+message CParental_ValidatePassword_Request {
+ optional string password = 1;
+ optional string session = 2;
+ optional bool send_unlock_on_success = 3;
+}
+
+message CParental_ValidatePassword_Response {
+ optional string token = 1;
+}
+
+message CParental_LockClient_Request {
+ optional string session = 1;
+}
+
+message CParental_LockClient_Response {
+}
+
+message CParental_RequestRecoveryCode_Request {
+}
+
+message CParental_RequestRecoveryCode_Response {
+}
+
+message CParental_DisableWithRecoveryCode_Request {
+ optional uint32 recovery_code = 1;
+ optional fixed64 steamid = 10;
+}
+
+message CParental_DisableWithRecoveryCode_Response {
+}
+
+message CParental_ParentalSettingsChange_Notification {
+ optional bytes serialized_settings = 1;
+ optional bytes signature = 2;
+ optional string password = 3;
+ optional string sessionid = 4;
+}
+
+message CParental_ParentalUnlock_Notification {
+ optional string password = 1;
+ optional string sessionid = 2;
+}
+
+message CParental_ParentalLock_Notification {
+ optional string sessionid = 1;
+}
+
+service Parental {
+ option (service_description) = "Parental settings service";
+
+ rpc EnableParentalSettings (.CParental_EnableParentalSettings_Request) returns (.CParental_EnableParentalSettings_Response) {
+ option (method_description) = "Enable parental settings for the logged in account, optionally setting the current settings";
+ }
+
+ rpc DisableParentalSettings (.CParental_DisableParentalSettings_Request) returns (.CParental_DisableParentalSettings_Response) {
+ option (method_description) = "Disable parental settings for the logged in account";
+ }
+
+ rpc GetParentalSettings (.CParental_GetParentalSettings_Request) returns (.CParental_GetParentalSettings_Response) {
+ option (method_description) = "Get the current parental settings for the logged in account";
+ }
+
+ rpc GetSignedParentalSettings (.CParental_GetSignedParentalSettings_Request) returns (.CParental_GetSignedParentalSettings_Response) {
+ option (method_description) = "Get the current parental settings for the logged in account in a form that can by verified by the receiver";
+ }
+
+ rpc SetParentalSettings (.CParental_SetParentalSettings_Request) returns (.CParental_SetParentalSettings_Response) {
+ option (method_description) = "Set the current parental settings for the logged in account";
+ }
+
+ rpc ValidateToken (.CParental_ValidateToken_Request) returns (.CParental_ValidateToken_Response) {
+ option (method_description) = "Check if the given parental unlock token is correct for the logged in account";
+ }
+
+ rpc ValidatePassword (.CParental_ValidatePassword_Request) returns (.CParental_ValidatePassword_Response) {
+ option (method_description) = "Validate the plaintext password for the logged in account and return an unlock token";
+ }
+
+ rpc LockClient (.CParental_LockClient_Request) returns (.CParental_LockClient_Response) {
+ option (method_description) = "Notify connected clients that a lock has occurred in a browser";
+ }
+
+ rpc RequestRecoveryCode (.CParental_RequestRecoveryCode_Request) returns (.CParental_RequestRecoveryCode_Response) {
+ option (method_description) = "Request a recovery code be sent to the recovery email address for the specified account";
+ }
+
+ rpc DisableWithRecoveryCode (.CParental_DisableWithRecoveryCode_Request) returns (.CParental_DisableWithRecoveryCode_Response) {
+ option (method_description) = "Attempt a recovery unlock on the specified account";
+ }
+}
+
+service ParentalClient {
+ option (service_description) = "Parental settings client notifications";
+ option (service_execution_site) = k_EProtoExecutionSiteSteamClient;
+
+ rpc NotifySettingsChange (.CParental_ParentalSettingsChange_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from server to client of a change in parental settings";
+ }
+
+ rpc NotifyUnlock (.CParental_ParentalUnlock_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from server to client that an unlock has occurred in a browser";
+ }
+
+ rpc NotifyLock (.CParental_ParentalLock_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from server to client that a lock has occurred in a browser";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_parties.steamclient.proto b/protobuf_files/orig/steam/steammessages_parties.steamclient.proto
new file mode 100644
index 00000000..5f519092
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_parties.steamclient.proto
@@ -0,0 +1,94 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+message CParties_JoinParty_Request {
+ optional fixed64 steamid = 1;
+ optional uint64 beacon_id = 2;
+}
+
+message CParties_JoinParty_Response {
+ optional uint64 beacon_id = 1;
+ optional string connect_string = 2;
+}
+
+message CParties_BeaconLocation {
+ optional uint32 location_type = 1;
+ optional uint64 location_id = 2;
+}
+
+message CParties_CreateBeacon_Request {
+ optional uint32 appid = 1;
+ optional uint32 num_open_slots = 2;
+ repeated .CParties_BeaconLocation locations = 3;
+ optional string connect_string = 4;
+ optional string metadata = 5;
+}
+
+message CParties_CreateBeacon_Response {
+ optional uint64 beacon_id = 1;
+}
+
+message CParties_OnReservationCompleted_Request {
+ optional uint64 beacon_id = 1;
+ optional fixed64 user_steamid = 2;
+}
+
+message CParties_OnReservationCompleted_Response {
+ optional uint64 beacon_id = 1;
+}
+
+message CParties_CancelReservation_Request {
+ optional uint64 beacon_id = 1;
+ optional fixed64 user_steamid = 2;
+}
+
+message CParties_CancelReservation_Response {
+ optional uint64 beacon_id = 1;
+}
+
+message CParties_ChangeNumOpenSlots_Request {
+ optional uint64 beacon_id = 1;
+ optional uint32 num_open_slots = 2;
+}
+
+message CParties_ChangeNumOpenSlots_Response {
+ optional uint64 beacon_id = 1;
+}
+
+message CParties_DestroyBeacon_Request {
+ optional uint64 beacon_id = 1;
+}
+
+message CParties_DestroyBeacon_Response {
+ optional uint64 beacon_id = 1;
+}
+
+service Parties {
+ option (service_description) = "Party-related services";
+
+ rpc JoinParty (.CParties_JoinParty_Request) returns (.CParties_JoinParty_Response) {
+ option (method_description) = "Request to join a Party via the given Beacon ID. If successful, will be given the necessary 'connect' string.";
+ }
+
+ rpc CreateBeacon (.CParties_CreateBeacon_Request) returns (.CParties_CreateBeacon_Response) {
+ option (method_description) = "Create a Beacon to attract people to your Party.";
+ }
+
+ rpc OnReservationCompleted (.CParties_OnReservationCompleted_Request) returns (.CParties_OnReservationCompleted_Response) {
+ option (method_description) = "Notify Steam that a user with a reservation has successfully joined.";
+ }
+
+ rpc CancelReservation (.CParties_CancelReservation_Request) returns (.CParties_CancelReservation_Response) {
+ option (method_description) = "Notify Steam that a user with a reservation either never showed up, or has left the party.";
+ }
+
+ rpc ChangeNumOpenSlots (.CParties_ChangeNumOpenSlots_Request) returns (.CParties_ChangeNumOpenSlots_Response) {
+ option (method_description) = "Change the number of open slots";
+ }
+
+ rpc DestroyBeacon (.CParties_DestroyBeacon_Request) returns (.CParties_DestroyBeacon_Response) {
+ option (method_description) = "Delete the Beacon.";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_partnerapps.steamclient.proto b/protobuf_files/orig/steam/steammessages_partnerapps.steamclient.proto
new file mode 100644
index 00000000..18723786
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_partnerapps.steamclient.proto
@@ -0,0 +1,137 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+message CPartnerApps_RequestUploadToken_Request {
+ optional string filename = 1;
+ optional uint32 appid = 2;
+}
+
+message CPartnerApps_RequestUploadToken_Response {
+ optional uint64 upload_token = 1;
+ optional string location = 2;
+ optional uint64 routing_id = 3;
+}
+
+message CPartnerApps_FinishUpload_Request {
+ optional uint64 upload_token = 1;
+ optional uint64 routing_id = 2;
+ optional uint32 app_id = 3;
+}
+
+message CPartnerApps_FinishUploadKVSign_Response {
+ optional string signed_installscript = 1;
+}
+
+message CPartnerApps_FinishUploadLegacyDRM_Request {
+ optional uint64 upload_token = 1;
+ optional uint64 routing_id = 2;
+ optional uint32 app_id = 3;
+ optional uint32 flags = 4;
+ optional string tool_name = 5;
+}
+
+message CPartnerApps_FinishUploadLegacyDRM_Response {
+ optional string file_id = 1;
+}
+
+message CPartnerApps_FinishUpload_Response {
+}
+
+message CPartnerApps_FinishUploadDepot_Request {
+ optional uint64 upload_token = 1;
+ optional uint64 routing_id = 2;
+ optional uint32 app_id = 3;
+ optional uint32 depot_id = 4;
+ optional uint32 build_flags = 5;
+}
+
+message CPartnerApps_FinishUploadDepot_Response {
+ optional uint64 build_routing_id = 1;
+}
+
+message CPartnerApps_GetDepotBuildResult_Request {
+ optional uint64 upload_token = 1;
+ optional uint64 routing_id = 2;
+}
+
+message CPartnerApps_GetDepotBuildResult_Response {
+ optional uint64 manifest_id = 1;
+ optional string error_msg = 2;
+}
+
+message CPartnerApps_FindDRMUploads_Request {
+ optional int32 app_id = 1;
+}
+
+message CPartnerApps_ExistingDRMUpload {
+ optional string file_id = 1;
+ optional uint32 app_id = 2;
+ optional int32 actor_id = 3;
+ optional string supplied_name = 5;
+ optional uint32 flags = 6;
+ optional string mod_type = 7;
+ optional fixed32 timestamp = 8;
+ optional string orig_file_id = 9;
+}
+
+message CPartnerApps_FindDRMUploads_Response {
+ repeated .CPartnerApps_ExistingDRMUpload uploads = 1;
+}
+
+message CPartnerApps_Download_Request {
+ optional string file_id = 1;
+ optional int32 app_id = 2;
+}
+
+message CPartnerApps_Download_Response {
+ optional string download_url = 1;
+ optional int32 app_id = 2;
+}
+
+service PartnerApps {
+ option (service_description) = "Service methods for app management by partners";
+
+ rpc RequestKVSignUploadToken (.CPartnerApps_RequestUploadToken_Request) returns (.CPartnerApps_RequestUploadToken_Response) {
+ option (method_description) = "Request upload token for installscript file upload / signing";
+ }
+
+ rpc RequestDRMUploadToken (.CPartnerApps_RequestUploadToken_Request) returns (.CPartnerApps_RequestUploadToken_Response) {
+ option (method_description) = "Request upload token for executable file upload / processing";
+ }
+
+ rpc RequestCEGUploadToken (.CPartnerApps_RequestUploadToken_Request) returns (.CPartnerApps_RequestUploadToken_Response) {
+ option (method_description) = "Request upload token for custom executable file upload / processing";
+ }
+
+ rpc RequestDepotUploadToken (.CPartnerApps_RequestUploadToken_Request) returns (.CPartnerApps_RequestUploadToken_Response) {
+ option (method_description) = "Request upload token for steampipe depot upload";
+ }
+
+ rpc FinishUploadKVSign (.CPartnerApps_FinishUpload_Request) returns (.CPartnerApps_FinishUploadKVSign_Response) {
+ option (method_description) = "Commit method to sign an installscript after an upload is complete";
+ }
+
+ rpc FinishUploadDRMUpload (.CPartnerApps_FinishUploadLegacyDRM_Request) returns (.CPartnerApps_FinishUploadLegacyDRM_Response) {
+ option (method_description) = "Commit method for executable file processing";
+ }
+
+ rpc FinishUploadCEGUpload (.CPartnerApps_FinishUpload_Request) returns (.CPartnerApps_FinishUpload_Response) {
+ option (method_description) = "Commit method for custom executable file processing";
+ }
+
+ rpc FinishUploadDepotUpload (.CPartnerApps_FinishUploadDepot_Request) returns (.CPartnerApps_FinishUploadDepot_Response) {
+ option (method_description) = "Commit method for custom executable file processing";
+ }
+
+ rpc GetDepotBuildResult (.CPartnerApps_GetDepotBuildResult_Request) returns (.CPartnerApps_GetDepotBuildResult_Response) {
+ option (method_description) = "Get build status for previously uploaded depot ZIP";
+ }
+
+ rpc FindDRMUploads (.CPartnerApps_FindDRMUploads_Request) returns (.CPartnerApps_FindDRMUploads_Response) {
+ option (method_description) = "Finds N most recent prior uploads by appid";
+ }
+
+ rpc Download (.CPartnerApps_Download_Request) returns (.CPartnerApps_Download_Response);
+}
diff --git a/protobuf_files/orig/steam/steammessages_player.steamclient.proto b/protobuf_files/orig/steam/steammessages_player.steamclient.proto
new file mode 100644
index 00000000..f8744510
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_player.steamclient.proto
@@ -0,0 +1,1001 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+import "enums.proto";
+
+option cc_generic_services = true;
+
+enum EProfileCustomizationStyle {
+ k_EProfileCustomizationStyleDefault = 0;
+ k_EProfileCustomizationStyleSelected = 1;
+ k_EProfileCustomizationStyleRarest = 2;
+ k_EProfileCustomizationStyleMostRecent = 3;
+ k_EProfileCustomizationStyleRandom = 4;
+ k_EProfileCustomizationStyleHighestRated = 5;
+}
+
+enum EAgreementType {
+ k_EAgreementType_Invalid = -1;
+ k_EAgreementType_GlobalSSA = 0;
+ k_EAgreementType_ChinaSSA = 1;
+}
+
+enum ENotificationSetting {
+ k_ENotificationSettingNotifyUseDefault = 0;
+ k_ENotificationSettingAlways = 1;
+ k_ENotificationSettingNever = 2;
+}
+
+enum ETextFilterSetting {
+ k_ETextFilterSettingSteamLabOptedOut = 0;
+ k_ETextFilterSettingEnabled = 1;
+ k_ETextFilterSettingEnabledAllowProfanity = 2;
+ k_ETextFilterSettingDisabled = 3;
+}
+
+message CPlayer_GetMutualFriendsForIncomingInvites_Request {
+}
+
+message CPlayer_IncomingInviteMutualFriendList {
+ optional fixed64 steamid = 1;
+ repeated uint32 mutual_friend_account_ids = 2;
+}
+
+message CPlayer_GetMutualFriendsForIncomingInvites_Response {
+ repeated .CPlayer_IncomingInviteMutualFriendList incoming_invite_mutual_friends_lists = 1;
+}
+
+message CPlayer_GetOwnedGames_Request {
+ optional uint64 steamid = 1 [(description) = "The player we're asking about"];
+ optional bool include_appinfo = 2 [(description) = "true if we want additional details (name, icon) about each game"];
+ optional bool include_played_free_games = 3 [(description) = "Free games are excluded by default. If this is set, free games the user has played will be returned."];
+ repeated uint32 appids_filter = 4 [(description) = "if set, restricts result set to the passed in apps"];
+ optional bool include_free_sub = 5 [(description) = "Some games are in the free sub, which are excluded by default."];
+ optional bool skip_unvetted_apps = 6 [default = true, (description) = "if set, skip unvetted store apps"];
+ optional string language = 7 [(description) = "Will return appinfo in this language"];
+ optional bool include_extended_appinfo = 8 [(description) = "true if we want even more details (capsule, sortas, and capabilities) about each game. include_appinfo must also be true."];
+}
+
+message CPlayer_GetOwnedGames_Response {
+ message Game {
+ optional int32 appid = 1;
+ optional string name = 2;
+ optional int32 playtime_2weeks = 3;
+ optional int32 playtime_forever = 4;
+ optional string img_icon_url = 5;
+ optional bool has_community_visible_stats = 7;
+ optional int32 playtime_windows_forever = 8;
+ optional int32 playtime_mac_forever = 9;
+ optional int32 playtime_linux_forever = 10;
+ optional uint32 rtime_last_played = 11;
+ optional string capsule_filename = 12;
+ optional string sort_as = 13;
+ optional bool has_workshop = 14;
+ optional bool has_market = 15;
+ optional bool has_dlc = 16;
+ optional bool has_leaderboards = 17;
+ repeated uint32 content_descriptorids = 18;
+ }
+
+ optional uint32 game_count = 1;
+ repeated .CPlayer_GetOwnedGames_Response.Game games = 2;
+}
+
+message CPlayer_GetPlayNext_Request {
+ optional uint32 max_age_seconds = 1;
+ repeated uint32 ignore_appids = 2;
+}
+
+message CPlayer_GetPlayNext_Response {
+ optional uint32 last_update_time = 1;
+ repeated uint32 appids = 2;
+}
+
+message CPlayer_GetFriendsGameplayInfo_Request {
+ optional uint32 appid = 1;
+}
+
+message CPlayer_GetFriendsGameplayInfo_Response {
+ message FriendsGameplayInfo {
+ optional fixed64 steamid = 1;
+ optional uint32 minutes_played = 2;
+ optional uint32 minutes_played_forever = 3;
+ }
+
+ message OwnGameplayInfo {
+ optional fixed64 steamid = 1;
+ optional uint32 minutes_played = 2;
+ optional uint32 minutes_played_forever = 3;
+ optional bool in_wishlist = 4;
+ optional bool owned = 5;
+ }
+
+ optional .CPlayer_GetFriendsGameplayInfo_Response.OwnGameplayInfo your_info = 1;
+ repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo in_game = 2;
+ repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo played_recently = 3;
+ repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo played_ever = 4;
+ repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo owns = 5;
+ repeated .CPlayer_GetFriendsGameplayInfo_Response.FriendsGameplayInfo in_wishlist = 6;
+}
+
+message CPlayer_GetGameBadgeLevels_Request {
+ optional uint32 appid = 1;
+}
+
+message CPlayer_GetGameBadgeLevels_Response {
+ message Badge {
+ optional int32 level = 1;
+ optional int32 series = 2;
+ optional uint32 border_color = 3;
+ }
+
+ optional uint32 player_level = 1;
+ repeated .CPlayer_GetGameBadgeLevels_Response.Badge badges = 2;
+}
+
+message CPlayer_GetProfileBackground_Request {
+ optional fixed64 steamid = 1 [(description) = "The player we're asking about"];
+ optional string language = 2;
+}
+
+message ProfileItem {
+ message ProfileColor {
+ optional string style_name = 1 [(description) = "EProfileColorStyle string version"];
+ optional string color = 2 [(description) = "hex color to apply"];
+ }
+
+ optional uint64 communityitemid = 1;
+ optional string image_small = 2 [(description) = "small image used in backpack or selection"];
+ optional string image_large = 3 [(description) = "the image itself"];
+ optional string name = 4 [(description) = "english name"];
+ optional string item_title = 5 [(description) = "localized title"];
+ optional string item_description = 6 [(description) = "localized description"];
+ optional uint32 appid = 7;
+ optional uint32 item_type = 8;
+ optional uint32 item_class = 9;
+ optional string movie_webm = 10 [(description) = "URL to webm, if any"];
+ optional string movie_mp4 = 11 [(description) = "URL to mp4, if any"];
+ optional string movie_webm_small = 13 [(description) = "URL to small webm, if any"];
+ optional string movie_mp4_small = 14 [(description) = "URL to small mp4, if any"];
+ optional uint32 equipped_flags = 12 [(description) = "Special flags set when equipped (EProfileItemEquippedFlag)"];
+ repeated .ProfileItem.ProfileColor profile_colors = 15 [(description) = "Game profile css colors"];
+}
+
+message CPlayer_GetProfileBackground_Response {
+ optional .ProfileItem profile_background = 1;
+}
+
+message CPlayer_SetProfileBackground_Request {
+ optional uint64 communityitemid = 1;
+}
+
+message CPlayer_SetProfileBackground_Response {
+}
+
+message CPlayer_GetMiniProfileBackground_Request {
+ optional fixed64 steamid = 1 [(description) = "The player we're asking about"];
+ optional string language = 2;
+}
+
+message CPlayer_GetMiniProfileBackground_Response {
+ optional .ProfileItem profile_background = 1;
+}
+
+message CPlayer_SetMiniProfileBackground_Request {
+ optional uint64 communityitemid = 1;
+}
+
+message CPlayer_SetMiniProfileBackground_Response {
+}
+
+message CPlayer_GetAvatarFrame_Request {
+ optional fixed64 steamid = 1 [(description) = "The player we're asking about"];
+ optional string language = 2;
+}
+
+message CPlayer_GetAvatarFrame_Response {
+ optional .ProfileItem avatar_frame = 1;
+}
+
+message CPlayer_SetAvatarFrame_Request {
+ optional uint64 communityitemid = 1;
+}
+
+message CPlayer_SetAvatarFrame_Response {
+}
+
+message CPlayer_GetAnimatedAvatar_Request {
+ optional fixed64 steamid = 1 [(description) = "The player we're asking about"];
+ optional string language = 2;
+}
+
+message CPlayer_GetAnimatedAvatar_Response {
+ optional .ProfileItem avatar = 1;
+}
+
+message CPlayer_SetAnimatedAvatar_Request {
+ optional uint64 communityitemid = 1;
+}
+
+message CPlayer_SetAnimatedAvatar_Response {
+}
+
+message CPlayer_GetSteamDeckKeyboardSkin_Request {
+ optional fixed64 steamid = 1 [(description) = "The player we're asking about"];
+ optional string language = 2;
+}
+
+message CPlayer_GetSteamDeckKeyboardSkin_Response {
+ optional .ProfileItem steam_deck_keyboard_skin = 1;
+}
+
+message CPlayer_SetSteamDeckKeyboardSkin_Request {
+ optional uint64 communityitemid = 1;
+}
+
+message CPlayer_SetSteamDeckKeyboardSkin_Response {
+}
+
+message CPlayer_GetProfileItemsOwned_Request {
+ optional string language = 1;
+ repeated .ECommunityItemClass filters = 2;
+}
+
+message CPlayer_GetProfileItemsOwned_Response {
+ repeated .ProfileItem profile_backgrounds = 1;
+ repeated .ProfileItem mini_profile_backgrounds = 2;
+ repeated .ProfileItem avatar_frames = 3;
+ repeated .ProfileItem animated_avatars = 4;
+ repeated .ProfileItem profile_modifiers = 5;
+ repeated .ProfileItem steam_deck_keyboard_skins = 6;
+ repeated .ProfileItem steam_deck_startup_movies = 7;
+}
+
+message CPlayer_GetProfileItemsEquipped_Request {
+ optional fixed64 steamid = 1;
+ optional string language = 2;
+}
+
+message CPlayer_GetProfileItemsEquipped_Response {
+ optional .ProfileItem profile_background = 1;
+ optional .ProfileItem mini_profile_background = 2;
+ optional .ProfileItem avatar_frame = 3;
+ optional .ProfileItem animated_avatar = 4;
+ optional .ProfileItem profile_modifier = 5;
+ optional .ProfileItem steam_deck_keyboard_skin = 6;
+}
+
+message CPlayer_SetEquippedProfileItemFlags_Request {
+ optional uint64 communityitemid = 1;
+ optional uint32 flags = 2 [(description) = "Set of EProfileItemEquippedFlag"];
+}
+
+message CPlayer_SetEquippedProfileItemFlags_Response {
+}
+
+message CPlayer_GetEmoticonList_Request {
+}
+
+message CPlayer_GetEmoticonList_Response {
+ message Emoticon {
+ optional string name = 1;
+ optional int32 count = 2;
+ optional uint32 time_last_used = 3;
+ optional uint32 use_count = 4;
+ optional uint32 time_received = 5;
+ optional uint32 appid = 6;
+ }
+
+ repeated .CPlayer_GetEmoticonList_Response.Emoticon emoticons = 1;
+}
+
+message CPlayer_GetTopAchievementsForGames_Request {
+ optional uint64 steamid = 1;
+ optional string language = 2;
+ optional uint32 max_achievements = 3 [(description) = "The max achievements to load. Max 8"];
+ repeated uint32 appids = 4;
+}
+
+message CPlayer_GetTopAchievementsForGames_Response {
+ message Achievement {
+ optional uint32 statid = 1;
+ optional uint32 bit = 2;
+ optional string name = 3;
+ optional string desc = 4;
+ optional string icon = 5;
+ optional string icon_gray = 6;
+ optional bool hidden = 7;
+ optional string player_percent_unlocked = 8 [(description) = "Formatted to one decimal place, min value is 0.1, max value 100"];
+ }
+
+ message Game {
+ optional uint32 appid = 1;
+ optional uint32 total_achievements = 2;
+ repeated .CPlayer_GetTopAchievementsForGames_Response.Achievement achievements = 3;
+ }
+
+ repeated .CPlayer_GetTopAchievementsForGames_Response.Game games = 1;
+}
+
+message CPlayer_GetAchievementsProgress_Request {
+ optional uint64 steamid = 1;
+ optional string language = 2;
+ repeated uint32 appids = 3;
+}
+
+message CPlayer_GetAchievementsProgress_Response {
+ message AchievementProgress {
+ optional uint32 appid = 1;
+ optional uint32 unlocked = 2;
+ optional uint32 total = 3;
+ optional float percentage = 4;
+ optional bool all_unlocked = 5;
+ optional uint32 cache_time = 6;
+ }
+
+ repeated .CPlayer_GetAchievementsProgress_Response.AchievementProgress achievement_progress = 1;
+}
+
+message CPlayer_GetGameAchievements_Request {
+ optional uint32 appid = 1;
+ optional string language = 2 [(description) = "Lowercase, language shortnames"];
+}
+
+message CPlayer_GetGameAchievements_Response {
+ message Achievement {
+ optional string internal_name = 1 [(description) = "Will come uppercase, internal facing name set by the partner; needed to associate with user unlock"];
+ optional string localized_name = 2;
+ optional string localized_desc = 3;
+ optional string icon = 4;
+ optional string icon_gray = 5;
+ optional bool hidden = 6;
+ optional string player_percent_unlocked = 7 [(description) = "Formatted to one decimal place, min value is 0.1, max value 100"];
+ }
+
+ repeated .CPlayer_GetGameAchievements_Response.Achievement achievements = 1;
+}
+
+message CPlayer_GetFavoriteBadge_Request {
+ optional uint64 steamid = 1;
+}
+
+message CPlayer_GetFavoriteBadge_Response {
+ optional bool has_favorite_badge = 1;
+ optional uint32 badgeid = 2;
+ optional uint64 communityitemid = 3;
+ optional uint32 item_type = 4;
+ optional uint32 border_color = 5;
+ optional uint32 appid = 6;
+ optional uint32 level = 7;
+}
+
+message CPlayer_SetFavoriteBadge_Request {
+ optional uint64 communityitemid = 1;
+ optional uint32 badgeid = 2;
+}
+
+message CPlayer_SetFavoriteBadge_Response {
+}
+
+message CPlayer_GetProfileCustomization_Request {
+ optional fixed64 steamid = 1;
+ optional bool include_inactive_customizations = 2;
+ optional bool include_purchased_customizations = 3;
+}
+
+message ProfileCustomizationSlot {
+ optional uint32 slot = 1;
+ optional uint32 appid = 2;
+ optional uint64 publishedfileid = 3;
+ optional uint64 item_assetid = 4;
+ optional uint64 item_contextid = 5;
+ optional string notes = 6;
+ optional string title = 7;
+ optional uint32 accountid = 8;
+ optional uint32 badgeid = 9;
+ optional uint32 border_color = 10;
+ optional uint64 item_classid = 11;
+ optional uint64 item_instanceid = 12;
+ optional .EBanContentCheckResult ban_check_result = 13 [default = k_EBanContentCheckResult_NotScanned];
+ optional uint32 replay_year = 14;
+}
+
+message ProfileCustomization {
+ optional .EProfileCustomizationType customization_type = 1 [default = k_EProfileCustomizationTypeInvalid];
+ optional bool large = 2;
+ repeated .ProfileCustomizationSlot slots = 3;
+ optional bool active = 4;
+ optional .EProfileCustomizationStyle customization_style = 5 [default = k_EProfileCustomizationStyleDefault];
+ optional uint64 purchaseid = 6;
+ optional uint32 level = 7;
+}
+
+message ProfileTheme {
+ optional string theme_id = 1;
+ optional string title = 2;
+}
+
+message ProfilePreferences {
+ optional bool hide_profile_awards = 1;
+}
+
+message CPlayer_GetProfileCustomization_Response {
+ message PurchasedCustomization {
+ optional uint64 purchaseid = 1;
+ optional .EProfileCustomizationType customization_type = 2 [default = k_EProfileCustomizationTypeInvalid];
+ optional uint32 level = 3;
+ }
+
+ repeated .ProfileCustomization customizations = 1;
+ optional uint32 slots_available = 2;
+ optional .ProfileTheme profile_theme = 3;
+ repeated .CPlayer_GetProfileCustomization_Response.PurchasedCustomization purchased_customizations = 4;
+ optional .ProfilePreferences profile_preferences = 5;
+}
+
+message CPlayer_GetPurchasedProfileCustomizations_Request {
+ optional fixed64 steamid = 1;
+}
+
+message CPlayer_GetPurchasedProfileCustomizations_Response {
+ message PurchasedCustomization {
+ optional uint64 purchaseid = 1;
+ optional .EProfileCustomizationType customization_type = 2 [default = k_EProfileCustomizationTypeInvalid];
+ }
+
+ repeated .CPlayer_GetPurchasedProfileCustomizations_Response.PurchasedCustomization purchased_customizations = 1;
+}
+
+message CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Request {
+ optional fixed64 steamid = 1;
+}
+
+message CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response {
+ message PurchasedCustomization {
+ optional .EProfileCustomizationType customization_type = 1 [default = k_EProfileCustomizationTypeInvalid];
+ optional uint32 count = 2;
+ }
+
+ message UpgradedCustomization {
+ optional .EProfileCustomizationType customization_type = 1 [default = k_EProfileCustomizationTypeInvalid];
+ optional uint32 level = 2;
+ }
+
+ repeated .CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response.PurchasedCustomization purchased_customizations = 1;
+ repeated .CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response.UpgradedCustomization upgraded_customizations = 2;
+}
+
+message CPlayer_GetProfileThemesAvailable_Request {
+}
+
+message CPlayer_GetProfileThemesAvailable_Response {
+ repeated .ProfileTheme profile_themes = 1;
+}
+
+message CPlayer_SetProfileTheme_Request {
+ optional string theme_id = 1;
+}
+
+message CPlayer_SetProfileTheme_Response {
+}
+
+message CPlayer_SetProfilePreferences_Request {
+ optional .ProfilePreferences profile_preferences = 1;
+}
+
+message CPlayer_SetProfilePreferences_Response {
+}
+
+message CPlayer_PostStatusToFriends_Request {
+ optional uint32 appid = 1;
+ optional string status_text = 2;
+}
+
+message CPlayer_PostStatusToFriends_Response {
+}
+
+message CPlayer_GetPostedStatus_Request {
+ optional uint64 steamid = 1 [(description) = "The player we're asking about"];
+ optional uint64 postid = 2;
+}
+
+message CPlayer_GetPostedStatus_Response {
+ optional uint32 accountid = 1;
+ optional uint64 postid = 2;
+ optional string status_text = 3;
+ optional bool deleted = 4;
+ optional uint32 appid = 5;
+}
+
+message CPlayer_DeletePostedStatus_Request {
+ optional uint64 postid = 1;
+}
+
+message CPlayer_DeletePostedStatus_Response {
+}
+
+message CPlayer_GetLastPlayedTimes_Request {
+ optional uint32 min_last_played = 1 [(description) = "The most recent last-played time the client already knows about"];
+}
+
+message CPlayer_GetLastPlayedTimes_Response {
+ message Game {
+ optional int32 appid = 1;
+ optional uint32 last_playtime = 2;
+ optional int32 playtime_2weeks = 3;
+ optional int32 playtime_forever = 4;
+ optional uint32 first_playtime = 5;
+ optional int32 playtime_windows_forever = 6;
+ optional int32 playtime_mac_forever = 7;
+ optional int32 playtime_linux_forever = 8;
+ optional uint32 first_windows_playtime = 9;
+ optional uint32 first_mac_playtime = 10;
+ optional uint32 first_linux_playtime = 11;
+ optional uint32 last_windows_playtime = 12;
+ optional uint32 last_mac_playtime = 13;
+ optional uint32 last_linux_playtime = 14;
+ }
+
+ repeated .CPlayer_GetLastPlayedTimes_Response.Game games = 1;
+}
+
+message CPlayer_GetTimeSSAAccepted_Request {
+}
+
+message CPlayer_GetTimeSSAAccepted_Response {
+ optional uint32 time_ssa_accepted = 1;
+ optional uint32 time_ssa_updated = 2;
+ optional uint32 time_chinassa_accepted = 3;
+}
+
+message CPlayer_AcceptSSA_Request {
+ optional .EAgreementType agreement_type = 1 [default = k_EAgreementType_Invalid];
+ optional uint32 time_signed_utc = 2;
+}
+
+message CPlayer_AcceptSSA_Response {
+}
+
+message CPlayer_GetNicknameList_Request {
+}
+
+message CPlayer_GetNicknameList_Response {
+ message PlayerNickname {
+ optional fixed32 accountid = 1;
+ optional string nickname = 2;
+ }
+
+ repeated .CPlayer_GetNicknameList_Response.PlayerNickname nicknames = 1;
+}
+
+message CPlayer_GetPerFriendPreferences_Request {
+}
+
+message PerFriendPreferences {
+ optional fixed32 accountid = 1;
+ optional string nickname = 2;
+ optional .ENotificationSetting notifications_showingame = 3 [default = k_ENotificationSettingNotifyUseDefault];
+ optional .ENotificationSetting notifications_showonline = 4 [default = k_ENotificationSettingNotifyUseDefault];
+ optional .ENotificationSetting notifications_showmessages = 5 [default = k_ENotificationSettingNotifyUseDefault];
+ optional .ENotificationSetting sounds_showingame = 6 [default = k_ENotificationSettingNotifyUseDefault];
+ optional .ENotificationSetting sounds_showonline = 7 [default = k_ENotificationSettingNotifyUseDefault];
+ optional .ENotificationSetting sounds_showmessages = 8 [default = k_ENotificationSettingNotifyUseDefault];
+ optional .ENotificationSetting notifications_sendmobile = 9 [default = k_ENotificationSettingNotifyUseDefault];
+}
+
+message CPlayer_GetPerFriendPreferences_Response {
+ repeated .PerFriendPreferences preferences = 1;
+}
+
+message CPlayer_SetPerFriendPreferences_Request {
+ optional .PerFriendPreferences preferences = 1;
+}
+
+message CPlayer_SetPerFriendPreferences_Response {
+}
+
+message CPlayer_AddFriend_Request {
+ optional fixed64 steamid = 1 [(description) = "Steam ID of user to whom to send a friend invite."];
+}
+
+message CPlayer_AddFriend_Response {
+ optional bool invite_sent = 1 [(description) = "True if the operation was successful, false otherwise."];
+ optional uint32 friend_relationship = 2 [(description) = "the resulting relationship. Depending on state, may move directly to friends rather than invite sent"];
+ optional int32 result = 3;
+}
+
+message CPlayer_RemoveFriend_Request {
+ optional fixed64 steamid = 1 [(description) = "Steam ID of friend to remove."];
+}
+
+message CPlayer_RemoveFriend_Response {
+ optional uint32 friend_relationship = 1 [(description) = "the resulting relationship"];
+}
+
+message CPlayer_IgnoreFriend_Request {
+ optional fixed64 steamid = 1;
+ optional bool unignore = 2 [(description) = "If set, remove from ignore/block list instead of adding "];
+}
+
+message CPlayer_IgnoreFriend_Response {
+ optional uint32 friend_relationship = 1 [(description) = "the resulting relationship"];
+}
+
+message CPlayer_GetCommunityPreferences_Request {
+}
+
+message CPlayer_CommunityPreferences {
+ optional bool parenthesize_nicknames = 4 [default = false];
+ optional .ETextFilterSetting text_filter_setting = 5 [default = k_ETextFilterSettingSteamLabOptedOut];
+ optional bool text_filter_ignore_friends = 6 [default = true];
+ optional uint32 text_filter_words_revision = 7;
+ optional uint32 timestamp_updated = 3;
+}
+
+message CPlayer_GetCommunityPreferences_Response {
+ optional .CPlayer_CommunityPreferences preferences = 1;
+}
+
+message CPlayer_SetCommunityPreferences_Request {
+ optional .CPlayer_CommunityPreferences preferences = 1;
+}
+
+message CPlayer_SetCommunityPreferences_Response {
+}
+
+message CPlayer_GetTextFilterWords_Request {
+}
+
+message CPlayer_TextFilterWords {
+ repeated string text_filter_custom_banned_words = 1;
+ repeated string text_filter_custom_clean_words = 2;
+ optional uint32 text_filter_words_revision = 3;
+}
+
+message CPlayer_GetTextFilterWords_Response {
+ optional .CPlayer_TextFilterWords words = 1;
+}
+
+message CPlayer_GetNewSteamAnnouncementState_Request {
+ optional int32 language = 1;
+}
+
+message CPlayer_GetNewSteamAnnouncementState_Response {
+ optional .ENewSteamAnnouncementState state = 1 [default = k_ENewSteamAnnouncementState_Invalid];
+ optional string announcement_headline = 2;
+ optional string announcement_url = 3;
+ optional uint32 time_posted = 4;
+ optional uint64 announcement_gid = 5;
+}
+
+message CPlayer_UpdateSteamAnnouncementLastRead_Request {
+ optional uint64 announcement_gid = 1;
+ optional uint32 time_posted = 2;
+}
+
+message CPlayer_UpdateSteamAnnouncementLastRead_Response {
+}
+
+message CPlayer_GetPrivacySettings_Request {
+}
+
+message CPrivacySettings {
+ optional int32 privacy_state = 1;
+ optional int32 privacy_state_inventory = 2;
+ optional int32 privacy_state_gifts = 3;
+ optional int32 privacy_state_ownedgames = 4;
+ optional int32 privacy_state_playtime = 5;
+ optional int32 privacy_state_friendslist = 6;
+}
+
+message CPlayer_GetPrivacySettings_Response {
+ optional .CPrivacySettings privacy_settings = 1;
+}
+
+message CPlayer_GetDurationControl_Request {
+ optional uint32 appid = 1;
+}
+
+message CPlayer_GetDurationControl_Response {
+ optional bool is_enabled = 1;
+ optional int32 seconds = 2;
+ optional int32 seconds_today = 3;
+ optional bool is_steamchina_account = 4;
+ optional bool is_age_verified = 5;
+ optional uint32 seconds_allowed_today = 6;
+ optional bool age_verification_pending = 7;
+ optional bool block_minors = 8;
+}
+
+message CPlayer_RecordDisconnectedPlaytime_Request {
+ message PlayHistory {
+ optional uint32 appid = 1;
+ optional uint32 session_time_start = 2;
+ optional uint32 seconds = 3;
+ optional bool offline = 4;
+ }
+
+ repeated .CPlayer_RecordDisconnectedPlaytime_Request.PlayHistory play_sessions = 3;
+}
+
+message CPlayer_RecordDisconnectedPlaytime_Response {
+}
+
+message CPlayer_LastPlayedTimes_Notification {
+ repeated .CPlayer_GetLastPlayedTimes_Response.Game games = 1;
+}
+
+message CPlayer_FriendNicknameChanged_Notification {
+ optional fixed32 accountid = 1;
+ optional string nickname = 2;
+ optional bool is_echo_to_self = 3;
+}
+
+message CPlayer_FriendEquippedProfileItemsChanged_Notification {
+ optional fixed32 accountid = 1;
+}
+
+message CPlayer_NewSteamAnnouncementState_Notification {
+ optional .ENewSteamAnnouncementState state = 1 [default = k_ENewSteamAnnouncementState_Invalid];
+ optional string announcement_headline = 2;
+ optional string announcement_url = 3;
+ optional uint32 time_posted = 4;
+ optional uint64 announcement_gid = 5;
+}
+
+message CPlayer_CommunityPreferencesChanged_Notification {
+ optional .CPlayer_CommunityPreferences preferences = 1;
+}
+
+message CPlayer_TextFilterWordsChanged_Notification {
+ optional .CPlayer_TextFilterWords words = 1;
+}
+
+message CPlayer_PerFriendPreferencesChanged_Notification {
+ optional fixed32 accountid = 1;
+ optional .PerFriendPreferences preferences = 2;
+}
+
+message CPlayer_PrivacySettingsChanged_Notification {
+ optional .CPrivacySettings privacy_settings = 1;
+}
+
+service Player {
+ option (service_description) = "A service for accessing Steam player data";
+
+ rpc GetMutualFriendsForIncomingInvites (.CPlayer_GetMutualFriendsForIncomingInvites_Request) returns (.CPlayer_GetMutualFriendsForIncomingInvites_Response) {
+ option (method_description) = "Get me the mutual friends for each of my pending incoming invites (individuals and clans).";
+ }
+
+ rpc GetOwnedGames (.CPlayer_GetOwnedGames_Request) returns (.CPlayer_GetOwnedGames_Response) {
+ option (method_description) = "Return a list of games owned by the player";
+ }
+
+ rpc GetPlayNext (.CPlayer_GetPlayNext_Request) returns (.CPlayer_GetPlayNext_Response) {
+ option (method_description) = "Return suggested games for player to play next.";
+ }
+
+ rpc GetFriendsGameplayInfo (.CPlayer_GetFriendsGameplayInfo_Request) returns (.CPlayer_GetFriendsGameplayInfo_Response) {
+ option (method_description) = "Get a list of friends who are playing, have played, own, or want a game";
+ }
+
+ rpc GetGameBadgeLevels (.CPlayer_GetGameBadgeLevels_Request) returns (.CPlayer_GetGameBadgeLevels_Response) {
+ option (method_description) = "Returns the Steam Level of a user, the Badge level for the game, and if it's foil";
+ }
+
+ rpc GetProfileBackground (.CPlayer_GetProfileBackground_Request) returns (.CPlayer_GetProfileBackground_Response) {
+ option (method_description) = "Gets which profile background is active for a specific user";
+ }
+
+ rpc SetProfileBackground (.CPlayer_SetProfileBackground_Request) returns (.CPlayer_SetProfileBackground_Response) {
+ option (method_description) = "Sets the user's profile background";
+ }
+
+ rpc GetMiniProfileBackground (.CPlayer_GetMiniProfileBackground_Request) returns (.CPlayer_GetMiniProfileBackground_Response) {
+ option (method_description) = "Gets which mini profile background is active for a specific user";
+ }
+
+ rpc SetMiniProfileBackground (.CPlayer_SetMiniProfileBackground_Request) returns (.CPlayer_SetMiniProfileBackground_Response) {
+ option (method_description) = "Sets the user's mini profile background";
+ }
+
+ rpc GetAvatarFrame (.CPlayer_GetAvatarFrame_Request) returns (.CPlayer_GetAvatarFrame_Response) {
+ option (method_description) = "Gets which avatar frame is active for a specific user";
+ }
+
+ rpc SetAvatarFrame (.CPlayer_SetAvatarFrame_Request) returns (.CPlayer_SetAvatarFrame_Response) {
+ option (method_description) = "Sets the user's avatar frame for their profile";
+ }
+
+ rpc GetAnimatedAvatar (.CPlayer_GetAnimatedAvatar_Request) returns (.CPlayer_GetAnimatedAvatar_Response) {
+ option (method_description) = "Gets which animated avatar is active for a specific user";
+ }
+
+ rpc SetAnimatedAvatar (.CPlayer_SetAnimatedAvatar_Request) returns (.CPlayer_SetAnimatedAvatar_Response) {
+ option (method_description) = "Sets the user's animated avatar for their profile";
+ }
+
+ rpc GetSteamDeckKeyboardSkin (.CPlayer_GetSteamDeckKeyboardSkin_Request) returns (.CPlayer_GetSteamDeckKeyboardSkin_Response) {
+ option (method_description) = "Gets which Steam Deck keyboard skin is active for a specific user";
+ }
+
+ rpc SetSteamDeckKeyboardSkin (.CPlayer_SetSteamDeckKeyboardSkin_Request) returns (.CPlayer_SetSteamDeckKeyboardSkin_Response) {
+ option (method_description) = "Sets the user's current Steam Deck keyboard skin";
+ }
+
+ rpc GetProfileItemsOwned (.CPlayer_GetProfileItemsOwned_Request) returns (.CPlayer_GetProfileItemsOwned_Response) {
+ option (method_description) = "Returns the items the user can equip on their profile";
+ }
+
+ rpc GetProfileItemsEquipped (.CPlayer_GetProfileItemsEquipped_Request) returns (.CPlayer_GetProfileItemsEquipped_Response) {
+ option (method_description) = "Returns the items the user has equipped on their profile";
+ }
+
+ rpc SetEquippedProfileItemFlags (.CPlayer_SetEquippedProfileItemFlags_Request) returns (.CPlayer_SetEquippedProfileItemFlags_Response) {
+ option (method_description) = "Sets special flags on the equipped item";
+ }
+
+ rpc GetEmoticonList (.CPlayer_GetEmoticonList_Request) returns (.CPlayer_GetEmoticonList_Response) {
+ option (method_description) = "Gets a list of the emoticons a user has with metadata";
+ }
+
+ rpc GetTopAchievementsForGames (.CPlayer_GetTopAchievementsForGames_Request) returns (.CPlayer_GetTopAchievementsForGames_Response) {
+ option (method_description) = "Gets the best achievements the user has gotten for the specified list of apps.";
+ }
+
+ rpc GetAchievementsProgress (.CPlayer_GetAchievementsProgress_Request) returns (.CPlayer_GetAchievementsProgress_Response) {
+ option (method_description) = "Gets the achievement completion stats for the specified list of apps.";
+ }
+
+ rpc GetGameAchievements (.CPlayer_GetGameAchievements_Request) returns (.CPlayer_GetGameAchievements_Response) {
+ option (method_description) = "Get a games available achievements for display purposes.";
+ }
+
+ rpc GetFavoriteBadge (.CPlayer_GetFavoriteBadge_Request) returns (.CPlayer_GetFavoriteBadge_Response) {
+ option (method_description) = "Gets the badge the user has set as their favorite";
+ }
+
+ rpc SetFavoriteBadge (.CPlayer_SetFavoriteBadge_Request) returns (.CPlayer_SetFavoriteBadge_Response) {
+ option (method_description) = "Sets the badge as the users favorite";
+ }
+
+ rpc GetProfileCustomization (.CPlayer_GetProfileCustomization_Request) returns (.CPlayer_GetProfileCustomization_Response) {
+ option (method_description) = "Returns the customizations (if any) for a profile";
+ }
+
+ rpc GetPurchasedProfileCustomizations (.CPlayer_GetPurchasedProfileCustomizations_Request) returns (.CPlayer_GetPurchasedProfileCustomizations_Response) {
+ option (method_description) = "Returns the purchased profile customizations";
+ }
+
+ rpc GetPurchasedAndUpgradedProfileCustomizations (.CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Request) returns (.CPlayer_GetPurchasedAndUpgradedProfileCustomizations_Response) {
+ option (method_description) = "Returns the purchased and upgraded profile customizations";
+ }
+
+ rpc GetProfileThemesAvailable (.CPlayer_GetProfileThemesAvailable_Request) returns (.CPlayer_GetProfileThemesAvailable_Response) {
+ option (method_description) = "Gets themes available for the user.";
+ }
+
+ rpc SetProfileTheme (.CPlayer_SetProfileTheme_Request) returns (.CPlayer_SetProfileTheme_Response) {
+ option (method_description) = "Selects a theme for the profile";
+ }
+
+ rpc SetProfilePreferences (.CPlayer_SetProfilePreferences_Request) returns (.CPlayer_SetProfilePreferences_Response) {
+ option (method_description) = "Sets profile preferences";
+ }
+
+ rpc PostStatusToFriends (.CPlayer_PostStatusToFriends_Request) returns (.CPlayer_PostStatusToFriends_Response) {
+ option (method_description) = "Posts custom status text into the blotter";
+ }
+
+ rpc GetPostedStatus (.CPlayer_GetPostedStatus_Request) returns (.CPlayer_GetPostedStatus_Response) {
+ option (method_description) = "Gets a posted status text for a user by id";
+ }
+
+ rpc DeletePostedStatus (.CPlayer_DeletePostedStatus_Request) returns (.CPlayer_DeletePostedStatus_Response) {
+ option (method_description) = "Deletes a posted status text for a user by id";
+ }
+
+ rpc ClientGetLastPlayedTimes (.CPlayer_GetLastPlayedTimes_Request) returns (.CPlayer_GetLastPlayedTimes_Response) {
+ option (method_description) = "Gets the last-played times for the account";
+ }
+
+ rpc GetTimeSSAAccepted (.CPlayer_GetTimeSSAAccepted_Request) returns (.CPlayer_GetTimeSSAAccepted_Response) {
+ option (method_description) = "Gets the time when the user accepted the SSA";
+ }
+
+ rpc AcceptSSA (.CPlayer_AcceptSSA_Request) returns (.CPlayer_AcceptSSA_Response) {
+ option (method_description) = "User is accepting the SSA";
+ }
+
+ rpc GetNicknameList (.CPlayer_GetNicknameList_Request) returns (.CPlayer_GetNicknameList_Response) {
+ option (method_description) = "Gets the list of nicknames this user has for other users";
+ }
+
+ rpc GetPerFriendPreferences (.CPlayer_GetPerFriendPreferences_Request) returns (.CPlayer_GetPerFriendPreferences_Response) {
+ option (method_description) = "Gets the list of per-friend preferences this user has set for other users";
+ }
+
+ rpc SetPerFriendPreferences (.CPlayer_SetPerFriendPreferences_Request) returns (.CPlayer_SetPerFriendPreferences_Response) {
+ option (method_description) = "Sets the logged in user's per-friend preferences for the given user";
+ }
+
+ rpc AddFriend (.CPlayer_AddFriend_Request) returns (.CPlayer_AddFriend_Response) {
+ option (method_description) = "Invites another Steam user to be a friend";
+ }
+
+ rpc RemoveFriend (.CPlayer_RemoveFriend_Request) returns (.CPlayer_RemoveFriend_Response) {
+ option (method_description) = "Removes a friend or ignores a friend suggestion";
+ }
+
+ rpc IgnoreFriend (.CPlayer_IgnoreFriend_Request) returns (.CPlayer_IgnoreFriend_Response) {
+ option (method_description) = "Blocks or unblocks communication with the user. Despite name, can be a non-friend.";
+ }
+
+ rpc GetCommunityPreferences (.CPlayer_GetCommunityPreferences_Request) returns (.CPlayer_GetCommunityPreferences_Response) {
+ option (method_description) = "Returns the player's community preferences";
+ }
+
+ rpc SetCommunityPreferences (.CPlayer_SetCommunityPreferences_Request) returns (.CPlayer_SetCommunityPreferences_Response) {
+ option (method_description) = "Sets the player's community preferences";
+ }
+
+ rpc GetTextFilterWords (.CPlayer_GetTextFilterWords_Request) returns (.CPlayer_GetTextFilterWords_Response) {
+ option (method_description) = "Get the custom text filtering dictionary for this user";
+ }
+
+ rpc GetNewSteamAnnouncementState (.CPlayer_GetNewSteamAnnouncementState_Request) returns (.CPlayer_GetNewSteamAnnouncementState_Response) {
+ option (method_description) = "Calculates and returns what to display for UI that renders new steam announcement available";
+ }
+
+ rpc UpdateSteamAnnouncementLastRead (.CPlayer_UpdateSteamAnnouncementLastRead_Request) returns (.CPlayer_UpdateSteamAnnouncementLastRead_Response) {
+ option (method_description) = "Marks latest announcement timestamp read by user";
+ }
+
+ rpc GetPrivacySettings (.CPlayer_GetPrivacySettings_Request) returns (.CPlayer_GetPrivacySettings_Response) {
+ option (method_description) = "Get current privacy settings.";
+ }
+
+ rpc GetDurationControl (.CPlayer_GetDurationControl_Request) returns (.CPlayer_GetDurationControl_Response) {
+ option (method_description) = "Get gameplay duration control settings.";
+ }
+
+ rpc RecordDisconnectedPlaytime (.CPlayer_RecordDisconnectedPlaytime_Request) returns (.CPlayer_RecordDisconnectedPlaytime_Response) {
+ option (method_description) = "Submit playtime records that happened while the client was disconnected from steam (whether marked offline or not)";
+ }
+}
+
+service PlayerClient {
+ option (service_description) = "Steam player data client notifications";
+ option (service_execution_site) = k_EProtoExecutionSiteSteamClient;
+
+ rpc NotifyLastPlayedTimes (.CPlayer_LastPlayedTimes_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from server to client of more recent play time";
+ }
+
+ rpc NotifyFriendNicknameChanged (.CPlayer_FriendNicknameChanged_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from server to client that a friend's nickname has changed";
+ }
+
+ rpc NotifyFriendEquippedProfileItemsChanged (.CPlayer_FriendEquippedProfileItemsChanged_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from server to client that a friend's equipped profile items have changed";
+ }
+
+ rpc NotifyNewSteamAnnouncementState (.CPlayer_NewSteamAnnouncementState_Notification) returns (.NoResponse) {
+ option (method_description) = "Notifies client of changes to steam announcement state for user";
+ }
+
+ rpc NotifyCommunityPreferencesChanged (.CPlayer_CommunityPreferencesChanged_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from server to client that their community preferences have changed";
+ }
+
+ rpc NotifyTextFilterWordsChanged (.CPlayer_TextFilterWordsChanged_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from server to client that their text filtering dictionary has changed";
+ }
+
+ rpc NotifyPerFriendPreferencesChanged (.CPlayer_PerFriendPreferencesChanged_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from server that per-friend preferences have changed";
+ }
+
+ rpc NotifyPrivacyPrivacySettingsChanged (.CPlayer_PrivacySettingsChanged_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from server that privacy settings changed";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_publishedfile.steamclient.proto b/protobuf_files/orig/steam/steammessages_publishedfile.steamclient.proto
new file mode 100644
index 00000000..700e94e3
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_publishedfile.steamclient.proto
@@ -0,0 +1,809 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+import "enums_productinfo.proto";
+
+option cc_generic_services = true;
+
+enum EPublishedFileRevision {
+ k_EPublishedFileRevision_Default = 0;
+ k_EPublishedFileRevision_Latest = 1;
+ k_EPublishedFileRevision_ApprovedSnapshot = 2;
+ k_EPublishedFileRevision_ApprovedSnapshot_China = 3;
+ k_EPublishedFileRevision_RejectedSnapshot = 4;
+ k_EPublishedFileRevision_RejectedSnapshot_China = 5;
+}
+
+enum EPublishedFileForSaleStatus {
+ k_PFFSS_NotForSale = 0;
+ k_PFFSS_PendingApproval = 1;
+ k_PFFSS_ApprovedForSale = 2;
+ k_PFFSS_RejectedForSale = 3;
+ k_PFFSS_NoLongerForSale = 4;
+ k_PFFSS_TentativeApproval = 5;
+}
+
+message CPublishedFile_Vote_Request {
+ optional uint64 publishedfileid = 1;
+ optional bool vote_up = 2;
+}
+
+message CPublishedFile_Vote_Response {
+}
+
+message CPublishedFile_Subscribe_Request {
+ optional uint64 publishedfileid = 1;
+ optional uint32 list_type = 2;
+ optional int32 appid = 3;
+ optional bool notify_client = 4;
+}
+
+message CPublishedFile_Subscribe_Response {
+}
+
+message CPublishedFile_Unsubscribe_Request {
+ optional uint64 publishedfileid = 1;
+ optional uint32 list_type = 2;
+ optional int32 appid = 3;
+ optional bool notify_client = 4;
+}
+
+message CPublishedFile_Unsubscribe_Response {
+}
+
+message CPublishedFile_CanSubscribe_Request {
+ optional uint64 publishedfileid = 1;
+}
+
+message CPublishedFile_CanSubscribe_Response {
+ optional bool can_subscribe = 1;
+}
+
+message CPublishedFile_GetSubSectionData_Request {
+ optional uint64 publishedfileid = 1;
+ optional bool for_table_of_contents = 2;
+ optional uint64 specific_sectionid = 3;
+ optional .EPublishedFileRevision desired_revision = 4 [default = k_EPublishedFileRevision_Default, (description) = "Return the data for the specified revision."];
+}
+
+message PublishedFileSubSection {
+ optional uint64 sectionid = 1;
+ optional string title = 2;
+ optional string description_text = 3;
+ optional uint32 sort_order = 4;
+}
+
+message CPublishedFile_GetSubSectionData_Response {
+ repeated .PublishedFileSubSection sub_sections = 1;
+}
+
+message CPublishedFile_Publish_Request {
+ optional uint32 appid = 1 [(description) = "App Id this file is being published FROM."];
+ optional uint32 consumer_appid = 2 [(description) = "App Id this file is being published TO."];
+ optional string cloudfilename = 3 [(description) = "Name of the file to publish in the user's cloud."];
+ optional string preview_cloudfilename = 4 [(description) = "Name of the file to use as the published file's preview."];
+ optional string title = 5 [(description) = "Text title for the published file."];
+ optional string file_description = 6 [(description) = "Text description for the published file."];
+ optional uint32 file_type = 7 [(description) = "(EWorkshopFileType) Type of Workshop file to publish."];
+ optional string consumer_shortcut_name = 8 [(description) = "Shortcut name for the published file."];
+ optional string youtube_username = 9 [(description) = "(Optional) User's YouTube account username."];
+ optional string youtube_videoid = 10 [(description) = "(Optional) Video Id of a YouTube video for this published file."];
+ optional uint32 visibility = 11 [(description) = "(ERemoteStoragePublishedFileVisibility) Visibility of the published file (private, friends, public, etc.)"];
+ optional string redirect_uri = 12 [(description) = "(Optional) If supplied, the resulting published file's Id is appended to the URI."];
+ repeated string tags = 13 [(description) = "Array of text tags to apply to the published file."];
+ optional string collection_type = 14 [(description) = "(Optional) Type of collection the published file represents."];
+ optional string game_type = 15 [(description) = "(Optional) Type of game the published file represents."];
+ optional string url = 16 [(description) = "(Optional) If this represents a game, this is the URL to that game's page."];
+}
+
+message CPublishedFile_Publish_Response {
+ optional uint64 publishedfileid = 1;
+ optional string redirect_uri = 2;
+}
+
+message CPublishedFile_GetDetails_Request {
+ repeated fixed64 publishedfileids = 1 [(description) = "Set of published file Ids to retrieve details for."];
+ optional bool includetags = 2 [(description) = "If true, return tag information in the returned details."];
+ optional bool includeadditionalpreviews = 3 [(description) = "If true, return preview information in the returned details."];
+ optional bool includechildren = 4 [(description) = "If true, return children in the returned details."];
+ optional bool includekvtags = 5 [(description) = "If true, return key value tags in the returned details."];
+ optional bool includevotes = 6 [(description) = "If true, return vote data in the returned details."];
+ optional bool short_description = 8 [(description) = "If true, return a short description instead of the full description."];
+ optional bool includeforsaledata = 10 [(description) = "If true, return pricing data, if applicable."];
+ optional bool includemetadata = 11 [(description) = "If true, populate the metadata field."];
+ optional int32 language = 12 [default = 0, (description) = "Specifies the localized text to return. Defaults to English."];
+ optional uint32 return_playtime_stats = 13 [(description) = "Return playtime stats for the specified number of days before today."];
+ optional uint32 appid = 14;
+ optional bool strip_description_bbcode = 15 [(description) = "Strips BBCode from descriptions."];
+ optional .EPublishedFileRevision desired_revision = 16 [default = k_EPublishedFileRevision_Default, (description) = "Return the data for the specified revision."];
+ optional bool includereactions = 17 [default = false, (description) = "If true, then reactions to items will be returned."];
+}
+
+message PublishedFileDetails {
+ message Tag {
+ optional string tag = 1;
+ optional bool adminonly = 2;
+ optional string display_name = 3;
+ }
+
+ message Preview {
+ optional uint64 previewid = 1;
+ optional uint32 sortorder = 2;
+ optional string url = 3;
+ optional uint32 size = 4;
+ optional string filename = 5;
+ optional string youtubevideoid = 6;
+ optional uint32 preview_type = 7;
+ optional string external_reference = 8;
+ }
+
+ message Child {
+ optional uint64 publishedfileid = 1;
+ optional uint32 sortorder = 2;
+ optional uint32 file_type = 3;
+ }
+
+ message KVTag {
+ optional string key = 1;
+ optional string value = 2;
+ }
+
+ message VoteData {
+ optional float score = 1;
+ optional uint32 votes_up = 2;
+ optional uint32 votes_down = 3;
+ }
+
+ message ForSaleData {
+ optional bool is_for_sale = 1;
+ optional uint32 price_category = 2;
+ optional .EPublishedFileForSaleStatus estatus = 3 [default = k_PFFSS_NotForSale];
+ optional uint32 price_category_floor = 4;
+ optional bool price_is_pay_what_you_want = 5;
+ optional uint32 discount_percentage = 6;
+ }
+
+ message PlaytimeStats {
+ optional uint64 playtime_seconds = 1;
+ optional uint64 num_sessions = 2;
+ }
+
+ message Reaction {
+ optional uint32 reactionid = 1;
+ optional uint32 count = 2;
+ }
+
+ optional uint32 result = 1;
+ optional uint64 publishedfileid = 2;
+ optional fixed64 creator = 3;
+ optional uint32 creator_appid = 4;
+ optional uint32 consumer_appid = 5;
+ optional uint32 consumer_shortcutid = 6;
+ optional string filename = 7;
+ optional uint64 file_size = 8;
+ optional uint64 preview_file_size = 9;
+ optional string file_url = 10;
+ optional string preview_url = 11;
+ optional string youtubevideoid = 12;
+ optional string url = 13;
+ optional fixed64 hcontent_file = 14;
+ optional fixed64 hcontent_preview = 15;
+ optional string title = 16;
+ optional string file_description = 17;
+ optional string short_description = 18;
+ optional uint32 time_created = 19;
+ optional uint32 time_updated = 20;
+ optional uint32 visibility = 21;
+ optional uint32 flags = 22;
+ optional bool workshop_file = 23;
+ optional bool workshop_accepted = 24;
+ optional bool show_subscribe_all = 25;
+ optional int32 num_comments_developer = 26;
+ optional int32 num_comments_public = 27;
+ optional bool banned = 28;
+ optional string ban_reason = 29;
+ optional fixed64 banner = 30;
+ optional bool can_be_deleted = 31;
+ optional bool incompatible = 32;
+ optional string app_name = 33;
+ optional uint32 file_type = 34;
+ optional bool can_subscribe = 35;
+ optional uint32 subscriptions = 36;
+ optional uint32 favorited = 37;
+ optional uint32 followers = 38;
+ optional uint32 lifetime_subscriptions = 39;
+ optional uint32 lifetime_favorited = 40;
+ optional uint32 lifetime_followers = 41;
+ optional uint64 lifetime_playtime = 62;
+ optional uint64 lifetime_playtime_sessions = 63;
+ optional uint32 views = 42;
+ optional uint32 image_width = 43;
+ optional uint32 image_height = 44;
+ optional string image_url = 45;
+ optional bool spoiler_tag = 46;
+ optional uint32 shortcutid = 47;
+ optional string shortcutname = 48;
+ optional uint32 num_children = 49;
+ optional uint32 num_reports = 50;
+ repeated .PublishedFileDetails.Preview previews = 51;
+ repeated .PublishedFileDetails.Tag tags = 52;
+ repeated .PublishedFileDetails.Child children = 53;
+ repeated .PublishedFileDetails.KVTag kvtags = 54;
+ optional .PublishedFileDetails.VoteData vote_data = 55;
+ optional .PublishedFileDetails.PlaytimeStats playtime_stats = 64;
+ optional uint32 time_subscribed = 56 [(description) = "Only valid in PublishedFile.GetUserFiles and not normal PublishedFile.GetDetail calls"];
+ optional .PublishedFileDetails.ForSaleData for_sale_data = 57 [(description) = "Pricing information, if applicable."];
+ optional string metadata = 58 [(description) = "Metadata associated with the item"];
+ optional int32 language = 61 [default = 0, (description) = "The language of the title and description."];
+ optional bool maybe_inappropriate_sex = 65;
+ optional bool maybe_inappropriate_violence = 66;
+ repeated .EContentDescriptorID content_descriptorids = 72;
+ optional uint64 revision_change_number = 67 [(description) = "The change number for the specified revision."];
+ optional .EPublishedFileRevision revision = 68 [default = k_EPublishedFileRevision_Default, (description) = "The revision of the data returned, usually k_EPublishedFileRevision_Latest, but can be another revision/snapshot depending on the caller."];
+ repeated .EPublishedFileRevision available_revisions = 69 [(description) = "Available revisions"];
+ repeated .PublishedFileDetails.Reaction reactions = 70 [(description) = "Reactions to this item"];
+ optional .EBanContentCheckResult ban_text_check_result = 71 [default = k_EBanContentCheckResult_NotScanned];
+}
+
+message CPublishedFile_GetDetails_Response {
+ repeated .PublishedFileDetails publishedfiledetails = 1;
+}
+
+message CPublishedFile_GetItemInfo_Request {
+ message WorkshopItem {
+ optional fixed64 published_file_id = 1;
+ optional uint32 time_updated = 2;
+ optional .EPublishedFileRevision desired_revision = 3 [default = k_EPublishedFileRevision_Default, (description) = "Return the data for the specified revision."];
+ }
+
+ optional uint32 appid = 1;
+ optional uint32 last_time_updated = 2;
+ repeated .CPublishedFile_GetItemInfo_Request.WorkshopItem workshop_items = 3;
+}
+
+message CPublishedFile_GetItemInfo_Response {
+ message WorkshopItemInfo {
+ optional fixed64 published_file_id = 1;
+ optional uint32 time_updated = 2;
+ optional fixed64 manifest_id = 3;
+ optional uint32 flags = 4;
+ }
+
+ optional uint32 update_time = 1;
+ repeated .CPublishedFile_GetItemInfo_Response.WorkshopItemInfo workshop_items = 2;
+ repeated fixed64 private_items = 3;
+}
+
+message CPublishedFile_GetUserFiles_Request {
+ message KVTag {
+ optional string key = 1;
+ optional string value = 2;
+ }
+
+ message TagGroup {
+ repeated string tags = 1;
+ }
+
+ optional fixed64 steamid = 1 [(description) = "Steam ID of the user whose files are being requested."];
+ optional uint32 appid = 2 [(description) = "App Id of the app that the files were published to."];
+ optional uint32 page = 4 [default = 1, (description) = "(Optional) Starting page for results."];
+ optional uint32 numperpage = 5 [default = 1, (description) = "(Optional) The number of results, per page to return."];
+ optional string type = 6 [default = "myfiles", (description) = "(Optional) Type of files to be returned."];
+ optional string sortmethod = 7 [default = "lastupdated", (description) = "(Optional) Sorting method to use on returned values."];
+ optional uint32 privacy = 9 [(description) = "(optional) Filter by privacy settings."];
+ repeated string requiredtags = 10 [(description) = "(Optional) Tags that must be present on a published file to satisfy the query."];
+ repeated string excludedtags = 11 [(description) = "(Optional) Tags that must NOT be present on a published file to satisfy the query."];
+ repeated .CPublishedFile_GetUserFiles_Request.KVTag required_kv_tags = 30 [(description) = "Required key-value tags to match on."];
+ optional uint32 filetype = 14 [(description) = "(Optional) File type to match files to."];
+ optional uint32 creator_appid = 15 [(description) = "App Id of the app that published the files, only matched if specified."];
+ optional string match_cloud_filename = 16 [(description) = "Match this cloud filename if specified."];
+ optional uint32 cache_max_age_seconds = 27 [default = 0, (description) = "Allow stale data to be returned for the specified number of seconds."];
+ optional int32 language = 29 [default = 0, (description) = "Specifies the localized text to return. Defaults to English."];
+ repeated .CPublishedFile_GetUserFiles_Request.TagGroup taggroups = 34 [(description) = "(Optional) At least one of the tags must be present on a published file to satisfy the query."];
+ repeated .EContentDescriptorID excluded_content_descriptors = 37 [(description) = "(Optional) Filter out items that have these content descriptors."];
+ optional bool totalonly = 17 [(description) = "(Optional) If true, only return the total number of files that satisfy this query."];
+ optional bool ids_only = 18 [(description) = "(Optional) If true, only return the published file ids of files that satisfy this query."];
+ optional bool return_vote_data = 19 [default = true, (description) = "Return vote data"];
+ optional bool return_tags = 20 [(description) = "Return tags in the file details"];
+ optional bool return_kv_tags = 21 [default = true, (description) = "Return key-value tags in the file details"];
+ optional bool return_previews = 22 [(description) = "Return preview image and video details in the file details"];
+ optional bool return_children = 23 [(description) = "Return child item ids in the file details"];
+ optional bool return_short_description = 24 [default = true, (description) = "Populate the short_description field instead of file_description"];
+ optional bool return_for_sale_data = 26 [(description) = "Return pricing information, if applicable"];
+ optional bool return_metadata = 28 [default = false, (description) = "Populate the metadata field"];
+ optional uint32 return_playtime_stats = 31 [(description) = "Return playtime stats for the specified number of days before today."];
+ optional bool strip_description_bbcode = 32 [(description) = "Strips BBCode from descriptions."];
+ optional bool return_reactions = 35 [default = false, (description) = "If true, then reactions to items will be returned."];
+ optional uint32 startindex_override = 25 [(description) = "Backwards compatible for the client."];
+ optional .EPublishedFileRevision desired_revision = 33 [default = k_EPublishedFileRevision_Default, (description) = "Return the data for the specified revision."];
+ optional bool return_apps = 36 [(description) = "Return list of apps the items belong to"];
+}
+
+message CPublishedFile_GetUserFiles_Response {
+ message App {
+ optional uint32 appid = 1;
+ optional string name = 2;
+ optional uint32 shortcutid = 3;
+ optional bool private = 4;
+ }
+
+ optional uint32 total = 1;
+ optional uint32 startindex = 2;
+ repeated .PublishedFileDetails publishedfiledetails = 3;
+ repeated .CPublishedFile_GetUserFiles_Response.App apps = 4;
+}
+
+message CPublishedFile_AreFilesInSubscriptionList_Request {
+ optional uint32 appid = 1;
+ repeated fixed64 publishedfileids = 2;
+ optional uint32 listtype = 3 [(description) = "See EUCMListType"];
+ optional uint32 filetype = 4 [(description) = "See EPublishedFileInfoMatchingFileType"];
+ optional uint32 workshopfiletype = 5 [(description) = "See EWorkshopFileType. If specified, overrides filetype"];
+}
+
+message CPublishedFile_AreFilesInSubscriptionList_Response {
+ message InList {
+ optional fixed64 publishedfileid = 1;
+ optional bool inlist = 2;
+ }
+
+ repeated .CPublishedFile_AreFilesInSubscriptionList_Response.InList files = 1;
+}
+
+message CPublishedFile_Update_Request {
+ optional uint32 appid = 1 [(description) = "App Id this published file belongs to."];
+ optional fixed64 publishedfileid = 2 [(description) = "Published file id of the file we'd like to update."];
+ optional string title = 3 [(description) = "(Optional) Title of the published file."];
+ optional string file_description = 4 [(description) = "(Optional) Description of the published file."];
+ optional uint32 visibility = 5 [(description) = "(Optional) Visibility of the published file."];
+ repeated string tags = 6 [(description) = "(Optional) Set of tags for the published file."];
+ optional string filename = 7 [(description) = "(Optional) Filename for the published file."];
+ optional string preview_filename = 8 [(description) = "(Optional) Preview filename for the published file."];
+ optional bool spoiler_tag = 10 [(description) = "(Optional) Whether this published file should have a spoiler tag attached to it."];
+ optional uint32 image_width = 15 [(description) = "(Optional) If this is an image file, you can specify the image width."];
+ optional uint32 image_height = 16 [(description) = "(Optional) If this is an image file, you can specify the image height."];
+}
+
+message CPublishedFile_Update_Response {
+}
+
+message CPublishedFile_Delete_Request {
+ optional fixed64 publishedfileid = 1 [(description) = "Published file id of the file we'd like to delete."];
+}
+
+message CPublishedFile_Delete_Response {
+}
+
+message CPublishedFile_GetChangeHistoryEntry_Request {
+ optional fixed64 publishedfileid = 1 [(description) = "Published file id of the file we'd like to get the change history for."];
+ optional uint32 timestamp = 2;
+ optional int32 language = 3;
+}
+
+message CPublishedFile_GetChangeHistoryEntry_Response {
+ optional string change_description = 1;
+ optional int32 language = 2;
+}
+
+message CPublishedFile_GetChangeHistory_Request {
+ optional fixed64 publishedfileid = 1 [(description) = "Published file id of the file we'd like to get the change history for."];
+ optional bool total_only = 2 [(description) = "Return the total number of changes only."];
+ optional uint32 startindex = 3;
+ optional uint32 count = 4;
+ optional int32 language = 5 [default = 0, (description) = "Desired language"];
+}
+
+message CPublishedFile_GetChangeHistory_Response {
+ message ChangeLog {
+ optional uint32 timestamp = 1;
+ optional string change_description = 2;
+ optional int32 language = 3;
+ }
+
+ repeated .CPublishedFile_GetChangeHistory_Response.ChangeLog changes = 1;
+ optional uint32 total = 2;
+}
+
+message CPublishedFile_RefreshVotingQueue_Request {
+ optional uint32 appid = 1;
+ optional uint32 matching_file_type = 2 [(description) = "EPublishedFileInfoMatchingFileType"];
+ repeated string tags = 3 [(description) = "Include files that have all the tags or any of the tags if match_all_tags is set to false."];
+ optional bool match_all_tags = 4 [default = true, (description) = "If true, then files must have all the tags specified. If false, then must have at least one of the tags specified."];
+ repeated string excluded_tags = 5 [(description) = "Exclude any files that have any of these tags."];
+ optional uint32 desired_queue_size = 6 [(description) = "Desired number of items in the voting queue. May be clamped by the server"];
+ optional .EPublishedFileRevision desired_revision = 8 [default = k_EPublishedFileRevision_Default, (description) = "Filter to items that have data for the specified revision."];
+}
+
+message CPublishedFile_RefreshVotingQueue_Response {
+}
+
+message CPublishedFile_QueryFiles_Request {
+ message KVTag {
+ optional string key = 1;
+ optional string value = 2;
+ }
+
+ message TagGroup {
+ repeated string tags = 1;
+ }
+
+ message DateRange {
+ optional uint32 timestamp_start = 1 [(description) = "(Optional) Include items with the relevant date field after this value."];
+ optional uint32 timestamp_end = 2 [(description) = "(Optional) Include items with the relevant date field before this value."];
+ }
+
+ optional uint32 query_type = 1 [(description) = "enumeration EPublishedFileQueryType in clientenums.h"];
+ optional uint32 page = 2 [(description) = "Current page"];
+ optional string cursor = 39 [(description) = "Cursor to paginate through the results (set to '*' for the first request). Prefer this over using the page parameter, as it will allow you to do deep pagination. When used, the page parameter will be ignored."];
+ optional uint32 numperpage = 3 [default = 1, (description) = "(Optional) The number of results, per page to return."];
+ optional uint32 creator_appid = 4 [(description) = "App that created the files"];
+ optional uint32 appid = 5 [(description) = "App that consumes the files"];
+ repeated string requiredtags = 6 [(description) = "Tags to match on. See match_all_tags parameter below"];
+ repeated string excludedtags = 7 [(description) = "(Optional) Tags that must NOT be present on a published file to satisfy the query."];
+ optional bool match_all_tags = 8 [default = true, (description) = "If true, then items must have all the tags specified, otherwise they must have at least one of the tags."];
+ repeated string required_flags = 9 [(description) = "Required flags that must be set on any returned items"];
+ repeated string omitted_flags = 10 [(description) = "Flags that must not be set on any returned items"];
+ optional string search_text = 11 [(description) = "Text to match in the item's title or description"];
+ optional uint32 filetype = 12 [(description) = "EPublishedFileInfoMatchingFileType"];
+ optional fixed64 child_publishedfileid = 13 [(description) = "Find all items that reference the given item."];
+ optional uint32 days = 14 [(description) = "If query_type is k_PublishedFileQueryType_RankedByTrend, then this is the number of days to get votes for [1,7]."];
+ optional bool include_recent_votes_only = 15 [(description) = "If query_type is k_PublishedFileQueryType_RankedByTrend, then limit result set just to items that have votes within the day range given"];
+ optional uint32 cache_max_age_seconds = 31 [default = 0, (description) = "Allow stale data to be returned for the specified number of seconds."];
+ optional int32 language = 33 [default = 0, (description) = "Language to search in and also what gets returned. Defaults to English."];
+ repeated .CPublishedFile_QueryFiles_Request.KVTag required_kv_tags = 34 [(description) = "Required key-value tags to match on."];
+ repeated .CPublishedFile_QueryFiles_Request.TagGroup taggroups = 42 [(description) = "(Optional) At least one of the tags must be present on a published file to satisfy the query."];
+ optional .CPublishedFile_QueryFiles_Request.DateRange date_range_created = 44 [(description) = "(Optional) Filter to items created within this range."];
+ optional .CPublishedFile_QueryFiles_Request.DateRange date_range_updated = 45 [(description) = "(Optional) Filter to items updated within this range."];
+ repeated .EContentDescriptorID excluded_content_descriptors = 46 [(description) = "(Optional) Filter out items that have these content descriptors."];
+ optional bool totalonly = 16 [(description) = "(Optional) If true, only return the total number of files that satisfy this query."];
+ optional bool ids_only = 35 [(description) = "(Optional) If true, only return the published file ids of files that satisfy this query."];
+ optional bool return_vote_data = 17 [(description) = "Return vote data"];
+ optional bool return_tags = 18 [(description) = "Return tags in the file details"];
+ optional bool return_kv_tags = 19 [(description) = "Return key-value tags in the file details"];
+ optional bool return_previews = 20 [(description) = "Return preview image and video details in the file details"];
+ optional bool return_children = 21 [(description) = "Return child item ids in the file details"];
+ optional bool return_short_description = 22 [(description) = "Populate the short_description field instead of file_description"];
+ optional bool return_for_sale_data = 30 [(description) = "Return pricing information, if applicable"];
+ optional bool return_metadata = 32 [default = false, (description) = "Populate the metadata"];
+ optional uint32 return_playtime_stats = 36 [(description) = "Return playtime stats for the specified number of days before today."];
+ optional bool return_details = 37 [(description) = "By default, if none of the other 'return_*' fields are set, only some voting details are returned. Set this to true to return the default set of details."];
+ optional bool strip_description_bbcode = 38 [(description) = "Strips BBCode from descriptions."];
+ optional .EPublishedFileRevision desired_revision = 40 [default = k_EPublishedFileRevision_Default, (description) = "Return the data for the specified revision."];
+ optional bool return_reactions = 43 [default = false, (description) = "If true, then reactions to items will be returned."];
+}
+
+message CPublishedFile_QueryFiles_Response {
+ optional uint32 total = 1 [(description) = "Number of matches found, not necessarily number of items returned"];
+ repeated .PublishedFileDetails publishedfiledetails = 2 [(description) = "Each file details will be populated, depending on what return values were requested."];
+ optional string next_cursor = 3 [(description) = "If a paging cursor was used, then this will be the next cursor to use for paging through results"];
+}
+
+message CPublishedFile_AddAppRelationship_Request {
+ optional uint64 publishedfileid = 1;
+ optional uint32 appid = 2;
+ optional uint32 relationship = 3;
+}
+
+message CPublishedFile_AddAppRelationship_Response {
+}
+
+message CPublishedFile_RemoveAppRelationship_Request {
+ optional uint64 publishedfileid = 1;
+ optional uint32 appid = 2;
+ optional uint32 relationship = 3;
+}
+
+message CPublishedFile_RemoveAppRelationship_Response {
+}
+
+message CPublishedFile_GetAppRelationships_Request {
+ optional uint64 publishedfileid = 1;
+}
+
+message CPublishedFile_GetAppRelationships_Response {
+ message AppRelationship {
+ optional uint32 appid = 1;
+ optional uint32 relationship = 2;
+ }
+
+ repeated .CPublishedFile_GetAppRelationships_Response.AppRelationship app_relationships = 3;
+}
+
+message CPublishedFile_GetAppRelationshipsBatched_Request {
+ repeated uint64 publishedfileids = 1;
+ optional uint32 filter_relationship = 2;
+}
+
+message CPublishedFile_GetAppRelationshipsBatched_Response {
+ message AppRelationship {
+ optional uint32 appid = 1;
+ optional uint32 relationship = 2;
+ }
+
+ message PublishedFileAppRelationship {
+ optional uint64 publishedfileid = 1;
+ optional uint32 result = 2;
+ repeated .CPublishedFile_GetAppRelationshipsBatched_Response.AppRelationship app_relationships = 3;
+ }
+
+ repeated .CPublishedFile_GetAppRelationshipsBatched_Response.PublishedFileAppRelationship relationships = 1;
+}
+
+message CPublishedFile_StartPlaytimeTracking_Request {
+ optional uint32 appid = 1;
+ repeated uint64 publishedfileids = 2;
+}
+
+message CPublishedFile_StartPlaytimeTracking_Response {
+}
+
+message CPublishedFile_StopPlaytimeTracking_Request {
+ optional uint32 appid = 1;
+ repeated uint64 publishedfileids = 2;
+}
+
+message CPublishedFile_StopPlaytimeTracking_Response {
+}
+
+message CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request {
+ optional uint32 appid = 1;
+}
+
+message CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response {
+}
+
+message CPublishedFile_SetPlaytimeForControllerConfigs_Request {
+ message ControllerConfigUsage {
+ optional uint64 publishedfileid = 1;
+ optional float seconds_active = 2;
+ }
+
+ optional uint32 appid = 1;
+ repeated .CPublishedFile_SetPlaytimeForControllerConfigs_Request.ControllerConfigUsage controller_config_usage = 2;
+}
+
+message CPublishedFile_SetPlaytimeForControllerConfigs_Response {
+}
+
+message CPublishedFile_AddChild_Request {
+ optional uint64 publishedfileid = 1;
+ optional uint64 child_publishedfileid = 2;
+}
+
+message CPublishedFile_AddChild_Response {
+}
+
+message CPublishedFile_RemoveChild_Request {
+ optional uint64 publishedfileid = 1;
+ optional uint64 child_publishedfileid = 2;
+}
+
+message CPublishedFile_RemoveChild_Response {
+}
+
+message CPublishedFile_GetUserVoteSummary_Request {
+ repeated fixed64 publishedfileids = 1;
+}
+
+message CPublishedFile_GetUserVoteSummary_Response {
+ message VoteSummary {
+ optional fixed64 publishedfileid = 1;
+ optional bool vote_for = 2;
+ optional bool vote_against = 3;
+ optional bool reported = 4;
+ }
+
+ repeated .CPublishedFile_GetUserVoteSummary_Response.VoteSummary summaries = 1;
+}
+
+message CPublishedFile_GetItemChanges_Request {
+ optional uint32 appid = 1;
+ optional uint32 last_time_updated = 2;
+ optional uint32 num_items_max = 3;
+}
+
+message CPublishedFile_GetItemChanges_Response {
+ message WorkshopItemInfo {
+ optional fixed64 published_file_id = 1;
+ optional uint32 time_updated = 2;
+ optional fixed64 manifest_id = 3;
+ }
+
+ optional uint32 update_time = 1;
+ repeated .CPublishedFile_GetItemChanges_Response.WorkshopItemInfo workshop_items = 2;
+}
+
+message CPublishedFile_GetContentDescriptors_Request {
+ optional fixed64 publishedfileid = 1;
+}
+
+message CPublishedFile_GetContentDescriptors_Response {
+ message ContentDescriptor {
+ optional .EContentDescriptorID descriptorid = 1 [default = k_EContentDescriptor_FrequentNudityOrSexualContent];
+ optional uint32 accountid = 2;
+ optional uint32 timestamp = 3;
+ optional bool moderator_set = 4;
+ }
+
+ repeated .CPublishedFile_GetContentDescriptors_Response.ContentDescriptor content_descriptors = 1;
+}
+
+message CPublishedFile_UpdateContentDescriptors_Request {
+ optional fixed64 publishedfileid = 1;
+ repeated .EContentDescriptorID descriptors_to_add = 2;
+ repeated .EContentDescriptorID descriptors_to_remove = 3;
+}
+
+message CPublishedFile_UpdateContentDescriptors_Response {
+}
+
+message CPublishedFile_FileSubscribed_Notification {
+ message RevisionData {
+ optional .EPublishedFileRevision revision = 1 [default = k_EPublishedFileRevision_Default];
+ optional fixed64 file_hcontent = 2 [(description) = "Manifest GID"];
+ optional uint32 rtime_updated = 3 [(description) = "Last time content updated"];
+ }
+
+ optional fixed64 published_file_id = 1 [(description) = "PublishedFileID_t for the content"];
+ optional uint32 app_id = 2;
+ optional fixed64 file_hcontent = 3 [(description) = "UGC file handle or manifest GID"];
+ optional uint32 file_size = 4;
+ optional uint32 rtime_subscribed = 5;
+ optional bool is_depot_content = 6 [(description) = "True if workshop item is delivered via Steampipe"];
+ optional uint32 rtime_updated = 7 [(description) = "Last time content updated"];
+ repeated .CPublishedFile_FileSubscribed_Notification.RevisionData revisions = 8 [(description) = "Data for each of the revisions that this item has"];
+}
+
+message CPublishedFile_FileUnsubscribed_Notification {
+ optional fixed64 published_file_id = 1 [(description) = "PublishedFileID_t for the content"];
+ optional uint32 app_id = 2;
+}
+
+message CPublishedFile_FileDeleted_Client_Notification {
+ optional fixed64 published_file_id = 1 [(description) = "PublishedFileID_t for the content"];
+ optional uint32 app_id = 2;
+}
+
+service PublishedFile {
+ option (service_description) = "A service to access published file data";
+
+ rpc Vote (.CPublishedFile_Vote_Request) returns (.CPublishedFile_Vote_Response) {
+ option (method_description) = "User wants to vote on the item";
+ }
+
+ rpc Subscribe (.CPublishedFile_Subscribe_Request) returns (.CPublishedFile_Subscribe_Response) {
+ option (method_description) = "Subscribes the user to the published file";
+ }
+
+ rpc Unsubscribe (.CPublishedFile_Unsubscribe_Request) returns (.CPublishedFile_Unsubscribe_Response) {
+ option (method_description) = "Unsubscribes the user from the published file";
+ }
+
+ rpc CanSubscribe (.CPublishedFile_CanSubscribe_Request) returns (.CPublishedFile_CanSubscribe_Response) {
+ option (method_description) = "Check if the user can subscribe to the published file";
+ }
+
+ rpc GetSubSectionData (.CPublishedFile_GetSubSectionData_Request) returns (.CPublishedFile_GetSubSectionData_Response) {
+ option (method_description) = "Get sub section data (for table of contents, a specific section, or all)";
+ }
+
+ rpc Publish (.CPublishedFile_Publish_Request) returns (.CPublishedFile_Publish_Response) {
+ option (method_description) = "Publishes a clouded user file to the Workshop.";
+ }
+
+ rpc GetDetails (.CPublishedFile_GetDetails_Request) returns (.CPublishedFile_GetDetails_Response) {
+ option (method_description) = "Retrieves information about a set of published files.";
+ }
+
+ rpc GetItemInfo (.CPublishedFile_GetItemInfo_Request) returns (.CPublishedFile_GetItemInfo_Response) {
+ option (method_description) = "Retrieves information about a set of published files.";
+ }
+
+ rpc GetUserFiles (.CPublishedFile_GetUserFiles_Request) returns (.CPublishedFile_GetUserFiles_Response) {
+ option (method_description) = "Retrieves files published by a user.";
+ }
+
+ rpc GetUserFileCount (.CPublishedFile_GetUserFiles_Request) returns (.CPublishedFile_GetUserFiles_Response) {
+ option (method_description) = "Retrieves a count of files published by a user. Uses the same messages as GetUserFiles but totalonly must be true.";
+ }
+
+ rpc AreFilesInSubscriptionList (.CPublishedFile_AreFilesInSubscriptionList_Request) returns (.CPublishedFile_AreFilesInSubscriptionList_Response) {
+ option (method_description) = "Determines which files in the given list are in a user's subscription list";
+ }
+
+ rpc Update (.CPublishedFile_Update_Request) returns (.CPublishedFile_Update_Response) {
+ option (method_description) = "Updates information about a published file.";
+ }
+
+ rpc Delete (.CPublishedFile_Delete_Request) returns (.CPublishedFile_Delete_Response) {
+ option (method_description) = "Deletes a published file.";
+ }
+
+ rpc GetChangeHistoryEntry (.CPublishedFile_GetChangeHistoryEntry_Request) returns (.CPublishedFile_GetChangeHistoryEntry_Response) {
+ option (method_description) = "Returns data on a specific change history entry for a published file";
+ }
+
+ rpc GetChangeHistory (.CPublishedFile_GetChangeHistory_Request) returns (.CPublishedFile_GetChangeHistory_Response) {
+ option (method_description) = "Returns data on the change history for a published file";
+ }
+
+ rpc RefreshVotingQueue (.CPublishedFile_RefreshVotingQueue_Request) returns (.CPublishedFile_RefreshVotingQueue_Response) {
+ option (method_description) = "Refresh the voting queue for the user";
+ }
+
+ rpc QueryFiles (.CPublishedFile_QueryFiles_Request) returns (.CPublishedFile_QueryFiles_Response) {
+ option (method_description) = "Performs a search query for published files";
+ }
+
+ rpc AddAppRelationship (.CPublishedFile_AddAppRelationship_Request) returns (.CPublishedFile_AddAppRelationship_Response) {
+ option (method_description) = "Adds a relationship between the published file and the given app";
+ }
+
+ rpc RemoveAppRelationship (.CPublishedFile_RemoveAppRelationship_Request) returns (.CPublishedFile_RemoveAppRelationship_Response) {
+ option (method_description) = "Remove a relationship between the published file and the given app";
+ }
+
+ rpc GetAppRelationships (.CPublishedFile_GetAppRelationships_Request) returns (.CPublishedFile_GetAppRelationships_Response) {
+ option (method_description) = "Returns the list of app relationships for this published file";
+ }
+
+ rpc GetAppRelationshipsBatched (.CPublishedFile_GetAppRelationshipsBatched_Request) returns (.CPublishedFile_GetAppRelationshipsBatched_Response) {
+ option (method_description) = "Returns the list of app relationships for set of published files";
+ }
+
+ rpc StartPlaytimeTracking (.CPublishedFile_StartPlaytimeTracking_Request) returns (.CPublishedFile_StartPlaytimeTracking_Response) {
+ option (method_description) = "Start usage tracking for a given set of published files";
+ }
+
+ rpc StopPlaytimeTracking (.CPublishedFile_StopPlaytimeTracking_Request) returns (.CPublishedFile_StopPlaytimeTracking_Response) {
+ option (method_description) = "Stops usage tracking for a given set of published files";
+ }
+
+ rpc StopPlaytimeTrackingForAllAppItems (.CPublishedFile_StopPlaytimeTrackingForAllAppItems_Request) returns (.CPublishedFile_StopPlaytimeTrackingForAllAppItems_Response) {
+ option (method_description) = "Stops usage tracking for all items currently tracked for the specified app";
+ }
+
+ rpc SetPlaytimeForControllerConfigs (.CPublishedFile_SetPlaytimeForControllerConfigs_Request) returns (.CPublishedFile_SetPlaytimeForControllerConfigs_Response) {
+ option (method_description) = "Stops usage tracking all controller configs for the given app and set the usage time for the for the given controller configs";
+ }
+
+ rpc AddChild (.CPublishedFile_AddChild_Request) returns (.CPublishedFile_AddChild_Response) {
+ option (method_description) = "Adds a parent->child relationship between the given items.";
+ }
+
+ rpc RemoveChild (.CPublishedFile_RemoveChild_Request) returns (.CPublishedFile_RemoveChild_Response) {
+ option (method_description) = "Removes parent->child relationship between the given items.";
+ }
+
+ rpc GetUserVoteSummary (.CPublishedFile_GetUserVoteSummary_Request) returns (.CPublishedFile_GetUserVoteSummary_Response) {
+ option (method_description) = "Get user vote summary";
+ }
+
+ rpc GetItemChanges (.CPublishedFile_GetItemChanges_Request) returns (.CPublishedFile_GetItemChanges_Response) {
+ option (method_description) = "Get list of updated items since given date";
+ }
+
+ rpc GetContentDescriptors (.CPublishedFile_GetContentDescriptors_Request) returns (.CPublishedFile_GetContentDescriptors_Response) {
+ option (method_description) = "Returns more detailed information about the content descriptors for the published file";
+ }
+
+ rpc UpdateContentDescriptors (.CPublishedFile_UpdateContentDescriptors_Request) returns (.CPublishedFile_UpdateContentDescriptors_Response) {
+ option (method_description) = "Updates content descriptors on the published file";
+ }
+}
+
+service PublishedFileClient {
+ option (service_description) = "Published file client notifications";
+ option (service_execution_site) = k_EProtoExecutionSiteSteamClient;
+
+ rpc NotifyFileSubscribed (.CPublishedFile_FileSubscribed_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from the server when a user subscribes to a file";
+ }
+
+ rpc NotifyFileUnsubscribed (.CPublishedFile_FileUnsubscribed_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from the server when a user unsubscribes from a file";
+ }
+
+ rpc NotifyFileDeleted (.CPublishedFile_FileDeleted_Client_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from the server when a published file is deleted";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_qms.steamclient.proto b/protobuf_files/orig/steam/steammessages_qms.steamclient.proto
new file mode 100644
index 00000000..e7e9746c
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_qms.steamclient.proto
@@ -0,0 +1,125 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+enum EGameSearchAction {
+ k_EGameSearchAction_None = 0;
+ k_EGameSearchAction_Accept = 1;
+ k_EGameSearchAction_Decline = 2;
+ k_EGameSearchAction_Cancel = 3;
+}
+
+enum EGameSearchResult {
+ k_EGameSearchResult_Invalid = 0;
+ k_EGameSearchResult_SearchInProgress = 1;
+ k_EGameSearchResult_SearchFailedNoHosts = 2;
+ k_EGameSearchResult_SearchGameFound = 3;
+ k_EGameSearchResult_SearchCompleteAccepted = 4;
+ k_EGameSearchResult_SearchCompleteDeclined = 5;
+ k_EGameSearchResult_SearchCanceled = 6;
+}
+
+message GameSearchParam {
+ optional string key_name = 1;
+ repeated string value = 2;
+}
+
+message CQueuedMatchmaking_SearchForGame_Request {
+ optional uint32 appid = 1;
+ optional .EGameSearchAction action = 2 [default = k_EGameSearchAction_None];
+ repeated .GameSearchParam params = 3;
+ optional uint32 player_min = 4;
+ optional uint32 player_max = 5;
+ optional fixed64 steamidlobby = 6;
+ optional uint64 searchid = 7;
+}
+
+message CQueuedMatchmaking_SearchForGame_Response {
+ optional .EGameSearchResult gamesearchresult = 1 [default = k_EGameSearchResult_Invalid];
+ optional uint64 searchid = 2;
+ optional uint32 seconds_time_estimate = 3;
+ optional uint32 poll_frequency = 4;
+ optional uint32 count_searching = 5;
+ optional uint32 players_in_match = 6;
+ optional uint32 players_accepted = 7;
+ optional string connect_string = 9;
+ optional fixed64 steamidhost = 10;
+ optional uint32 rtime_match_made = 11;
+ optional uint32 rtime_now = 12;
+ optional fixed64 steamid_canceled_search = 13;
+}
+
+message CQueuedMatchmakingGameHost_SearchForPlayers_Request {
+ optional uint32 appid = 1;
+ optional .EGameSearchAction action = 2 [default = k_EGameSearchAction_None];
+ repeated .GameSearchParam params = 3;
+ optional uint32 player_min = 4;
+ optional uint32 player_max = 5;
+ optional uint32 player_max_team_size = 6;
+ optional string connection_string = 7;
+ optional uint64 searchid = 8;
+}
+
+message PlayerFound {
+ optional fixed64 steamid = 1;
+ optional .EGameSearchAction action = 2 [default = k_EGameSearchAction_None];
+ repeated .GameSearchParam params = 3;
+ optional uint32 team_number = 4;
+}
+
+message CQueuedMatchmakingGameHost_SearchForPlayers_Response {
+ optional .EGameSearchResult gamesearchresult = 1 [default = k_EGameSearchResult_Invalid];
+ optional uint64 searchid = 2;
+ optional uint32 poll_frequency = 3;
+ optional uint64 matchid = 4;
+ repeated .PlayerFound players = 5;
+ optional uint32 rtime_match_made = 6;
+ optional uint32 rtime_now = 7;
+}
+
+message PlayerResult {
+ optional fixed64 steamid = 1;
+ optional uint32 value = 2;
+}
+
+message CQueuedMatchmakingGameHost_SubmitPlayerResult_Request {
+ optional uint32 appid = 1;
+ optional uint64 matchid = 2;
+ repeated .PlayerResult player_results = 3;
+}
+
+message CQueuedMatchmakingGameHost_SubmitPlayerResult_Response {
+}
+
+message CQueuedMatchmakingGameHost_EndGame_Request {
+ optional uint32 appid = 1;
+ optional uint64 matchid = 2;
+}
+
+message CQueuedMatchmakingGameHost_EndGame_Response {
+}
+
+service QueuedMatchmaking {
+ option (service_description) = "Queued matchmaking service";
+
+ rpc SearchForGame (.CQueuedMatchmaking_SearchForGame_Request) returns (.CQueuedMatchmaking_SearchForGame_Response) {
+ option (method_description) = "Search for a game";
+ }
+}
+
+service QueuedMatchmakingGameHost {
+ option (service_description) = "Queued matchmaking host service";
+
+ rpc SearchForPlayers (.CQueuedMatchmakingGameHost_SearchForPlayers_Request) returns (.CQueuedMatchmakingGameHost_SearchForPlayers_Response) {
+ option (method_description) = "SearchForPlayers";
+ }
+
+ rpc SubmitPlayerResult (.CQueuedMatchmakingGameHost_SubmitPlayerResult_Request) returns (.CQueuedMatchmakingGameHost_SubmitPlayerResult_Response) {
+ option (method_description) = "SubmitPlayerResult";
+ }
+
+ rpc EndGame (.CQueuedMatchmakingGameHost_EndGame_Request) returns (.CQueuedMatchmakingGameHost_EndGame_Response) {
+ option (method_description) = "EndGame";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_remoteclient.proto b/protobuf_files/orig/steam/steammessages_remoteclient.proto
new file mode 100644
index 00000000..498d7493
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_remoteclient.proto
@@ -0,0 +1,99 @@
+import "steammessages_base.proto";
+import "steammessages_remoteclient_discovery.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+message CMsgRemoteClientStatus {
+ optional uint64 client_id = 1;
+ optional uint64 instance_id = 2;
+ optional .CMsgRemoteClientBroadcastStatus status = 3;
+}
+
+message CMsgRemoteClientAppStatus {
+ message AppUpdateInfo {
+ optional fixed32 time_update_start = 1;
+ optional uint64 bytes_to_download = 2;
+ optional uint64 bytes_downloaded = 3;
+ optional uint64 bytes_to_process = 4;
+ optional uint64 bytes_processed = 5;
+ optional int32 estimated_seconds_remaining = 6 [default = -1];
+ optional int32 update_result = 7;
+ optional uint32 update_state = 8;
+ }
+
+ message ShortcutInfo {
+ optional string name = 1;
+ optional string icon = 2;
+ repeated string categories = 3;
+ optional string exepath = 4;
+ }
+
+ message AppStatus {
+ optional uint32 app_id = 1;
+ optional uint32 app_state = 2;
+ optional .CMsgRemoteClientAppStatus.AppUpdateInfo update_info = 3;
+ optional .CMsgRemoteClientAppStatus.ShortcutInfo shortcut_info = 4;
+ optional bool launch_available = 5 [default = true];
+ }
+
+ repeated .CMsgRemoteClientAppStatus.AppStatus status_updates = 1;
+}
+
+message CMsgRemoteClientStartStream {
+ message ReservedGamepad {
+ optional uint32 controller_type = 1;
+ optional uint32 controller_subtype = 2;
+ }
+
+ optional uint32 app_id = 1;
+ optional int32 environment = 2;
+ optional int32 gamepad_count = 3;
+ optional int32 launch_option = 4 [default = -1];
+ optional bool lock_parental_lock = 5 [default = false];
+ optional string unlock_parental_lock = 6;
+ optional int32 maximum_resolution_x = 7;
+ optional int32 maximum_resolution_y = 8;
+ repeated .CMsgRemoteClientStartStream.ReservedGamepad gamepads = 9;
+ optional int32 audio_channel_count = 10 [default = 2];
+ repeated .EStreamTransport supported_transport = 11;
+}
+
+message CMsgRemoteClientStartStreamResponse {
+ optional int32 e_launch_result = 1 [default = 2];
+ optional uint32 stream_port = 2;
+ repeated int32 launch_options = 3;
+ optional bytes auth_token = 4;
+ optional .EStreamTransport transport = 5 [default = k_EStreamTransportUDP];
+ optional string relay_server = 6;
+ optional string launch_task = 7;
+ optional string launch_task_detail = 8;
+ optional int32 launch_tasks_done = 9;
+ optional int32 launch_tasks_total = 10;
+}
+
+message CMsgRemoteClientPing {
+}
+
+message CMsgRemoteClientPingResponse {
+}
+
+message CMsgRemoteClientAcceptEULA {
+ repeated uint32 app_id = 1;
+ repeated string eula_id = 2;
+ repeated uint32 eula_version = 3;
+}
+
+message CMsgRemoteClientGetControllerConfig {
+ optional uint32 app_id = 1;
+ optional uint32 controller_index = 3;
+}
+
+message CMsgRemoteClientGetControllerConfigResponse {
+ optional int32 eresult = 1 [default = 2];
+ optional bytes config_vdf = 2;
+}
+
+message CMsgRemoteClientStreamingEnabled {
+ required bool enabled = 1;
+}
diff --git a/protobuf_files/orig/steam/steammessages_remoteclient_discovery.proto b/protobuf_files/orig/steam/steammessages_remoteclient_discovery.proto
new file mode 100644
index 00000000..a98a7914
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_remoteclient_discovery.proto
@@ -0,0 +1,232 @@
+option optimize_for = SPEED;
+
+enum ERemoteClientBroadcastMsg {
+ k_ERemoteClientBroadcastMsgDiscovery = 0;
+ k_ERemoteClientBroadcastMsgStatus = 1;
+ k_ERemoteClientBroadcastMsgOffline = 2;
+ k_ERemoteDeviceAuthorizationRequest = 3;
+ k_ERemoteDeviceAuthorizationResponse = 4;
+ k_ERemoteDeviceStreamingRequest = 5;
+ k_ERemoteDeviceStreamingResponse = 6;
+ k_ERemoteDeviceProofRequest = 7;
+ k_ERemoteDeviceProofResponse = 8;
+ k_ERemoteDeviceAuthorizationCancelRequest = 9;
+ k_ERemoteDeviceStreamingCancelRequest = 10;
+ k_ERemoteClientBroadcastMsgClientIDDeconflict = 11;
+ k_ERemoteDeviceStreamTransportSignal = 12;
+ k_ERemoteDeviceStreamingProgress = 13;
+ k_ERemoteDeviceAuthorizationConfirmed = 14;
+}
+
+enum ERemoteClientService {
+ k_ERemoteClientServiceNone = 0;
+ k_ERemoteClientServiceRemoteControl = 1;
+ k_ERemoteClientServiceGameStreaming = 2;
+ k_ERemoteClientServiceSiteLicense = 4;
+ k_ERemoteClientServiceContentCache = 8;
+ k_ERemoteClientServiceContentServer = 16;
+}
+
+enum ERemoteDeviceAuthorizationResult {
+ k_ERemoteDeviceAuthorizationSuccess = 0;
+ k_ERemoteDeviceAuthorizationDenied = 1;
+ k_ERemoteDeviceAuthorizationNotLoggedIn = 2;
+ k_ERemoteDeviceAuthorizationOffline = 3;
+ k_ERemoteDeviceAuthorizationBusy = 4;
+ k_ERemoteDeviceAuthorizationInProgress = 5;
+ k_ERemoteDeviceAuthorizationTimedOut = 6;
+ k_ERemoteDeviceAuthorizationFailed = 7;
+ k_ERemoteDeviceAuthorizationCanceled = 8;
+}
+
+enum EStreamDeviceFormFactor {
+ k_EStreamDeviceFormFactorUnknown = 0;
+ k_EStreamDeviceFormFactorPhone = 1;
+ k_EStreamDeviceFormFactorTablet = 2;
+ k_EStreamDeviceFormFactorComputer = 3;
+ k_EStreamDeviceFormFactorTV = 4;
+}
+
+enum EStreamTransport {
+ k_EStreamTransportNone = 0;
+ k_EStreamTransportUDP = 1;
+ k_EStreamTransportUDPRelay = 2;
+ k_EStreamTransportWebRTC = 3;
+ k_EStreamTransportSDR = 4;
+ k_EStreamTransportUDP_SNS = 5;
+ k_EStreamTransportUDPRelay_SNS = 6;
+}
+
+enum EStreamInterface {
+ k_EStreamInterfaceDefault = 0;
+ k_EStreamInterfaceRecentGames = 1;
+ k_EStreamInterfaceBigPicture = 2;
+ k_EStreamInterfaceDesktop = 3;
+}
+
+enum ERemoteDeviceStreamingResult {
+ k_ERemoteDeviceStreamingSuccess = 0;
+ k_ERemoteDeviceStreamingUnauthorized = 1;
+ k_ERemoteDeviceStreamingScreenLocked = 2;
+ k_ERemoteDeviceStreamingFailed = 3;
+ k_ERemoteDeviceStreamingBusy = 4;
+ k_ERemoteDeviceStreamingInProgress = 5;
+ k_ERemoteDeviceStreamingCanceled = 6;
+ k_ERemoteDeviceStreamingDriversNotInstalled = 7;
+ k_ERemoteDeviceStreamingDisabled = 8;
+ k_ERemoteDeviceStreamingBroadcastingActive = 9;
+ k_ERemoteDeviceStreamingVRActive = 10;
+ k_ERemoteDeviceStreamingPINRequired = 11;
+ k_ERemoteDeviceStreamingTransportUnavailable = 12;
+ k_ERemoteDeviceStreamingInvisible = 13;
+ k_ERemoteDeviceStreamingGameLaunchFailed = 14;
+}
+
+message CMsgRemoteClientBroadcastHeader {
+ optional uint64 client_id = 1;
+ optional .ERemoteClientBroadcastMsg msg_type = 2 [default = k_ERemoteClientBroadcastMsgDiscovery];
+ optional uint64 instance_id = 3;
+ optional uint64 device_id = 4;
+ optional bytes device_token = 5;
+}
+
+message CMsgRemoteClientBroadcastStatus {
+ message User {
+ optional fixed64 steamid = 1;
+ optional uint32 auth_key_id = 2;
+ }
+
+ optional int32 version = 1;
+ optional int32 min_version = 2;
+ optional uint32 connect_port = 3;
+ optional string hostname = 4;
+ optional uint32 enabled_services = 6;
+ optional int32 ostype = 7 [default = 0];
+ optional bool is64bit = 8;
+ repeated .CMsgRemoteClientBroadcastStatus.User users = 9;
+ optional int32 euniverse = 11;
+ optional uint32 timestamp = 12;
+ optional bool screen_locked = 13;
+ optional bool games_running = 14;
+ repeated string mac_addresses = 15;
+ optional uint32 download_lan_peer_group = 16;
+ optional bool broadcasting_active = 17;
+ optional bool vr_active = 18;
+ optional uint32 content_cache_port = 19;
+ repeated string ip_addresses = 20;
+ optional string public_ip_address = 21;
+ optional bool remoteplay_active = 22;
+ optional uint32 supported_services = 23;
+ optional bool steam_deck = 24;
+ optional uint64 steam_version = 25;
+}
+
+message CMsgRemoteClientBroadcastDiscovery {
+ optional uint32 seq_num = 1;
+ repeated uint64 client_ids = 2;
+}
+
+message CMsgRemoteClientBroadcastClientIDDeconflict {
+ repeated uint64 client_ids = 2;
+}
+
+message CMsgRemoteDeviceAuthorizationRequest {
+ message CKeyEscrow_Ticket {
+ optional bytes password = 1;
+ optional uint64 identifier = 2;
+ optional bytes payload = 3;
+ optional uint32 timestamp = 4;
+ optional .CMsgRemoteDeviceAuthorizationRequest.EKeyEscrowUsage usage = 5 [default = k_EKeyEscrowUsageStreamingDevice];
+ optional string device_name = 6;
+ optional string device_model = 7;
+ optional string device_serial = 8;
+ optional uint32 device_provisioning_id = 9;
+ }
+
+ enum EKeyEscrowUsage {
+ k_EKeyEscrowUsageStreamingDevice = 0;
+ }
+
+ required bytes device_token = 1;
+ optional string device_name = 2;
+ required bytes encrypted_request = 3;
+ optional bytes auth_key = 4;
+}
+
+message CMsgRemoteDeviceAuthorizationCancelRequest {
+}
+
+message CMsgRemoteDeviceAuthorizationResponse {
+ required .ERemoteDeviceAuthorizationResult result = 1 [default = k_ERemoteDeviceAuthorizationSuccess];
+ optional fixed64 steamid = 2;
+ optional bytes auth_key = 3;
+ optional bytes device_token = 4;
+}
+
+message CMsgRemoteDeviceAuthorizationConfirmed {
+ required .ERemoteDeviceAuthorizationResult result = 1 [default = k_ERemoteDeviceAuthorizationSuccess];
+}
+
+message CMsgRemoteDeviceStreamingRequest {
+ message ReservedGamepad {
+ optional uint32 controller_type = 1;
+ optional uint32 controller_subtype = 2;
+ }
+
+ required uint32 request_id = 1;
+ optional int32 maximum_resolution_x = 2;
+ optional int32 maximum_resolution_y = 3;
+ optional int32 audio_channel_count = 4 [default = 2];
+ optional string device_version = 5;
+ optional bool stream_desktop = 6;
+ optional bytes device_token = 7;
+ optional bytes pin = 8;
+ optional bool enable_video_streaming = 9 [default = true];
+ optional bool enable_audio_streaming = 10 [default = true];
+ optional bool enable_input_streaming = 11 [default = true];
+ optional bool network_test = 12;
+ optional uint64 client_id = 13;
+ repeated .EStreamTransport supported_transport = 14;
+ optional bool restricted = 15;
+ optional .EStreamDeviceFormFactor form_factor = 16 [default = k_EStreamDeviceFormFactorUnknown];
+ optional int32 gamepad_count = 17;
+ repeated .CMsgRemoteDeviceStreamingRequest.ReservedGamepad gamepads = 18;
+ optional uint64 gameid = 19;
+ optional .EStreamInterface stream_interface = 20 [default = k_EStreamInterfaceDefault];
+}
+
+message CMsgRemoteDeviceStreamingCancelRequest {
+ required uint32 request_id = 1;
+}
+
+message CMsgRemoteDeviceStreamingProgress {
+ required uint32 request_id = 1;
+ optional float progress = 2;
+}
+
+message CMsgRemoteDeviceStreamingResponse {
+ required uint32 request_id = 1;
+ required .ERemoteDeviceStreamingResult result = 2 [default = k_ERemoteDeviceStreamingSuccess];
+ optional uint32 port = 3;
+ optional bytes encrypted_session_key = 4;
+ optional .EStreamTransport transport = 6 [default = k_EStreamTransportUDP];
+ optional string relay_server = 7;
+ optional string cert = 8;
+}
+
+message CMsgRemoteDeviceProofRequest {
+ required bytes challenge = 1;
+ optional uint32 request_id = 2;
+ optional bool update_secret = 3;
+}
+
+message CMsgRemoteDeviceProofResponse {
+ required bytes response = 1;
+ optional uint32 request_id = 2;
+ optional bool updated_secret = 3;
+}
+
+message CMsgRemoteDeviceStreamTransportSignal {
+ optional bytes token = 1;
+ optional bytes payload = 2;
+}
diff --git a/protobuf_files/orig/steam/steammessages_remoteclient_service.steamclient.proto b/protobuf_files/orig/steam/steammessages_remoteclient_service.steamclient.proto
new file mode 100644
index 00000000..c5cf628d
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_remoteclient_service.steamclient.proto
@@ -0,0 +1,90 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+import "steammessages_remoteclient_service_messages.proto";
+
+option cc_generic_services = true;
+
+service RemoteClient {
+ option (service_description) = "Methods for Steam remote client operations";
+
+ rpc GetPairingInfo (.CRemoteClient_GetPairingInfo_Request) returns (.CRemoteClient_GetPairingInfo_Response) {
+ option (method_description) = "Get pairing info for an entered PIN";
+ }
+
+ rpc NotifyOnline (.CRemoteClient_Online_Notification) returns (.NoResponse) {
+ option (method_description) = "Let the service know we're available for status listeners";
+ }
+
+ rpc NotifyReplyPacket (.CRemoteClient_ReplyPacket_Notification) returns (.NoResponse) {
+ option (method_description) = "Send a reply to a remote client";
+ }
+
+ rpc AllocateTURNServer (.CRemoteClient_AllocateTURNServer_Request) returns (.CRemoteClient_AllocateTURNServer_Response) {
+ option (method_description) = "Allocate a TURN server for a streaming session";
+ }
+
+ rpc AllocateRelayServer (.CRemoteClient_AllocateRelayServer_Request) returns (.CRemoteClient_AllocateRelayServer_Response) {
+ option (method_description) = "Allocate a UDP relay server for a streaming session";
+ }
+
+ rpc AllocateSDR (.CRemoteClient_AllocateSDR_Request) returns (.CRemoteClient_AllocateSDR_Response) {
+ option (method_description) = "Allocate SDR resources for an app";
+ }
+
+ rpc SendSteamBroadcastPacket (.CRemoteClient_SteamBroadcast_Notification) returns (.NoResponse) {
+ option (method_description) = "Broadcast a packet to remote Steam clients";
+ }
+
+ rpc SendSteamToSteamPacket (.CRemoteClient_SteamToSteam_Notification) returns (.NoResponse) {
+ option (method_description) = "Send a packet to a remote Steam client";
+ }
+
+ rpc SendRemotePlaySessionStarted (.CRemotePlay_SessionStarted_Request) returns (.CRemotePlay_SessionStarted_Response) {
+ option (method_description) = "Let the server know that we started a Remote Play session";
+ }
+
+ rpc SendRemotePlaySessionStopped (.CRemotePlay_SessionStopped_Notification) returns (.NoResponse) {
+ option (method_description) = "Let the server know that we stopped a Remote Play session";
+ }
+
+ rpc SendRemotePlayTogetherPacket (.CRemotePlayTogether_Notification) returns (.NoResponse) {
+ option (method_description) = "Send a Remote Play Together packet to a Steam client";
+ }
+
+ rpc CreateRemotePlayTogetherInvitation (.CRemoteClient_CreateRemotePlayTogetherInvitation_Request) returns (.CRemoteClient_CreateRemotePlayTogetherInvitation_Response) {
+ option (method_description) = "Create a Remote Play Together invitation";
+ }
+
+ rpc DeleteRemotePlayTogetherInvitation (.CRemoteClient_DeleteRemotePlayTogetherInvitation_Request) returns (.CRemoteClient_DeleteRemotePlayTogetherInvitation_Response) {
+ option (method_description) = "Delete a Remote Play Together invitation";
+ }
+}
+
+service RemoteClientSteamClient {
+ option (service_description) = "Methods for Steam remote client operations";
+ option (service_execution_site) = k_EProtoExecutionSiteSteamClient;
+
+ rpc NotifyRegisterStatusUpdate (.CRemoteClient_RegisterStatusUpdate_Notification) returns (.NoResponse) {
+ option (method_description) = "Register for status updates with a Steam client";
+ }
+
+ rpc NotifyUnregisterStatusUpdate (.CRemoteClient_UnregisterStatusUpdate_Notification) returns (.NoResponse) {
+ option (method_description) = "Unregister for status updates with a Steam client";
+ }
+
+ rpc NotifyRemotePacket (.CRemoteClient_RemotePacket_Notification) returns (.NoResponse) {
+ option (method_description) = "Send a packet to a Steam client";
+ }
+
+ rpc NotifySteamBroadcastPacket (.CRemoteClient_SteamBroadcast_Notification) returns (.NoResponse) {
+ option (method_description) = "Broadcast a packet to remote Steam clients";
+ }
+
+ rpc NotifySteamToSteamPacket (.CRemoteClient_SteamToSteam_Notification) returns (.NoResponse) {
+ option (method_description) = "Send a packet to a Steam client from a remote Steam client";
+ }
+
+ rpc NotifyRemotePlayTogetherPacket (.CRemotePlayTogether_Notification) returns (.NoResponse) {
+ option (method_description) = "Send a Remote Play Together packet to a Steam client";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_remoteclient_service_messages.proto b/protobuf_files/orig/steam/steammessages_remoteclient_service_messages.proto
new file mode 100644
index 00000000..85620f4b
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_remoteclient_service_messages.proto
@@ -0,0 +1,198 @@
+message CRemoteClient_CreateSession_Request {
+}
+
+message CRemoteClient_CreateSession_Response {
+ optional fixed64 session_id = 1;
+ optional int32 euniverse = 2;
+}
+
+message CRemoteClient_StartPairing_Request {
+ optional fixed64 session_id = 1;
+}
+
+message CRemoteClient_StartPairing_Response {
+ optional uint32 pin = 1;
+}
+
+message CRemoteClient_SetPairingInfo_Request {
+ optional fixed64 session_id = 1;
+ optional fixed64 device_id = 2;
+ optional bytes request = 3;
+}
+
+message CRemoteClient_SetPairingInfo_Response {
+}
+
+message CRemoteClient_GetPairingInfo_Request {
+ optional uint32 pin = 1;
+}
+
+message CRemoteClient_GetPairingInfo_Response {
+ optional fixed64 session_id = 1;
+ optional fixed64 device_id = 2;
+ optional bytes request = 3;
+}
+
+message CRemoteClient_CancelPairing_Request {
+ optional fixed64 session_id = 1;
+}
+
+message CRemoteClient_CancelPairing_Response {
+}
+
+message CRemoteClient_RegisterStatusUpdate_Notification {
+ optional fixed64 session_id = 1;
+ optional fixed64 steamid = 2;
+ optional fixed64 device_id = 3;
+}
+
+message CRemoteClient_UnregisterStatusUpdate_Notification {
+ optional fixed64 session_id = 1;
+ optional fixed64 steamid = 2;
+}
+
+message CRemoteClient_Online_Notification {
+ optional fixed64 steamid = 1;
+ optional fixed64 remote_client_id = 2;
+}
+
+message CRemoteClient_RemotePacket_Notification {
+ optional fixed64 session_id = 1;
+ optional fixed64 steamid = 2;
+ optional bytes payload = 4;
+}
+
+message CRemoteClient_ReplyPacket_Notification {
+ optional fixed64 session_id = 1;
+ optional bytes payload = 2;
+}
+
+message CRemoteClient_GetReplies_Request {
+ optional fixed64 session_id = 1;
+}
+
+message CRemoteClient_GetReplies_Response {
+ repeated bytes payload = 1;
+}
+
+message CRemoteClient_AllocateTURNServer_Request {
+ optional uint32 cellid = 1;
+ optional string credentials = 2;
+}
+
+message CRemoteClient_AllocateTURNServer_Response {
+ optional string turn_server = 1;
+}
+
+message CRemoteClient_AllocateRelayServer_Request {
+ optional uint32 cellid = 1;
+ optional string credentials = 2;
+}
+
+message CRemoteClient_AllocateRelayServer_Response {
+ optional string relay_server = 1;
+}
+
+message CRemoteClient_AllocateSDR_Request {
+ optional uint32 appid = 1;
+}
+
+message CRemoteClient_AllocateSDR_Response {
+}
+
+message CRemoteClient_SteamBroadcast_Notification {
+ optional fixed64 steamid = 1;
+ optional fixed64 clientid = 2;
+ optional bytes payload = 3;
+}
+
+message CRemoteClient_SteamToSteam_Notification {
+ optional fixed64 steamid = 1;
+ optional fixed64 src_clientid = 2;
+ optional fixed64 dst_clientid = 3;
+ optional uint32 secretid = 4;
+ optional bytes encrypted_payload = 5;
+}
+
+message CRemotePlay_SessionStarted_Request {
+ optional uint32 host_account_id = 1;
+ optional uint32 client_account_id = 2;
+ optional uint32 appid = 3;
+ optional int32 device_form_factor = 4;
+ optional bool remote_play_together = 5;
+ optional bool guest_session = 6;
+}
+
+message CRemotePlay_SessionStarted_Response {
+ optional fixed64 record_id = 1;
+}
+
+message CRemotePlay_SessionStopped_Notification {
+ optional fixed64 record_id = 1;
+ optional bool used_x264 = 2;
+ optional bool used_h264 = 3;
+ optional bool used_hevc = 4;
+}
+
+message CRemotePlayTogether_Notification {
+ message Player {
+ optional fixed64 steamid = 1;
+ optional uint32 guestid = 2;
+ optional bytes avatar_hash = 3;
+ optional bool keyboard_enabled = 4;
+ optional bool mouse_enabled = 5;
+ optional bool controller_enabled = 6;
+ }
+
+ message ControllerSlot_obsolete {
+ optional uint32 slotid = 1;
+ optional fixed64 steamid = 2;
+ }
+
+ message ControllerSlot {
+ optional uint32 slotid = 1;
+ optional .CRemotePlayTogether_Notification.Player player = 2;
+ optional int32 controller_type = 3;
+ }
+
+ message GroupUpdated {
+ optional fixed64 host_steamid = 1;
+ optional fixed64 host_clientid = 2;
+ repeated fixed64 players_obsolete = 3;
+ optional fixed64 host_gameid = 4;
+ repeated .CRemotePlayTogether_Notification.ControllerSlot_obsolete controller_slots_obsolete = 5;
+ optional bool has_new_players = 6;
+ repeated .CRemotePlayTogether_Notification.Player player_slots = 7;
+ repeated .CRemotePlayTogether_Notification.ControllerSlot controller_slots = 8;
+ }
+
+ optional fixed64 steamid = 1;
+
+ oneof Message {
+ .CRemotePlayTogether_Notification.GroupUpdated group_updated = 2;
+ }
+}
+
+message CRemoteClient_CreateRemotePlayTogetherInvitation_Request {
+ optional uint32 appid = 1;
+ optional string launch_parameters = 2;
+}
+
+message CRemoteClient_CreateRemotePlayTogetherInvitation_Response {
+ optional string invitation_code = 1;
+}
+
+message CRemoteClient_DeleteRemotePlayTogetherInvitation_Request {
+ optional string invitation_code = 1;
+}
+
+message CRemoteClient_DeleteRemotePlayTogetherInvitation_Response {
+}
+
+message CRemoteClient_LookupRemotePlayTogetherInvitation_Request {
+ optional string invitation_code = 1;
+}
+
+message CRemoteClient_LookupRemotePlayTogetherInvitation_Response {
+ optional string invitation_url = 1;
+}
diff --git a/protobuf_files/orig/steam/steammessages_remoteplay.proto b/protobuf_files/orig/steam/steammessages_remoteplay.proto
new file mode 100644
index 00000000..d0c79b32
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_remoteplay.proto
@@ -0,0 +1,943 @@
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+enum EStreamChannel {
+ k_EStreamChannelInvalid = -1;
+ k_EStreamChannelDiscovery = 0;
+ k_EStreamChannelControl = 1;
+ k_EStreamChannelStats = 2;
+ k_EStreamChannelDataChannelStart = 3;
+}
+
+enum EStreamDiscoveryMessage {
+ k_EStreamDiscoveryPingRequest = 1;
+ k_EStreamDiscoveryPingResponse = 2;
+}
+
+enum EStreamControlMessage {
+ k_EStreamControlAuthenticationRequest = 1;
+ k_EStreamControlAuthenticationResponse = 2;
+ k_EStreamControlNegotiationInit = 3;
+ k_EStreamControlNegotiationSetConfig = 4;
+ k_EStreamControlNegotiationComplete = 5;
+ k_EStreamControlClientHandshake = 6;
+ k_EStreamControlServerHandshake = 7;
+ k_EStreamControlStartNetworkTest = 8;
+ k_EStreamControlKeepAlive = 9;
+ k_EStreamControl_LAST_SETUP_MESSAGE = 15;
+ k_EStreamControlStartAudioData = 50;
+ k_EStreamControlStopAudioData = 51;
+ k_EStreamControlStartVideoData = 52;
+ k_EStreamControlStopVideoData = 53;
+ k_EStreamControlInputMouseMotion = 54;
+ k_EStreamControlInputMouseWheel = 55;
+ k_EStreamControlInputMouseDown = 56;
+ k_EStreamControlInputMouseUp = 57;
+ k_EStreamControlInputKeyDown = 58;
+ k_EStreamControlInputKeyUp = 59;
+ k_EStreamControlInputGamepadAttached_OBSOLETE = 60;
+ k_EStreamControlInputGamepadEvent_OBSOLETE = 61;
+ k_EStreamControlInputGamepadDetached_OBSOLETE = 62;
+ k_EStreamControlShowCursor = 63;
+ k_EStreamControlHideCursor = 64;
+ k_EStreamControlSetCursor = 65;
+ k_EStreamControlGetCursorImage = 66;
+ k_EStreamControlSetCursorImage = 67;
+ k_EStreamControlDeleteCursor = 68;
+ k_EStreamControlSetTargetFramerate = 69;
+ k_EStreamControlInputLatencyTest = 70;
+ k_EStreamControlGamepadRumble_OBSOLETE = 71;
+ k_EStreamControlOverlayEnabled = 74;
+ k_EStreamControlInputControllerAttached_OBSOLETE = 75;
+ k_EStreamControlInputControllerState_OBSOLETE = 76;
+ k_EStreamControlTriggerHapticPulse_OBSOLETE = 77;
+ k_EStreamControlInputControllerDetached_OBSOLETE = 78;
+ k_EStreamControlVideoDecoderInfo = 80;
+ k_EStreamControlSetTitle = 81;
+ k_EStreamControlSetIcon = 82;
+ k_EStreamControlQuitRequest = 83;
+ k_EStreamControlSetQoS = 87;
+ k_EStreamControlInputControllerWirelessPresence_OBSOLETE = 88;
+ k_EStreamControlSetGammaRamp = 89;
+ k_EStreamControlVideoEncoderInfo = 90;
+ k_EStreamControlInputControllerStateHID_OBSOLETE = 93;
+ k_EStreamControlSetTargetBitrate = 94;
+ k_EStreamControlSetControllerPairingEnabled_OBSOLETE = 95;
+ k_EStreamControlSetControllerPairingResult_OBSOLETE = 96;
+ k_EStreamControlTriggerControllerDisconnect_OBSOLETE = 97;
+ k_EStreamControlSetActivity = 98;
+ k_EStreamControlSetStreamingClientConfig = 99;
+ k_EStreamControlSystemSuspend = 100;
+ k_EStreamControlSetControllerSettings_OBSOLETE = 101;
+ k_EStreamControlVirtualHereRequest = 102;
+ k_EStreamControlVirtualHereReady = 103;
+ k_EStreamControlVirtualHereShareDevice = 104;
+ k_EStreamControlSetSpectatorMode = 105;
+ k_EStreamControlRemoteHID = 106;
+ k_EStreamControlStartMicrophoneData = 107;
+ k_EStreamControlStopMicrophoneData = 108;
+ k_EStreamControlInputText = 109;
+ k_EStreamControlTouchConfigActive = 110;
+ k_EStreamControlGetTouchConfigData = 111;
+ k_EStreamControlSetTouchConfigData = 112;
+ k_EStreamControlSaveTouchConfigLayout = 113;
+ k_EStreamControlTouchActionSetActive = 114;
+ k_EStreamControlGetTouchIconData = 115;
+ k_EStreamControlSetTouchIconData = 116;
+ k_EStreamControlInputTouchFingerDown = 117;
+ k_EStreamControlInputTouchFingerMotion = 118;
+ k_EStreamControlInputTouchFingerUp = 119;
+ k_EStreamControlSetCaptureSize = 120;
+ k_EStreamControlSetFlashState = 121;
+ k_EStreamControlPause = 122;
+ k_EStreamControlResume = 123;
+ k_EStreamControlEnableHighResCapture = 124;
+ k_EStreamControlDisableHighResCapture = 125;
+ k_EStreamControlToggleMagnification = 126;
+ k_EStreamControlSetCapslock = 127;
+ k_EStreamControlSetKeymap = 128;
+ k_EStreamControlStopRequest = 129;
+ k_EStreamControlTouchActionSetLayerAdded = 130;
+ k_EStreamControlTouchActionSetLayerRemoved = 131;
+ k_EStreamControlRemotePlayTogetherGroupUpdate = 132;
+ k_EStreamControlSetInputTemporarilyDisabled = 133;
+ k_EStreamControlSetQualityOverride = 134;
+ k_EStreamControlSetBitrateOverride = 135;
+ k_EStreamControlShowOnScreenKeyboard = 136;
+ k_EStreamControlControllerConfigMsg = 137;
+ k_EStreamControlControllerPersonalizationUpdate = 138;
+ k_EStreamControlEnableNeptuneData = 139;
+ k_EStreamControlDisableNeptuneData = 140;
+ k_EStreamControlStartNeptuneData = 141;
+ k_EStreamControlStopNeptuneData = 142;
+}
+
+enum EStreamVersion {
+ k_EStreamVersionNone = 0;
+ k_EStreamVersionCurrent = 1;
+}
+
+enum EStreamAudioCodec {
+ k_EStreamAudioCodecNone = 0;
+ k_EStreamAudioCodecRaw = 1;
+ k_EStreamAudioCodecVorbis = 2;
+ k_EStreamAudioCodecOpus = 3;
+ k_EStreamAudioCodecMP3 = 4;
+ k_EStreamAudioCodecAAC = 5;
+}
+
+enum EStreamVideoCodec {
+ k_EStreamVideoCodecNone = 0;
+ k_EStreamVideoCodecRaw = 1;
+ k_EStreamVideoCodecVP8 = 2;
+ k_EStreamVideoCodecVP9 = 3;
+ k_EStreamVideoCodecH264 = 4;
+ k_EStreamVideoCodecHEVC = 5;
+ k_EStreamVideoCodecORBX1 = 6;
+ k_EStreamVideoCodecORBX2 = 7;
+}
+
+enum EStreamQualityPreference {
+ k_EStreamQualityAutomatic = -1;
+ k_EStreamQualityFast = 1;
+ k_EStreamQualityBalanced = 2;
+ k_EStreamQualityBeautiful = 3;
+}
+
+enum EStreamBitrate {
+ k_EStreamBitrateAutodetect = -1;
+ k_EStreamBitrateUnlimited = 0;
+}
+
+enum EStreamColorspace {
+ k_EStreamColorspace_Unknown = 0;
+ k_EStreamColorspace_BT601 = 1;
+ k_EStreamColorspace_BT601_Full = 2;
+ k_EStreamColorspace_BT709 = 3;
+ k_EStreamColorspace_BT709_Full = 4;
+}
+
+enum EStreamP2PScope {
+ k_EStreamP2PScopeAutomatic = 0;
+ k_EStreamP2PScopeDisabled = 1;
+ k_EStreamP2PScopeOnlyMe = 2;
+ k_EStreamP2PScopeFriends = 3;
+ k_EStreamP2PScopeEveryone = 4;
+}
+
+enum EStreamHostPlayAudioPreference {
+ k_EStreamHostPlayAudioDefault = 0;
+ k_EStreamHostPlayAudioAlways = 1;
+}
+
+enum EStreamingDataType {
+ k_EStreamingAudioData = 0;
+ k_EStreamingVideoData = 1;
+ k_EStreamingMicrophoneData = 2;
+ k_EStreamingNeptuneData = 3;
+}
+
+enum EStreamMouseButton {
+ k_EStreamMouseButtonLeft = 1;
+ k_EStreamMouseButtonRight = 2;
+ k_EStreamMouseButtonMiddle = 16;
+ k_EStreamMouseButtonX1 = 32;
+ k_EStreamMouseButtonX2 = 64;
+ k_EStreamMouseButtonUnknown = 4096;
+}
+
+enum EStreamMouseWheelDirection {
+ k_EStreamMouseWheelUp = 120;
+ k_EStreamMouseWheelDown = -120;
+ k_EStreamMouseWheelLeft = 3;
+ k_EStreamMouseWheelRight = 4;
+}
+
+enum EStreamFramerateLimiter {
+ k_EStreamFramerateSlowCapture = 1;
+ k_EStreamFramerateSlowConvert = 2;
+ k_EStreamFramerateSlowEncode = 4;
+ k_EStreamFramerateSlowNetwork = 8;
+ k_EStreamFramerateSlowDecode = 16;
+ k_EStreamFramerateSlowGame = 32;
+ k_EStreamFramerateSlowDisplay = 64;
+}
+
+enum EStreamActivity {
+ k_EStreamActivityIdle = 1;
+ k_EStreamActivityGame = 2;
+ k_EStreamActivityDesktop = 3;
+ k_EStreamActivitySecureDesktop = 4;
+ k_EStreamActivityMusic = 5;
+}
+
+enum EStreamDataMessage {
+ k_EStreamDataPacket = 1;
+ k_EStreamDataLost = 2;
+}
+
+enum EAudioFormat {
+ k_EAudioFormatNone = 0;
+ k_EAudioFormat16BitLittleEndian = 1;
+ k_EAudioFormatFloat = 2;
+}
+
+enum EVideoFormat {
+ k_EVideoFormatNone = 0;
+ k_EVideoFormatYV12 = 1;
+ k_EVideoFormatAccel = 2;
+}
+
+enum EStreamStatsMessage {
+ k_EStreamStatsFrameEvents = 1;
+ k_EStreamStatsDebugDump = 2;
+ k_EStreamStatsLogMessage = 3;
+ k_EStreamStatsLogUploadBegin = 4;
+ k_EStreamStatsLogUploadData = 5;
+ k_EStreamStatsLogUploadComplete = 6;
+}
+
+enum EStreamFrameEvent {
+ k_EStreamInputEventStart = 0;
+ k_EStreamInputEventSend = 1;
+ k_EStreamInputEventRecv = 2;
+ k_EStreamInputEventQueued = 3;
+ k_EStreamInputEventHandled = 4;
+ k_EStreamFrameEventStart = 5;
+ k_EStreamFrameEventCaptureBegin = 6;
+ k_EStreamFrameEventCaptureEnd = 7;
+ k_EStreamFrameEventConvertBegin = 8;
+ k_EStreamFrameEventConvertEnd = 9;
+ k_EStreamFrameEventEncodeBegin = 10;
+ k_EStreamFrameEventEncodeEnd = 11;
+ k_EStreamFrameEventSend = 12;
+ k_EStreamFrameEventRecv = 13;
+ k_EStreamFrameEventDecodeBegin = 14;
+ k_EStreamFrameEventDecodeEnd = 15;
+ k_EStreamFrameEventUploadBegin = 16;
+ k_EStreamFrameEventUploadEnd = 17;
+ k_EStreamFrameEventComplete = 18;
+}
+
+enum EStreamFrameResult {
+ k_EStreamFrameResultPending = 0;
+ k_EStreamFrameResultDisplayed = 1;
+ k_EStreamFrameResultDroppedNetworkSlow = 2;
+ k_EStreamFrameResultDroppedNetworkLost = 3;
+ k_EStreamFrameResultDroppedDecodeSlow = 4;
+ k_EStreamFrameResultDroppedDecodeCorrupt = 5;
+ k_EStreamFrameResultDroppedLate = 6;
+ k_EStreamFrameResultDroppedReset = 7;
+}
+
+enum EFrameAccumulatedStat {
+ k_EFrameStatFPS = 0;
+ k_EFrameStatCaptureDurationMS = 1;
+ k_EFrameStatConvertDurationMS = 2;
+ k_EFrameStatEncodeDurationMS = 3;
+ k_EFrameStatSteamDurationMS = 4;
+ k_EFrameStatServerDurationMS = 5;
+ k_EFrameStatNetworkDurationMS = 6;
+ k_EFrameStatDecodeDurationMS = 7;
+ k_EFrameStatDisplayDurationMS = 8;
+ k_EFrameStatClientDurationMS = 9;
+ k_EFrameStatFrameDurationMS = 10;
+ k_EFrameStatInputLatencyMS = 11;
+ k_EFrameStatGameLatencyMS = 12;
+ k_EFrameStatRoundTripLatencyMS = 13;
+ k_EFrameStatPingTimeMS = 14;
+ k_EFrameStatServerBitrateKbitPerSec = 15;
+ k_EFrameStatClientBitrateKbitPerSec = 16;
+ k_EFrameStatLinkBandwidthKbitPerSec = 17;
+ k_EFrameStatPacketLossPercentage = 18;
+}
+
+enum ELogFileType {
+ k_ELogFileSystemBoot = 0;
+ k_ELogFileSystemReset = 1;
+ k_ELogFileSystemDebug = 2;
+}
+
+enum EStreamControllerConfigMsg {
+ k_EStreamControllerConfigMsg_RequestConfigsForApp = 0;
+ k_EStreamControllerConfigMsg_ConfigResponse = 1;
+ k_EStreamControllerConfigMsg_PersonalizationResponse = 2;
+ k_EStreamControllerConfigMsg_ActiveConfigChange = 3;
+ k_EStreamControllerConfigMsg_RequestActiveConfig = 4;
+}
+
+message CDiscoveryPingRequest {
+ optional uint32 sequence = 1;
+ optional uint32 packet_size_requested = 2;
+}
+
+message CDiscoveryPingResponse {
+ optional uint32 sequence = 1;
+ optional uint32 packet_size_received = 2;
+}
+
+message CStreamingClientHandshakeInfo {
+ optional int32 network_test = 2;
+}
+
+message CClientHandshakeMsg {
+ required .CStreamingClientHandshakeInfo info = 1;
+}
+
+message CStreamingServerHandshakeInfo {
+ optional int32 mtu = 1;
+}
+
+message CServerHandshakeMsg {
+ required .CStreamingServerHandshakeInfo info = 1;
+}
+
+message CAuthenticationRequestMsg {
+ optional bytes token = 1;
+ optional .EStreamVersion version = 2 [default = k_EStreamVersionNone];
+ optional uint64 steamid = 3;
+}
+
+message CAuthenticationResponseMsg {
+ enum AuthenticationResult {
+ SUCCEEDED = 0;
+ FAILED = 1;
+ }
+
+ optional .CAuthenticationResponseMsg.AuthenticationResult result = 1 [default = SUCCEEDED];
+ optional .EStreamVersion version = 2 [default = k_EStreamVersionNone];
+}
+
+message CKeepAliveMsg {
+}
+
+message CStartNetworkTestMsg {
+ optional uint32 frames = 1;
+ optional uint32 framerate = 2;
+ optional uint32 bitrate_kbps = 3;
+ optional uint32 burst_bitrate_kbps = 4;
+ optional bool bandwidth_test = 5;
+}
+
+message CStreamVideoMode {
+ required uint32 width = 1;
+ required uint32 height = 2;
+ optional uint32 refresh_rate = 3;
+ optional uint32 refresh_rate_numerator = 4;
+ optional uint32 refresh_rate_denominator = 5;
+}
+
+message CStreamingClientCaps {
+ optional string system_info = 1;
+ optional bool system_can_suspend = 2;
+ optional int32 maximum_decode_bitrate_kbps = 3;
+ optional int32 maximum_burst_bitrate_kbps = 4;
+ optional bool supports_video_hevc = 5;
+ optional bool disable_steam_store = 6;
+ optional bool disable_client_cursor = 7;
+ optional bool disable_intel_hardware_encoding = 8;
+ optional bool disable_amd_hardware_encoding = 9;
+ optional bool disable_nvidia_hardware_encoding = 10;
+ optional int32 form_factor = 11;
+ optional bool has_on_screen_keyboard = 12;
+ repeated .EStreamColorspace supported_colorspaces = 13;
+}
+
+message CStreamingClientConfig {
+ optional .EStreamQualityPreference quality = 1 [default = k_EStreamQualityBalanced];
+ optional uint32 maximum_resolution_x = 2;
+ optional uint32 maximum_resolution_y = 3;
+ optional uint32 maximum_framerate_numerator = 4;
+ optional uint32 maximum_framerate_denominator = 5;
+ optional int32 maximum_bitrate_kbps = 6 [default = -1];
+ optional bool enable_hardware_decoding = 7 [default = true];
+ optional bool enable_performance_overlay = 8 [default = false];
+ optional bool enable_video_streaming = 9 [default = true];
+ optional bool enable_audio_streaming = 10 [default = true];
+ optional bool enable_input_streaming = 11 [default = true];
+ optional int32 audio_channels = 12 [default = 2];
+ optional bool enable_video_hevc = 13 [default = false];
+ optional bool enable_performance_icons = 14 [default = true];
+ optional bool enable_microphone_streaming = 15 [default = false];
+ optional string controller_overlay_hotkey = 16;
+ optional bool enable_touch_controller_OBSOLETE = 17 [default = false];
+ optional .EStreamP2PScope p2p_scope = 19 [default = k_EStreamP2PScopeAutomatic];
+ optional bool enable_audio_uncompressed = 20 [default = false];
+}
+
+message CStreamingServerConfig {
+ optional bool change_desktop_resolution = 1;
+ optional bool dynamically_adjust_resolution = 2;
+ optional bool enable_capture_nvfbc = 3;
+ optional bool enable_hardware_encoding_nvidia = 4;
+ optional bool enable_hardware_encoding_amd = 5;
+ optional bool enable_hardware_encoding_intel = 6;
+ optional int32 software_encoding_threads = 7;
+ optional bool enable_traffic_priority = 8;
+ optional .EStreamHostPlayAudioPreference host_play_audio = 9 [default = k_EStreamHostPlayAudioDefault];
+}
+
+message CNegotiatedConfig {
+ optional bool reliable_data = 1;
+ optional .EStreamAudioCodec selected_audio_codec = 2 [default = k_EStreamAudioCodecNone];
+ optional .EStreamVideoCodec selected_video_codec = 3 [default = k_EStreamVideoCodecNone];
+ repeated .CStreamVideoMode available_video_modes = 4;
+ optional bool enable_remote_hid = 5;
+ optional bool enable_touch_input = 6;
+ optional bool disable_client_cursor = 7;
+}
+
+message CNegotiationInitMsg {
+ optional bool reliable_data = 1;
+ repeated .EStreamAudioCodec supported_audio_codecs = 2;
+ repeated .EStreamVideoCodec supported_video_codecs = 3;
+ optional bool supports_remote_hid = 4;
+ optional bool supports_touch_input = 5;
+}
+
+message CNegotiationSetConfigMsg {
+ required .CNegotiatedConfig config = 1;
+ optional .CStreamingClientConfig streaming_client_config = 2;
+ optional .CStreamingClientCaps streaming_client_caps = 3;
+}
+
+message CNegotiationCompleteMsg {
+}
+
+message CStartAudioDataMsg {
+ required uint32 channel = 2;
+ optional .EStreamAudioCodec codec = 3 [default = k_EStreamAudioCodecNone];
+ optional bytes codec_data = 4;
+ optional uint32 frequency = 5;
+ optional uint32 channels = 6;
+}
+
+message CStopAudioDataMsg {
+}
+
+message CStartVideoDataMsg {
+ required uint32 channel = 1;
+ optional .EStreamVideoCodec codec = 2 [default = k_EStreamVideoCodecNone];
+ optional bytes codec_data = 3;
+ optional uint32 width = 4;
+ optional uint32 height = 5;
+}
+
+message CStopVideoDataMsg {
+}
+
+message CStartNeptuneDataMsg {
+ required uint32 channel = 1;
+}
+
+message CStopNeptuneDataMsg {
+}
+
+message CRecordedInput {
+ optional .EStreamControlMessage type = 1 [default = k_EStreamControlAuthenticationRequest];
+ optional uint32 timestamp = 2;
+
+ oneof data {
+ .CInputTouchFingerDownMsg finger_down = 3;
+ .CInputTouchFingerMotionMsg finger_motion = 4;
+ .CInputTouchFingerUpMsg finger_up = 5;
+ .CInputMouseMotionMsg mouse_motion = 6;
+ .CInputMouseWheelMsg mouse_wheel = 7;
+ .CInputMouseDownMsg mouse_down = 8;
+ .CInputMouseUpMsg mouse_up = 9;
+ .CInputKeyDownMsg key_down = 10;
+ .CInputKeyUpMsg key_up = 11;
+ .CInputTextMsg text = 12;
+ .CRemoteHIDMsg hid = 13;
+ }
+}
+
+message CRecordedInputStream {
+ repeated .CRecordedInput entries = 1;
+}
+
+message CInputLatencyTestMsg {
+ required uint32 input_mark = 1;
+ optional uint32 color = 2;
+}
+
+message CInputTouchFingerDownMsg {
+ optional uint32 input_mark = 1;
+ optional uint64 fingerid = 2;
+ optional float x_normalized = 3;
+ optional float y_normalized = 4;
+}
+
+message CInputTouchFingerMotionMsg {
+ optional uint32 input_mark = 1;
+ optional uint64 fingerid = 2;
+ optional float x_normalized = 3;
+ optional float y_normalized = 4;
+}
+
+message CInputTouchFingerUpMsg {
+ optional uint32 input_mark = 1;
+ optional uint64 fingerid = 2;
+ optional float x_normalized = 3;
+ optional float y_normalized = 4;
+}
+
+message CInputMouseMotionMsg {
+ optional uint32 input_mark = 1;
+ optional float x_normalized = 2;
+ optional float y_normalized = 3;
+ optional int32 dx = 4;
+ optional int32 dy = 5;
+}
+
+message CInputMouseWheelMsg {
+ optional uint32 input_mark = 1;
+ required .EStreamMouseWheelDirection direction = 2 [default = k_EStreamMouseWheelUp];
+}
+
+message CInputMouseDownMsg {
+ optional uint32 input_mark = 1;
+ required .EStreamMouseButton button = 2 [default = k_EStreamMouseButtonLeft];
+}
+
+message CInputMouseUpMsg {
+ optional uint32 input_mark = 1;
+ required .EStreamMouseButton button = 2 [default = k_EStreamMouseButtonLeft];
+}
+
+message CInputKeyDownMsg {
+ optional uint32 input_mark = 1;
+ required uint32 scancode = 2;
+}
+
+message CInputKeyUpMsg {
+ optional uint32 input_mark = 1;
+ required uint32 scancode = 2;
+}
+
+message CInputTextMsg {
+ optional uint32 input_mark = 1;
+ required string text_utf8 = 2;
+}
+
+message CSetTitleMsg {
+ optional string text = 1;
+}
+
+message CSetCaptureSizeMsg {
+ optional int32 width = 1;
+ optional int32 height = 2;
+}
+
+message CSetIconMsg {
+ optional int32 width = 1;
+ optional int32 height = 2;
+ optional bytes image = 3;
+}
+
+message CSetFlashStateMsg {
+ optional uint32 flags = 1;
+ optional uint32 count = 2;
+ optional uint32 timeout_ms = 3;
+}
+
+message CShowCursorMsg {
+ optional float x_normalized = 1;
+ optional float y_normalized = 2;
+}
+
+message CHideCursorMsg {
+}
+
+message CSetCursorMsg {
+ required uint64 cursor_id = 1;
+}
+
+message CGetCursorImageMsg {
+ required uint64 cursor_id = 1;
+}
+
+message CSetCursorImageMsg {
+ required uint64 cursor_id = 1;
+ optional int32 width = 2;
+ optional int32 height = 3;
+ optional int32 hot_x = 4;
+ optional int32 hot_y = 5;
+ optional bytes image = 6;
+}
+
+message CVideoDecoderInfoMsg {
+ optional string info = 1;
+ optional int32 threads = 2;
+}
+
+message CVideoEncoderInfoMsg {
+ optional string info = 1;
+}
+
+message CPauseMsg {
+}
+
+message CResumeMsg {
+}
+
+message CEnableHighResCaptureMsg {
+}
+
+message CDisableHighResCaptureMsg {
+}
+
+message CEnableNeptuneDataMsg {
+}
+
+message CDisableNeptuneDataMsg {
+}
+
+message CToggleMagnificationMsg {
+}
+
+message CSetCapslockMsg {
+ optional bool pressed = 1;
+}
+
+message CStreamingKeymapEntry {
+ optional int32 scancode = 1;
+ optional int32 normal_keycode = 2;
+ optional int32 shift_keycode = 3;
+ optional int32 capslock_keycode = 4;
+ optional int32 shift_capslock_keycode = 5;
+ optional int32 altgr_keycode = 6;
+ optional int32 altgr_shift_keycode = 7;
+ optional int32 altgr_capslock_keycode = 8;
+ optional int32 altgr_shift_capslock_keycode = 9;
+}
+
+message CStreamingKeymap {
+ repeated .CStreamingKeymapEntry entries = 1;
+}
+
+message CSetKeymapMsg {
+ optional .CStreamingKeymap keymap = 1;
+}
+
+message CStopRequest {
+}
+
+message CQuitRequest {
+}
+
+message CDeleteCursorMsg {
+ required uint64 cursor_id = 1;
+}
+
+message CSetStreamingClientConfig {
+ required .CStreamingClientConfig config = 1;
+}
+
+message CSetQoSMsg {
+ required bool use_qos = 1;
+}
+
+message CSetTargetFramerateMsg {
+ required uint32 framerate = 1;
+ optional uint32 reasons = 2;
+ optional uint32 framerate_numerator = 3;
+ optional uint32 framerate_denominator = 4;
+}
+
+message CSetTargetBitrateMsg {
+ required int32 bitrate = 1;
+}
+
+message COverlayEnabledMsg {
+ required bool enabled = 1;
+}
+
+message CSetGammaRampMsg {
+ optional bytes gamma_ramp = 1;
+}
+
+message CSetActivityMsg {
+ optional .EStreamActivity activity = 1 [default = k_EStreamActivityIdle];
+ optional uint32 appid = 2;
+ optional uint64 gameid = 3;
+ optional string game_name = 4;
+}
+
+message CSystemSuspendMsg {
+}
+
+message CVirtualHereRequestMsg {
+ optional string hostname = 1;
+}
+
+message CVirtualHereReadyMsg {
+ optional uint32 licensed_device_count = 1;
+}
+
+message CVirtualHereShareDeviceMsg {
+ optional string device_address = 1;
+}
+
+message CSetSpectatorModeMsg {
+ optional bool enabled = 1;
+}
+
+message CRemoteHIDMsg {
+ optional bytes data = 1;
+ optional bool active_input = 2;
+}
+
+message CTouchConfigActiveMsg {
+ optional uint32 appid = 1;
+ optional uint32 revision = 2;
+ optional uint64 creator = 3;
+}
+
+message CGetTouchConfigDataMsg {
+ optional uint32 appid = 1;
+}
+
+message CSetTouchConfigDataMsg {
+ optional uint32 appid = 1;
+ optional uint32 revision = 2;
+ optional bytes data = 3;
+ optional bytes layout = 4;
+ optional uint64 creator = 5;
+}
+
+message CSaveTouchConfigLayoutMsg {
+ optional uint32 appid = 1;
+ optional bytes layout = 4;
+}
+
+message CTouchActionSetActiveMsg {
+ optional uint32 appid = 1;
+ optional int32 actionset_id = 2;
+}
+
+message CTouchActionSetLayerAddedMsg {
+ optional uint32 appid = 1;
+ optional int32 actionset_id = 2;
+}
+
+message CTouchActionSetLayerRemovedMsg {
+ optional uint32 appid = 1;
+ optional int32 actionset_id = 2;
+}
+
+message CGetTouchIconDataMsg {
+ optional uint32 appid = 1;
+ optional string icon = 2;
+}
+
+message CSetTouchIconDataMsg {
+ optional uint32 appid = 1;
+ optional string icon = 2;
+ optional bytes data = 3;
+}
+
+message CRemotePlayTogetherGroupUpdateMsg {
+ message Player {
+ optional uint32 accountid = 1;
+ optional uint32 guestid = 2;
+ optional bool keyboard_enabled = 3;
+ optional bool mouse_enabled = 4;
+ optional bool controller_enabled = 5;
+ repeated uint32 controller_slots = 6;
+ optional bytes avatar_hash = 7;
+ }
+
+ repeated .CRemotePlayTogetherGroupUpdateMsg.Player players = 1;
+ optional int32 player_index = 2;
+ optional string miniprofile_location = 3;
+ optional string game_name = 4;
+ optional string avatar_location = 5;
+}
+
+message CSetInputTemporarilyDisabledMsg {
+ optional bool disabled = 1;
+}
+
+message CSetQualityOverrideMsg {
+ optional int32 value = 1;
+}
+
+message CSetBitrateOverrideMsg {
+ optional int32 value = 1;
+}
+
+message CShowOnScreenKeyboardMsg {
+}
+
+message CControllerPersonalizationUpdateMsg {
+ optional string controller_path = 1;
+ optional string controller_name = 2;
+ optional bool reverse_diamond_button_layout = 3;
+}
+
+message CStreamDataLostMsg {
+ repeated uint32 packets = 1;
+}
+
+message CAudioFormat {
+ required .EAudioFormat format = 1 [default = k_EAudioFormatNone];
+ optional uint32 frequency = 2;
+ optional uint32 channels = 3;
+}
+
+message CVideoFormat {
+ required .EVideoFormat format = 1 [default = k_EVideoFormatNone];
+ optional uint32 width = 2;
+ optional uint32 height = 3;
+}
+
+message CFrameEvent {
+ required .EStreamFrameEvent event_id = 1 [default = k_EStreamInputEventStart];
+ required uint32 timestamp = 2;
+}
+
+message CFrameStats {
+ required uint32 frame_id = 1;
+ optional uint32 input_mark = 2;
+ repeated .CFrameEvent events = 3;
+ required .EStreamFrameResult result = 4 [default = k_EStreamFrameResultPending];
+ optional float frame_start_delta = 5;
+ optional float frame_display_delta = 6;
+ optional float ping_time = 7;
+ optional float server_bitrate = 8;
+ optional float client_bitrate = 9;
+ optional float link_bandwidth = 10;
+ optional float packet_loss = 11;
+ optional uint32 frame_size = 12;
+}
+
+message CFrameStatAccumulatedValue {
+ required .EFrameAccumulatedStat stat_type = 1 [default = k_EFrameStatFPS];
+ required int32 count = 2;
+ required float average = 3;
+ optional float stddev = 4;
+}
+
+message CFrameStatsListMsg {
+ required .EStreamingDataType data_type = 1 [default = k_EStreamingAudioData];
+ repeated .CFrameStats stats = 2;
+ repeated .CFrameStatAccumulatedValue accumulated_stats = 3;
+ required int32 latest_frame_id = 4;
+}
+
+message CStreamingSessionStats {
+ optional float frame_loss_percentage = 1;
+ optional float average_network_time_ms = 2;
+ optional float stddev_network_time_ms = 3;
+}
+
+message CDebugDumpMsg {
+ optional bytes screenshot = 1;
+}
+
+message CLogMsg {
+ optional int32 type = 1;
+ optional string message = 2;
+}
+
+message CLogUploadMsg {
+ optional .ELogFileType type = 1 [default = k_ELogFileSystemBoot];
+ optional bytes data = 3;
+}
+
+message CTransportSignalMsg {
+ message WebRTCMessage {
+ message Candidate {
+ optional string sdp_mid = 1;
+ optional int32 sdp_mline_index = 2;
+ optional string candidate = 3;
+ }
+
+ oneof msg {
+ bool greeting = 1;
+ string offer = 2;
+ string answer = 3;
+ .CTransportSignalMsg.WebRTCMessage.Candidate candidate = 4;
+ }
+ }
+
+ optional .CTransportSignalMsg.WebRTCMessage webrtc = 1;
+ repeated bytes sdr = 2;
+}
+
+message CControllerConfigMsg {
+ message ControllerConfigResponse {
+ optional uint32 appid = 1;
+ optional string configURL = 2;
+ optional uint32 controllerType = 3;
+ optional string controllerData = 4;
+ optional uint32 selectionOrder = 5;
+ optional bool actionBlock = 6;
+ }
+
+ message ControllerPersonalizationResponse {
+ optional string personalizationData = 1;
+ }
+
+ message ControllerActiveConfigChangeResponse {
+ optional string configURL = 2;
+ optional uint32 controllerType = 3;
+ optional string controllerData = 4;
+ optional uint32 selectionOrder = 5;
+ }
+
+ message ControllerActiveConfigMsg {
+ optional uint32 appid = 1;
+ optional string configURL = 2;
+ optional uint32 controllerType = 3;
+ optional string controllerData = 4;
+ }
+
+ required .EStreamControllerConfigMsg type = 1 [default = k_EStreamControllerConfigMsg_RequestConfigsForApp];
+ optional string controllerPath = 2;
+ optional uint32 appid = 3;
+ optional .CControllerConfigMsg.ControllerPersonalizationResponse personalizationResponse = 4;
+ repeated .CControllerConfigMsg.ControllerConfigResponse configResponse = 6;
+ optional .CControllerConfigMsg.ControllerActiveConfigMsg activeConfigChangeMsg = 7;
+}
diff --git a/protobuf_files/orig/steam/steammessages_secrets.steamclient.proto b/protobuf_files/orig/steam/steammessages_secrets.steamclient.proto
new file mode 100644
index 00000000..ef3bd9a6
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_secrets.steamclient.proto
@@ -0,0 +1,39 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+enum EKeyEscrowUsage {
+ k_EKeyEscrowUsageStreamingDevice = 0;
+}
+
+message CKeyEscrow_Request {
+ optional bytes rsa_oaep_sha_ticket = 1;
+ optional bytes password = 2;
+ optional .EKeyEscrowUsage usage = 3 [default = k_EKeyEscrowUsageStreamingDevice];
+ optional string device_name = 4;
+}
+
+message CKeyEscrow_Ticket {
+ optional bytes password = 1;
+ optional uint64 identifier = 2;
+ optional bytes payload = 3;
+ optional uint32 timestamp = 4;
+ optional .EKeyEscrowUsage usage = 5 [default = k_EKeyEscrowUsageStreamingDevice];
+ optional string device_name = 6;
+ optional string device_model = 7;
+ optional string device_serial = 8;
+ optional uint32 device_provisioning_id = 9;
+}
+
+message CKeyEscrow_Response {
+ optional .CKeyEscrow_Ticket ticket = 1;
+}
+
+service Secrets {
+ option (service_description) = "Service for accessing credentials and guarding secrets";
+
+ rpc KeyEscrow (.CKeyEscrow_Request) returns (.CKeyEscrow_Response) {
+ option (method_description) = "Service to perform authenticated key-exchange involving Steam Client";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_shader.steamclient.proto b/protobuf_files/orig/steam/steammessages_shader.steamclient.proto
new file mode 100644
index 00000000..c00ea326
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_shader.steamclient.proto
@@ -0,0 +1,96 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+message CShader_RegisterShader_Request {
+ message Shader {
+ optional bytes cache_key_sha = 1;
+ optional bytes shader_code_sha = 2;
+ }
+
+ optional uint32 appid = 1;
+ optional string gpu_desc = 2;
+ optional string driver_desc = 3;
+ repeated .CShader_RegisterShader_Request.Shader shaders = 4;
+}
+
+message CShader_RegisterShader_Response {
+ repeated uint32 requested_codeids = 1;
+}
+
+message CShader_SendShader_Request {
+ message ShaderCode {
+ optional bytes shader_code_sha = 1;
+ optional bytes shader_code = 2;
+ }
+
+ optional uint32 appid = 1;
+ repeated .CShader_SendShader_Request.ShaderCode shaders = 2;
+}
+
+message CShader_SendShader_Response {
+}
+
+message CShader_GetBucketManifest_Request {
+ optional uint32 appid = 1;
+ optional string gpu_desc = 2;
+ optional string driver_desc = 3;
+}
+
+message CShader_GetBucketManifest_Response {
+ optional uint64 manifestid = 1;
+ optional uint64 depotsize = 2;
+ optional uint64 bucketid = 3;
+}
+
+message CShader_GetStaleBucket_Request {
+ optional string gpu_desc = 1;
+ optional string driver_desc = 2;
+}
+
+message CShader_GetStaleBucket_Response {
+ optional uint64 bucketid = 1;
+ optional uint32 appid = 2;
+ optional uint64 manifestid = 3;
+ optional string gpu_desc = 4;
+ optional string driver_desc = 5;
+ optional bytes depot_encryption_key = 6;
+}
+
+message CShader_ReportExternalBuild_Request {
+ optional uint32 appid = 1;
+ optional string gpu_desc = 2;
+ optional string driver_desc = 3;
+ optional uint64 manifestid = 4;
+ optional string source_gpu_desc = 5;
+ optional string source_driver_desc = 6;
+ optional uint64 depotsize = 7;
+}
+
+message CShader_ReportExternalBuild_Response {
+}
+
+service Shader {
+ option (service_description) = "Shader methods";
+
+ rpc RegisterShader (.CShader_RegisterShader_Request) returns (.CShader_RegisterShader_Response) {
+ option (method_description) = "Client just finished playing a game, detected new shader cache entries and is notifying us about them";
+ }
+
+ rpc SendShader (.CShader_SendShader_Request) returns (.CShader_SendShader_Response) {
+ option (method_description) = "Client is sending us actual compiled shader code that we requested";
+ }
+
+ rpc GetBucketManifest (.CShader_GetBucketManifest_Request) returns (.CShader_GetBucketManifest_Response) {
+ option (method_description) = "Client wants to know the manifest ID to fetch (if any) for a bucket's depot";
+ }
+
+ rpc GetStaleBucket (.CShader_GetStaleBucket_Request) returns (.CShader_GetStaleBucket_Response) {
+ option (method_description) = "Job to get a stale bucket given a gpu and driver desc";
+ }
+
+ rpc ReportExternalBuild (.CShader_ReportExternalBuild_Request) returns (.CShader_ReportExternalBuild_Response) {
+ option (method_description) = "Report an exernally built bucket";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_site_license.steamclient.proto b/protobuf_files/orig/steam/steammessages_site_license.steamclient.proto
new file mode 100644
index 00000000..9f593366
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_site_license.steamclient.proto
@@ -0,0 +1,128 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+message CSiteManagerClient_IncomingClient_Request {
+ optional fixed64 site_instanceid = 1;
+ optional fixed64 client_steamid = 2;
+ optional fixed32 client_local_ip = 3;
+ optional bytes connection_key = 4;
+}
+
+message CSiteManagerClient_IncomingClient_Response {
+}
+
+message CSiteLicense_ClientSeatCheckout_Notification {
+ optional uint32 appid = 1;
+ optional uint32 eresult = 2;
+}
+
+message CSiteManagerClient_TrackedPayments_Notification {
+ message Payment {
+ optional uint64 transid = 1;
+ optional uint64 steamid = 2;
+ optional int64 amount = 3;
+ optional uint32 ecurrency = 4;
+ optional int32 time_created = 5;
+ optional int32 purchase_status = 6;
+ optional string machine_name = 7;
+ optional string persona_name = 8;
+ optional string profile_url = 9;
+ optional string avatar_url = 10;
+ }
+
+ optional fixed64 site_id = 1;
+ repeated .CSiteManagerClient_TrackedPayments_Notification.Payment payments = 2;
+}
+
+message CSiteLicense_InitiateAssociation_Request {
+ optional fixed64 site_steamid = 1;
+ optional fixed64 site_instanceid = 2;
+ optional fixed32 client_local_ip = 3;
+}
+
+message CSiteLicense_InitiateAssociation_Response {
+ optional bytes connection_key = 1;
+}
+
+message CSiteLicense_LCSAuthenticate_Request {
+ optional fixed64 instanceid = 1;
+}
+
+message CSiteLicense_LCSAuthenticate_Response {
+ optional uint64 site_id = 1;
+ optional string site_name = 2;
+ optional bool new_session = 3;
+ optional bool no_site_licenses = 4;
+}
+
+message CSiteLicense_LCSAssociateUser_Request {
+ optional fixed64 steamid = 1;
+ optional fixed32 local_ip = 2;
+ optional fixed64 instanceid = 3;
+ optional string machine_name = 4;
+}
+
+message CSiteLicense_LCSAssociateUser_Response {
+}
+
+message CSiteLicense_ClientSeatCheckout_Request {
+ optional fixed64 steamid = 1;
+ optional fixed64 instanceid = 2;
+ optional uint32 appid = 3;
+}
+
+message CSiteLicense_ClientSeatCheckout_Response {
+}
+
+message CSiteLicense_ClientGetAvailableSeats_Request {
+ optional fixed64 steamid = 1;
+ optional fixed64 instanceid = 2;
+ optional uint32 appid = 3;
+}
+
+message CSiteLicense_ClientGetAvailableSeats_Response {
+ optional uint32 available_seats = 1;
+}
+
+service SiteManagerClient {
+ option (service_description) = "Local site manager client service";
+ option (service_execution_site) = k_EProtoExecutionSiteSteamClient;
+
+ rpc IncomingClient (.CSiteManagerClient_IncomingClient_Request) returns (.CSiteManagerClient_IncomingClient_Response) {
+ option (method_description) = "Rack informing site manager of new inbound client PSK connection";
+ }
+
+ rpc ClientSeatCheckoutNotification (.CSiteLicense_ClientSeatCheckout_Notification) returns (.NoResponse) {
+ option (method_description) = "Notify client directly about seat checkout result";
+ }
+
+ rpc TrackedPaymentsNotification (.CSiteManagerClient_TrackedPayments_Notification) returns (.NoResponse) {
+ option (method_description) = "Rack informing site manager of existing tracked payments";
+ }
+}
+
+service SiteLicense {
+ option (service_description) = "Site License service";
+
+ rpc InitiateAssociation (.CSiteLicense_InitiateAssociation_Request) returns (.CSiteLicense_InitiateAssociation_Response) {
+ option (method_description) = "Client is requesting connetion info for local site";
+ }
+
+ rpc LCSAuthenticate (.CSiteLicense_LCSAuthenticate_Request) returns (.CSiteLicense_LCSAuthenticate_Response) {
+ option (method_description) = "Local cafe server authentication";
+ }
+
+ rpc LCSAssociateUser (.CSiteLicense_LCSAssociateUser_Request) returns (.CSiteLicense_LCSAssociateUser_Response) {
+ option (method_description) = "Local cafe server wants to grant user access to site";
+ }
+
+ rpc ClientSeatCheckout (.CSiteLicense_ClientSeatCheckout_Request) returns (.CSiteLicense_ClientSeatCheckout_Response) {
+ option (method_description) = "Client is requesting use of a site license seat";
+ }
+
+ rpc ClientGetAvailableSeats (.CSiteLicense_ClientGetAvailableSeats_Request) returns (.CSiteLicense_ClientGetAvailableSeats_Response) {
+ option (method_description) = "Client is requesting the number of currently available seats";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_sitelicenseclient.proto b/protobuf_files/orig/steam/steammessages_sitelicenseclient.proto
new file mode 100644
index 00000000..b3c2697f
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_sitelicenseclient.proto
@@ -0,0 +1,38 @@
+import "steammessages_base.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+message CMsgClientSiteInfo {
+ optional uint64 site_id = 1;
+ optional string site_name = 2;
+ optional bool allow_cached_credentials = 3;
+}
+
+message CMsgClientSiteLicenseCheckout {
+ optional uint32 appid = 1;
+}
+
+message CMsgClientSiteLicenseCheckoutResponse {
+ optional int32 eresult = 1 [default = 2];
+}
+
+message CMsgClientSiteLicenseGetAvailableSeats {
+ optional uint32 appid = 1;
+}
+
+message CMsgClientSiteLicenseGetAvailableSeatsResponse {
+ optional int32 eresult = 1 [default = 2];
+ optional uint32 seats = 2;
+}
+
+message CMsgClientSiteLicenseGetContentCacheInfo {
+}
+
+message CMsgClientSiteLicenseGetContentCacheInfoResponse {
+ optional bool use_cache = 1;
+ optional uint32 ipv4_address = 2;
+ optional uint32 port_number = 3;
+ optional uint32 p2p_group = 4;
+ optional string ip_address = 5;
+}
diff --git a/protobuf_files/orig/steam/steammessages_siteserverui.proto b/protobuf_files/orig/steam/steammessages_siteserverui.proto
new file mode 100644
index 00000000..bee74b1f
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_siteserverui.proto
@@ -0,0 +1,130 @@
+import "steammessages_base.proto";
+
+option optimize_for = SPEED;
+option cc_generic_services = false;
+
+message SiteServerUI_Login_Request {
+ optional string username = 1;
+ optional string password = 2;
+ optional string steamguardcode = 3;
+ optional bool remember_password = 4;
+}
+
+message SiteServerUI_Login_Response {
+ optional int32 logon_state = 1;
+ optional int32 logon_eresult = 2;
+}
+
+message SiteServerUI_LoginStatus_Request {
+}
+
+message SiteServerUI_LoginStatus_Response {
+ optional string username = 1;
+ optional bool cached_credentials = 2;
+ optional int32 logon_state = 3;
+ optional int32 logon_eresult = 4;
+}
+
+message SiteServerUI_CancelLogin_Request {
+}
+
+message SiteServerUI_CancelLogin_Response {
+ optional int32 logon_state = 1;
+ optional int32 logon_eresult = 2;
+}
+
+message SiteServerUI_Logout_Request {
+}
+
+message SiteServerUI_Logout_Response {
+ optional int32 logon_state = 1;
+ optional int32 logout_eresult = 2;
+}
+
+message SiteServerUI_Quit_Request {
+ optional bool restart = 1;
+}
+
+message SiteServerUI_Quit_Response {
+}
+
+message SiteServerUI_Status_Request {
+}
+
+message SiteServerUI_Status_Response {
+ optional int32 logon_state = 1;
+ optional int32 logon_eresult = 2;
+ optional bool connected = 3;
+ optional bool cache_enabled = 4;
+ optional int32 acct_status = 5;
+}
+
+message SiteServerUI_GetLanguage_Request {
+}
+
+message SiteServerUI_GetLanguage_Response {
+ optional string language = 1;
+}
+
+message SiteServerUI_SetLanguage_Request {
+ optional string language = 1;
+}
+
+message SiteServerUI_SetLanguage_Response {
+}
+
+message SiteServerUI_ClientStatus_Request {
+}
+
+message SiteServerUI_ClientStatus_Response {
+ message ClientInfo {
+ optional uint32 ip = 1;
+ optional string hostname = 2;
+ optional bool connected = 3;
+ optional uint64 instance_id = 4;
+ }
+
+ message Payment {
+ optional uint64 transid = 1;
+ optional uint64 steamid = 2;
+ optional string amount = 3;
+ optional int32 time_created = 4;
+ optional int32 purchase_status = 5;
+ optional string hostname = 6;
+ optional string persona_name = 7;
+ optional string profile_url = 8;
+ optional string avatar_url = 9;
+ }
+
+ repeated .SiteServerUI_ClientStatus_Response.ClientInfo clients = 4;
+ repeated .SiteServerUI_ClientStatus_Response.Payment payments = 5;
+}
+
+message SiteServerUI_ContentCacheStatus_Request {
+}
+
+message SiteServerUI_ContentCacheStatus_Response {
+ optional bool enabled = 1;
+ optional uint32 port = 2;
+ optional string cache_location = 3;
+ optional uint32 max_size_gb = 4;
+ optional bool p2p_enabled = 5;
+ optional string explicit_ip_address = 9;
+ optional bool external_process = 10;
+ optional uint32 current_size_gb = 6;
+ optional uint64 current_bw = 7;
+ optional uint64 total_bytes_served = 8;
+}
+
+message SiteServerUI_ContentCacheConfig_Request {
+ optional bool enabled = 1;
+ optional uint32 port = 2;
+ optional string cache_location = 3;
+ optional uint32 max_size_gb = 4;
+ optional bool p2p_enabled = 5;
+ optional bool external_process = 6;
+ optional string explicit_ip_address = 7;
+}
+
+message SiteServerUI_ContentCacheConfig_Response {
+}
diff --git a/protobuf_files/orig/steam/steammessages_star.steamclient.proto b/protobuf_files/orig/steam/steammessages_star.steamclient.proto
new file mode 100644
index 00000000..221b2e2b
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_star.steamclient.proto
@@ -0,0 +1,64 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+enum E_STAR_GlyphWriteResult {
+ k_E_STAR_GlyphWriteResult_Success = 0;
+ k_E_STAR_GlyphWriteResult_InvalidMessage = 1;
+ k_E_STAR_GlyphWriteResult_InvalidJSON = 2;
+ k_E_STAR_GlyphWriteResult_SQLError = 3;
+}
+
+message CSTAR_KeyValueQuery {
+ optional string key = 1 [(description) = "key to search for in JSON path format (SQL subset)"];
+ optional string value = 2 [(description) = "the value to compare against (the JSON value will be compared for equality as a string)"];
+}
+
+message CSTAR_GlyphQueryParams {
+ optional uint64 bundle_id = 1 [(description) = "if provided, Bundle ID is used instead of the other query parameters (much faster SQL query)"];
+ repeated .CSTAR_KeyValueQuery queries = 2 [(description) = "key value queries"];
+}
+
+message CSTAR_ReadGlyphData_Request {
+ optional .CSTAR_GlyphQueryParams query_params = 1 [(description) = "parameters to identify the glyphs to read from SQL"];
+ optional string last_modified_time_lower_limit = 2 [(description) = "if provided, only return glyphs modified more recently than this timestamp (RFC 3339 UTC format)"];
+}
+
+message CSTAR_GlyphData {
+ optional bytes glyph_guid = 1 [(description) = "GUID uniquely identifying this glyph"];
+ optional string glyph_last_modified = 2 [(description) = "timestamp of when this glyph was last modified (RFC 3339 UTC format)"];
+ optional string glyph_json_data = 3 [(description) = "JSON encoded glyph data"];
+}
+
+message CSTAR_WriteGlyphData_Request {
+ optional uint64 bundle_id = 1 [(description) = "the Bundle ID of the glyphs to be written"];
+ repeated .CSTAR_GlyphData glyph_data = 2 [(description) = "one or more items of glyph data to write"];
+}
+
+message CSTAR_Request {
+ optional .CSTAR_ReadGlyphData_Request read_glyph_data = 1;
+ optional .CSTAR_WriteGlyphData_Request write_glyph_data = 2;
+}
+
+message CSTAR_ReadGlyphData_Response {
+ optional uint64 bundle_id = 1 [(description) = "the Bundle ID of the returned glyphs; the client should send this back to optimize subsequent queries"];
+ repeated .CSTAR_GlyphData glyph_data = 2 [(description) = "zero or more items of returned glyph data"];
+}
+
+message CSTAR_WriteGlyphData_Response {
+ repeated .E_STAR_GlyphWriteResult result = 1 [(description) = "write result for each item of glyph data"];
+}
+
+message CSTAR_Response {
+ optional .CSTAR_ReadGlyphData_Response read_glyph_data = 1;
+ optional .CSTAR_WriteGlyphData_Response write_glyph_data = 2;
+}
+
+service STAR {
+ option (service_description) = "service for reading/writing STAR data";
+
+ rpc ProcessMessage (.CSTAR_Request) returns (.CSTAR_Response) {
+ option (method_description) = "processes a generic message";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_steamtv.steamclient.proto b/protobuf_files/orig/steam/steammessages_steamtv.steamclient.proto
new file mode 100644
index 00000000..f405862b
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_steamtv.steamclient.proto
@@ -0,0 +1,630 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+
+option cc_generic_services = true;
+
+enum EBroadcastImageType {
+ k_EBroadcastImageType_None = 0;
+ k_EBroadcastImageType_Offline = 1;
+ k_EBroadcastImageType_Standby = 2;
+ k_EBroadcastImageType_Avatar = 3;
+ k_EBroadcastImageType_Summary = 4;
+ k_EBroadcastImageType_Background = 5;
+ k_EBroadcastImageType_Emoticon = 6;
+}
+
+enum EGetGamesAlgorithm {
+ k_EGetGamesAlgorithm_Default = 1;
+ k_EGetGamesAlgorithm_MostPlayed = 2;
+ k_EGetGamesAlgorithm_PopularNew = 3;
+}
+
+enum EGetChannelsAlgorithm {
+ k_EGetChannelsAlgorithm_Default = 1;
+ k_EGetChannelsAlgorithm_Friends = 2;
+ k_EGetChannelsAlgorithm_Featured = 3;
+ k_EGetChannelsAlgorithm_Developer = 4;
+ k_EGetChannelsAlgorithm_Following = 5;
+}
+
+enum ESteamTVContentTemplate {
+ k_ESteamTVContentTemplate_Invalid = 0;
+ k_ESteamTVContentTemplate_Takeover = 1;
+ k_ESteamTVContentTemplate_SingleGame = 2;
+ k_ESteamTVContentTemplate_GameList = 3;
+ k_ESteamTVContentTemplate_QuickExplore = 4;
+ k_ESteamTVContentTemplate_ConveyorBelt = 5;
+ k_ESteamTVContentTemplate_WatchParty = 6;
+ k_ESteamTVContentTemplate_Developer = 7;
+ k_ESteamTVContentTemplate_Event = 8;
+}
+
+message CSteamTV_CreateBroadcastChannel_Request {
+ optional string unique_name = 1 [(description) = "Unique short broadcast channel name, part of Steam.TV URL"];
+}
+
+message CSteamTV_CreateBroadcastChannel_Response {
+ optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID or 0"];
+}
+
+message CSteamTV_GetBroadcastChannelID_Request {
+ optional string unique_name = 1 [(description) = "Channel short name)"];
+}
+
+message CSteamTV_GetBroadcastChannelID_Response {
+ optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID or 0"];
+ optional string unique_name = 2 [(description) = "Broadcast channel name"];
+ optional fixed64 steamid = 3 [(description) = "Broadcast channel owner"];
+}
+
+message CSteamTV_SetBroadcastChannelProfile_Request {
+ optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"];
+ optional string name = 2 [(description) = "long channel name"];
+ optional string language = 3 [(description) = "primary channel language (Steam shortname)"];
+ optional string headline = 4 [(description) = "short channel desciption"];
+ optional string summary = 5 [(description) = "long channel desciption"];
+ optional string avatar_hash = 6 [(description) = "community avatar hash"];
+ optional string schedule = 7 [(description) = "broadcast channel schedule"];
+ optional string rules = 8 [(description) = "broadcast channel rules"];
+ optional string panels = 9 [(description) = "JSON data representing the channel panel layout"];
+}
+
+message CSteamTV_SetBroadcastChannelProfile_Response {
+}
+
+message CSteamTV_GetBroadcastChannelProfile_Request {
+ optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"];
+}
+
+message CSteamTV_GetBroadcastChannelProfile_Response {
+ optional string unique_name = 1 [(description) = "Unique short broadcast channel name, part of Steam.TV URL"];
+ optional fixed64 owner_steamid = 2 [(description) = "Broadcast channel owner"];
+ optional string name = 3 [(description) = "long channel name"];
+ optional string language = 4 [(description) = "primary channel language (Steam shortname)"];
+ optional string headline = 5 [(description) = "short channel description"];
+ optional string summary = 6 [(description) = "long channel description"];
+ optional string schedule = 7 [(description) = "broadcast channel schedule"];
+ optional string rules = 8 [(description) = "broadcast channel rules"];
+ optional string panels = 9 [(description) = "JSON data representing the channel panel layout"];
+ optional bool is_partnered = 10;
+}
+
+message CSteamTV_SetBroadcastChannelImage_Request {
+ optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"];
+ optional .EBroadcastImageType image_type = 2 [default = k_EBroadcastImageType_None, (description) = "EBroadcastImage"];
+ optional uint32 image_index = 3 [(description) = "Index of the image (for supporting multiple uploads of the same type"];
+ optional uint32 image_width = 4 [(description) = "width in pixels"];
+ optional uint32 image_height = 5 [(description) = "height in pixels"];
+ optional uint32 file_size = 6 [(description) = "in bytes"];
+ optional string file_extension = 7 [(description) = "eg .jpg"];
+ optional string file_hash = 8 [(description) = "image SHA"];
+ optional bool undo = 9 [(description) = "indicates this is a delete request"];
+}
+
+message CSteamTV_SetBroadcastChannelImage_Response {
+ optional string replace_image_hash = 1 [(description) = "set if caller should remove previous SHA file from cache"];
+}
+
+message CSteamTV_GetBroadcastChannelImages_Request {
+ optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"];
+ repeated .EBroadcastImageType image_types = 2 [(description) = "list of EBroadcastImage"];
+}
+
+message CSteamTV_GetBroadcastChannelImages_Response {
+ message Images {
+ optional .EBroadcastImageType image_type = 1 [default = k_EBroadcastImageType_None, (description) = "Type of the image"];
+ optional string image_path = 2 [(description) = "Path to the uploaded image"];
+ optional uint32 image_index = 3 [(description) = "Index of the image"];
+ }
+
+ repeated .CSteamTV_GetBroadcastChannelImages_Response.Images images = 1;
+}
+
+message CSteamTV_SetBroadcastChannelLinkRegions_Request {
+ message Links {
+ optional uint32 link_index = 1 [(description) = "Index of the link (lower number has higher priority)"];
+ optional string url = 2 [(description) = "URL "];
+ optional string link_description = 3 [(description) = "URL description that will show in the link region"];
+ optional uint32 left = 4 [(description) = "Left X position in 100th of a % of the video width"];
+ optional uint32 top = 5 [(description) = "Top Y position in 100th of a % of the video height"];
+ optional uint32 width = 6 [(description) = "Region Width in 100th of a % of the video width"];
+ optional uint32 height = 7 [(description) = "Region Height in 100th of a % of the video height"];
+ }
+
+ optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"];
+ repeated .CSteamTV_SetBroadcastChannelLinkRegions_Request.Links links = 2;
+}
+
+message CSteamTV_SetBroadcastChannelLinkRegions_Response {
+}
+
+message CSteamTV_GetBroadcastChannelLinks_Request {
+ optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"];
+}
+
+message CSteamTV_GetBroadcastChannelLinks_Response {
+ message Links {
+ optional uint32 link_index = 1 [(description) = "Index of the link (lower number has higher priority)"];
+ optional string url = 2 [(description) = "URL "];
+ optional string link_description = 3 [(description) = "URL description that will show in the link region"];
+ optional uint32 left = 4 [(description) = "Left X position in 100th of a % of the video width"];
+ optional uint32 top = 5 [(description) = "Top Y position in 100th of a % of the video height"];
+ optional uint32 width = 6 [(description) = "Region Width in 100th of a % of the video width"];
+ optional uint32 height = 7 [(description) = "Region Height in 100th of a % of the video height"];
+ }
+
+ repeated .CSteamTV_GetBroadcastChannelLinks_Response.Links links = 1;
+}
+
+message CSteamTV_GetBroadcastChannelBroadcasters_Request {
+ optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"];
+}
+
+message CSteamTV_GetBroadcastChannelBroadcasters_Response {
+ message Broadcaster {
+ optional fixed64 steamid = 1 [(description) = "Broadcaster Steam ID"];
+ optional string name = 2 [(description) = "Broadcaster name"];
+ optional string rtmp_token = 3 [(description) = "Broadcaster upload token"];
+ }
+
+ repeated .CSteamTV_GetBroadcastChannelBroadcasters_Response.Broadcaster broadcasters = 1;
+}
+
+message CSteamTV_GetFollowedChannels_Request {
+}
+
+message GetBroadcastChannelEntry {
+ optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID or 0"];
+ optional string unique_name = 2 [(description) = "Unique broadcast channel name for URL"];
+ optional string name = 3 [(description) = "Long broadcast channel name"];
+ optional uint32 appid = 4 [(description) = "The game ID the requested broadcaster is playing"];
+ optional uint64 viewers = 5 [(description) = "Number of viewers currently watching"];
+ optional uint64 views = 6 [(description) = "Number of total views of this channel"];
+ optional string thumbnail_url = 7 [(description) = "Current thumbnail URL"];
+ optional uint64 followers = 8 [(description) = "Number of followers of this channel"];
+ optional string headline = 9 [(description) = "short channel description"];
+ optional string avatar_url = 10 [(description) = "community avatar url"];
+ optional fixed64 broadcaster_steamid = 11 [(description) = "Current broadcaster streaming"];
+ optional uint64 subscribers = 12 [(description) = "Number of subscribers of this channel"];
+ optional string background_url = 13 [(description) = "Background image url"];
+ optional bool is_featured = 14 [(description) = "Whether the channel is featured"];
+ optional bool is_disabled = 15 [(description) = "Whether the channel is disabled"];
+ optional bool is_live = 16 [(description) = "Whether the channel is streaming"];
+ optional string language = 17 [(description) = "The language the stream is in"];
+ optional uint32 reports = 18 [(description) = "The number of reports the channel has"];
+ optional bool is_partnered = 19;
+}
+
+message CSteamTV_GetFollowedChannels_Response {
+ repeated .GetBroadcastChannelEntry results = 1 [(description) = "The list of broadcasters"];
+}
+
+message CSteamTV_GetSubscribedChannels_Request {
+}
+
+message CSteamTV_GetSubscribedChannels_Response {
+ repeated .GetBroadcastChannelEntry results = 1 [(description) = "The list of broadcasters"];
+}
+
+message CSteamTV_GetBroadcastChannelStatus_Request {
+ optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"];
+}
+
+message CSteamTV_GetBroadcastChannelStatus_Response {
+ optional bool is_live = 1 [(description) = "Indicates whether the channel is streaming"];
+ optional bool is_disabled = 2 [(description) = "Indicates whether the channel has been disabled"];
+ optional uint32 appid = 3 [(description) = "The game ID the requested broadcaster is playing"];
+ optional uint64 viewers = 4 [(description) = "Number of viewers currently watching"];
+ optional uint64 views = 5 [(description) = "Number of total views of this channel"];
+ optional fixed64 broadcaster_steamid = 6 [(description) = "Current broadcaster streaming"];
+ optional string thumbnail_url = 7 [(description) = "Current thumbnail URL"];
+ optional uint64 followers = 8 [(description) = "Number of followers of this channel"];
+ optional uint64 subscribers = 9 [(description) = "Number of subscribers of this channel"];
+ optional string unique_name = 10;
+ optional uint64 broadcast_session_id = 11;
+}
+
+message CSteamTV_FollowBroadcastChannel_Request {
+ optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"];
+ optional bool undo = 2 [(description) = "Indicates this is an unfollow request"];
+}
+
+message CSteamTV_FollowBroadcastChannel_Response {
+ optional bool is_followed = 1 [(description) = "Whether the user is now following"];
+}
+
+message CSteamTV_SubscribeBroadcastChannel_Request {
+ optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"];
+}
+
+message CSteamTV_SubscribeBroadcastChannel_Response {
+ optional bool is_subscribed = 1 [(description) = "Whether the user is now subscribed"];
+}
+
+message CSteamTV_GetBroadcastChannelClips_Request {
+ optional fixed64 broadcast_channel_id = 1;
+}
+
+message CSteamTV_BroadcastClipInfo {
+ optional uint64 broadcast_clip_id = 1 [(description) = "broadcast clip ID"];
+ optional uint64 channel_id = 2 [(description) = "Broadcast Channel ID"];
+ optional uint32 app_id = 3 [(description) = "App ID stream is tagged with"];
+ optional fixed64 broadcaster_steamid = 4 [(description) = "Broadcaster SteamID"];
+ optional fixed64 creator_steamid = 5 [(description) = "Clip-maker SteamID"];
+ optional string video_description = 6 [(description) = "Short name or description of this clip"];
+ optional uint32 live_time = 7 [(description) = "GMT time clip was broadcasted live"];
+ optional uint32 length_ms = 8 [(description) = "length of video in MS"];
+ optional string thumbnail_path = 9 [(description) = "relative path for thumbnail URL on host"];
+}
+
+message CSteamTV_GetBroadcastChannelClips_Response {
+ repeated .CSteamTV_BroadcastClipInfo clips = 1;
+ optional string thumbnail_host = 2;
+}
+
+message CSteamTV_ReportBroadcastChannel_Request {
+ optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"];
+ optional string reason = 2 [(description) = "The reason for the report"];
+}
+
+message CSteamTV_ReportBroadcastChannel_Response {
+}
+
+message CSteamTV_GetBroadcastChannelInteraction_Request {
+ optional fixed64 broadcast_channel_id = 1 [(description) = "Broadcast channel ID"];
+}
+
+message CSteamTV_GetBroadcastChannelInteraction_Response {
+ optional bool is_followed = 1 [(description) = "Whether the user has followed this channel"];
+ optional bool is_subscribed = 2 [(description) = "Whether the user has subscribed to this channel"];
+}
+
+message CSteamTV_GetGames_Request {
+ optional uint32 appid = 1 [(description) = "The ID for the game"];
+ optional .EGetGamesAlgorithm algorithm = 2 [default = k_EGetGamesAlgorithm_Default, (description) = "The algorithm to use when picking games to return"];
+ optional uint32 count = 3 [(description) = "The maximum number of results to return"];
+}
+
+message CSteamTV_Game {
+ optional uint32 appid = 1 [(description) = "The ID for the game"];
+ optional string name = 2 [(description) = "The name for the game"];
+ optional string image = 3 [(description) = "The image for the game"];
+ optional uint64 viewers = 4 [(description) = "Number of people watching this game"];
+ repeated .GetBroadcastChannelEntry channels = 5 [(description) = "Live channels streaming this game"];
+ optional string release_date = 6;
+ optional string developer = 7;
+ optional string publisher = 8;
+}
+
+message CSteamTV_GetGames_Response {
+ repeated .CSteamTV_Game results = 1 [(description) = "The list of games"];
+}
+
+message CSteamTV_GetChannels_Request {
+ optional .EGetChannelsAlgorithm algorithm = 1 [default = k_EGetChannelsAlgorithm_Default, (description) = "The algorithm to use when picking channels to return"];
+ optional uint32 count = 2 [(description) = "The maximum number of results to return"];
+ optional uint32 appid = 3 [(description) = "Filter results to only this appid"];
+}
+
+message CSteamTV_GetChannels_Response {
+ repeated .GetBroadcastChannelEntry results = 1 [(description) = "The list of featured broadcasters"];
+}
+
+message CSteamTV_AddChatBan_Request {
+ optional fixed64 broadcast_channel_id = 1;
+ optional fixed64 chatter_steamid = 2;
+ optional uint32 duration = 3;
+ optional bool permanent = 4;
+ optional bool undo = 5;
+}
+
+message CSteamTV_AddChatBan_Response {
+}
+
+message CSteamTV_GetChatBans_Request {
+ optional fixed64 broadcast_channel_id = 1;
+}
+
+message CSteamTV_ChatBan {
+ optional fixed64 issuer_steamid = 1;
+ optional fixed64 chatter_steamid = 2;
+ optional string time_expires = 3;
+ optional bool permanent = 4;
+ optional string name = 5;
+}
+
+message CSteamTV_GetChatBans_Response {
+ repeated .CSteamTV_ChatBan results = 1 [(description) = "The list of bans"];
+}
+
+message CSteamTV_AddChatModerator_Request {
+ optional fixed64 broadcast_channel_id = 1;
+ optional fixed64 moderator_steamid = 2;
+ optional bool undo = 3;
+}
+
+message CSteamTV_AddChatModerator_Response {
+}
+
+message CSteamTV_GetChatModerators_Request {
+ optional fixed64 broadcast_channel_id = 1;
+}
+
+message CSteamTV_ChatModerator {
+ optional fixed64 steamid = 1;
+ optional string name = 2;
+}
+
+message CSteamTV_GetChatModerators_Response {
+ repeated .CSteamTV_ChatModerator results = 1 [(description) = "The list of moderators"];
+}
+
+message CSteamTV_AddWordBan_Request {
+ optional fixed64 broadcast_channel_id = 1;
+ optional string word = 2;
+ optional bool undo = 3;
+}
+
+message CSteamTV_AddWordBan_Response {
+}
+
+message CSteamTV_GetWordBans_Request {
+ optional fixed64 broadcast_channel_id = 1;
+}
+
+message CSteamTV_GetWordBans_Response {
+ repeated string results = 1 [(description) = "The list of banned words"];
+}
+
+message CSteamTV_JoinChat_Request {
+ optional fixed64 broadcast_channel_id = 1;
+}
+
+message CSteamTV_JoinChat_Response {
+ optional fixed64 chat_id = 1;
+ optional string view_url_template = 2;
+ repeated uint64 flair_group_ids = 3;
+}
+
+message CSteamTV_Search_Request {
+ optional string term = 1;
+}
+
+message CSteamTV_Search_Response {
+ repeated .GetBroadcastChannelEntry results = 1 [(description) = "The list of broadcasters"];
+}
+
+message CSteamTV_GetSteamTVUserSettings_Request {
+}
+
+message CSteamTV_GetSteamTVUserSettings_Response {
+ optional bool stream_live_email = 1 [(description) = "Send email when followed stream starts"];
+ optional bool stream_live_notification = 2 [(description) = "Send Steam notification when followed stream starts"];
+}
+
+message CSteamTV_SetSteamTVUserSettings_Request {
+ optional bool stream_live_email = 1 [(description) = "Send email when followed stream starts"];
+ optional bool stream_live_notification = 2 [(description) = "Send Steam notification when followed stream starts"];
+}
+
+message CSteamTV_SetSteamTVUserSettings_Response {
+}
+
+message CSteamTV_GetMyBroadcastChannels_Request {
+}
+
+message CSteamTV_GetMyBroadcastChannels_Response {
+ repeated .GetBroadcastChannelEntry results = 1 [(description) = "The list of broadcasters"];
+}
+
+message CSteamTV_GetHomePageContents_Request {
+}
+
+message CSteamTV_HomePageTemplate_Takeover {
+ repeated .GetBroadcastChannelEntry broadcasts = 1;
+}
+
+message CSteamTV_HomePageTemplate_SingleGame {
+ repeated .GetBroadcastChannelEntry broadcasts = 1;
+ optional uint32 appid = 2;
+ optional string title = 3;
+}
+
+message GameListEntry {
+ optional uint32 appid = 1;
+ optional string game_name = 2;
+ optional .GetBroadcastChannelEntry broadcast = 3;
+}
+
+message CSteamTV_HomePageTemplate_GameList {
+ repeated .GameListEntry entries = 1;
+ optional string title = 2;
+}
+
+message CSteamTV_HomePageTemplate_QuickExplore {
+ repeated .GetBroadcastChannelEntry broadcasts = 1;
+ optional string title = 2;
+}
+
+message CSteamTV_HomePageTemplate_ConveyorBelt {
+ repeated .GetBroadcastChannelEntry broadcasts = 1;
+ optional string title = 2;
+}
+
+message CSteamTV_HomePageTemplate_WatchParty {
+ optional .GetBroadcastChannelEntry broadcast = 1;
+ optional string title = 2;
+ optional uint64 chat_group_id = 3;
+}
+
+message CSteamTV_HomePageTemplate_Developer {
+ optional .GetBroadcastChannelEntry broadcast = 1;
+ optional string title = 2;
+}
+
+message CSteamTV_HomePageTemplate_Event {
+ optional string title = 1;
+}
+
+message CSteamTV_HomePageContentRow {
+ optional .ESteamTVContentTemplate template_type = 1 [default = k_ESteamTVContentTemplate_Invalid];
+ optional .CSteamTV_HomePageTemplate_Takeover takeover = 2;
+ optional .CSteamTV_HomePageTemplate_SingleGame single_game = 3;
+ optional .CSteamTV_HomePageTemplate_GameList game_list = 4;
+ optional .CSteamTV_HomePageTemplate_QuickExplore quick_explore = 5;
+ optional .CSteamTV_HomePageTemplate_ConveyorBelt conveyor_belt = 6;
+ optional .CSteamTV_HomePageTemplate_WatchParty watch_party = 7;
+ optional .CSteamTV_HomePageTemplate_Developer developer = 8;
+ optional .CSteamTV_HomePageTemplate_Event event = 9;
+}
+
+message CSteamTV_GetHomePageContents_Response {
+ repeated .CSteamTV_HomePageContentRow rows = 1;
+}
+
+message CSteamTV_AppCheer_SingleCheerType {
+ optional uint32 cheer_type = 1 [(description) = "The type of cheer. App dependent (different teams, heroes, players, etc)"];
+ optional uint32 cheer_amount = 2 [(description) = "The amount of cheers."];
+}
+
+message CSteamTV_AppCheer_Request {
+ optional uint32 app_id = 1 [(description) = "App ID this cheer is for."];
+ optional fixed64 cheer_target_id = 2 [(description) = "The thing being cheered on. ID is app dependent (could be steam id, match id, lobby id, server id, etc)."];
+ repeated .CSteamTV_AppCheer_SingleCheerType cheers = 3 [(description) = "The set of cheers this request represents (could be multiple of different types)."];
+}
+
+message CSteamTV_AppCheer_Response {
+ optional uint32 aggregation_delay_ms = 1 [(description) = "The amount of time in milliseconds that the client should aggregate cheers before sending them. The server can control this dynamically to ask clients to slow down sending."];
+}
+
+service SteamTV {
+ option (service_description) = "Methods for Steam TV operations";
+
+ rpc CreateBroadcastChannel (.CSteamTV_CreateBroadcastChannel_Request) returns (.CSteamTV_CreateBroadcastChannel_Response) {
+ option (method_description) = "Create a channel on SteamTV";
+ }
+
+ rpc GetBroadcastChannelID (.CSteamTV_GetBroadcastChannelID_Request) returns (.CSteamTV_GetBroadcastChannelID_Response) {
+ option (method_description) = "Get a broadcast channel ID for a channel by name or owner SteamID";
+ }
+
+ rpc SetBroadcastChannelProfile (.CSteamTV_SetBroadcastChannelProfile_Request) returns (.CSteamTV_SetBroadcastChannelProfile_Response) {
+ option (method_description) = "Set broadcast channel profile data";
+ }
+
+ rpc GetBroadcastChannelProfile (.CSteamTV_GetBroadcastChannelProfile_Request) returns (.CSteamTV_GetBroadcastChannelProfile_Response) {
+ option (method_description) = "Get broadcast channel profile data";
+ }
+
+ rpc SetBroadcastChannelImage (.CSteamTV_SetBroadcastChannelImage_Request) returns (.CSteamTV_SetBroadcastChannelImage_Response) {
+ option (method_description) = "Set broadcast channel image hash";
+ }
+
+ rpc GetBroadcastChannelImages (.CSteamTV_GetBroadcastChannelImages_Request) returns (.CSteamTV_GetBroadcastChannelImages_Response) {
+ option (method_description) = "Get broadcast channel images";
+ }
+
+ rpc SetBroadcastChannelLinkRegions (.CSteamTV_SetBroadcastChannelLinkRegions_Request) returns (.CSteamTV_SetBroadcastChannelLinkRegions_Response) {
+ option (method_description) = "Set broadcast channel link regions";
+ }
+
+ rpc GetBroadcastChannelLinks (.CSteamTV_GetBroadcastChannelLinks_Request) returns (.CSteamTV_GetBroadcastChannelLinks_Response) {
+ option (method_description) = "Get broadcast channel link regions";
+ }
+
+ rpc GetBroadcastChannelBroadcasters (.CSteamTV_GetBroadcastChannelBroadcasters_Request) returns (.CSteamTV_GetBroadcastChannelBroadcasters_Response) {
+ option (method_description) = "Get list of broadcaster info for this channel";
+ }
+
+ rpc GetFollowedChannels (.CSteamTV_GetFollowedChannels_Request) returns (.CSteamTV_GetFollowedChannels_Response) {
+ option (method_description) = "Get list of followed channels by a viewer";
+ }
+
+ rpc GetSubscribedChannels (.CSteamTV_GetSubscribedChannels_Request) returns (.CSteamTV_GetSubscribedChannels_Response) {
+ option (method_description) = "Get list of channels a user is subscribed to";
+ }
+
+ rpc GetBroadcastChannelStatus (.CSteamTV_GetBroadcastChannelStatus_Request) returns (.CSteamTV_GetBroadcastChannelStatus_Response) {
+ option (method_description) = "Get broadcast channel live status";
+ }
+
+ rpc FollowBroadcastChannel (.CSteamTV_FollowBroadcastChannel_Request) returns (.CSteamTV_FollowBroadcastChannel_Response) {
+ option (method_description) = "Follow a broadcast channel";
+ }
+
+ rpc SubscribeBroadcastChannel (.CSteamTV_SubscribeBroadcastChannel_Request) returns (.CSteamTV_SubscribeBroadcastChannel_Response) {
+ option (method_description) = "Subscribe to a broadcast channel";
+ }
+
+ rpc GetBroadcastChannelClips (.CSteamTV_GetBroadcastChannelClips_Request) returns (.CSteamTV_GetBroadcastChannelClips_Response) {
+ option (method_description) = "Get broadcast channel clips";
+ }
+
+ rpc ReportBroadcastChannel (.CSteamTV_ReportBroadcastChannel_Request) returns (.CSteamTV_ReportBroadcastChannel_Response) {
+ option (method_description) = "Report a broadcast channel";
+ }
+
+ rpc GetBroadcastChannelInteraction (.CSteamTV_GetBroadcastChannelInteraction_Request) returns (.CSteamTV_GetBroadcastChannelInteraction_Response) {
+ option (method_description) = "Get user's interaction status with a broadcast channel";
+ }
+
+ rpc GetGames (.CSteamTV_GetGames_Request) returns (.CSteamTV_GetGames_Response) {
+ option (method_description) = "Get list of games with active broadcasters";
+ }
+
+ rpc GetChannels (.CSteamTV_GetChannels_Request) returns (.CSteamTV_GetChannels_Response) {
+ option (method_description) = "Get the list of featured broadcast channels";
+ }
+
+ rpc AddChatBan (.CSteamTV_AddChatBan_Request) returns (.CSteamTV_AddChatBan_Response) {
+ option (method_description) = "Set the ban for a specific broadcaster. The issuer is the logged in steam account";
+ }
+
+ rpc GetChatBans (.CSteamTV_GetChatBans_Request) returns (.CSteamTV_GetChatBans_Response) {
+ option (method_description) = "Get list of bans for a specific broadcaster. ";
+ }
+
+ rpc AddChatModerator (.CSteamTV_AddChatModerator_Request) returns (.CSteamTV_AddChatModerator_Response) {
+ option (method_description) = "Add or remove a moderator for this broadcast channel";
+ }
+
+ rpc GetChatModerators (.CSteamTV_GetChatModerators_Request) returns (.CSteamTV_GetChatModerators_Response) {
+ option (method_description) = "Returns the list of moderators for this broadcast channel";
+ }
+
+ rpc AddWordBan (.CSteamTV_AddWordBan_Request) returns (.CSteamTV_AddWordBan_Response) {
+ option (method_description) = "Add or remove a banned keyword in this broadcast channel chat";
+ }
+
+ rpc GetWordBans (.CSteamTV_GetWordBans_Request) returns (.CSteamTV_GetWordBans_Response) {
+ option (method_description) = "Returns the list of banned keywords for this broadcast channel";
+ }
+
+ rpc JoinChat (.CSteamTV_JoinChat_Request) returns (.CSteamTV_JoinChat_Response) {
+ option (method_description) = "Joins the chat channel for a broadcast";
+ }
+
+ rpc Search (.CSteamTV_Search_Request) returns (.CSteamTV_Search_Response) {
+ option (method_description) = "Searches for broadcast channels based on input keywords";
+ }
+
+ rpc GetSteamTVUserSettings (.CSteamTV_GetSteamTVUserSettings_Request) returns (.CSteamTV_GetSteamTVUserSettings_Response) {
+ option (method_description) = "Returns a user's SteamTV settings";
+ }
+
+ rpc SetSteamTVUserSettings (.CSteamTV_SetSteamTVUserSettings_Request) returns (.CSteamTV_SetSteamTVUserSettings_Response) {
+ option (method_description) = "Sets a user's SteamTV settings";
+ }
+
+ rpc GetMyBroadcastChannels (.CSteamTV_GetMyBroadcastChannels_Request) returns (.CSteamTV_GetMyBroadcastChannels_Response) {
+ option (method_description) = "Gets the broadcast channels that the current user owns";
+ }
+
+ rpc GetHomePageContents (.CSteamTV_GetHomePageContents_Request) returns (.CSteamTV_GetHomePageContents_Response) {
+ option (method_description) = "Returns homepage contents for user";
+ }
+
+ rpc AppCheer (.CSteamTV_AppCheer_Request) returns (.CSteamTV_AppCheer_Response) {
+ option (method_description) = "The user is cheering for a specific broadcast for a specific app.";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_store.steamclient.proto b/protobuf_files/orig/steam/steammessages_store.steamclient.proto
new file mode 100644
index 00000000..a062e682
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_store.steamclient.proto
@@ -0,0 +1,344 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+import "contenthubs.proto";
+import "enums.proto";
+
+option cc_generic_services = true;
+
+enum EStoreDiscoveryQueueType {
+ k_EStoreDiscoveryQueueTypeNew = 0;
+ k_EStoreDiscoveryQueueTypeComingSoon = 1;
+ k_EStoreDiscoveryQueueTypeRecommended = 2;
+ k_EStoreDiscoveryQueueTypeEveryNewRelease = 3;
+ k_EStoreDiscoveryQueueTypeMLRecommender = 5;
+ k_EStoreDiscoveryQueueTypeWishlistOnSale = 6;
+ k_EStoreDiscoveryQueueTypeDLC = 7;
+ k_EStoreDiscoveryQueueTypeDLCOnSale = 8;
+ k_EStoreDiscoveryQueueTypeRecommendedComingSoon = 9;
+ k_EStoreDiscoveryQueueTypeRecommendedFree = 10;
+ k_EStoreDiscoveryQueueTypeRecommendedOnSale = 11;
+ k_EStoreDiscoveryQueueTypeRecommendedDemos = 12;
+ k_EStoreDiscoveryQueueTypeDLCNewReleases = 13;
+ k_EStoreDiscoveryQueueTypeDLCTopSellers = 14;
+ k_EStoreDiscoveryQueueTypeMAX = 15;
+}
+
+enum EPlaytestStatus {
+ k_ETesterStatusNone = 0;
+ k_ETesterStatusPending = 1;
+ k_ETesterStatusInvited = 2;
+ k_ETesterStatusGranted = 3;
+}
+
+enum EUserReviewScorePreference {
+ k_EUserReviewScorePreference_Unset = 0;
+ k_EUserReviewScorePreference_IncludeAll = 1;
+ k_EUserReviewScorePreference_ExcludeBombs = 2;
+}
+
+message CStore_RegisterCDKey_Request {
+ optional string activation_code = 1 [(description) = "Key string to register on the logged in user's account"];
+ optional int32 purchase_platform = 2 [(description) = "EPurchasePlatform for platform of request"];
+ optional bool is_request_from_client = 3 [(description) = "True if the request was initiated from inside the Steam client"];
+}
+
+message CStore_PurchaseReceiptInfo {
+ message LineItem {
+ optional uint32 packageid = 1;
+ optional uint32 appid = 2;
+ optional string line_item_description = 3;
+ }
+
+ optional uint64 transactionid = 1;
+ optional uint32 packageid = 2;
+ optional uint32 purchase_status = 3;
+ optional uint32 result_detail = 4;
+ optional uint32 transaction_time = 5;
+ optional uint32 payment_method = 6;
+ optional uint64 base_price = 7;
+ optional uint64 total_discount = 8;
+ optional uint64 tax = 9;
+ optional uint64 shipping = 10;
+ optional uint32 currency_code = 11;
+ optional string country_code = 12;
+ optional string error_headline = 13;
+ optional string error_string = 14;
+ optional string error_link_text = 15;
+ optional string error_link_url = 16;
+ optional uint32 error_appid = 17;
+ repeated .CStore_PurchaseReceiptInfo.LineItem line_items = 18;
+}
+
+message CStore_RegisterCDKey_Response {
+ optional int32 purchase_result_details = 1 [(description) = "EPurchaseResultDetails from key activation"];
+ optional .CStore_PurchaseReceiptInfo purchase_receipt_info = 2 [(description) = "Purchase receipt info"];
+}
+
+message CStore_GetMostPopularTags_Request {
+ optional string language = 1;
+}
+
+message CStore_GetMostPopularTags_Response {
+ message Tag {
+ optional uint32 tagid = 1;
+ optional string name = 2;
+ }
+
+ repeated .CStore_GetMostPopularTags_Response.Tag tags = 1;
+}
+
+message CStore_GetLocalizedNameForTags_Request {
+ optional string language = 1;
+ repeated uint32 tagids = 2;
+}
+
+message CStore_GetLocalizedNameForTags_Response {
+ message Tag {
+ optional uint32 tagid = 1;
+ optional string english_name = 2;
+ optional string name = 3;
+ optional string normalized_name = 4 [(description) = "english_name, lowercase, with homoglyphs replaced and spaces and some punctuation removed."];
+ }
+
+ repeated .CStore_GetLocalizedNameForTags_Response.Tag tags = 1;
+}
+
+message CStoreDiscoveryQueueSettings {
+ optional bool os_win = 4;
+ optional bool os_mac = 5;
+ optional bool os_linux = 6;
+ optional bool full_controller_support = 7;
+ optional bool native_steam_controller = 8;
+ optional bool include_coming_soon = 9;
+ repeated uint32 excluded_tagids = 10 [(description) = "Don't return any games with these tags."];
+ optional bool exclude_early_access = 11;
+ optional bool exclude_videos = 12;
+ optional bool exclude_software = 13;
+ optional bool exclude_dlc = 14;
+ optional bool exclude_soundtracks = 15;
+ repeated uint32 featured_tagids = 16 [(description) = "Must be marked with one of these featured tagids (for sale pages and events)"];
+}
+
+message CStore_GetDiscoveryQueue_Request {
+ optional .EStoreDiscoveryQueueType queue_type = 1 [default = k_EStoreDiscoveryQueueTypeNew];
+ optional string country_code = 2;
+ optional bool rebuild_queue = 3;
+ optional bool settings_changed = 4;
+ optional .CStoreDiscoveryQueueSettings settings = 5;
+ optional bool rebuild_queue_if_stale = 6;
+ optional bool ignore_user_preferences = 8;
+ optional bool no_experimental_results = 9;
+ optional uint32 experimental_cohort = 10;
+ optional bool debug_get_solr_query = 11;
+ optional .CStorePageFilter store_page_filter = 12;
+}
+
+message CStore_GetDiscoveryQueue_Response {
+ repeated uint32 appids = 1;
+ optional string country_code = 2;
+ optional .CStoreDiscoveryQueueSettings settings = 3;
+ optional int32 skipped = 4;
+ optional bool exhausted = 5;
+ optional uint32 experimental_cohort = 6;
+ optional string debug_solr_query = 7;
+}
+
+message CStore_GetDiscoveryQueueSettings_Request {
+ optional .EStoreDiscoveryQueueType queue_type = 1 [default = k_EStoreDiscoveryQueueTypeNew];
+ optional .CStorePageFilter store_page_filter = 2;
+}
+
+message CStore_GetDiscoveryQueueSettings_Response {
+ optional string country_code = 1;
+ optional .CStoreDiscoveryQueueSettings settings = 2;
+}
+
+message CStore_SkipDiscoveryQueueItem_Request {
+ optional .EStoreDiscoveryQueueType queue_type = 1 [default = k_EStoreDiscoveryQueueTypeNew];
+ optional uint32 appid = 2;
+ optional .CStorePageFilter store_page_filter = 3;
+}
+
+message CStore_SkipDiscoveryQueueItem_Response {
+}
+
+message CStore_GetUserGameInterestState_Request {
+ optional uint32 appid = 1;
+ optional uint32 store_appid = 2;
+ optional uint32 beta_appid = 3;
+}
+
+message CStore_GetUserGameInterestState_Response {
+ message InQueue {
+ optional .EStoreDiscoveryQueueType type = 1 [default = k_EStoreDiscoveryQueueTypeNew];
+ optional bool skipped = 2;
+ optional int32 items_remaining = 3;
+ optional uint32 next_appid = 4;
+ optional uint32 experimental_cohort = 5;
+ }
+
+ optional bool owned = 1;
+ optional bool wishlist = 2;
+ optional bool ignored = 3;
+ optional bool following = 4;
+ repeated .EStoreDiscoveryQueueType in_queues = 5;
+ repeated .EStoreDiscoveryQueueType queues_with_skip = 6 [(description) = "Discovery queue types where the user has skipped this game."];
+ repeated int32 queue_items_remaining = 7 [(description) = "# of items remaining in the discovery queue - matches the same order as in_queues"];
+ repeated uint32 queue_items_next_appid = 8 [(description) = "the next appid in the queue - matches the same order as in_queues"];
+ optional bool temporarily_owned = 9 [(description) = "The user owns the game temporarily, eg a rental or free weekend"];
+ repeated .CStore_GetUserGameInterestState_Response.InQueue queues = 10;
+ optional int32 ignored_reason = 11 [(description) = "The ERecommendationIgnoreReason why the user ignored the app"];
+ optional .EPlaytestStatus beta_status = 12 [default = k_ETesterStatusNone, (description) = "User interest or membership in the playtest for this app if any"];
+}
+
+message CStore_GetDiscoveryQueueSkippedApps_Request {
+ optional fixed64 steamid = 1;
+ optional .EStoreDiscoveryQueueType queue_type = 2 [default = k_EStoreDiscoveryQueueTypeNew];
+ optional .CStorePageFilter store_page_filter = 3;
+}
+
+message CStore_GetDiscoveryQueueSkippedApps_Response {
+ repeated uint32 appids = 1;
+}
+
+message CStore_GetStorePreferences_Request {
+}
+
+message CStore_UserPreferences {
+ optional int32 primary_language = 1;
+ optional uint32 secondary_languages = 2;
+ optional bool platform_windows = 3;
+ optional bool platform_mac = 4;
+ optional bool platform_linux = 5;
+ optional uint32 timestamp_updated = 8;
+ optional bool hide_store_broadcast = 9;
+ optional .EUserReviewScorePreference review_score_preference = 10 [default = k_EUserReviewScorePreference_Unset];
+ optional int32 timestamp_content_descriptor_preferences_updated = 11;
+ optional .EProvideDeckFeedbackPreference provide_deck_feedback = 12 [default = k_EProvideDeckFeedbackPreference_Unset];
+ optional string additional_languages = 13;
+}
+
+message CStore_UserTagPreferences {
+ message Tag {
+ optional uint32 tagid = 1;
+ optional string name = 2;
+ optional uint32 timestamp_added = 3;
+ }
+
+ repeated .CStore_UserTagPreferences.Tag tags_to_exclude = 1;
+}
+
+message CStore_UserContentDescriptorPreferences {
+ message ContentDescriptor {
+ optional uint32 content_descriptorid = 1;
+ optional uint32 timestamp_added = 2;
+ }
+
+ repeated .CStore_UserContentDescriptorPreferences.ContentDescriptor content_descriptors_to_exclude = 1;
+}
+
+message CStore_GetStorePreferences_Response {
+ optional .CStore_UserPreferences preferences = 1;
+ optional .CStore_UserTagPreferences tag_preferences = 2;
+ optional .CStore_UserContentDescriptorPreferences content_descriptor_preferences = 3;
+}
+
+message CStore_GetTrendingAppsAmongFriends_Request {
+ optional uint32 num_apps = 1;
+ optional uint32 num_top_friends = 2;
+}
+
+message CStore_GetTrendingAppsAmongFriends_Response {
+ message TrendingAppData {
+ optional uint32 appid = 1;
+ repeated uint64 steamids_top_friends = 2;
+ optional uint32 total_friends = 3;
+ }
+
+ repeated .CStore_GetTrendingAppsAmongFriends_Response.TrendingAppData trending_apps = 1;
+}
+
+message CSteamDeckCompatibility_SetFeedback_Request {
+ optional uint32 appid = 1;
+ optional .ESteamDeckCompatibilityFeedback feedback = 2 [default = k_ESteamDeckCompatibilityFeedback_Unset];
+}
+
+message CSteamDeckCompatibility_SetFeedback_Response {
+}
+
+message CSteamDeckCompatibility_ShouldPrompt_Request {
+ optional uint32 appid = 1;
+}
+
+message CSteamDeckCompatibility_ShouldPrompt_Response {
+ optional bool prompt = 1;
+ optional bool feedback_eligible = 2;
+ optional .ESteamDeckCompatibilityFeedback existing_feedback = 3 [default = k_ESteamDeckCompatibilityFeedback_Unset];
+}
+
+message CStore_StorePreferencesChanged_Notification {
+ optional .CStore_UserPreferences preferences = 1;
+ optional .CStore_UserTagPreferences tag_preferences = 2;
+ optional .CStore_UserContentDescriptorPreferences content_descriptor_preferences = 3;
+}
+
+service Store {
+ option (service_description) = "A service to access store data.";
+
+ rpc RegisterCDKey (.CStore_RegisterCDKey_Request) returns (.CStore_RegisterCDKey_Response) {
+ option (method_description) = "Registers a CD key with Steam on the logged in user's account";
+ }
+
+ rpc GetMostPopularTags (.CStore_GetMostPopularTags_Request) returns (.CStore_GetMostPopularTags_Response) {
+ option (method_description) = "Get all whitelisted tags, with localized names.";
+ }
+
+ rpc GetLocalizedNameForTags (.CStore_GetLocalizedNameForTags_Request) returns (.CStore_GetLocalizedNameForTags_Response) {
+ option (method_description) = "Gets tag names in a different language";
+ }
+
+ rpc GetDiscoveryQueue (.CStore_GetDiscoveryQueue_Request) returns (.CStore_GetDiscoveryQueue_Response) {
+ option (method_description) = "Get a list of games for the user to explore on the store.";
+ }
+
+ rpc GetDiscoveryQueueSettings (.CStore_GetDiscoveryQueueSettings_Request) returns (.CStore_GetDiscoveryQueueSettings_Response) {
+ option (method_description) = "Get the settings that were used to generate a user's discovery queue.";
+ }
+
+ rpc SkipDiscoveryQueueItem (.CStore_SkipDiscoveryQueueItem_Request) returns (.CStore_SkipDiscoveryQueueItem_Response) {
+ option (method_description) = "Skip an item in the user's queue.";
+ }
+
+ rpc GetUserGameInterestState (.CStore_GetUserGameInterestState_Request) returns (.CStore_GetUserGameInterestState_Response) {
+ option (method_description) = "Get information about a user's relationship to a game - ownership, wishlist, discovery queue state, etc.";
+ }
+
+ rpc GetDiscoveryQueueSkippedApps (.CStore_GetDiscoveryQueueSkippedApps_Request) returns (.CStore_GetDiscoveryQueueSkippedApps_Response) {
+ option (method_description) = "Returns all the apps skipped so far in the given discovery queue for the given user.";
+ }
+
+ rpc GetStorePreferences (.CStore_GetStorePreferences_Request) returns (.CStore_GetStorePreferences_Response) {
+ option (method_description) = "Returns the desired ratings board and maximum rating to show on the store";
+ }
+
+ rpc GetTrendingAppsAmongFriends (.CStore_GetTrendingAppsAmongFriends_Request) returns (.CStore_GetTrendingAppsAmongFriends_Response) {
+ option (method_description) = "Get trending apps among friends";
+ }
+
+ rpc SetCompatibilityFeedback (.CSteamDeckCompatibility_SetFeedback_Request) returns (.CSteamDeckCompatibility_SetFeedback_Response) {
+ option (method_description) = "Upserts user feedback regarding the published Steam Deck Compatibility rating for a game";
+ }
+
+ rpc ShouldPromptForCompatibilityFeedback (.CSteamDeckCompatibility_ShouldPrompt_Request) returns (.CSteamDeckCompatibility_ShouldPrompt_Response) {
+ option (method_description) = "Returns whether we should ask the user if the compatibility rating is correct";
+ }
+}
+
+service StoreClient {
+ option (service_description) = "Steam store to client notifications";
+ option (service_execution_site) = k_EProtoExecutionSiteSteamClient;
+
+ rpc NotifyStorePreferencesChanged (.CStore_StorePreferencesChanged_Notification) returns (.NoResponse) {
+ option (method_description) = "Notification from server to client that the user's store preferences have changed";
+ }
+}
diff --git a/protobuf_files/orig/steam/steammessages_storebrowse.steamclient.proto b/protobuf_files/orig/steam/steammessages_storebrowse.steamclient.proto
new file mode 100644
index 00000000..2e53a40b
--- /dev/null
+++ b/protobuf_files/orig/steam/steammessages_storebrowse.steamclient.proto
@@ -0,0 +1,386 @@
+import "steammessages_base.proto";
+import "steammessages_unified_base.steamclient.proto";
+import "enums_productinfo.proto";
+import "enums.proto";
+import "contenthubs.proto";
+
+option cc_generic_services = true;
+
+enum EStoreItemType {
+ k_EStoreItemType_Invalid = -1;
+ k_EStoreItemType_App = 0;
+ k_EStoreItemType_Package = 1;
+ k_EStoreItemType_Bundle = 2;
+ k_EStoreItemType_Mtx = 3;
+ k_EStoreItemType_Tag = 4;
+ k_EStoreItemType_Creator = 5;
+}
+
+enum EStoreAppType {
+ k_EStoreAppType_Game = 0;
+ k_EStoreAppType_Demo = 1;
+ k_EStoreAppType_Mod = 2;
+ k_EStoreAppType_Movie = 3;
+ k_EStoreAppType_DLC = 4;
+ k_EStoreAppType_Guide = 5;
+ k_EStoreAppType_Software = 6;
+ k_EStoreAppType_Video = 7;
+ k_EStoreAppType_Series = 8;
+ k_EStoreAppType_Episode = 9;
+ k_EStoreAppType_Hardware = 10;
+ k_EStoreAppType_Music = 11;
+ k_EStoreAppType_Beta = 12;
+ k_EStoreAppType_Tool = 13;
+ k_EStoreAppType_Advertising = 14;
+}
+
+enum EUserReviewScore {
+ k_EUserReviewScore_None = 0;
+ k_EUserReviewScore_OverwhelminglyNegative = 1;
+ k_EUserReviewScore_VeryNegative = 2;
+ k_EUserReviewScore_Negative = 3;
+ k_EUserReviewScore_MostlyNegative = 4;
+ k_EUserReviewScore_Mixed = 5;
+ k_EUserReviewScore_MostlyPositive = 6;
+ k_EUserReviewScore_Positive = 7;
+ k_EUserReviewScore_VeryPositive = 8;
+ k_EUserReviewScore_OverwhelminglyPositive = 9;
+}
+
+enum EStoreCategoryType {
+ k_EStoreCategoryType_Category = 0;
+ k_EStoreCategoryType_SupportedPlayers = 1;
+ k_EStoreCategoryType_Feature = 2;
+ k_EStoreCategoryType_ControllerSupport = 3;
+ k_EStoreCategoryType_CloudGaming = 4;
+ k_EStoreCategoryType_MAX = 5;
+}
+
+message StoreItemID {
+ optional uint32 appid = 1;
+ optional uint32 packageid = 2;
+ optional uint32 bundleid = 3;
+ optional uint32 tagid = 4;
+ optional uint32 creatorid = 5;
+}
+
+message StoreBrowseContext {
+ optional string language = 1;
+ optional int32 elanguage = 2 [(description) = "ELanguage"];
+ optional string country_code = 3 [(description) = "2-character country code; required"];
+ optional int32 steam_realm = 4 [(description) = "ESteamRealm"];
+}
+
+message StoreBrowseItemDataRequest {
+ optional bool include_assets = 1;
+ optional bool include_release = 2;
+ optional bool include_platforms = 3;
+ optional bool include_all_purchase_options = 4;
+ optional bool include_screenshots = 5;
+ optional bool include_trailers = 6;
+ optional bool include_ratings = 7;
+ optional int32 include_tag_count = 8 [(description) = "Count of tags to return, as tagids. Maximum 20."];
+ optional bool include_reviews = 9;
+ optional bool include_basic_info = 10 [(description) = "Include short description, publisher, developers"];
+ optional bool include_supported_languages = 11 [(description) = "includes the games support for languages: supported, full_audio, subtitles"];
+}
+
+message CStoreBrowse_GetItems_Request {
+ repeated .StoreItemID ids = 1;
+ optional .StoreBrowseContext context = 2;
+ optional .StoreBrowseItemDataRequest data_request = 3;
+}
+
+message StoreGameRating {
+ optional string type = 1 [(description) = "'esrb', 'pegi', ..."];
+ optional string rating = 2 [(description) = "'t' for teen, 'm' for mature, ..."];
+ repeated string descriptors = 3 [(description) = "Additional descriptors like 'Intense Violence', 'Strong Language',..."];
+ optional string interactive_elements = 4 [(description) = "ESRB-specific"];
+ optional int32 required_age = 10 [(description) = "Age in years. Store pages will prompt with an age gate"];
+ optional bool use_age_gate = 11;
+ optional string image_url = 20 [(description) = "An image corresponding to the rating."];
+ optional string image_target = 21 [(description) = "URL where the image should link for more information."];
+}
+
+message StoreItem {
+ message RelatedItems {
+ optional uint32 parent_appid = 1 [(description) = "For DLC, Demos, etc, this is the main app."];
+ }
+
+ message Categories {
+ repeated uint32 supported_player_categoryids = 2 [(description) = "Categories like Single Player, Multiplayer, MMO"];
+ repeated uint32 feature_categoryids = 3 [(description) = "Categories indicating supported features like Steam Cloud, VAC, Achievements, etc"];
+ repeated uint32 controller_categoryids = 4 [(description) = "Categories indicating controller support and full controller support."];
+ }
+
+ message Reviews {
+ message StoreReviewSummary {
+ optional uint32 review_count = 1;
+ optional int32 percent_positive = 2 [(description) = "0-100"];
+ optional .EUserReviewScore review_score = 3 [default = k_EUserReviewScore_None];
+ optional string review_score_label = 4 [(description) = "A string like 'Mixed', 'Negative', 'Overwhelmingly Positive'"];
+ }
+
+ optional .StoreItem.Reviews.StoreReviewSummary summary_filtered = 1 [(description) = "Review summary with review bombs removed (if any). Always present (if include_reviews set in request)"];
+ optional .StoreItem.Reviews.StoreReviewSummary summary_unfiltered = 2 [(description) = "Review summary with review bombs included. Only present if there are review bombs."];
+ }
+
+ message BasicInfo {
+ message CreatorHomeLink {
+ optional string name = 1;
+ optional uint32 creator_clan_account_id = 2 [(description) = "Optioanl field indicating this name is associated this the creator home via the clan account id"];
+ }
+
+ optional string short_description = 1;
+ repeated .StoreItem.BasicInfo.CreatorHomeLink publishers = 2;
+ repeated .StoreItem.BasicInfo.CreatorHomeLink developers = 3;
+ repeated .StoreItem.BasicInfo.CreatorHomeLink franchises = 4;
+ optional string capsule_headline = 5 [(description) = "A custom string specified by the partner for display on or around a capsule on the store, e.g. 'Just Updated!'"];
+ }
+
+ message Tag {
+ optional uint32 tagid = 1;
+ optional uint32 weight = 2;
+ }
+
+ message Assets {
+ optional string asset_url_format = 1 [(description) = "Format for URLs, should substitute the capsule name for ${FILENAME} in the URL."];
+ optional string main_capsule = 2;
+ optional string small_capsule = 3;
+ optional string header = 4 [(description) = "Equivalent to GetConstantRatioHeaderImage in PHP; apps will always have this, packages and bundles may not."];
+ optional string package_header = 5 [(description) = "A wider header used on package/bundle pages. Not set for apps."];
+ optional string page_background = 6;
+ optional string hero_capsule = 7 [(description) = "374x448"];
+ optional string hero_capsule_2x = 8 [(description) = "748x896 version of hero capsule."];
+ optional string library_capsule = 9 [(description) = "300x450 - tall library asset"];
+ optional string library_capsule_2x = 10 [(description) = "600x900 - tall library asset"];
+ optional string library_hero = 11 [(description) = "960x310 or 1920x620 - library detail background asset"];
+ optional string library_hero_2x = 12 [(description) = "1920x620 or 3840x1240 - library detail background asset"];
+ optional string community_icon = 13 [(description) = "32x32 jpg uploading via steamworks under community assets"];
+ optional string clan_avatar = 14;
+ }
+
+ message ReleaseInfo {
+ optional uint32 steam_release_date = 1 [(description) = "The date this item first released on the Steam store. For Early Access graduates, this is their graduation day."];
+ optional uint32 original_release_date = 2 [(description) = "Optional; the date this item first released elsewhere, typically back catalog items."];
+ optional uint32 original_steam_release_date = 3 [(description) = "For Early Access graduates, the date the game first appeared on Steam."];
+ optional bool is_coming_soon = 4 [(description) = "Is the app coming soon? This flag should be preferred to doing time comparisons against steam_release_date."];
+ optional bool is_preload = 5 [(description) = "Can the app be preloaded? Only applies to Coming Soon titles."];
+ optional string custom_release_date_message = 6 [(description) = "Custom release date string. steam_release_date will be unset if this is set."];
+ optional bool is_abridged_release_date = 7 [(description) = "Release date should be displayed as month-year only. steam_release_date is the last day of the month."];
+ optional string coming_soon_display = 8 [(description) = "One of 'date_full', 'date_month', 'date_quarter', 'date_year', 'text_comingsoon', 'text_tba'"];
+ optional bool is_early_access = 10;
+ optional uint32 mac_release_date = 20;
+ optional uint32 linux_release_date = 21;
+ }
+
+ message Platforms {
+ message VRSupport {
+ optional bool vrhmd = 1;
+ optional bool vrhmd_only = 2;
+ optional bool htc_vive = 40;
+ optional bool oculus_rift = 41;
+ optional bool windows_mr = 42;
+ optional bool valve_index = 43;
+ }
+
+ optional bool windows = 1;
+ optional bool mac = 2;
+ optional bool steamos_linux = 3;
+ optional .StoreItem.Platforms.VRSupport vr_support = 10;
+ optional .ESteamDeckCompatibilityCategory steam_deck_compat_category = 11 [default = k_ESteamDeckCompatibilityCategory_Unknown];
+ }
+
+ message PurchaseOption {
+ message Discount {
+ optional int64 discount_amount = 1;
+ optional string discount_description = 2;
+ optional uint32 discount_end_date = 3;
+ }
+
+ optional int32 packageid = 1;
+ optional int32 bundleid = 2;
+ optional string purchase_option_name = 3 [(description) = "The name of the package or bundle"];
+ optional int64 final_price_in_cents = 5 [(description) = "Always set. Includes any applicable non user-specific discounts."];
+ optional int64 original_price_in_cents = 6 [(description) = "If discounted, this is the price the item would normally cost."];
+ optional int64 user_final_price_in_cents = 7;
+ optional string formatted_final_price = 8 [(description) = "Always set. Formatted with currency symbol and decimal, like '$10.00'."];
+ optional string formatted_original_price = 9;
+ optional int32 discount_pct = 10 [(description) = "If discounted, calculated from final price and original price."];
+ optional int32 user_discount_pct = 11;
+ optional int32 bundle_discount_pct = 12 [(description) = "If this is a bundle, the savings from buying the bundle. If no bundle items are on active discount, this will be the same as discount_pct."];
+ repeated .StoreItem.PurchaseOption.Discount active_discounts = 20 [(description) = "Discounts included in discounted_price_in_cents."];
+ repeated .StoreItem.PurchaseOption.Discount user_active_discounts = 21 [(description) = "Additional discounts included in user_discounted_price_in_cents."];
+ repeated .StoreItem.PurchaseOption.Discount inactive_discounts = 22 [(description) = "Additional user-specific discounts that do not apply to the current user."];
+ optional bool user_can_purchase = 30;
+ optional bool user_can_purchase_as_gift = 31;
+ optional bool is_commercial_license = 40 [(description) = "This is a commercial license"];
+ optional bool should_suppress_discount_pct = 41 [(description) = "Don't show the discount percentage on a store capsule for this item."];
+ }
+
+ message Screenshots {
+ message Screenshot {
+ optional string filename = 1 [(description) = "Path to file on media CDN. Can access sized version by appending to SHA: '.1920x1080', '.600x338', '.116x65'"];
+ optional int32 ordinal = 2 [(description) = "Screenshots should be displayed in order of ascending ordinal; they are returned in-order but client may need to merge all_ages and mature_content_screenshots."];
+ }
+
+ repeated .StoreItem.Screenshots.Screenshot all_ages_screenshots = 2 [(description) = "Screenshots suitable for all ages."];
+ repeated .StoreItem.Screenshots.Screenshot mature_content_screenshots = 3 [(description) = "Screenshots that may contain mature content; these should only be shown after verifying age (age gate)."];
+ }
+
+ message Trailers {
+ message VideoSource {
+ optional string filename = 1 [(description) = "Substitute into trailer_url_format"];
+ optional string type = 2 [(description) = "'video/webm' or 'video/mp4'; can just put this directly in to a
-