├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md ├── artifact ├── base_gcmessages.proto ├── c_peer2peer_netmessages.proto ├── clientmessages.proto ├── connectionless_netmessages.proto ├── dcg_gamemessages.proto ├── dcg_gcmessages_client.proto ├── dcg_gcmessages_common.proto ├── dcg_gcmessages_server.proto ├── demo.proto ├── econ_gcmessages.proto ├── econ_shared_enums.proto ├── gameevents.proto ├── gametoolevents.proto ├── gcsdk_gcmessages.proto ├── gcsystemmsgs.proto ├── netmessages.proto ├── network_connection.proto ├── networkbasetypes.proto ├── networksystem_protomessages.proto ├── steamdatagram_messages_auth.proto ├── steamdatagram_messages_sdr.proto ├── steammessages.proto ├── steammessages_base.proto ├── steammessages_cloud.steamworkssdk.proto ├── steammessages_oauth.steamworkssdk.proto ├── steammessages_publishedfile.steamworkssdk.proto ├── steammessages_unified_base.steamworkssdk.proto ├── steamnetworkingsockets_messages.proto ├── steamnetworkingsockets_messages_certs.proto ├── steamnetworkingsockets_messages_udp.proto ├── te.proto ├── uifontfile_format.proto └── usermessages.proto ├── csgo ├── base_gcmessages.proto ├── base_gcmessages_csgo.proto ├── c_peer2peer_netmessages.proto ├── clientmessages.proto ├── connectionless_netmessages.proto ├── cs_gameevents.proto ├── cs_usercmd.proto ├── cstrike15_gcmessages.proto ├── cstrike15_usermessages.proto ├── demo.proto ├── econ_gcmessages.proto ├── engine_gcmessages.proto ├── enums_clientserver.proto ├── fatdemo.proto ├── gameevents.proto ├── gcsdk_gcmessages.proto ├── gcsystemmsgs.proto ├── netmessages.proto ├── network_connection.proto ├── networkbasetypes.proto ├── networksystem_protomessages.proto ├── steamdatagram_messages_auth.proto ├── steamdatagram_messages_sdr.proto ├── steammessages.proto ├── steammessages_base.proto ├── steammessages_cloud.steamworkssdk.proto ├── steammessages_gamenetworkingui.proto ├── steammessages_helprequest.steamworkssdk.proto ├── steammessages_oauth.steamworkssdk.proto ├── steammessages_player.steamworkssdk.proto ├── steammessages_publishedfile.steamworkssdk.proto ├── steammessages_unified_base.steamworkssdk.proto ├── steamnetworkingsockets_messages.proto ├── steamnetworkingsockets_messages_certs.proto ├── steamnetworkingsockets_messages_udp.proto ├── te.proto ├── uifontfile_format.proto ├── usercmd.proto ├── usermessages.proto └── valveextensions.proto ├── deadlock ├── base_gcmessages.proto ├── base_modifier.proto ├── c_peer2peer_netmessages.proto ├── citadel_clientmessages.proto ├── citadel_gameevents.proto ├── citadel_gamemessages.proto ├── citadel_gcmessages_client.proto ├── citadel_gcmessages_common.proto ├── citadel_gcmessages_server.proto ├── citadel_usercmd.proto ├── citadel_usermessages.proto ├── clientmessages.proto ├── connectionless_netmessages.proto ├── demo.proto ├── econ_gcmessages.proto ├── econ_shared_enums.proto ├── engine_gcmessages.proto ├── enums_clientserver.proto ├── gameevents.proto ├── gcsdk_gcmessages.proto ├── gcsystemmsgs.proto ├── netmessages.proto ├── network_connection.proto ├── networkbasetypes.proto ├── networksystem_protomessages.proto ├── prediction_events.proto ├── steamdatagram_messages_auth.proto ├── steamdatagram_messages_sdr.proto ├── steammessages.proto ├── steammessages_base.proto ├── steammessages_cloud.steamworkssdk.proto ├── steammessages_gamenetworkingui.proto ├── steammessages_helprequest.steamworkssdk.proto ├── steammessages_int.proto ├── steammessages_oauth.steamworkssdk.proto ├── steammessages_player.steamworkssdk.proto ├── steammessages_publishedfile.steamworkssdk.proto ├── steammessages_steamlearn.steamworkssdk.proto ├── steammessages_unified_base.steamworkssdk.proto ├── steamnetworkingsockets_messages.proto ├── steamnetworkingsockets_messages_certs.proto ├── steamnetworkingsockets_messages_udp.proto ├── te.proto ├── uifontfile_format.proto ├── usercmd.proto ├── usermessages.proto └── valveextensions.proto ├── dota2 ├── base_gcmessages.proto ├── c_peer2peer_netmessages.proto ├── clientmessages.proto ├── connectionless_netmessages.proto ├── demo.proto ├── dota_broadcastmessages.proto ├── dota_client_enums.proto ├── dota_clientmessages.proto ├── dota_commonmessages.proto ├── dota_fighting_game_p2p_messages.proto ├── dota_gcmessages_client.proto ├── dota_gcmessages_client_battle_report.proto ├── dota_gcmessages_client_bingo.proto ├── dota_gcmessages_client_candy_shop.proto ├── dota_gcmessages_client_chat.proto ├── dota_gcmessages_client_coaching.proto ├── dota_gcmessages_client_craftworks.proto ├── dota_gcmessages_client_fantasy.proto ├── dota_gcmessages_client_guild.proto ├── dota_gcmessages_client_guild_events.proto ├── dota_gcmessages_client_match_management.proto ├── dota_gcmessages_client_showcase.proto ├── dota_gcmessages_client_team.proto ├── dota_gcmessages_client_tournament.proto ├── dota_gcmessages_client_watch.proto ├── dota_gcmessages_common.proto ├── dota_gcmessages_common_bot_script.proto ├── dota_gcmessages_common_craftworks.proto ├── dota_gcmessages_common_fighting_game.proto ├── dota_gcmessages_common_league.proto ├── dota_gcmessages_common_lobby.proto ├── dota_gcmessages_common_match_management.proto ├── dota_gcmessages_common_overworld.proto ├── dota_gcmessages_common_survivors.proto ├── dota_gcmessages_msgid.proto ├── dota_gcmessages_server.proto ├── dota_gcmessages_webapi.proto ├── dota_hud_types.proto ├── dota_match_metadata.proto ├── dota_messages_mlbot.proto ├── dota_modifiers.proto ├── dota_scenariomessages.proto ├── dota_shared_enums.proto ├── dota_usercmd.proto ├── dota_usermessages.proto ├── econ_gcmessages.proto ├── econ_shared_enums.proto ├── engine_gcmessages.proto ├── enums_clientserver.proto ├── gameevents.proto ├── gametoolevents.proto ├── gcsdk_gcmessages.proto ├── gcsystemmsgs.proto ├── netmessages.proto ├── network_connection.proto ├── networkbasetypes.proto ├── networksystem_protomessages.proto ├── prediction_events.proto ├── steamdatagram_messages_auth.proto ├── steamdatagram_messages_sdr.proto ├── steammessages.proto ├── steammessages_base.proto ├── steammessages_clientserver_login.proto ├── steammessages_cloud.steamworkssdk.proto ├── steammessages_gamenetworkingui.proto ├── steammessages_helprequest.steamworkssdk.proto ├── steammessages_int.proto ├── steammessages_oauth.steamworkssdk.proto ├── steammessages_player.steamworkssdk.proto ├── steammessages_publishedfile.steamworkssdk.proto ├── steammessages_steamlearn.steamworkssdk.proto ├── steammessages_unified_base.steamworkssdk.proto ├── steamnetworkingsockets_messages.proto ├── steamnetworkingsockets_messages_certs.proto ├── steamnetworkingsockets_messages_udp.proto ├── te.proto ├── uifontfile_format.proto ├── usercmd.proto ├── usermessages.proto └── valveextensions.proto ├── google └── protobuf │ ├── any.proto │ ├── descriptor.proto │ ├── source_context.proto │ ├── type.proto │ └── wrappers.proto ├── steam ├── clientmetrics.proto ├── content_manifest.proto ├── contenthubs.proto ├── encrypted_app_ticket.proto ├── enums.proto ├── enums_clientserver.proto ├── enums_productinfo.proto ├── htmlmessages.proto ├── offline_ticket.proto ├── steamdatagram_messages_auth.proto ├── steamdatagram_messages_sdr.proto ├── steammessages_accounthardware.steamclient.proto ├── steammessages_appoverview.proto ├── steammessages_auth.steamclient.proto ├── steammessages_base.proto ├── steammessages_broadcast.steamclient.proto ├── steammessages_chat.steamclient.proto ├── steammessages_childprocessquery.proto ├── steammessages_client_objects.proto ├── steammessages_clientlanp2p.proto ├── steammessages_clientmetrics.steamclient.proto ├── steammessages_clientnotificationtypes.proto ├── steammessages_clientserver.proto ├── steammessages_clientserver_2.proto ├── steammessages_clientserver_appinfo.proto ├── steammessages_clientserver_friends.proto ├── steammessages_clientserver_gameservers.proto ├── steammessages_clientserver_lbs.proto ├── steammessages_clientserver_login.proto ├── steammessages_clientserver_mms.proto ├── steammessages_clientserver_ucm.proto ├── steammessages_clientserver_uds.proto ├── steammessages_clientserver_ufs.proto ├── steammessages_clientserver_userstats.proto ├── steammessages_clientserver_video.proto ├── steammessages_clientsettings.proto ├── steammessages_cloud.steamclient.proto ├── steammessages_community.steamclient.proto ├── steammessages_contentsystem.steamclient.proto ├── steammessages_credentials.steamclient.proto ├── steammessages_datapublisher.steamclient.proto ├── steammessages_depotbuilder.steamclient.proto ├── steammessages_econ.steamclient.proto ├── steammessages_familygroups.steamclient.proto ├── steammessages_friendmessages.steamclient.proto ├── steammessages_gamenetworking.steamclient.proto ├── steammessages_gamenetworkingui.proto ├── steammessages_gamenotifications.steamclient.proto ├── steammessages_gamerecording.steamclient.proto ├── steammessages_gamerecording_objects.proto ├── steammessages_gameservers.steamclient.proto ├── steammessages_hiddevices.proto ├── steammessages_inventory.steamclient.proto ├── steammessages_linkfilter.steamclient.proto ├── steammessages_lobbymatchmaking.steamclient.proto ├── steammessages_market.steamclient.proto ├── steammessages_marketingmessages.steamclient.proto ├── steammessages_notifications.steamclient.proto ├── steammessages_offline.steamclient.proto ├── steammessages_parental.steamclient.proto ├── steammessages_parental_objects.proto ├── steammessages_parties.steamclient.proto ├── steammessages_partnerapps.steamclient.proto ├── steammessages_player.steamclient.proto ├── steammessages_publishedfile.steamclient.proto ├── steammessages_qms.steamclient.proto ├── steammessages_remoteclient.proto ├── steammessages_remoteclient_discovery.proto ├── steammessages_remoteclient_service.steamclient.proto ├── steammessages_remoteclient_service_messages.proto ├── steammessages_remoteplay.proto ├── steammessages_secrets.steamclient.proto ├── steammessages_shader.steamclient.proto ├── steammessages_site_license.steamclient.proto ├── steammessages_sitelicenseclient.proto ├── steammessages_siteserverui.proto ├── steammessages_steamtv.steamclient.proto ├── steammessages_store.steamclient.proto ├── steammessages_storebrowse.steamclient.proto ├── steammessages_timedtrial.steamclient.proto ├── steammessages_twofactor.steamclient.proto ├── steammessages_unified_base.steamclient.proto ├── steammessages_unified_test.steamclient.proto ├── steammessages_useraccount.steamclient.proto ├── steammessages_vac.steamclient.proto ├── steammessages_video.steamclient.proto ├── steammessages_virtualcontroller.proto ├── steammessages_workshop.steamclient.proto ├── steamnetworkingsockets_messages.proto ├── steamnetworkingsockets_messages_certs.proto ├── steamnetworkingsockets_messages_udp.proto ├── webuimessages_achievements.proto ├── webuimessages_base.proto ├── webuimessages_bluetooth.proto ├── webuimessages_gamenotes.proto ├── webuimessages_gamerecording.proto ├── webuimessages_gamerecordingfiles.proto ├── webuimessages_gamescope.proto ├── webuimessages_hardwareupdate.proto ├── webuimessages_sharedjscontext.proto ├── webuimessages_steamengine.proto ├── webuimessages_steaminput.proto ├── webuimessages_steamos.proto ├── webuimessages_storagedevicemanager.proto ├── webuimessages_systemmanager.proto ├── webuimessages_transport.proto └── webuimessages_transportvalidation.proto ├── tf2 ├── base_gcmessages.proto ├── econ_gcmessages.proto ├── enums_clientserver.proto ├── gcsdk_gcmessages.proto ├── gcsystemmsgs.proto ├── steamdatagram_auth_messages.proto ├── steamdatagram_messages.proto ├── steamdatagram_messages_auth.proto ├── steamdatagram_messages_sdr.proto ├── steammessages.proto ├── steammessages_base.proto ├── steammessages_gamenetworkingui.proto ├── steamnetworkingsockets_messages.proto ├── steamnetworkingsockets_messages_certs.proto ├── steamnetworkingsockets_messages_udp.proto ├── tf_gcmessages.proto └── tf_proto_def_messages.proto ├── underlords ├── base_gcmessages.proto ├── c_peer2peer_netmessages.proto ├── clientmessages.proto ├── connectionless_netmessages.proto ├── dac_gamemessages.proto ├── dac_gcmessages_client.proto ├── dac_gcmessages_common.proto ├── dac_gcmessages_server.proto ├── demo.proto ├── econ_gcmessages.proto ├── econ_shared_enums.proto ├── enums_clientserver.proto ├── gameevents.proto ├── gametoolevents.proto ├── gcsdk_gcmessages.proto ├── gcsystemmsgs.proto ├── netmessages.proto ├── network_connection.proto ├── networkbasetypes.proto ├── networksystem_protomessages.proto ├── steamdatagram_messages_auth.proto ├── steamdatagram_messages_sdr.proto ├── steammessages.proto ├── steammessages_base.proto ├── steammessages_clientserver_login.proto ├── steammessages_cloud.steamworkssdk.proto ├── steammessages_helprequest.steamworkssdk.proto ├── steammessages_oauth.steamworkssdk.proto ├── steammessages_player.steamworkssdk.proto ├── steammessages_publishedfile.steamworkssdk.proto ├── steammessages_unified_base.steamworkssdk.proto ├── steamnetworkingsockets_messages.proto ├── steamnetworkingsockets_messages_certs.proto ├── steamnetworkingsockets_messages_udp.proto ├── te.proto ├── uifontfile_format.proto ├── usermessages.proto └── valveextensions.proto ├── update.sh └── webui ├── common.proto ├── common_base.proto ├── service_accountcart.proto ├── service_accountlinking.proto ├── service_accountprivacy.proto ├── service_accountprivateapps.proto ├── service_achievements.proto ├── service_assetsetpublishing.proto ├── service_auction.proto ├── service_authentication.proto ├── service_authenticationsupport.proto ├── service_bluetoothmanager.proto ├── service_broadcast.proto ├── service_chat.proto ├── service_chatroom.proto ├── service_chatusability.proto ├── service_checkout.proto ├── service_clan.proto ├── service_clanchatrooms.proto ├── service_clanfaqs.proto ├── service_clientcomm.proto ├── service_clientmetrics.proto ├── service_cloud.proto ├── service_cloudconfigstore.proto ├── service_cloudgaming.proto ├── service_community.proto ├── service_dailydeal.proto ├── service_econ.proto ├── service_embedded.proto ├── service_experimentservice.proto ├── service_familygroups.proto ├── service_forums.proto ├── service_fovasvideo.proto ├── service_friendmessages.proto ├── service_friendslist.proto ├── service_gamenotes.proto ├── service_gamerecording.proto ├── service_gamerecordingclip.proto ├── service_gamerecordingdebug.proto ├── service_gamescope.proto ├── service_hardwareupdate.proto ├── service_helprequestlogs.proto ├── service_loyaltyrewards.proto ├── service_marketingmessages.proto ├── service_mobileapp.proto ├── service_mobileauth.proto ├── service_mobiledevice.proto ├── service_mobileperaccount.proto ├── service_news.proto ├── service_parental.proto ├── service_partnerappnotes.proto ├── service_partnerdeadline.proto ├── service_partnerdismiss.proto ├── service_partnermeetsteam.proto ├── service_partnermembershipinvite.proto ├── service_partnerstorebrowse.proto ├── service_phone.proto ├── service_physicalgoods.proto ├── service_player.proto ├── service_playtest.proto ├── service_promotioneventinvites.proto ├── service_promotionplanning.proto ├── service_promotionstats.proto ├── service_publishedfile.proto ├── service_publishing.proto ├── service_quest.proto ├── service_remote.proto ├── service_remoteclientsteam.proto ├── service_salefeature.proto ├── service_saleitemrewards.proto ├── service_sharedjscontext.proto ├── service_shoppingcart.proto ├── service_steamawards.proto ├── service_steamcharts.proto ├── service_steamengine.proto ├── service_steaminputmanager.proto ├── service_steamlearn.proto ├── service_steamnotification.proto ├── service_steamosmanager.proto ├── service_steamossls.proto ├── service_steamtv.proto ├── service_steamvrvoicechat.proto ├── service_steamvrwebrtc.proto ├── service_storagedevicemanager.proto ├── service_store.proto ├── service_storeappsimilarity.proto ├── service_storebrowse.proto ├── service_storecatalog.proto ├── service_storemarketing.proto ├── service_storequery.proto ├── service_storesales.proto ├── service_storetopsellers.proto ├── service_systemmanager.proto ├── service_test_transporterror.proto ├── service_transportauth.proto ├── service_transportvalidation.proto ├── service_twofactor.proto ├── service_useraccount.proto ├── service_usergameactivity.proto ├── service_usergamenotes.proto ├── service_usernews.proto ├── service_userreviews.proto ├── service_userstorevisit.proto ├── service_video.proto ├── service_videoclip.proto ├── service_voicechat.proto ├── service_webrtc.proto └── service_wishlist.proto /.gitattributes: -------------------------------------------------------------------------------- 1 | * text eol=lf 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | */google/ 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ### Automatically tracked protobufs for Steam and Valve's games. 2 | 3 | These protobufs are being dumped as updates come in the [SteamTracking](https://github.com/SteamDatabase/SteamTracking) repository. 4 | 5 | Protobufs are dumped using [SteamKit's protobuf dumper](https://github.com/SteamRE/SteamKit/tree/master/Resources/ProtobufDumper). 6 | 7 | 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. 8 | 9 | > [!NOTE] 10 | > Artifact and Underlords protobufs are no longer being updated automatically. 11 | -------------------------------------------------------------------------------- /artifact/c_peer2peer_netmessages.proto: -------------------------------------------------------------------------------- 1 | import "netmessages.proto"; 2 | import "networkbasetypes.proto"; 3 | 4 | option cc_generic_services = false; 5 | 6 | enum P2P_Messages { 7 | p2p_TextMessage = 256; 8 | p2p_Voice = 257; 9 | p2p_Ping = 258; 10 | p2p_VRAvatarPosition = 259; 11 | p2p_WatchSynchronization = 260; 12 | } 13 | 14 | message CP2P_TextMessage { 15 | optional bytes text = 1; 16 | } 17 | 18 | message CSteam_Voice_Encoding { 19 | optional bytes voice_data = 1; 20 | } 21 | 22 | message CP2P_Voice { 23 | enum Handler_Flags { 24 | Played_Audio = 1; 25 | } 26 | 27 | optional .CMsgVoiceAudio audio = 1; 28 | optional uint32 broadcast_group = 2; 29 | } 30 | 31 | message CP2P_Ping { 32 | required uint64 send_time = 1; 33 | required bool is_reply = 2; 34 | } 35 | 36 | message CP2P_VRAvatarPosition { 37 | message COrientation { 38 | optional .CMsgVector pos = 1; 39 | optional .CMsgQAngle ang = 2; 40 | } 41 | 42 | repeated .CP2P_VRAvatarPosition.COrientation body_parts = 1; 43 | optional int32 hat_id = 2; 44 | optional int32 scene_id = 3; 45 | optional int32 world_scale = 4; 46 | } 47 | 48 | message CP2P_WatchSynchronization { 49 | optional int32 demo_tick = 1; 50 | optional bool paused = 2; 51 | optional int32 tv_listen_voice_indices = 3; 52 | optional int32 dota_spectator_mode = 4; 53 | optional int32 dota_spectator_watching_broadcaster = 5; 54 | optional int32 dota_spectator_hero_index = 6; 55 | optional int32 dota_spectator_autospeed = 7; 56 | optional int32 dota_replay_speed = 8; 57 | } 58 | -------------------------------------------------------------------------------- /artifact/clientmessages.proto: -------------------------------------------------------------------------------- 1 | option optimize_for = SPEED; 2 | option cc_generic_services = false; 3 | 4 | enum EBaseClientMessages { 5 | CM_CustomGameEvent = 280; 6 | CM_CustomGameEventBounce = 281; 7 | CM_ClientUIEvent = 282; 8 | CM_DevPaletteVisibilityChanged = 283; 9 | CM_WorldUIControllerHasPanelChanged = 284; 10 | CM_RotateAnchor = 285; 11 | CM_MAX_BASE = 300; 12 | } 13 | 14 | enum EClientUIEvent { 15 | EClientUIEvent_Invalid = 0; 16 | EClientUIEvent_DialogFinished = 1; 17 | EClientUIEvent_FireOutput = 2; 18 | } 19 | 20 | message CClientMsg_CustomGameEvent { 21 | optional string event_name = 1; 22 | optional bytes data = 2; 23 | } 24 | 25 | message CClientMsg_CustomGameEventBounce { 26 | optional string event_name = 1; 27 | optional bytes data = 2; 28 | optional int32 player_index = 3; 29 | } 30 | 31 | message CClientMsg_ClientUIEvent { 32 | optional .EClientUIEvent event = 1 [default = EClientUIEvent_Invalid]; 33 | optional uint32 ent_ehandle = 2; 34 | optional uint32 client_ehandle = 3; 35 | optional string data1 = 4; 36 | optional string data2 = 5; 37 | } 38 | 39 | message CClientMsg_DevPaletteVisibilityChangedEvent { 40 | optional bool visible = 1; 41 | } 42 | 43 | message CClientMsg_WorldUIControllerHasPanelChangedEvent { 44 | optional bool has_panel = 1; 45 | optional uint32 client_ehandle = 2; 46 | optional uint32 literal_hand_type = 3; 47 | } 48 | 49 | message CClientMsg_RotateAnchor { 50 | optional float angle = 1; 51 | } 52 | -------------------------------------------------------------------------------- /artifact/connectionless_netmessages.proto: -------------------------------------------------------------------------------- 1 | import "netmessages.proto"; 2 | 3 | option cc_generic_services = false; 4 | 5 | message C2S_CONNECT_Message { 6 | optional uint32 host_version = 1; 7 | optional uint32 auth_protocol = 2; 8 | optional uint32 challenge_number = 3; 9 | optional fixed64 reservation_cookie = 4; 10 | optional bool low_violence = 5; 11 | optional bytes encrypted_password = 6; 12 | repeated .CCLCMsg_SplitPlayerConnect splitplayers = 7; 13 | optional bytes auth_steam = 8; 14 | optional string challenge_context = 9; 15 | optional sint32 use_snp = 10; 16 | } 17 | 18 | message C2S_CONNECTION_Message { 19 | optional string addon_name = 1; 20 | optional bool use_snp = 2; 21 | } 22 | -------------------------------------------------------------------------------- /artifact/econ_shared_enums.proto: -------------------------------------------------------------------------------- 1 | option optimize_for = SPEED; 2 | option cc_generic_services = false; 3 | 4 | enum EGCEconBaseMsg { 5 | k_EMsgGCGenericResult = 2579; 6 | } 7 | 8 | enum EGCMsgResponse { 9 | k_EGCMsgResponseOK = 0; 10 | k_EGCMsgResponseDenied = 1; 11 | k_EGCMsgResponseServerError = 2; 12 | k_EGCMsgResponseTimeout = 3; 13 | k_EGCMsgResponseInvalid = 4; 14 | k_EGCMsgResponseNoMatch = 5; 15 | k_EGCMsgResponseUnknownError = 6; 16 | k_EGCMsgResponseNotLoggedOn = 7; 17 | k_EGCMsgFailedToCreate = 8; 18 | } 19 | 20 | enum EGCPartnerRequestResponse { 21 | k_EPartnerRequestOK = 1; 22 | k_EPartnerRequestBadAccount = 2; 23 | k_EPartnerRequestNotLinked = 3; 24 | k_EPartnerRequestUnsupportedPartnerType = 4; 25 | } 26 | 27 | enum EGCMsgUseItemResponse { 28 | k_EGCMsgUseItemResponse_ItemUsed = 0; 29 | k_EGCMsgUseItemResponse_GiftNoOtherPlayers = 1; 30 | k_EGCMsgUseItemResponse_ServerError = 2; 31 | k_EGCMsgUseItemResponse_MiniGameAlreadyStarted = 3; 32 | k_EGCMsgUseItemResponse_ItemUsed_ItemsGranted = 4; 33 | k_EGCMsgUseItemResponse_DropRateBonusAlreadyGranted = 5; 34 | k_EGCMsgUseItemResponse_NotInLowPriorityPool = 6; 35 | k_EGCMsgUseItemResponse_NotHighEnoughLevel = 7; 36 | k_EGCMsgUseItemResponse_EventNotActive = 8; 37 | k_EGCMsgUseItemResponse_ItemUsed_EventPointsGranted = 9; 38 | k_EGCMsgUseItemResponse_MissingRequirement = 10; 39 | k_EGCMsgUseItemResponse_EmoticonUnlock_NoNew = 11; 40 | k_EGCMsgUseItemResponse_EmoticonUnlock_Complete = 12; 41 | k_EGCMsgUseItemResponse_ItemUsed_Compendium = 13; 42 | } 43 | 44 | message CMsgGenericResult { 45 | optional uint32 eresult = 1 [default = 2]; 46 | optional string debug_message = 2; 47 | } 48 | -------------------------------------------------------------------------------- /artifact/gametoolevents.proto: -------------------------------------------------------------------------------- 1 | import "networkbasetypes.proto"; 2 | 3 | option cc_generic_services = false; 4 | 5 | message ChangeMapToolEvent { 6 | optional string mapname = 1; 7 | } 8 | 9 | message TraceRayServerToolEvent { 10 | optional .CMsgVector start = 1; 11 | optional .CMsgVector end = 2; 12 | } 13 | 14 | message ToolTraceRayResult { 15 | optional bool hit = 1; 16 | optional .CMsgVector impact = 2; 17 | optional .CMsgVector normal = 3; 18 | optional float distance = 4; 19 | optional float fraction = 5; 20 | optional int32 ehandle = 6; 21 | } 22 | 23 | message SpawnEntityToolEvent { 24 | optional bytes entity_keyvalues = 1; 25 | optional bool clientsideentity = 2; 26 | } 27 | 28 | message SpawnEntityToolEventResult { 29 | optional int32 ehandle = 1; 30 | } 31 | 32 | message DestroyEntityToolEvent { 33 | optional int32 ehandle = 1; 34 | } 35 | 36 | message DestroyAllEntitiesToolEvent { 37 | } 38 | 39 | message RestartMapToolEvent { 40 | } 41 | 42 | message ToolEvent_GetEntityInfo { 43 | optional int32 ehandle = 1; 44 | optional bool clientsideentity = 2; 45 | } 46 | 47 | message ToolEvent_GetEntityInfoResult { 48 | optional string cppclass = 1 [default = "shithead"]; 49 | optional string classname = 2; 50 | optional string name = 3; 51 | optional .CMsgVector origin = 4; 52 | optional .CMsgVector mins = 5; 53 | optional .CMsgVector maxs = 6; 54 | } 55 | 56 | message ToolEvent_GetEntityInputs { 57 | optional int32 ehandle = 1; 58 | optional bool clientsideentity = 2; 59 | } 60 | 61 | message ToolEvent_GetEntityInputsResult { 62 | repeated string input_list = 1; 63 | } 64 | 65 | message ToolEvent_FireEntityInput { 66 | optional int32 ehandle = 1; 67 | optional bool clientsideentity = 2; 68 | optional string input_name = 3; 69 | optional string input_param = 4; 70 | } 71 | 72 | message ToolEvent_SFMRecordingStateChanged { 73 | optional bool isrecording = 1; 74 | } 75 | 76 | message ToolEvent_SFMToolActiveStateChanged { 77 | optional bool isactive = 1; 78 | } 79 | -------------------------------------------------------------------------------- /artifact/gcsystemmsgs.proto: -------------------------------------------------------------------------------- 1 | option optimize_for = SPEED; 2 | option cc_generic_services = false; 3 | 4 | enum ESOMsg { 5 | k_ESOMsg_Create = 21; 6 | k_ESOMsg_Update = 22; 7 | k_ESOMsg_Destroy = 23; 8 | k_ESOMsg_CacheSubscribed = 24; 9 | k_ESOMsg_CacheUnsubscribed = 25; 10 | k_ESOMsg_UpdateMultiple = 26; 11 | k_ESOMsg_CacheSubscriptionRefresh = 28; 12 | k_ESOMsg_CacheSubscribedUpToDate = 29; 13 | } 14 | 15 | enum EGCBaseClientMsg { 16 | k_EMsgGCPingRequest = 3001; 17 | k_EMsgGCPingResponse = 3002; 18 | k_EMsgGCToClientPollConvarRequest = 3003; 19 | k_EMsgGCToClientPollConvarResponse = 3004; 20 | k_EMsgGCCompressedMsgToClient = 3005; 21 | k_EMsgGCCompressedMsgToClient_Legacy = 523; 22 | k_EMsgGCClientWelcome = 4004; 23 | k_EMsgGCServerWelcome = 4005; 24 | k_EMsgGCClientHello = 4006; 25 | k_EMsgGCServerHello = 4007; 26 | k_EMsgGCClientConnectionStatus = 4009; 27 | k_EMsgGCServerConnectionStatus = 4010; 28 | } 29 | -------------------------------------------------------------------------------- /artifact/networksystem_protomessages.proto: -------------------------------------------------------------------------------- 1 | option cc_generic_services = false; 2 | 3 | message NetMessageSplitscreenUserChanged { 4 | optional uint32 slot = 1; 5 | } 6 | 7 | message NetMessageConnectionClosed { 8 | optional uint32 reason = 1; 9 | } 10 | 11 | message NetMessageConnectionCrashed { 12 | optional uint32 reason = 1; 13 | } 14 | 15 | message NetMessagePacketStart { 16 | } 17 | 18 | message NetMessagePacketEnd { 19 | } 20 | -------------------------------------------------------------------------------- /artifact/steamdatagram_messages_auth.proto: -------------------------------------------------------------------------------- 1 | option optimize_for = SPEED; 2 | option cc_generic_services = false; 3 | 4 | message CMsgSteamDatagramRelayAuthTicket { 5 | message ExtraField { 6 | optional string name = 1; 7 | optional string string_value = 2; 8 | optional sint64 int64_value = 3; 9 | optional fixed64 fixed64_value = 5; 10 | } 11 | 12 | optional fixed32 time_expiry = 1; 13 | optional bytes authorized_client_identity = 12; 14 | optional bytes gameserver_identity = 13; 15 | optional fixed32 authorized_public_ip = 3; 16 | optional bytes gameserver_address = 11; 17 | optional uint32 app_id = 7; 18 | optional uint32 virtual_port = 10; 19 | repeated .CMsgSteamDatagramRelayAuthTicket.ExtraField extra_fields = 8; 20 | optional fixed64 legacy_authorized_steam_id = 2; 21 | optional fixed64 legacy_gameserver_steam_id = 4; 22 | optional fixed64 legacy_gameserver_net_id = 5; 23 | optional fixed32 legacy_gameserver_pop_id = 9; 24 | optional bytes DELETED_signature = 6; 25 | } 26 | 27 | message CMsgSteamDatagramSignedRelayAuthTicket { 28 | optional fixed64 reserved_do_not_use = 1; 29 | optional fixed64 key_id = 2; 30 | optional bytes ticket = 3; 31 | optional bytes signature = 4; 32 | } 33 | 34 | message CMsgSteamDatagramCachedCredentialsForApp { 35 | optional bytes private_key = 1; 36 | optional bytes cert = 2; 37 | repeated bytes relay_tickets = 3; 38 | } 39 | -------------------------------------------------------------------------------- /artifact/steammessages_oauth.steamworkssdk.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_unified_base.steamworkssdk.proto"; 2 | 3 | message COAuthToken_ImplicitGrantNoPrompt_Request { 4 | optional string clientid = 1 [(description) = "Client ID for which to count the number of issued tokens"]; 5 | } 6 | 7 | message COAuthToken_ImplicitGrantNoPrompt_Response { 8 | optional string access_token = 1 [(description) = "OAuth Token, granted on success"]; 9 | optional string redirect_uri = 2 [(description) = "Redirection URI provided during client registration."]; 10 | } 11 | 12 | service OAuthToken { 13 | option (service_description) = "Service containing methods to manage OAuth tokens"; 14 | 15 | rpc ImplicitGrantNoPrompt (.COAuthToken_ImplicitGrantNoPrompt_Request) returns (.COAuthToken_ImplicitGrantNoPrompt_Response) { 16 | option (method_description) = "Grants an implicit OAuth token (grant type 'token') for the specified client ID on behalf of a user without prompting"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /artifact/steammessages_unified_base.steamworkssdk.proto: -------------------------------------------------------------------------------- 1 | import "google/protobuf/descriptor.proto"; 2 | 3 | option optimize_for = SPEED; 4 | option cc_generic_services = false; 5 | 6 | extend .google.protobuf.FieldOptions { 7 | optional string description = 50000; 8 | } 9 | 10 | extend .google.protobuf.ServiceOptions { 11 | optional string service_description = 50000; 12 | optional .EProtoExecutionSite service_execution_site = 50008 [default = k_EProtoExecutionSiteUnknown]; 13 | } 14 | 15 | extend .google.protobuf.MethodOptions { 16 | optional string method_description = 50000; 17 | } 18 | 19 | extend .google.protobuf.EnumOptions { 20 | optional string enum_description = 50000; 21 | } 22 | 23 | extend .google.protobuf.EnumValueOptions { 24 | optional string enum_value_description = 50000; 25 | } 26 | 27 | enum EProtoExecutionSite { 28 | k_EProtoExecutionSiteUnknown = 0; 29 | k_EProtoExecutionSiteSteamClient = 3; 30 | } 31 | -------------------------------------------------------------------------------- /artifact/steamnetworkingsockets_messages_certs.proto: -------------------------------------------------------------------------------- 1 | option optimize_for = SPEED; 2 | option cc_generic_services = false; 3 | 4 | message CMsgSteamNetworkingIdentity { 5 | optional fixed64 steam_id = 16; 6 | optional string xbox_pairwise_id = 17; 7 | optional bytes generic_bytes = 2; 8 | optional string generic_string = 3; 9 | optional bytes ipv6_and_port = 4; 10 | } 11 | 12 | message CMsgSteamDatagramCertificate { 13 | enum EKeyType { 14 | INVALID = 0; 15 | ED25519 = 1; 16 | } 17 | 18 | optional .CMsgSteamDatagramCertificate.EKeyType key_type = 1 [default = INVALID]; 19 | optional bytes key_data = 2; 20 | optional fixed64 legacy_steam_id = 4; 21 | optional .CMsgSteamNetworkingIdentity identity = 11; 22 | repeated fixed32 gameserver_datacenter_ids = 5; 23 | optional fixed32 time_created = 8; 24 | optional fixed32 time_expiry = 9; 25 | optional uint32 app_id = 10; 26 | } 27 | 28 | message CMsgSteamDatagramCertificateSigned { 29 | optional bytes cert = 4; 30 | optional fixed64 ca_key_id = 5; 31 | optional bytes ca_signature = 6; 32 | } 33 | -------------------------------------------------------------------------------- /artifact/uifontfile_format.proto: -------------------------------------------------------------------------------- 1 | option optimize_for = SPEED; 2 | option cc_generic_services = false; 3 | 4 | message CUIFontFilePB { 5 | optional string font_file_name = 1; 6 | optional bytes opentype_font_data = 2; 7 | } 8 | 9 | message CUIFontFilePackagePB { 10 | message CUIEncryptedFontFilePB { 11 | optional bytes encrypted_contents = 1; 12 | } 13 | 14 | required uint32 package_version = 1; 15 | repeated .CUIFontFilePackagePB.CUIEncryptedFontFilePB encrypted_font_files = 2; 16 | } 17 | -------------------------------------------------------------------------------- /csgo/c_peer2peer_netmessages.proto: -------------------------------------------------------------------------------- 1 | import "netmessages.proto"; 2 | import "networkbasetypes.proto"; 3 | 4 | enum P2P_Messages { 5 | p2p_TextMessage = 256; 6 | p2p_Voice = 257; 7 | p2p_Ping = 258; 8 | p2p_VRAvatarPosition = 259; 9 | p2p_WatchSynchronization = 260; 10 | p2p_FightingGame_GameData = 261; 11 | p2p_FightingGame_Connection = 262; 12 | } 13 | 14 | message CP2P_TextMessage { 15 | optional bytes text = 1; 16 | } 17 | 18 | message CSteam_Voice_Encoding { 19 | optional bytes voice_data = 1; 20 | } 21 | 22 | message CP2P_Voice { 23 | enum Handler_Flags { 24 | Played_Audio = 1; 25 | } 26 | 27 | optional .CMsgVoiceAudio audio = 1; 28 | optional uint32 broadcast_group = 2; 29 | } 30 | 31 | message CP2P_Ping { 32 | required uint64 send_time = 1; 33 | required bool is_reply = 2; 34 | } 35 | 36 | message CP2P_VRAvatarPosition { 37 | message COrientation { 38 | optional .CMsgVector pos = 1; 39 | optional .CMsgQAngle ang = 2; 40 | } 41 | 42 | repeated .CP2P_VRAvatarPosition.COrientation body_parts = 1; 43 | optional int32 hat_id = 2; 44 | optional int32 scene_id = 3; 45 | optional int32 world_scale = 4; 46 | } 47 | 48 | message CP2P_WatchSynchronization { 49 | optional int32 demo_tick = 1; 50 | optional bool paused = 2; 51 | optional uint64 tv_listen_voice_indices = 3; 52 | optional int32 dota_spectator_mode = 4; 53 | optional bool dota_spectator_watching_broadcaster = 5; 54 | optional int32 dota_spectator_hero_index = 6; 55 | optional int32 dota_spectator_autospeed = 7; 56 | optional int32 dota_replay_speed = 8; 57 | } 58 | -------------------------------------------------------------------------------- /csgo/clientmessages.proto: -------------------------------------------------------------------------------- 1 | enum EBaseClientMessages { 2 | CM_CustomGameEvent = 280; 3 | CM_CustomGameEventBounce = 281; 4 | CM_ClientUIEvent = 282; 5 | CM_DevPaletteVisibilityChanged = 283; 6 | CM_WorldUIControllerHasPanelChanged = 284; 7 | CM_RotateAnchor = 285; 8 | CM_ListenForResponseFound = 286; 9 | CM_MAX_BASE = 300; 10 | } 11 | 12 | enum EClientUIEvent { 13 | EClientUIEvent_Invalid = 0; 14 | EClientUIEvent_DialogFinished = 1; 15 | EClientUIEvent_FireOutput = 2; 16 | } 17 | 18 | message CClientMsg_CustomGameEvent { 19 | optional string event_name = 1; 20 | optional bytes data = 2; 21 | } 22 | 23 | message CClientMsg_CustomGameEventBounce { 24 | optional string event_name = 1; 25 | optional bytes data = 2; 26 | optional int32 player_slot = 3 [default = -1]; 27 | } 28 | 29 | message CClientMsg_ClientUIEvent { 30 | optional .EClientUIEvent event = 1 [default = EClientUIEvent_Invalid]; 31 | optional uint32 ent_ehandle = 2; 32 | optional uint32 client_ehandle = 3; 33 | optional string data1 = 4; 34 | optional string data2 = 5; 35 | } 36 | 37 | message CClientMsg_DevPaletteVisibilityChangedEvent { 38 | optional bool visible = 1; 39 | } 40 | 41 | message CClientMsg_WorldUIControllerHasPanelChangedEvent { 42 | optional bool has_panel = 1; 43 | optional uint32 client_ehandle = 2; 44 | optional uint32 literal_hand_type = 3; 45 | } 46 | 47 | message CClientMsg_RotateAnchor { 48 | optional float angle = 1; 49 | } 50 | 51 | message CClientMsg_ListenForResponseFound { 52 | optional int32 player_slot = 1 [default = -1]; 53 | } 54 | -------------------------------------------------------------------------------- /csgo/connectionless_netmessages.proto: -------------------------------------------------------------------------------- 1 | import "netmessages.proto"; 2 | 3 | message C2S_CONNECT_Message { 4 | optional uint32 host_version = 1; 5 | optional uint32 auth_protocol = 2; 6 | optional uint32 challenge_number = 3; 7 | optional fixed64 reservation_cookie = 4; 8 | optional bool low_violence = 5; 9 | optional bytes encrypted_password = 6; 10 | repeated .CCLCMsg_SplitPlayerConnect splitplayers = 7; 11 | optional bytes auth_steam = 8; 12 | optional string challenge_context = 9; 13 | } 14 | 15 | message C2S_CONNECTION_Message { 16 | optional string addon_name = 1; 17 | } 18 | -------------------------------------------------------------------------------- /csgo/cs_gameevents.proto: -------------------------------------------------------------------------------- 1 | import "networkbasetypes.proto"; 2 | 3 | enum ECsgoGameEvents { 4 | GE_PlayerAnimEventId = 450; 5 | GE_RadioIconEventId = 451; 6 | GE_FireBulletsId = 452; 7 | } 8 | 9 | message CMsgTEPlayerAnimEvent { 10 | optional fixed32 player = 1 [default = 16777215]; 11 | optional uint32 event = 2; 12 | optional int32 data = 3; 13 | } 14 | 15 | message CMsgTERadioIcon { 16 | optional fixed32 player = 1 [default = 16777215]; 17 | } 18 | 19 | message CMsgTEFireBullets { 20 | optional .CMsgVector origin = 1; 21 | optional .CMsgQAngle angles = 2; 22 | optional uint32 weapon_id = 3 [default = 16777215]; 23 | optional uint32 mode = 4; 24 | optional uint32 seed = 5; 25 | optional fixed32 player = 6 [default = 16777215]; 26 | optional float inaccuracy = 7; 27 | optional float recoil_index = 8; 28 | optional float spread = 9; 29 | optional int32 sound_type = 10; 30 | optional uint32 item_def_index = 11; 31 | optional fixed32 sound_dsp_effect = 12; 32 | optional .CMsgVector ent_origin = 13; 33 | optional uint32 num_bullets_remaining = 14; 34 | optional uint32 attack_type = 15; 35 | } 36 | -------------------------------------------------------------------------------- /csgo/cs_usercmd.proto: -------------------------------------------------------------------------------- 1 | import "networkbasetypes.proto"; 2 | import "usercmd.proto"; 3 | 4 | message CSGOInterpolationInfoPB { 5 | optional int32 src_tick = 1 [default = -1]; 6 | optional int32 dst_tick = 2 [default = -1]; 7 | optional float frac = 3 [default = 0]; 8 | } 9 | 10 | message CSGOInterpolationInfoPB_CL { 11 | optional float frac = 3 [default = 0]; 12 | } 13 | 14 | message CSGOInputHistoryEntryPB { 15 | optional .CMsgQAngle view_angles = 2; 16 | optional int32 render_tick_count = 4; 17 | optional float render_tick_fraction = 5; 18 | optional int32 player_tick_count = 6; 19 | optional float player_tick_fraction = 7; 20 | optional .CSGOInterpolationInfoPB_CL cl_interp = 12; 21 | optional .CSGOInterpolationInfoPB sv_interp0 = 13; 22 | optional .CSGOInterpolationInfoPB sv_interp1 = 14; 23 | optional .CSGOInterpolationInfoPB player_interp = 15; 24 | optional int32 frame_number = 64; 25 | optional int32 target_ent_index = 65 [default = -1]; 26 | optional .CMsgVector shoot_position = 66; 27 | optional .CMsgVector target_head_pos_check = 67; 28 | optional .CMsgVector target_abs_pos_check = 68; 29 | optional .CMsgQAngle target_abs_ang_check = 69; 30 | } 31 | 32 | message CSGOUserCmdPB { 33 | optional .CBaseUserCmdPB base = 1; 34 | repeated .CSGOInputHistoryEntryPB input_history = 2; 35 | optional int32 attack1_start_history_index = 6 [default = -1]; 36 | optional int32 attack2_start_history_index = 7 [default = -1]; 37 | optional int32 attack3_start_history_index = 8 [default = -1]; 38 | optional bool left_hand_desired = 9 [default = false]; 39 | optional bool is_predicting_body_shot_fx = 11 [default = false]; 40 | optional bool is_predicting_head_shot_fx = 12 [default = false]; 41 | optional bool is_predicting_kill_ragdolls = 13 [default = false]; 42 | } 43 | -------------------------------------------------------------------------------- /csgo/engine_gcmessages.proto: -------------------------------------------------------------------------------- 1 | import "google/protobuf/descriptor.proto"; 2 | 3 | message CEngineGotvSyncPacket { 4 | optional uint64 match_id = 1; 5 | optional uint32 instance_id = 2; 6 | optional uint32 signupfragment = 3; 7 | optional uint32 currentfragment = 4; 8 | optional float tickrate = 5; 9 | optional uint32 tick = 6; 10 | optional float rtdelay = 8; 11 | optional float rcvage = 9; 12 | optional float keyframe_interval = 10; 13 | optional uint32 cdndelay = 11; 14 | } 15 | -------------------------------------------------------------------------------- /csgo/networksystem_protomessages.proto: -------------------------------------------------------------------------------- 1 | message NetMessageSplitscreenUserChanged { 2 | optional uint32 slot = 1; 3 | } 4 | 5 | message NetMessageConnectionClosed { 6 | optional uint32 reason = 1; 7 | optional string message = 2; 8 | } 9 | 10 | message NetMessageConnectionCrashed { 11 | optional uint32 reason = 1; 12 | optional string message = 2; 13 | } 14 | 15 | message NetMessagePacketStart { 16 | } 17 | 18 | message NetMessagePacketEnd { 19 | } 20 | -------------------------------------------------------------------------------- /csgo/steamdatagram_messages_auth.proto: -------------------------------------------------------------------------------- 1 | import "steamnetworkingsockets_messages_certs.proto"; 2 | 3 | option optimize_for = SPEED; 4 | option cc_generic_services = false; 5 | 6 | message CMsgSteamDatagramRelayAuthTicket { 7 | message ExtraField { 8 | optional string name = 1; 9 | optional string string_value = 2; 10 | optional sint64 int64_value = 3; 11 | optional fixed64 fixed64_value = 5; 12 | } 13 | 14 | optional fixed32 time_expiry = 1; 15 | optional string authorized_client_identity_string = 14; 16 | optional string gameserver_identity_string = 15; 17 | optional fixed32 authorized_public_ip = 3; 18 | optional bytes gameserver_address = 11; 19 | optional uint32 app_id = 7; 20 | optional uint32 virtual_port = 10; 21 | repeated .CMsgSteamDatagramRelayAuthTicket.ExtraField extra_fields = 8; 22 | optional fixed64 legacy_authorized_steam_id = 2; 23 | optional fixed64 legacy_gameserver_steam_id = 4; 24 | optional fixed32 legacy_gameserver_pop_id = 9; 25 | optional bytes legacy_authorized_client_identity_binary = 12; 26 | optional bytes legacy_gameserver_identity_binary = 13; 27 | } 28 | 29 | message CMsgSteamDatagramSignedRelayAuthTicket { 30 | optional fixed64 reserved_do_not_use = 1; 31 | optional bytes ticket = 3; 32 | optional bytes signature = 4; 33 | optional fixed64 key_id = 2; 34 | repeated .CMsgSteamDatagramCertificateSigned certs = 5; 35 | } 36 | 37 | message CMsgSteamDatagramCachedCredentialsForApp { 38 | optional bytes private_key = 1; 39 | optional bytes cert = 2; 40 | repeated bytes relay_tickets = 3; 41 | } 42 | 43 | message CMsgSteamDatagramGameCoordinatorServerLogin { 44 | optional uint32 time_generated = 1; 45 | optional uint32 appid = 2; 46 | optional bytes routing = 3; 47 | optional bytes appdata = 4; 48 | optional bytes legacy_identity_binary = 5; 49 | optional string identity_string = 6; 50 | optional fixed64 dummy_steam_id = 99; 51 | } 52 | 53 | message CMsgSteamDatagramSignedGameCoordinatorServerLogin { 54 | optional .CMsgSteamDatagramCertificateSigned cert = 1; 55 | optional bytes login = 2; 56 | optional bytes signature = 3; 57 | } 58 | 59 | message CMsgSteamDatagramHostedServerAddressPlaintext { 60 | optional fixed32 ipv4 = 1; 61 | optional bytes ipv6 = 2; 62 | optional uint32 port = 3; 63 | optional fixed64 routing_secret = 4; 64 | optional uint32 protocol_version = 5; 65 | } 66 | -------------------------------------------------------------------------------- /csgo/steammessages.proto: -------------------------------------------------------------------------------- 1 | import "google/protobuf/descriptor.proto"; 2 | 3 | extend .google.protobuf.FieldOptions { 4 | optional bool key_field = 60000 [default = false]; 5 | } 6 | 7 | extend .google.protobuf.MessageOptions { 8 | optional int32 msgpool_soft_limit = 60000 [default = 32]; 9 | optional int32 msgpool_hard_limit = 60001 [default = 384]; 10 | } 11 | 12 | enum GCProtoBufMsgSrc { 13 | GCProtoBufMsgSrc_Unspecified = 0; 14 | GCProtoBufMsgSrc_FromSystem = 1; 15 | GCProtoBufMsgSrc_FromSteamID = 2; 16 | GCProtoBufMsgSrc_FromGC = 3; 17 | GCProtoBufMsgSrc_ReplySystem = 4; 18 | } 19 | 20 | message CMsgProtoBufHeader { 21 | option (msgpool_soft_limit) = 256; 22 | option (msgpool_hard_limit) = 1024; 23 | 24 | optional fixed64 client_steam_id = 1; 25 | optional int32 client_session_id = 2; 26 | optional uint32 source_app_id = 3; 27 | optional fixed64 job_id_source = 10 [default = 18446744073709551615]; 28 | optional fixed64 job_id_target = 11 [default = 18446744073709551615]; 29 | optional string target_job_name = 12; 30 | optional int32 eresult = 13 [default = 2]; 31 | optional string error_message = 14; 32 | optional uint32 ip = 15; 33 | optional .GCProtoBufMsgSrc gc_msg_src = 200 [default = GCProtoBufMsgSrc_Unspecified]; 34 | optional uint32 gc_dir_index_source = 201; 35 | } 36 | 37 | message CChinaAgreementSessions_StartAgreementSessionInGame_Request { 38 | optional uint32 appid = 1; 39 | optional fixed64 steamid = 2; 40 | optional string client_ipaddress = 3; 41 | } 42 | 43 | message CChinaAgreementSessions_StartAgreementSessionInGame_Response { 44 | optional string agreement_url = 1; 45 | } 46 | -------------------------------------------------------------------------------- /csgo/steammessages_helprequest.steamworkssdk.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_unified_base.steamworkssdk.proto"; 2 | 3 | option cc_generic_services = true; 4 | 5 | message CHelpRequestLogs_UploadUserApplicationLog_Request { 6 | optional uint32 appid = 1; 7 | optional string log_type = 2; 8 | optional string version_string = 3; 9 | optional string log_contents = 4; 10 | } 11 | 12 | message CHelpRequestLogs_UploadUserApplicationLog_Response { 13 | optional uint64 id = 1; 14 | } 15 | 16 | service HelpRequestLogs { 17 | option (service_description) = "Service for dealing with user-submitted logs"; 18 | 19 | rpc UploadUserApplicationLog (.CHelpRequestLogs_UploadUserApplicationLog_Request) returns (.CHelpRequestLogs_UploadUserApplicationLog_Response) { 20 | option (method_description) = "User uploading application logs"; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /csgo/steammessages_oauth.steamworkssdk.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_unified_base.steamworkssdk.proto"; 2 | 3 | message COAuthToken_ImplicitGrantNoPrompt_Request { 4 | optional string clientid = 1 [(description) = "Client ID for which to count the number of issued tokens"]; 5 | } 6 | 7 | message COAuthToken_ImplicitGrantNoPrompt_Response { 8 | optional string access_token = 1 [(description) = "OAuth Token, granted on success"]; 9 | optional string redirect_uri = 2 [(description) = "Redirection URI provided during client registration."]; 10 | } 11 | 12 | service OAuthToken { 13 | option (service_description) = "Service containing methods to manage OAuth tokens"; 14 | 15 | rpc ImplicitGrantNoPrompt (.COAuthToken_ImplicitGrantNoPrompt_Request) returns (.COAuthToken_ImplicitGrantNoPrompt_Response) { 16 | option (method_description) = "Grants an implicit OAuth token (grant type 'token') for the specified client ID on behalf of a user without prompting"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /csgo/steammessages_unified_base.steamworkssdk.proto: -------------------------------------------------------------------------------- 1 | import "google/protobuf/descriptor.proto"; 2 | 3 | option optimize_for = SPEED; 4 | option cc_generic_services = false; 5 | 6 | extend .google.protobuf.FieldOptions { 7 | optional string description = 50000; 8 | } 9 | 10 | extend .google.protobuf.ServiceOptions { 11 | optional string service_description = 50000; 12 | optional .EProtoExecutionSite service_execution_site = 50008 [default = k_EProtoExecutionSiteUnknown]; 13 | } 14 | 15 | extend .google.protobuf.MethodOptions { 16 | optional string method_description = 50000; 17 | } 18 | 19 | extend .google.protobuf.EnumOptions { 20 | optional string enum_description = 50000; 21 | } 22 | 23 | extend .google.protobuf.EnumValueOptions { 24 | optional string enum_value_description = 50000; 25 | } 26 | 27 | enum EProtoExecutionSite { 28 | k_EProtoExecutionSiteUnknown = 0; 29 | k_EProtoExecutionSiteSteamClient = 3; 30 | } 31 | -------------------------------------------------------------------------------- /csgo/steamnetworkingsockets_messages_certs.proto: -------------------------------------------------------------------------------- 1 | option optimize_for = SPEED; 2 | option cc_generic_services = false; 3 | 4 | message CMsgSteamNetworkingIdentityLegacyBinary { 5 | optional fixed64 steam_id = 16; 6 | optional bytes generic_bytes = 2; 7 | optional string generic_string = 3; 8 | optional bytes ipv6_and_port = 4; 9 | } 10 | 11 | message CMsgSteamDatagramCertificate { 12 | enum EKeyType { 13 | INVALID = 0; 14 | ED25519 = 1; 15 | } 16 | 17 | optional .CMsgSteamDatagramCertificate.EKeyType key_type = 1 [default = INVALID]; 18 | optional bytes key_data = 2; 19 | optional fixed64 legacy_steam_id = 4; 20 | optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 11; 21 | optional string identity_string = 12; 22 | repeated fixed32 gameserver_datacenter_ids = 5; 23 | optional fixed32 time_created = 8; 24 | optional fixed32 time_expiry = 9; 25 | repeated uint32 app_ids = 10; 26 | repeated string ip_addresses = 13; 27 | } 28 | 29 | message CMsgSteamDatagramCertificateSigned { 30 | optional bytes cert = 4; 31 | optional fixed64 ca_key_id = 5; 32 | optional bytes ca_signature = 6; 33 | optional bytes private_key_data = 1; 34 | } 35 | 36 | message CMsgSteamDatagramCertificateRequest { 37 | optional .CMsgSteamDatagramCertificate cert = 1; 38 | } 39 | -------------------------------------------------------------------------------- /csgo/uifontfile_format.proto: -------------------------------------------------------------------------------- 1 | message CUIFontFilePB { 2 | optional string font_file_name = 1; 3 | optional bytes opentype_font_data = 2; 4 | } 5 | 6 | message CUIFontFilePackagePB { 7 | message CUIEncryptedFontFilePB { 8 | optional bytes encrypted_contents = 1; 9 | } 10 | 11 | required uint32 package_version = 1; 12 | repeated .CUIFontFilePackagePB.CUIEncryptedFontFilePB encrypted_font_files = 2; 13 | } 14 | -------------------------------------------------------------------------------- /csgo/usercmd.proto: -------------------------------------------------------------------------------- 1 | import "networkbasetypes.proto"; 2 | 3 | message CInButtonStatePB { 4 | optional uint64 buttonstate1 = 1; 5 | optional uint64 buttonstate2 = 2; 6 | optional uint64 buttonstate3 = 3; 7 | } 8 | 9 | message CSubtickMoveStep { 10 | optional uint64 button = 1; 11 | optional bool pressed = 2; 12 | optional float when = 3; 13 | optional float analog_forward_delta = 4; 14 | optional float analog_left_delta = 5; 15 | } 16 | 17 | message CBaseUserCmdPB { 18 | optional int32 legacy_command_number = 1; 19 | optional int32 client_tick = 2; 20 | optional .CInButtonStatePB buttons_pb = 3; 21 | optional .CMsgQAngle viewangles = 4; 22 | optional float forwardmove = 5; 23 | optional float leftmove = 6; 24 | optional float upmove = 7; 25 | optional int32 impulse = 8; 26 | optional int32 weaponselect = 9; 27 | optional int32 random_seed = 10; 28 | optional int32 mousedx = 11; 29 | optional int32 mousedy = 12; 30 | optional uint32 pawn_entity_handle = 14 [default = 16777215]; 31 | repeated .CSubtickMoveStep subtick_moves = 18; 32 | optional bytes move_crc = 19; 33 | optional uint32 consumed_server_angle_changes = 20; 34 | optional int32 cmd_flags = 21; 35 | } 36 | 37 | message CUserCmdBasePB { 38 | optional .CBaseUserCmdPB base = 1; 39 | } 40 | -------------------------------------------------------------------------------- /csgo/valveextensions.proto: -------------------------------------------------------------------------------- 1 | import "google/protobuf/descriptor.proto"; 2 | 3 | extend .google.protobuf.FieldOptions { 4 | optional bool valve_map_field = 61000 [default = false]; 5 | optional bool valve_map_key = 61001 [default = false]; 6 | optional int32 diff_encode_field = 61002 [default = 0]; 7 | optional bool delta_ignore = 61003 [default = false]; 8 | optional uint32 steamml_max_entries = 61004 [default = 0]; 9 | optional bool steamml_is_timestamp = 61005 [default = false]; 10 | optional uint32 steamlearn_count = 61006 [default = 0]; 11 | } 12 | 13 | extend .google.protobuf.EnumValueOptions { 14 | optional string schema_friendly_name = 1000; 15 | optional string schema_description = 1001; 16 | optional bool schema_suppress_enumerator = 1002; 17 | } 18 | -------------------------------------------------------------------------------- /deadlock/base_modifier.proto: -------------------------------------------------------------------------------- 1 | import "networkbasetypes.proto"; 2 | 3 | enum MODIFIER_ENTRY_TYPE { 4 | MODIFIER_ENTRY_TYPE_ACTIVE = 1; 5 | MODIFIER_ENTRY_TYPE_REMOVED = 2; 6 | } 7 | 8 | message CModifierTableEntry { 9 | required .MODIFIER_ENTRY_TYPE entry_type = 1 [default = MODIFIER_ENTRY_TYPE_ACTIVE]; 10 | required uint32 parent = 2 [default = 16777215]; 11 | required uint32 serial_number = 3; 12 | optional uint32 modifier_subclass = 4; 13 | optional int32 stack_count = 5; 14 | optional int32 max_stack_count = 6; 15 | optional float last_applied_time = 7; 16 | optional float duration = 8 [default = -1]; 17 | optional uint32 caster = 9 [default = 16777215]; 18 | optional uint32 ability = 10 [default = 16777215]; 19 | optional int32 aura_provider_serial_number = 11; 20 | optional uint32 aura_provider_ehandle = 12 [default = 16777215]; 21 | optional uint32 ability_subclass = 13; 22 | optional bool bool1_ = 20; 23 | optional bool bool2_ = 21; 24 | optional bool bool3_ = 22; 25 | optional bool bool4_ = 23; 26 | optional int32 int1_ = 25; 27 | optional int32 int2_ = 26; 28 | optional int32 int3_ = 27; 29 | optional int32 int4_ = 28; 30 | optional float float1_ = 30; 31 | optional float float2_ = 31; 32 | optional float float3_ = 32; 33 | optional float float4_ = 33; 34 | optional float float5_ = 49; 35 | optional float float6_ = 50; 36 | optional float float7_ = 51; 37 | optional float float8_ = 52; 38 | optional float float9_ = 53; 39 | optional float float10_ = 54; 40 | optional uint64 uint1_ = 35; 41 | optional uint64 uint2_ = 36; 42 | optional uint64 uint3_ = 37; 43 | optional uint64 uint4_ = 38; 44 | optional .CMsgVector vec1_ = 40; 45 | optional .CMsgVector vec2_ = 41; 46 | optional .CMsgVector vec3_ = 42; 47 | optional .CMsgVector vec4_ = 43; 48 | optional string string1_ = 45; 49 | optional string string2_ = 46; 50 | optional string string3_ = 47; 51 | optional string string4_ = 48; 52 | } 53 | -------------------------------------------------------------------------------- /deadlock/c_peer2peer_netmessages.proto: -------------------------------------------------------------------------------- 1 | import "netmessages.proto"; 2 | import "networkbasetypes.proto"; 3 | 4 | enum P2P_Messages { 5 | p2p_TextMessage = 256; 6 | p2p_Voice = 257; 7 | p2p_Ping = 258; 8 | p2p_VRAvatarPosition = 259; 9 | p2p_WatchSynchronization = 260; 10 | p2p_FightingGame_GameData = 261; 11 | p2p_FightingGame_Connection = 262; 12 | } 13 | 14 | message CP2P_TextMessage { 15 | optional bytes text = 1; 16 | } 17 | 18 | message CSteam_Voice_Encoding { 19 | optional bytes voice_data = 1; 20 | } 21 | 22 | message CP2P_Voice { 23 | enum Handler_Flags { 24 | Played_Audio = 1; 25 | } 26 | 27 | optional .CMsgVoiceAudio audio = 1; 28 | optional uint32 broadcast_group = 2; 29 | } 30 | 31 | message CP2P_Ping { 32 | required uint64 send_time = 1; 33 | required bool is_reply = 2; 34 | } 35 | 36 | message CP2P_VRAvatarPosition { 37 | message COrientation { 38 | optional .CMsgVector pos = 1; 39 | optional .CMsgQAngle ang = 2; 40 | } 41 | 42 | repeated .CP2P_VRAvatarPosition.COrientation body_parts = 1; 43 | optional int32 hat_id = 2; 44 | optional int32 scene_id = 3; 45 | optional int32 world_scale = 4; 46 | } 47 | 48 | message CP2P_WatchSynchronization { 49 | optional int32 demo_tick = 1; 50 | optional bool paused = 2; 51 | optional uint64 tv_listen_voice_indices = 3; 52 | optional int32 dota_spectator_mode = 4; 53 | optional bool dota_spectator_watching_broadcaster = 5; 54 | optional int32 dota_spectator_hero_index = 6; 55 | optional int32 dota_spectator_autospeed = 7; 56 | optional int32 dota_replay_speed = 8; 57 | } 58 | -------------------------------------------------------------------------------- /deadlock/citadel_gamemessages.proto: -------------------------------------------------------------------------------- 1 | import "citadel_gcmessages_common.proto"; 2 | 3 | enum ECitadelGameMessages { 4 | k_EMsgGameServerToClientConnectionStatus = 10; 5 | k_EMsgGameServerToClientInitialGameState = 12; 6 | k_EMsgGameServerToClientGameCompleted = 13; 7 | k_EMsgGameServerToClientGoodbye = 15; 8 | } 9 | 10 | enum ECitadelDisconnectReason { 11 | k_ECitadelDisconnectReason_UserLeaveMatch = 1001; 12 | k_ECitadelDisconnectReason_UserQuitApp = 1002; 13 | k_ECitadelDisconnectReason_UserCancel = 1003; 14 | k_ECitadelDisconnectReason_Goodbye = 1004; 15 | k_ECitadelDisconnectReason_BadMessage = 2001; 16 | k_ECitadelDisconnectReason_GameDestroyedUnexpectedly = 2002; 17 | k_ECitadelDisconnectReason_ChangingServer = 2003; 18 | k_ECitadelDisconnectReason_OldConnection = 2004; 19 | k_ECitadelDisconnectReason_GoodbyeUnrecognizedGame = 2005; 20 | } 21 | 22 | message CMsgClientServerHeader { 23 | optional uint64 game_instance_id = 1; 24 | optional uint32 local_player_index = 2; 25 | optional bytes payload = 3; 26 | optional .ECitadelGameMessages msg_id = 4 [default = k_EMsgGameServerToClientConnectionStatus]; 27 | } 28 | 29 | message CMsgGameServerToClientGameCompleted { 30 | } 31 | 32 | message CMsgGameServerToClientGoodbye { 33 | } 34 | 35 | message CMsgGameServerToClientConnectionStatus { 36 | message Player { 37 | optional int32 player_slot = 1 [default = -1]; 38 | optional .CMsgGameServerToClientConnectionStatus.EStatus status = 2 [default = k_EConnected]; 39 | optional bool inactivity_ticking = 3; 40 | optional uint32 inactivity_ms_remaining = 4; 41 | optional uint32 inactivity_anim_ms_remaining = 5; 42 | } 43 | 44 | enum EStatus { 45 | k_EConnected = 1; 46 | k_EDisconnected = 2; 47 | } 48 | 49 | repeated .CMsgGameServerToClientConnectionStatus.Player players = 1; 50 | } 51 | 52 | message CClientReconnectInfo { 53 | optional fixed64 server_steam_id = 1; 54 | optional uint64 lobby_id = 2; 55 | optional uint32 time_updated = 3; 56 | optional uint32 udp_connect_ip = 4; 57 | optional uint32 udp_connect_port = 5; 58 | optional uint32 compatibility_version = 6; 59 | } 60 | 61 | message CMsgClientAccountSyncStorageFile { 62 | optional uint32 version = 1; 63 | repeated uint32 ids = 2; 64 | repeated uint32 values = 3; 65 | } 66 | -------------------------------------------------------------------------------- /deadlock/citadel_usercmd.proto: -------------------------------------------------------------------------------- 1 | import "networkbasetypes.proto"; 2 | import "usercmd.proto"; 3 | 4 | message CCitadelUserCmdPB { 5 | optional .CBaseUserCmdPB base = 1; 6 | optional .CMsgVector vec_camera_position = 2; 7 | optional .CMsgQAngle ang_camera_angles = 3; 8 | optional int32 execute_ability_indices = 4; 9 | optional bool in_shop = 5; 10 | optional float camera_roaming_speed = 6; 11 | optional bool using_free_cursor = 8; 12 | optional int32 enemy_hero_aimed_at = 10 [default = -1]; 13 | repeated int32 view_delta_x = 11; 14 | repeated int32 view_delta_y = 12; 15 | } 16 | -------------------------------------------------------------------------------- /deadlock/clientmessages.proto: -------------------------------------------------------------------------------- 1 | enum EBaseClientMessages { 2 | CM_CustomGameEvent = 280; 3 | CM_CustomGameEventBounce = 281; 4 | CM_ClientUIEvent = 282; 5 | CM_DevPaletteVisibilityChanged = 283; 6 | CM_WorldUIControllerHasPanelChanged = 284; 7 | CM_RotateAnchor = 285; 8 | CM_ListenForResponseFound = 286; 9 | CM_MAX_BASE = 300; 10 | } 11 | 12 | enum EClientUIEvent { 13 | EClientUIEvent_Invalid = 0; 14 | EClientUIEvent_DialogFinished = 1; 15 | EClientUIEvent_FireOutput = 2; 16 | } 17 | 18 | message CClientMsg_CustomGameEvent { 19 | optional string event_name = 1; 20 | optional bytes data = 2; 21 | } 22 | 23 | message CClientMsg_CustomGameEventBounce { 24 | optional string event_name = 1; 25 | optional bytes data = 2; 26 | optional int32 player_slot = 3 [default = -1]; 27 | } 28 | 29 | message CClientMsg_ClientUIEvent { 30 | optional .EClientUIEvent event = 1 [default = EClientUIEvent_Invalid]; 31 | optional uint32 ent_ehandle = 2; 32 | optional uint32 client_ehandle = 3; 33 | optional string data1 = 4; 34 | optional string data2 = 5; 35 | } 36 | 37 | message CClientMsg_DevPaletteVisibilityChangedEvent { 38 | optional bool visible = 1; 39 | } 40 | 41 | message CClientMsg_WorldUIControllerHasPanelChangedEvent { 42 | optional bool has_panel = 1; 43 | optional uint32 client_ehandle = 2; 44 | optional uint32 literal_hand_type = 3; 45 | } 46 | 47 | message CClientMsg_RotateAnchor { 48 | optional float angle = 1; 49 | } 50 | 51 | message CClientMsg_ListenForResponseFound { 52 | optional int32 player_slot = 1 [default = -1]; 53 | } 54 | -------------------------------------------------------------------------------- /deadlock/connectionless_netmessages.proto: -------------------------------------------------------------------------------- 1 | import "netmessages.proto"; 2 | 3 | message C2S_CONNECT_Message { 4 | optional uint32 host_version = 1; 5 | optional uint32 auth_protocol = 2; 6 | optional uint32 challenge_number = 3; 7 | optional fixed64 reservation_cookie = 4; 8 | optional bool low_violence = 5; 9 | optional bytes encrypted_password = 6; 10 | repeated .CCLCMsg_SplitPlayerConnect splitplayers = 7; 11 | optional bytes auth_steam = 8; 12 | optional string challenge_context = 9; 13 | } 14 | 15 | message C2S_CONNECTION_Message { 16 | optional string addon_name = 1; 17 | } 18 | -------------------------------------------------------------------------------- /deadlock/econ_shared_enums.proto: -------------------------------------------------------------------------------- 1 | enum EGCEconBaseMsg { 2 | k_EMsgGCGenericResult = 2579; 3 | } 4 | 5 | enum EGCMsgResponse { 6 | k_EGCMsgResponseOK = 0; 7 | k_EGCMsgResponseDenied = 1; 8 | k_EGCMsgResponseServerError = 2; 9 | k_EGCMsgResponseTimeout = 3; 10 | k_EGCMsgResponseInvalid = 4; 11 | k_EGCMsgResponseNoMatch = 5; 12 | k_EGCMsgResponseUnknownError = 6; 13 | k_EGCMsgResponseNotLoggedOn = 7; 14 | k_EGCMsgFailedToCreate = 8; 15 | } 16 | 17 | enum EGCMsgUseItemResponse { 18 | k_EGCMsgUseItemResponse_ItemUsed = 0; 19 | k_EGCMsgUseItemResponse_GiftNoOtherPlayers = 1; 20 | k_EGCMsgUseItemResponse_ServerError = 2; 21 | k_EGCMsgUseItemResponse_MiniGameAlreadyStarted = 3; 22 | k_EGCMsgUseItemResponse_ItemUsed_ItemsGranted = 4; 23 | k_EGCMsgUseItemResponse_DropRateBonusAlreadyGranted = 5; 24 | k_EGCMsgUseItemResponse_NotInLowPriorityPool = 6; 25 | k_EGCMsgUseItemResponse_NotHighEnoughLevel = 7; 26 | k_EGCMsgUseItemResponse_EventNotActive = 8; 27 | k_EGCMsgUseItemResponse_ItemUsed_EventPointsGranted = 9; 28 | k_EGCMsgUseItemResponse_MissingRequirement = 10; 29 | k_EGCMsgUseItemResponse_EmoticonUnlock_NoNew = 11; 30 | k_EGCMsgUseItemResponse_EmoticonUnlock_Complete = 12; 31 | k_EGCMsgUseItemResponse_ItemUsed_Compendium = 13; 32 | } 33 | 34 | message CMsgGenericResult { 35 | optional uint32 eresult = 1 [default = 2]; 36 | optional string debug_message = 2; 37 | } 38 | -------------------------------------------------------------------------------- /deadlock/engine_gcmessages.proto: -------------------------------------------------------------------------------- 1 | import "google/protobuf/descriptor.proto"; 2 | 3 | message CEngineGotvSyncPacket { 4 | optional uint64 match_id = 1; 5 | optional uint32 instance_id = 2; 6 | optional uint32 signupfragment = 3; 7 | optional uint32 currentfragment = 4; 8 | optional float tickrate = 5; 9 | optional uint32 tick = 6; 10 | optional float rtdelay = 8; 11 | optional float rcvage = 9; 12 | optional float keyframe_interval = 10; 13 | optional uint32 cdndelay = 11; 14 | } 15 | -------------------------------------------------------------------------------- /deadlock/gcsystemmsgs.proto: -------------------------------------------------------------------------------- 1 | enum ESOMsg { 2 | k_ESOMsg_Create = 21; 3 | k_ESOMsg_Update = 22; 4 | k_ESOMsg_Destroy = 23; 5 | k_ESOMsg_CacheSubscribed = 24; 6 | k_ESOMsg_CacheUnsubscribed = 25; 7 | k_ESOMsg_UpdateMultiple = 26; 8 | k_ESOMsg_CacheSubscriptionRefresh = 28; 9 | k_ESOMsg_CacheSubscribedUpToDate = 29; 10 | } 11 | 12 | enum EGCBaseClientMsg { 13 | k_EMsgGCPingRequest = 3001; 14 | k_EMsgGCPingResponse = 3002; 15 | k_EMsgGCToClientPollConvarRequest = 3003; 16 | k_EMsgGCToClientPollConvarResponse = 3004; 17 | k_EMsgGCCompressedMsgToClient = 3005; 18 | k_EMsgGCCompressedMsgToClient_Legacy = 523; 19 | k_EMsgGCToClientRequestDropped = 3006; 20 | k_EMsgGCClientWelcome = 4004; 21 | k_EMsgGCServerWelcome = 4005; 22 | k_EMsgGCClientHello = 4006; 23 | k_EMsgGCServerHello = 4007; 24 | k_EMsgGCClientConnectionStatus = 4009; 25 | k_EMsgGCServerConnectionStatus = 4010; 26 | } 27 | -------------------------------------------------------------------------------- /deadlock/networksystem_protomessages.proto: -------------------------------------------------------------------------------- 1 | message NetMessageSplitscreenUserChanged { 2 | optional uint32 slot = 1; 3 | } 4 | 5 | message NetMessageConnectionClosed { 6 | optional uint32 reason = 1; 7 | optional string message = 2; 8 | } 9 | 10 | message NetMessageConnectionCrashed { 11 | optional uint32 reason = 1; 12 | optional string message = 2; 13 | } 14 | 15 | message NetMessagePacketStart { 16 | } 17 | 18 | message NetMessagePacketEnd { 19 | } 20 | -------------------------------------------------------------------------------- /deadlock/prediction_events.proto: -------------------------------------------------------------------------------- 1 | import "networkbasetypes.proto"; 2 | 3 | enum EBasePredictionEvents { 4 | BPE_StringCommand = 128; 5 | BPE_Teleport = 130; 6 | BPE_Diagnostic = 16384; 7 | } 8 | 9 | message CPredictionEvent_Teleport { 10 | optional .CMsgVector origin = 1; 11 | optional .CMsgQAngle angles = 2; 12 | optional float drop_to_ground_range = 3; 13 | } 14 | 15 | message CPredictionEvent_StringCommand { 16 | optional string command = 1; 17 | } 18 | 19 | message CPredictionEvent_Diagnostic { 20 | optional uint32 id = 1; 21 | optional uint32 requested_sync = 2; 22 | optional uint32 requested_player_index = 3; 23 | repeated uint32 execution_sync = 4; 24 | } 25 | -------------------------------------------------------------------------------- /deadlock/steamdatagram_messages_auth.proto: -------------------------------------------------------------------------------- 1 | import "steamnetworkingsockets_messages_certs.proto"; 2 | 3 | option optimize_for = SPEED; 4 | option cc_generic_services = false; 5 | 6 | message CMsgSteamDatagramRelayAuthTicket { 7 | message ExtraField { 8 | optional string name = 1; 9 | optional string string_value = 2; 10 | optional sint64 int64_value = 3; 11 | optional fixed64 fixed64_value = 5; 12 | } 13 | 14 | optional fixed32 time_expiry = 1; 15 | optional string authorized_client_identity_string = 14; 16 | optional string gameserver_identity_string = 15; 17 | optional fixed32 authorized_public_ip = 3; 18 | optional bytes gameserver_address = 11; 19 | optional uint32 app_id = 7; 20 | optional uint32 virtual_port = 10; 21 | repeated .CMsgSteamDatagramRelayAuthTicket.ExtraField extra_fields = 8; 22 | optional fixed64 legacy_authorized_steam_id = 2; 23 | optional fixed64 legacy_gameserver_steam_id = 4; 24 | optional fixed32 legacy_gameserver_pop_id = 9; 25 | optional bytes legacy_authorized_client_identity_binary = 12; 26 | optional bytes legacy_gameserver_identity_binary = 13; 27 | } 28 | 29 | message CMsgSteamDatagramSignedRelayAuthTicket { 30 | optional fixed64 reserved_do_not_use = 1; 31 | optional bytes ticket = 3; 32 | optional bytes signature = 4; 33 | optional fixed64 key_id = 2; 34 | repeated .CMsgSteamDatagramCertificateSigned certs = 5; 35 | } 36 | 37 | message CMsgSteamDatagramCachedCredentialsForApp { 38 | optional bytes private_key = 1; 39 | optional bytes cert = 2; 40 | repeated bytes relay_tickets = 3; 41 | } 42 | 43 | message CMsgSteamDatagramGameCoordinatorServerLogin { 44 | optional uint32 time_generated = 1; 45 | optional uint32 appid = 2; 46 | optional bytes routing = 3; 47 | optional bytes appdata = 4; 48 | optional bytes legacy_identity_binary = 5; 49 | optional string identity_string = 6; 50 | optional fixed64 dummy_steam_id = 99; 51 | } 52 | 53 | message CMsgSteamDatagramSignedGameCoordinatorServerLogin { 54 | optional .CMsgSteamDatagramCertificateSigned cert = 1; 55 | optional bytes login = 2; 56 | optional bytes signature = 3; 57 | } 58 | 59 | message CMsgSteamDatagramHostedServerAddressPlaintext { 60 | optional fixed32 ipv4 = 1; 61 | optional bytes ipv6 = 2; 62 | optional uint32 port = 3; 63 | optional fixed64 routing_secret = 4; 64 | optional uint32 protocol_version = 5; 65 | } 66 | -------------------------------------------------------------------------------- /deadlock/steammessages_helprequest.steamworkssdk.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_unified_base.steamworkssdk.proto"; 2 | 3 | option cc_generic_services = true; 4 | 5 | message CHelpRequestLogs_UploadUserApplicationLog_Request { 6 | optional uint32 appid = 1; 7 | optional string log_type = 2; 8 | optional string version_string = 3; 9 | optional string log_contents = 4; 10 | } 11 | 12 | message CHelpRequestLogs_UploadUserApplicationLog_Response { 13 | optional uint64 id = 1; 14 | } 15 | 16 | service HelpRequestLogs { 17 | option (service_description) = "Service for dealing with user-submitted logs"; 18 | 19 | rpc UploadUserApplicationLog (.CHelpRequestLogs_UploadUserApplicationLog_Request) returns (.CHelpRequestLogs_UploadUserApplicationLog_Response) { 20 | option (method_description) = "User uploading application logs"; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /deadlock/steammessages_oauth.steamworkssdk.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_unified_base.steamworkssdk.proto"; 2 | 3 | message COAuthToken_ImplicitGrantNoPrompt_Request { 4 | optional string clientid = 1 [(description) = "Client ID for which to count the number of issued tokens"]; 5 | } 6 | 7 | message COAuthToken_ImplicitGrantNoPrompt_Response { 8 | optional string access_token = 1 [(description) = "OAuth Token, granted on success"]; 9 | optional string redirect_uri = 2 [(description) = "Redirection URI provided during client registration."]; 10 | } 11 | 12 | service OAuthToken { 13 | option (service_description) = "Service containing methods to manage OAuth tokens"; 14 | 15 | rpc ImplicitGrantNoPrompt (.COAuthToken_ImplicitGrantNoPrompt_Request) returns (.COAuthToken_ImplicitGrantNoPrompt_Response) { 16 | option (method_description) = "Grants an implicit OAuth token (grant type 'token') for the specified client ID on behalf of a user without prompting"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /deadlock/steammessages_unified_base.steamworkssdk.proto: -------------------------------------------------------------------------------- 1 | import "google/protobuf/descriptor.proto"; 2 | 3 | option optimize_for = SPEED; 4 | option cc_generic_services = false; 5 | 6 | extend .google.protobuf.FieldOptions { 7 | optional string description = 50000; 8 | } 9 | 10 | extend .google.protobuf.ServiceOptions { 11 | optional string service_description = 50000; 12 | optional .EProtoExecutionSite service_execution_site = 50008 [default = k_EProtoExecutionSiteUnknown]; 13 | } 14 | 15 | extend .google.protobuf.MethodOptions { 16 | optional string method_description = 50000; 17 | } 18 | 19 | extend .google.protobuf.EnumOptions { 20 | optional string enum_description = 50000; 21 | } 22 | 23 | extend .google.protobuf.EnumValueOptions { 24 | optional string enum_value_description = 50000; 25 | } 26 | 27 | enum EProtoExecutionSite { 28 | k_EProtoExecutionSiteUnknown = 0; 29 | k_EProtoExecutionSiteSteamClient = 3; 30 | } 31 | -------------------------------------------------------------------------------- /deadlock/steamnetworkingsockets_messages_certs.proto: -------------------------------------------------------------------------------- 1 | option optimize_for = SPEED; 2 | option cc_generic_services = false; 3 | 4 | message CMsgSteamNetworkingIdentityLegacyBinary { 5 | optional fixed64 steam_id = 16; 6 | optional bytes generic_bytes = 2; 7 | optional string generic_string = 3; 8 | optional bytes ipv6_and_port = 4; 9 | } 10 | 11 | message CMsgSteamDatagramCertificate { 12 | enum EKeyType { 13 | INVALID = 0; 14 | ED25519 = 1; 15 | } 16 | 17 | optional .CMsgSteamDatagramCertificate.EKeyType key_type = 1 [default = INVALID]; 18 | optional bytes key_data = 2; 19 | optional fixed64 legacy_steam_id = 4; 20 | optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 11; 21 | optional string identity_string = 12; 22 | repeated fixed32 gameserver_datacenter_ids = 5; 23 | optional fixed32 time_created = 8; 24 | optional fixed32 time_expiry = 9; 25 | repeated uint32 app_ids = 10; 26 | repeated string ip_addresses = 13; 27 | } 28 | 29 | message CMsgSteamDatagramCertificateSigned { 30 | optional bytes cert = 4; 31 | optional fixed64 ca_key_id = 5; 32 | optional bytes ca_signature = 6; 33 | optional bytes private_key_data = 1; 34 | } 35 | 36 | message CMsgSteamDatagramCertificateRequest { 37 | optional .CMsgSteamDatagramCertificate cert = 1; 38 | } 39 | -------------------------------------------------------------------------------- /deadlock/uifontfile_format.proto: -------------------------------------------------------------------------------- 1 | message CUIFontFilePB { 2 | optional string font_file_name = 1; 3 | optional bytes opentype_font_data = 2; 4 | } 5 | 6 | message CUIFontFilePackagePB { 7 | message CUIEncryptedFontFilePB { 8 | optional bytes encrypted_contents = 1; 9 | } 10 | 11 | required uint32 package_version = 1; 12 | repeated .CUIFontFilePackagePB.CUIEncryptedFontFilePB encrypted_font_files = 2; 13 | } 14 | -------------------------------------------------------------------------------- /deadlock/usercmd.proto: -------------------------------------------------------------------------------- 1 | import "networkbasetypes.proto"; 2 | 3 | message CInButtonStatePB { 4 | optional uint64 buttonstate1 = 1; 5 | optional uint64 buttonstate2 = 2; 6 | optional uint64 buttonstate3 = 3; 7 | } 8 | 9 | message CSubtickMoveStep { 10 | optional uint64 button = 1; 11 | optional bool pressed = 2; 12 | optional float when = 3; 13 | optional float analog_forward_delta = 4; 14 | optional float analog_left_delta = 5; 15 | optional float analog_pitch_delta = 6; 16 | optional float analog_yaw_delta = 7; 17 | } 18 | 19 | message CBaseUserCmdPB { 20 | optional int32 legacy_command_number = 1; 21 | optional int32 client_tick = 2; 22 | optional uint32 prediction_offset_ticks_x256 = 17; 23 | optional .CInButtonStatePB buttons_pb = 3; 24 | optional .CMsgQAngle viewangles = 4; 25 | optional float forwardmove = 5; 26 | optional float leftmove = 6; 27 | optional float upmove = 7; 28 | optional int32 impulse = 8; 29 | optional int32 weaponselect = 9; 30 | optional int32 random_seed = 10; 31 | optional int32 mousedx = 11; 32 | optional int32 mousedy = 12; 33 | optional uint32 pawn_entity_handle = 14 [default = 16777215]; 34 | repeated .CSubtickMoveStep subtick_moves = 18; 35 | optional bytes move_crc = 19; 36 | optional uint32 consumed_server_angle_changes = 20; 37 | optional int32 cmd_flags = 21; 38 | } 39 | 40 | message CUserCmdBasePB { 41 | optional .CBaseUserCmdPB base = 1; 42 | } 43 | -------------------------------------------------------------------------------- /deadlock/valveextensions.proto: -------------------------------------------------------------------------------- 1 | import "google/protobuf/descriptor.proto"; 2 | 3 | extend .google.protobuf.FieldOptions { 4 | optional bool valve_map_field = 61000 [default = false]; 5 | optional bool valve_map_key = 61001 [default = false]; 6 | optional int32 diff_encode_field = 61002 [default = 0]; 7 | optional bool delta_ignore = 61003 [default = false]; 8 | optional uint32 steamml_max_entries = 61004 [default = 0]; 9 | optional bool steamml_is_timestamp = 61005 [default = false]; 10 | optional uint32 steamlearn_count = 61006 [default = 0]; 11 | optional .EProtoDebugVisiblity debugprint_visibility = 61007 [default = k_EProtoDebugVisibility_Always]; 12 | } 13 | 14 | extend .google.protobuf.EnumValueOptions { 15 | optional string schema_friendly_name = 1000; 16 | optional string schema_description = 1001; 17 | optional bool schema_suppress_enumerator = 1002; 18 | } 19 | 20 | enum EProtoDebugVisiblity { 21 | k_EProtoDebugVisibility_Always = 0; 22 | k_EProtoDebugVisibility_Server = 70; 23 | k_EProtoDebugVisibility_ValveServer = 80; 24 | k_EProtoDebugVisibility_GC = 90; 25 | k_EProtoDebugVisibility_Never = 100; 26 | } 27 | -------------------------------------------------------------------------------- /dota2/c_peer2peer_netmessages.proto: -------------------------------------------------------------------------------- 1 | import "netmessages.proto"; 2 | import "networkbasetypes.proto"; 3 | 4 | enum P2P_Messages { 5 | p2p_TextMessage = 256; 6 | p2p_Voice = 257; 7 | p2p_Ping = 258; 8 | p2p_VRAvatarPosition = 259; 9 | p2p_WatchSynchronization = 260; 10 | p2p_FightingGame_GameData = 261; 11 | p2p_FightingGame_Connection = 262; 12 | } 13 | 14 | message CP2P_TextMessage { 15 | optional bytes text = 1; 16 | } 17 | 18 | message CSteam_Voice_Encoding { 19 | optional bytes voice_data = 1; 20 | } 21 | 22 | message CP2P_Voice { 23 | enum Handler_Flags { 24 | Played_Audio = 1; 25 | } 26 | 27 | optional .CMsgVoiceAudio audio = 1; 28 | optional uint32 broadcast_group = 2; 29 | } 30 | 31 | message CP2P_Ping { 32 | required uint64 send_time = 1; 33 | required bool is_reply = 2; 34 | } 35 | 36 | message CP2P_VRAvatarPosition { 37 | message COrientation { 38 | optional .CMsgVector pos = 1; 39 | optional .CMsgQAngle ang = 2; 40 | } 41 | 42 | repeated .CP2P_VRAvatarPosition.COrientation body_parts = 1; 43 | optional int32 hat_id = 2; 44 | optional int32 scene_id = 3; 45 | optional int32 world_scale = 4; 46 | } 47 | 48 | message CP2P_WatchSynchronization { 49 | optional int32 demo_tick = 1; 50 | optional bool paused = 2; 51 | optional uint64 tv_listen_voice_indices = 3; 52 | optional int32 dota_spectator_mode = 4; 53 | optional bool dota_spectator_watching_broadcaster = 5; 54 | optional int32 dota_spectator_hero_index = 6; 55 | optional int32 dota_spectator_autospeed = 7; 56 | optional int32 dota_replay_speed = 8; 57 | } 58 | -------------------------------------------------------------------------------- /dota2/clientmessages.proto: -------------------------------------------------------------------------------- 1 | enum EBaseClientMessages { 2 | CM_CustomGameEvent = 280; 3 | CM_CustomGameEventBounce = 281; 4 | CM_ClientUIEvent = 282; 5 | CM_DevPaletteVisibilityChanged = 283; 6 | CM_WorldUIControllerHasPanelChanged = 284; 7 | CM_RotateAnchor = 285; 8 | CM_ListenForResponseFound = 286; 9 | CM_MAX_BASE = 300; 10 | } 11 | 12 | enum EClientUIEvent { 13 | EClientUIEvent_Invalid = 0; 14 | EClientUIEvent_DialogFinished = 1; 15 | EClientUIEvent_FireOutput = 2; 16 | } 17 | 18 | message CClientMsg_CustomGameEvent { 19 | optional string event_name = 1; 20 | optional bytes data = 2; 21 | } 22 | 23 | message CClientMsg_CustomGameEventBounce { 24 | optional string event_name = 1; 25 | optional bytes data = 2; 26 | optional int32 player_slot = 3 [default = -1]; 27 | } 28 | 29 | message CClientMsg_ClientUIEvent { 30 | optional .EClientUIEvent event = 1 [default = EClientUIEvent_Invalid]; 31 | optional uint32 ent_ehandle = 2; 32 | optional uint32 client_ehandle = 3; 33 | optional string data1 = 4; 34 | optional string data2 = 5; 35 | } 36 | 37 | message CClientMsg_DevPaletteVisibilityChangedEvent { 38 | optional bool visible = 1; 39 | } 40 | 41 | message CClientMsg_WorldUIControllerHasPanelChangedEvent { 42 | optional bool has_panel = 1; 43 | optional uint32 client_ehandle = 2; 44 | optional uint32 literal_hand_type = 3; 45 | } 46 | 47 | message CClientMsg_RotateAnchor { 48 | optional float angle = 1; 49 | } 50 | 51 | message CClientMsg_ListenForResponseFound { 52 | optional int32 player_slot = 1 [default = -1]; 53 | } 54 | -------------------------------------------------------------------------------- /dota2/connectionless_netmessages.proto: -------------------------------------------------------------------------------- 1 | import "netmessages.proto"; 2 | 3 | message C2S_CONNECT_Message { 4 | optional uint32 host_version = 1; 5 | optional uint32 auth_protocol = 2; 6 | optional uint32 challenge_number = 3; 7 | optional fixed64 reservation_cookie = 4; 8 | optional bool low_violence = 5; 9 | optional bytes encrypted_password = 6; 10 | repeated .CCLCMsg_SplitPlayerConnect splitplayers = 7; 11 | optional bytes auth_steam = 8; 12 | optional string challenge_context = 9; 13 | } 14 | 15 | message C2S_CONNECTION_Message { 16 | optional string addon_name = 1; 17 | } 18 | -------------------------------------------------------------------------------- /dota2/dota_broadcastmessages.proto: -------------------------------------------------------------------------------- 1 | enum EDotaBroadcastMessages { 2 | DOTA_BM_LANLobbyRequest = 1; 3 | DOTA_BM_LANLobbyReply = 2; 4 | } 5 | 6 | message CDOTABroadcastMsg { 7 | required .EDotaBroadcastMessages type = 1 [default = DOTA_BM_LANLobbyRequest]; 8 | optional bytes msg = 2; 9 | } 10 | 11 | message CDOTABroadcastMsg_LANLobbyRequest { 12 | } 13 | 14 | message CDOTABroadcastMsg_LANLobbyReply { 15 | message CLobbyMember { 16 | optional uint32 account_id = 1; 17 | optional string player_name = 2; 18 | } 19 | 20 | optional uint64 id = 1; 21 | optional uint32 tournament_id = 2; 22 | optional uint32 tournament_game_id = 3; 23 | repeated .CDOTABroadcastMsg_LANLobbyReply.CLobbyMember members = 4; 24 | optional bool requires_pass_key = 5; 25 | optional uint32 leader_account_id = 6; 26 | optional uint32 game_mode = 7; 27 | optional string name = 8; 28 | optional uint32 players = 9; 29 | } 30 | -------------------------------------------------------------------------------- /dota2/dota_fighting_game_p2p_messages.proto: -------------------------------------------------------------------------------- 1 | import "netmessages.proto"; 2 | import "networkbasetypes.proto"; 3 | 4 | message CMsgFightingGame_GameData_Fighting { 5 | message InputSample { 6 | optional uint32 button_mask = 1; 7 | } 8 | 9 | optional int32 last_acked_frame = 1; 10 | optional uint32 player_id = 2; 11 | optional int32 last_crc_frame = 3; 12 | optional uint32 last_crc_value = 4; 13 | optional float now = 5; 14 | optional float peer_ack_time = 6; 15 | optional int32 input_start_frame = 7; 16 | repeated .CMsgFightingGame_GameData_Fighting.InputSample input_sample = 8; 17 | } 18 | 19 | message CMsgFightingGame_GameData_CharacterSelect { 20 | message Item { 21 | optional uint32 item_def = 1; 22 | optional uint32 style_index = 2 [default = 255]; 23 | } 24 | 25 | optional uint32 cursor_index = 1; 26 | optional int32 selected_hero_id = 2; 27 | optional uint32 selected_style = 3; 28 | repeated .CMsgFightingGame_GameData_CharacterSelect.Item econ_item_refs = 4; 29 | optional int64 message_ack = 5; 30 | optional bool confirmed_style = 6; 31 | } 32 | 33 | message CMsgFightingGame_GameData_Loaded { 34 | optional float now = 1; 35 | optional float peer_ack_time = 2; 36 | optional float proposed_start_time = 3; 37 | optional float accepted_start_time = 4; 38 | } 39 | 40 | message CP2P_FightingGame_GameData { 41 | enum EState { 42 | k_ChoosingCharacter = 1; 43 | k_Loaded = 2; 44 | k_Fighting = 3; 45 | } 46 | 47 | optional .CP2P_FightingGame_GameData.EState state = 1 [default = k_ChoosingCharacter]; 48 | 49 | oneof state_data { 50 | .CMsgFightingGame_GameData_Fighting fight = 2; 51 | .CMsgFightingGame_GameData_CharacterSelect character_select = 3; 52 | .CMsgFightingGame_GameData_Loaded loaded = 4; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /dota2/dota_gcmessages_common_craftworks.proto: -------------------------------------------------------------------------------- 1 | import "steammessages.proto"; 2 | import "dota_shared_enums.proto"; 3 | import "gcsdk_gcmessages.proto"; 4 | 5 | enum ECraftworksAuditAction { 6 | k_eInvalid = 0; 7 | k_eRecipeCrafted = 1; 8 | k_eMatchRewards = 2; 9 | k_eMatchRewardsTurbo = 3; 10 | } 11 | 12 | message CMsgCraftworksComponents { 13 | message ComponentQuantitiesEntry { 14 | optional uint32 key = 1; 15 | optional uint32 value = 2; 16 | } 17 | 18 | repeated .CMsgCraftworksComponents.ComponentQuantitiesEntry component_quantities = 1; 19 | } 20 | 21 | message CMsgCraftworksQuestReward { 22 | optional uint32 quest_id = 1; 23 | optional .CMsgCraftworksComponents reward_components = 2; 24 | optional uint32 stat_value = 3; 25 | } 26 | -------------------------------------------------------------------------------- /dota2/dota_gcmessages_common_fighting_game.proto: -------------------------------------------------------------------------------- 1 | import "steammessages.proto"; 2 | import "dota_shared_enums.proto"; 3 | import "dota_gcmessages_common.proto"; 4 | import "gcsdk_gcmessages.proto"; 5 | 6 | message CMsgClientToGCFightingGameChallengeFriend { 7 | optional uint32 friend_account_id = 1; 8 | } 9 | 10 | message CMsgClientToGCFightingGameChallengeFriendResponse { 11 | enum EResponse { 12 | k_eInternalError = 0; 13 | k_eSuccess = 1; 14 | k_eTooBusy = 2; 15 | k_eDisabled = 3; 16 | k_eTimeout = 4; 17 | k_eInvalidAccountID = 5; 18 | k_eStillWaitingOnAnotherChallenge = 6; 19 | } 20 | 21 | optional .CMsgClientToGCFightingGameChallengeFriendResponse.EResponse response = 1 [default = k_eInternalError]; 22 | } 23 | 24 | message CMsgClientToGCFightingGameCancelChallengeFriend { 25 | optional uint32 friend_account_id = 1; 26 | } 27 | 28 | message CMsgClientToGCFightingGameAnswerChallenge { 29 | optional uint32 challenger_account_id = 1; 30 | optional bool accept = 2; 31 | } 32 | 33 | message CMsgClientToGCFightingGameAnswerChallengeResponse { 34 | enum EResponse { 35 | k_eInternalError = 0; 36 | k_eSuccess = 1; 37 | k_eTooBusy = 2; 38 | k_eDisabled = 3; 39 | k_eTimeout = 4; 40 | k_eInvalidChallenge = 5; 41 | } 42 | 43 | optional .CMsgClientToGCFightingGameAnswerChallengeResponse.EResponse response = 1 [default = k_eInternalError]; 44 | } 45 | 46 | message CMsgGCToClientFightingGameChallenge { 47 | optional uint32 challenger_account_id = 1; 48 | } 49 | 50 | message CMsgGCToClientFightingGameChallengeCanceled { 51 | optional uint32 challenger_account_id = 1; 52 | optional uint32 responder_account_id = 2; 53 | } 54 | 55 | message CMsgGCToClientFightingGameStartMatch { 56 | optional uint32 challenger_account_id = 1; 57 | optional uint32 responder_account_id = 2; 58 | } 59 | -------------------------------------------------------------------------------- /dota2/dota_gcmessages_common_survivors.proto: -------------------------------------------------------------------------------- 1 | import "steammessages.proto"; 2 | import "dota_shared_enums.proto"; 3 | import "dota_gcmessages_common.proto"; 4 | import "gcsdk_gcmessages.proto"; 5 | 6 | message CMsgSurvivorsUserData { 7 | message AttributeLevelsEntry { 8 | optional int32 key = 1; 9 | optional uint32 value = 2; 10 | } 11 | 12 | repeated .CMsgSurvivorsUserData.AttributeLevelsEntry attribute_levels = 1; 13 | optional uint32 unlocked_difficulty = 2; 14 | } 15 | 16 | message CMsgClientToGCSurvivorsPowerUpTelemetryData { 17 | optional uint32 powerup_id = 1; 18 | optional uint32 level = 2; 19 | optional uint32 time_received = 3; 20 | optional uint32 time_held = 4; 21 | optional uint64 total_damage = 5; 22 | optional uint32 dps = 6; 23 | optional uint32 has_scepter = 7; 24 | } 25 | 26 | message CMsgClientToGCSurvivorsGameTelemetryData { 27 | optional uint32 time_survived = 1; 28 | optional uint32 player_level = 2; 29 | optional uint32 game_result = 3; 30 | optional uint32 gold_earned = 4; 31 | repeated .CMsgClientToGCSurvivorsPowerUpTelemetryData powerups = 5; 32 | optional uint32 difficulty = 6; 33 | optional uint32 metaprogression_level = 7; 34 | } 35 | 36 | message CMsgClientToGCSurvivorsGameTelemetryDataResponse { 37 | enum EResponse { 38 | k_eInternalError = 0; 39 | k_eSuccess = 1; 40 | k_eTooBusy = 2; 41 | k_eDisabled = 3; 42 | k_eTimeout = 4; 43 | k_eNotAllowed = 5; 44 | k_eInvalidItem = 6; 45 | } 46 | 47 | optional .CMsgClientToGCSurvivorsGameTelemetryDataResponse.EResponse response = 1 [default = k_eInternalError]; 48 | } 49 | -------------------------------------------------------------------------------- /dota2/dota_messages_mlbot.proto: -------------------------------------------------------------------------------- 1 | import "dota_gcmessages_common_bot_script.proto"; 2 | import "dota_commonmessages.proto"; 3 | import "dota_shared_enums.proto"; 4 | 5 | enum MLBot_MessageId { 6 | mlbot_MatchMetadata = 1; 7 | mlbot_TickBoundary = 2; 8 | mlbot_TeamState_Radiant = 3; 9 | mlbot_TeamState_Radiant_Delta = 4; 10 | mlbot_TeamState_Dire = 5; 11 | mlbot_TeamState_Dire_Delta = 6; 12 | mlbot_PlayerCommand = 7; 13 | mlbot_PlayerOrder = 8; 14 | } 15 | 16 | message CMsgMLBotMatchMetadata { 17 | message Player { 18 | optional int32 player_id = 1 [default = -1]; 19 | optional int32 team_id = 2; 20 | optional int32 hero_id = 3; 21 | optional int32 rank = 4; 22 | } 23 | 24 | optional uint64 match_id = 1; 25 | optional uint64 lobby_id = 2; 26 | optional int32 lobby_type = 3 [default = -1]; 27 | optional uint32 game_mode = 4; 28 | repeated .CMsgMLBotMatchMetadata.Player players = 5; 29 | } 30 | 31 | message CMsgMLBotTickBoundary { 32 | optional uint32 tick_number = 1; 33 | } 34 | 35 | message CMsgMLBot_PlayerOrder { 36 | optional int32 player_id = 1 [default = -1]; 37 | optional int32 team_id = 2; 38 | optional int32 order_type = 3; 39 | repeated uint32 selected_unit_handles = 4; 40 | optional int32 target_index = 5 [default = -1]; 41 | optional uint32 target_handle = 6 [default = 4294967295]; 42 | optional int32 ability_index = 7 [default = -1]; 43 | optional uint32 ability_handle = 8 [default = 4294967295]; 44 | optional float pos_x = 9; 45 | optional float pos_y = 10; 46 | optional float pos_z = 11; 47 | optional bool queue = 12; 48 | } 49 | 50 | message CMsgMLBot_TeamInference { 51 | optional int32 team_id = 1; 52 | repeated int32 bot_player_ids = 2; 53 | optional .CMsgBotWorldState world_state = 3; 54 | } 55 | 56 | message CMsgMLBot_TeamInferenceResponse { 57 | repeated .CMsgMLBot_PlayerOrder orders = 1; 58 | } 59 | 60 | message CMsgMLBot_TeamInferenceList { 61 | repeated .CMsgMLBot_TeamInference messages = 1; 62 | } 63 | -------------------------------------------------------------------------------- /dota2/dota_modifiers.proto: -------------------------------------------------------------------------------- 1 | import "networkbasetypes.proto"; 2 | 3 | enum DOTA_MODIFIER_ENTRY_TYPE { 4 | DOTA_MODIFIER_ENTRY_TYPE_ACTIVE = 1; 5 | DOTA_MODIFIER_ENTRY_TYPE_REMOVED = 2; 6 | } 7 | 8 | message CDOTAModifierBuffTableEntry { 9 | required .DOTA_MODIFIER_ENTRY_TYPE entry_type = 1 [default = DOTA_MODIFIER_ENTRY_TYPE_ACTIVE]; 10 | required uint32 parent = 2 [default = 16777215]; 11 | required int32 index = 3; 12 | required int32 serial_num = 4; 13 | optional int32 modifier_class = 5; 14 | optional int32 ability_level = 6; 15 | optional int32 stack_count = 7; 16 | optional float creation_time = 8; 17 | optional float duration = 9 [default = -1]; 18 | optional uint32 caster = 10 [default = 16777215]; 19 | optional uint32 ability = 11 [default = 16777215]; 20 | optional int32 armor = 12; 21 | optional float fade_time = 13; 22 | optional bool subtle = 14; 23 | optional float channel_time = 15; 24 | optional .CMsgVector v_start = 16; 25 | optional .CMsgVector v_end = 17; 26 | optional string portal_loop_appear = 18; 27 | optional string portal_loop_disappear = 19; 28 | optional string hero_loop_appear = 20; 29 | optional string hero_loop_disappear = 21; 30 | optional int32 movement_speed = 22; 31 | optional bool aura = 23; 32 | optional int32 activity = 24; 33 | optional int32 damage = 25; 34 | optional int32 range = 26; 35 | optional int32 dd_modifier_index = 27; 36 | optional int32 dd_ability_id = 28 [default = -1]; 37 | optional string illusion_label = 29; 38 | optional bool active = 30; 39 | optional string player_ids = 31; 40 | optional string lua_name = 32; 41 | optional int32 attack_speed = 33; 42 | optional uint32 aura_owner = 34 [default = 16777215]; 43 | optional int32 bonus_all_stats = 35; 44 | optional int32 bonus_health = 36; 45 | optional int32 bonus_mana = 37; 46 | optional uint32 custom_entity = 38 [default = 16777215]; 47 | optional bool aura_within_range = 39; 48 | } 49 | 50 | message CDOTALuaModifierEntry { 51 | required int32 modifier_type = 1; 52 | required string modifier_filename = 2; 53 | } 54 | -------------------------------------------------------------------------------- /dota2/dota_usercmd.proto: -------------------------------------------------------------------------------- 1 | import "networkbasetypes.proto"; 2 | import "usercmd.proto"; 3 | 4 | message CDota2UserCmdPB { 5 | optional .CBaseUserCmdPB base = 1; 6 | optional int32 spectator_query_unit_entindex = 2; 7 | optional .CMsgVector crosshairtrace = 3; 8 | optional int32 cameraposition_x = 4; 9 | optional int32 cameraposition_y = 5; 10 | optional uint32 clickbehavior = 6; 11 | optional uint32 statspanel = 7; 12 | optional uint32 shoppanel = 8; 13 | optional uint32 stats_dropdown = 9; 14 | optional uint32 stats_dropdown_sort = 10; 15 | } 16 | -------------------------------------------------------------------------------- /dota2/econ_shared_enums.proto: -------------------------------------------------------------------------------- 1 | enum EGCEconBaseMsg { 2 | k_EMsgGCGenericResult = 2579; 3 | } 4 | 5 | enum EGCMsgResponse { 6 | k_EGCMsgResponseOK = 0; 7 | k_EGCMsgResponseDenied = 1; 8 | k_EGCMsgResponseServerError = 2; 9 | k_EGCMsgResponseTimeout = 3; 10 | k_EGCMsgResponseInvalid = 4; 11 | k_EGCMsgResponseNoMatch = 5; 12 | k_EGCMsgResponseUnknownError = 6; 13 | k_EGCMsgResponseNotLoggedOn = 7; 14 | k_EGCMsgFailedToCreate = 8; 15 | } 16 | 17 | enum EGCMsgUseItemResponse { 18 | k_EGCMsgUseItemResponse_ItemUsed = 0; 19 | k_EGCMsgUseItemResponse_GiftNoOtherPlayers = 1; 20 | k_EGCMsgUseItemResponse_ServerError = 2; 21 | k_EGCMsgUseItemResponse_MiniGameAlreadyStarted = 3; 22 | k_EGCMsgUseItemResponse_ItemUsed_ItemsGranted = 4; 23 | k_EGCMsgUseItemResponse_DropRateBonusAlreadyGranted = 5; 24 | k_EGCMsgUseItemResponse_NotInLowPriorityPool = 6; 25 | k_EGCMsgUseItemResponse_NotHighEnoughLevel = 7; 26 | k_EGCMsgUseItemResponse_EventNotActive = 8; 27 | k_EGCMsgUseItemResponse_ItemUsed_EventPointsGranted = 9; 28 | k_EGCMsgUseItemResponse_MissingRequirement = 10; 29 | k_EGCMsgUseItemResponse_EmoticonUnlock_NoNew = 11; 30 | k_EGCMsgUseItemResponse_EmoticonUnlock_Complete = 12; 31 | k_EGCMsgUseItemResponse_ItemUsed_Compendium = 13; 32 | } 33 | 34 | message CMsgGenericResult { 35 | optional uint32 eresult = 1 [default = 2]; 36 | optional string debug_message = 2; 37 | } 38 | -------------------------------------------------------------------------------- /dota2/engine_gcmessages.proto: -------------------------------------------------------------------------------- 1 | import "google/protobuf/descriptor.proto"; 2 | 3 | message CEngineGotvSyncPacket { 4 | optional uint64 match_id = 1; 5 | optional uint32 instance_id = 2; 6 | optional uint32 signupfragment = 3; 7 | optional uint32 currentfragment = 4; 8 | optional float tickrate = 5; 9 | optional uint32 tick = 6; 10 | optional float rtdelay = 8; 11 | optional float rcvage = 9; 12 | optional float keyframe_interval = 10; 13 | optional uint32 cdndelay = 11; 14 | } 15 | -------------------------------------------------------------------------------- /dota2/gametoolevents.proto: -------------------------------------------------------------------------------- 1 | import "networkbasetypes.proto"; 2 | 3 | option cc_generic_services = false; 4 | 5 | message ChangeMapToolEvent { 6 | optional string mapname = 1; 7 | } 8 | 9 | message TraceRayServerToolEvent { 10 | optional .CMsgVector start = 1; 11 | optional .CMsgVector end = 2; 12 | } 13 | 14 | message ToolTraceRayResult { 15 | optional bool hit = 1; 16 | optional .CMsgVector impact = 2; 17 | optional .CMsgVector normal = 3; 18 | optional float distance = 4; 19 | optional float fraction = 5; 20 | optional int32 ehandle = 6; 21 | } 22 | 23 | message SpawnEntityToolEvent { 24 | optional bytes entity_keyvalues = 1; 25 | optional bool clientsideentity = 2; 26 | } 27 | 28 | message SpawnEntityToolEventResult { 29 | optional int32 ehandle = 1; 30 | } 31 | 32 | message DestroyEntityToolEvent { 33 | optional int32 ehandle = 1; 34 | } 35 | 36 | message DestroyAllEntitiesToolEvent { 37 | } 38 | 39 | message RestartMapToolEvent { 40 | } 41 | 42 | message ToolEvent_GetEntityInfo { 43 | optional int32 ehandle = 1; 44 | optional bool clientsideentity = 2; 45 | } 46 | 47 | message ToolEvent_GetEntityInfoResult { 48 | optional string cppclass = 1 [default = "shithead"]; 49 | optional string classname = 2; 50 | optional string name = 3; 51 | optional .CMsgVector origin = 4; 52 | optional .CMsgVector mins = 5; 53 | optional .CMsgVector maxs = 6; 54 | } 55 | 56 | message ToolEvent_GetEntityInputs { 57 | optional int32 ehandle = 1; 58 | optional bool clientsideentity = 2; 59 | } 60 | 61 | message ToolEvent_GetEntityInputsResult { 62 | repeated string input_list = 1; 63 | } 64 | 65 | message ToolEvent_FireEntityInput { 66 | optional int32 ehandle = 1; 67 | optional bool clientsideentity = 2; 68 | optional string input_name = 3; 69 | optional string input_param = 4; 70 | } 71 | 72 | message ToolEvent_SFMRecordingStateChanged { 73 | optional bool isrecording = 1; 74 | } 75 | 76 | message ToolEvent_SFMToolActiveStateChanged { 77 | optional bool isactive = 1; 78 | } 79 | -------------------------------------------------------------------------------- /dota2/gcsystemmsgs.proto: -------------------------------------------------------------------------------- 1 | enum ESOMsg { 2 | k_ESOMsg_Create = 21; 3 | k_ESOMsg_Update = 22; 4 | k_ESOMsg_Destroy = 23; 5 | k_ESOMsg_CacheSubscribed = 24; 6 | k_ESOMsg_CacheUnsubscribed = 25; 7 | k_ESOMsg_UpdateMultiple = 26; 8 | k_ESOMsg_CacheSubscriptionRefresh = 28; 9 | k_ESOMsg_CacheSubscribedUpToDate = 29; 10 | } 11 | 12 | enum EGCBaseClientMsg { 13 | k_EMsgGCPingRequest = 3001; 14 | k_EMsgGCPingResponse = 3002; 15 | k_EMsgGCToClientPollConvarRequest = 3003; 16 | k_EMsgGCToClientPollConvarResponse = 3004; 17 | k_EMsgGCCompressedMsgToClient = 3005; 18 | k_EMsgGCCompressedMsgToClient_Legacy = 523; 19 | k_EMsgGCToClientRequestDropped = 3006; 20 | k_EMsgGCClientWelcome = 4004; 21 | k_EMsgGCServerWelcome = 4005; 22 | k_EMsgGCClientHello = 4006; 23 | k_EMsgGCServerHello = 4007; 24 | k_EMsgGCClientConnectionStatus = 4009; 25 | k_EMsgGCServerConnectionStatus = 4010; 26 | } 27 | -------------------------------------------------------------------------------- /dota2/networksystem_protomessages.proto: -------------------------------------------------------------------------------- 1 | message NetMessageSplitscreenUserChanged { 2 | optional uint32 slot = 1; 3 | } 4 | 5 | message NetMessageConnectionClosed { 6 | optional uint32 reason = 1; 7 | optional string message = 2; 8 | } 9 | 10 | message NetMessageConnectionCrashed { 11 | optional uint32 reason = 1; 12 | optional string message = 2; 13 | } 14 | 15 | message NetMessagePacketStart { 16 | } 17 | 18 | message NetMessagePacketEnd { 19 | } 20 | -------------------------------------------------------------------------------- /dota2/prediction_events.proto: -------------------------------------------------------------------------------- 1 | import "networkbasetypes.proto"; 2 | 3 | enum EBasePredictionEvents { 4 | BPE_StringCommand = 128; 5 | BPE_Teleport = 130; 6 | BPE_Diagnostic = 16384; 7 | } 8 | 9 | message CPredictionEvent_Teleport { 10 | optional .CMsgVector origin = 1; 11 | optional .CMsgQAngle angles = 2; 12 | optional float drop_to_ground_range = 3; 13 | } 14 | 15 | message CPredictionEvent_StringCommand { 16 | optional string command = 1; 17 | } 18 | 19 | message CPredictionEvent_Diagnostic { 20 | optional uint32 id = 1; 21 | optional uint32 requested_sync = 2; 22 | optional uint32 requested_player_index = 3; 23 | repeated uint32 execution_sync = 4; 24 | } 25 | -------------------------------------------------------------------------------- /dota2/steamdatagram_messages_auth.proto: -------------------------------------------------------------------------------- 1 | import "steamnetworkingsockets_messages_certs.proto"; 2 | 3 | option optimize_for = SPEED; 4 | option cc_generic_services = false; 5 | 6 | message CMsgSteamDatagramRelayAuthTicket { 7 | message ExtraField { 8 | optional string name = 1; 9 | optional string string_value = 2; 10 | optional sint64 int64_value = 3; 11 | optional fixed64 fixed64_value = 5; 12 | } 13 | 14 | optional fixed32 time_expiry = 1; 15 | optional string authorized_client_identity_string = 14; 16 | optional string gameserver_identity_string = 15; 17 | optional fixed32 authorized_public_ip = 3; 18 | optional bytes gameserver_address = 11; 19 | optional uint32 app_id = 7; 20 | optional uint32 virtual_port = 10; 21 | repeated .CMsgSteamDatagramRelayAuthTicket.ExtraField extra_fields = 8; 22 | optional fixed64 legacy_authorized_steam_id = 2; 23 | optional fixed64 legacy_gameserver_steam_id = 4; 24 | optional fixed32 legacy_gameserver_pop_id = 9; 25 | optional bytes legacy_authorized_client_identity_binary = 12; 26 | optional bytes legacy_gameserver_identity_binary = 13; 27 | } 28 | 29 | message CMsgSteamDatagramSignedRelayAuthTicket { 30 | optional fixed64 reserved_do_not_use = 1; 31 | optional bytes ticket = 3; 32 | optional bytes signature = 4; 33 | optional fixed64 key_id = 2; 34 | repeated .CMsgSteamDatagramCertificateSigned certs = 5; 35 | } 36 | 37 | message CMsgSteamDatagramCachedCredentialsForApp { 38 | optional bytes private_key = 1; 39 | optional bytes cert = 2; 40 | repeated bytes relay_tickets = 3; 41 | } 42 | 43 | message CMsgSteamDatagramGameCoordinatorServerLogin { 44 | optional uint32 time_generated = 1; 45 | optional uint32 appid = 2; 46 | optional bytes routing = 3; 47 | optional bytes appdata = 4; 48 | optional bytes legacy_identity_binary = 5; 49 | optional string identity_string = 6; 50 | optional fixed64 dummy_steam_id = 99; 51 | } 52 | 53 | message CMsgSteamDatagramSignedGameCoordinatorServerLogin { 54 | optional .CMsgSteamDatagramCertificateSigned cert = 1; 55 | optional bytes login = 2; 56 | optional bytes signature = 3; 57 | } 58 | 59 | message CMsgSteamDatagramHostedServerAddressPlaintext { 60 | optional fixed32 ipv4 = 1; 61 | optional bytes ipv6 = 2; 62 | optional uint32 port = 3; 63 | optional fixed64 routing_secret = 4; 64 | optional uint32 protocol_version = 5; 65 | } 66 | -------------------------------------------------------------------------------- /dota2/steammessages_helprequest.steamworkssdk.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_unified_base.steamworkssdk.proto"; 2 | 3 | option cc_generic_services = true; 4 | 5 | message CHelpRequestLogs_UploadUserApplicationLog_Request { 6 | optional uint32 appid = 1; 7 | optional string log_type = 2; 8 | optional string version_string = 3; 9 | optional string log_contents = 4; 10 | } 11 | 12 | message CHelpRequestLogs_UploadUserApplicationLog_Response { 13 | optional uint64 id = 1; 14 | } 15 | 16 | service HelpRequestLogs { 17 | option (service_description) = "Service for dealing with user-submitted logs"; 18 | 19 | rpc UploadUserApplicationLog (.CHelpRequestLogs_UploadUserApplicationLog_Request) returns (.CHelpRequestLogs_UploadUserApplicationLog_Response) { 20 | option (method_description) = "User uploading application logs"; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /dota2/steammessages_oauth.steamworkssdk.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_unified_base.steamworkssdk.proto"; 2 | 3 | message COAuthToken_ImplicitGrantNoPrompt_Request { 4 | optional string clientid = 1 [(description) = "Client ID for which to count the number of issued tokens"]; 5 | } 6 | 7 | message COAuthToken_ImplicitGrantNoPrompt_Response { 8 | optional string access_token = 1 [(description) = "OAuth Token, granted on success"]; 9 | optional string redirect_uri = 2 [(description) = "Redirection URI provided during client registration."]; 10 | } 11 | 12 | service OAuthToken { 13 | option (service_description) = "Service containing methods to manage OAuth tokens"; 14 | 15 | rpc ImplicitGrantNoPrompt (.COAuthToken_ImplicitGrantNoPrompt_Request) returns (.COAuthToken_ImplicitGrantNoPrompt_Response) { 16 | option (method_description) = "Grants an implicit OAuth token (grant type 'token') for the specified client ID on behalf of a user without prompting"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /dota2/steammessages_unified_base.steamworkssdk.proto: -------------------------------------------------------------------------------- 1 | import "google/protobuf/descriptor.proto"; 2 | 3 | option optimize_for = SPEED; 4 | option cc_generic_services = false; 5 | 6 | extend .google.protobuf.FieldOptions { 7 | optional string description = 50000; 8 | } 9 | 10 | extend .google.protobuf.ServiceOptions { 11 | optional string service_description = 50000; 12 | optional .EProtoExecutionSite service_execution_site = 50008 [default = k_EProtoExecutionSiteUnknown]; 13 | } 14 | 15 | extend .google.protobuf.MethodOptions { 16 | optional string method_description = 50000; 17 | } 18 | 19 | extend .google.protobuf.EnumOptions { 20 | optional string enum_description = 50000; 21 | } 22 | 23 | extend .google.protobuf.EnumValueOptions { 24 | optional string enum_value_description = 50000; 25 | } 26 | 27 | enum EProtoExecutionSite { 28 | k_EProtoExecutionSiteUnknown = 0; 29 | k_EProtoExecutionSiteSteamClient = 3; 30 | } 31 | -------------------------------------------------------------------------------- /dota2/steamnetworkingsockets_messages_certs.proto: -------------------------------------------------------------------------------- 1 | option optimize_for = SPEED; 2 | option cc_generic_services = false; 3 | 4 | message CMsgSteamNetworkingIdentityLegacyBinary { 5 | optional fixed64 steam_id = 16; 6 | optional bytes generic_bytes = 2; 7 | optional string generic_string = 3; 8 | optional bytes ipv6_and_port = 4; 9 | } 10 | 11 | message CMsgSteamDatagramCertificate { 12 | enum EKeyType { 13 | INVALID = 0; 14 | ED25519 = 1; 15 | } 16 | 17 | optional .CMsgSteamDatagramCertificate.EKeyType key_type = 1 [default = INVALID]; 18 | optional bytes key_data = 2; 19 | optional fixed64 legacy_steam_id = 4; 20 | optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 11; 21 | optional string identity_string = 12; 22 | repeated fixed32 gameserver_datacenter_ids = 5; 23 | optional fixed32 time_created = 8; 24 | optional fixed32 time_expiry = 9; 25 | repeated uint32 app_ids = 10; 26 | repeated string ip_addresses = 13; 27 | } 28 | 29 | message CMsgSteamDatagramCertificateSigned { 30 | optional bytes cert = 4; 31 | optional fixed64 ca_key_id = 5; 32 | optional bytes ca_signature = 6; 33 | optional bytes private_key_data = 1; 34 | } 35 | 36 | message CMsgSteamDatagramCertificateRequest { 37 | optional .CMsgSteamDatagramCertificate cert = 1; 38 | } 39 | -------------------------------------------------------------------------------- /dota2/uifontfile_format.proto: -------------------------------------------------------------------------------- 1 | message CUIFontFilePB { 2 | optional string font_file_name = 1; 3 | optional bytes opentype_font_data = 2; 4 | } 5 | 6 | message CUIFontFilePackagePB { 7 | message CUIEncryptedFontFilePB { 8 | optional bytes encrypted_contents = 1; 9 | } 10 | 11 | required uint32 package_version = 1; 12 | repeated .CUIFontFilePackagePB.CUIEncryptedFontFilePB encrypted_font_files = 2; 13 | } 14 | -------------------------------------------------------------------------------- /dota2/usercmd.proto: -------------------------------------------------------------------------------- 1 | import "networkbasetypes.proto"; 2 | 3 | message CInButtonStatePB { 4 | optional uint64 buttonstate1 = 1; 5 | optional uint64 buttonstate2 = 2; 6 | optional uint64 buttonstate3 = 3; 7 | } 8 | 9 | message CSubtickMoveStep { 10 | optional uint64 button = 1; 11 | optional bool pressed = 2; 12 | optional float when = 3; 13 | optional float analog_forward_delta = 4; 14 | optional float analog_left_delta = 5; 15 | optional float analog_pitch_delta = 6; 16 | optional float analog_yaw_delta = 7; 17 | } 18 | 19 | message CBaseUserCmdPB { 20 | optional int32 legacy_command_number = 1; 21 | optional int32 client_tick = 2; 22 | optional uint32 prediction_offset_ticks_x256 = 17; 23 | optional .CInButtonStatePB buttons_pb = 3; 24 | optional .CMsgQAngle viewangles = 4; 25 | optional float forwardmove = 5; 26 | optional float leftmove = 6; 27 | optional float upmove = 7; 28 | optional int32 impulse = 8; 29 | optional int32 weaponselect = 9; 30 | optional int32 random_seed = 10; 31 | optional int32 mousedx = 11; 32 | optional int32 mousedy = 12; 33 | optional uint32 pawn_entity_handle = 14 [default = 16777215]; 34 | repeated .CSubtickMoveStep subtick_moves = 18; 35 | optional bytes move_crc = 19; 36 | optional uint32 consumed_server_angle_changes = 20; 37 | optional int32 cmd_flags = 21; 38 | } 39 | 40 | message CUserCmdBasePB { 41 | optional .CBaseUserCmdPB base = 1; 42 | } 43 | -------------------------------------------------------------------------------- /dota2/valveextensions.proto: -------------------------------------------------------------------------------- 1 | import "google/protobuf/descriptor.proto"; 2 | 3 | extend .google.protobuf.FieldOptions { 4 | optional bool valve_map_field = 61000 [default = false]; 5 | optional bool valve_map_key = 61001 [default = false]; 6 | optional int32 diff_encode_field = 61002 [default = 0]; 7 | optional bool delta_ignore = 61003 [default = false]; 8 | optional uint32 steamml_max_entries = 61004 [default = 0]; 9 | optional bool steamml_is_timestamp = 61005 [default = false]; 10 | optional uint32 steamlearn_count = 61006 [default = 0]; 11 | optional .EProtoDebugVisiblity debugprint_visibility = 61007 [default = k_EProtoDebugVisibility_Always]; 12 | } 13 | 14 | extend .google.protobuf.EnumValueOptions { 15 | optional string schema_friendly_name = 1000; 16 | optional string schema_description = 1001; 17 | optional bool schema_suppress_enumerator = 1002; 18 | } 19 | 20 | enum EProtoDebugVisiblity { 21 | k_EProtoDebugVisibility_Always = 0; 22 | k_EProtoDebugVisibility_Server = 70; 23 | k_EProtoDebugVisibility_ValveServer = 80; 24 | k_EProtoDebugVisibility_GC = 90; 25 | k_EProtoDebugVisibility_Never = 100; 26 | } 27 | -------------------------------------------------------------------------------- /google/protobuf/any.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package google.protobuf; 4 | 5 | option go_package = "google.golang.org/protobuf/types/known/anypb"; 6 | option java_package = "com.google.protobuf"; 7 | option java_outer_classname = "AnyProto"; 8 | option java_multiple_files = true; 9 | option objc_class_prefix = "GPB"; 10 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; 11 | 12 | message Any { 13 | optional string type_url = 1; 14 | optional bytes value = 2; 15 | } 16 | -------------------------------------------------------------------------------- /google/protobuf/source_context.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package google.protobuf; 4 | 5 | option go_package = "google.golang.org/protobuf/types/known/sourcecontextpb"; 6 | option java_package = "com.google.protobuf"; 7 | option java_outer_classname = "SourceContextProto"; 8 | option java_multiple_files = true; 9 | option objc_class_prefix = "GPB"; 10 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; 11 | 12 | message SourceContext { 13 | optional string file_name = 1; 14 | } 15 | -------------------------------------------------------------------------------- /google/protobuf/wrappers.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package google.protobuf; 4 | 5 | option cc_enable_arenas = true; 6 | option go_package = "google.golang.org/protobuf/types/known/wrapperspb"; 7 | option java_package = "com.google.protobuf"; 8 | option java_outer_classname = "WrappersProto"; 9 | option java_multiple_files = true; 10 | option objc_class_prefix = "GPB"; 11 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; 12 | 13 | message DoubleValue { 14 | optional double value = 1; 15 | } 16 | 17 | message FloatValue { 18 | optional float value = 1; 19 | } 20 | 21 | message Int64Value { 22 | optional int64 value = 1; 23 | } 24 | 25 | message UInt64Value { 26 | optional uint64 value = 1; 27 | } 28 | 29 | message Int32Value { 30 | optional int32 value = 1; 31 | } 32 | 33 | message UInt32Value { 34 | optional uint32 value = 1; 35 | } 36 | 37 | message BoolValue { 38 | optional bool value = 1; 39 | } 40 | 41 | message StringValue { 42 | optional string value = 1; 43 | } 44 | 45 | message BytesValue { 46 | optional bytes value = 1; 47 | } 48 | -------------------------------------------------------------------------------- /steam/clientmetrics.proto: -------------------------------------------------------------------------------- 1 | option optimize_for = SPEED; 2 | option cc_generic_services = false; 3 | 4 | message CClientMetrics_ClientBootstrap_RequestInfo { 5 | optional string original_hostname = 1; 6 | optional string actual_hostname = 2; 7 | optional string path = 3; 8 | optional string base_name = 4; 9 | optional bool success = 5; 10 | optional uint32 status_code = 6; 11 | optional string address_of_request_url = 7; 12 | optional uint32 response_time_ms = 8; 13 | optional uint64 bytes_received = 9; 14 | optional uint32 num_retries = 10; 15 | } 16 | 17 | message CClientMetrics_ClientBootstrap_Summary { 18 | optional uint32 launcher_type = 1; 19 | optional uint32 steam_realm = 2; 20 | optional string beta_name = 3; 21 | optional bool download_completed = 4; 22 | optional uint32 total_time_ms = 6; 23 | repeated .CClientMetrics_ClientBootstrap_RequestInfo manifest_requests = 7; 24 | repeated .CClientMetrics_ClientBootstrap_RequestInfo package_requests = 8; 25 | } 26 | 27 | message CClientMetrics_ContentDownloadResponse_Counts { 28 | optional uint32 class_100 = 1; 29 | optional uint32 class_200 = 2; 30 | optional uint32 class_300 = 3; 31 | optional uint32 class_400 = 4; 32 | optional uint32 class_500 = 5; 33 | optional uint32 no_response = 6; 34 | optional uint32 class_unknown = 7; 35 | } 36 | 37 | message CClientMetrics_ContentDownloadResponse_HostCounts { 38 | optional string hostname = 1; 39 | optional uint32 source_type = 2; 40 | optional .CClientMetrics_ContentDownloadResponse_Counts counts = 3; 41 | } 42 | 43 | message CClientMetrics_ContentDownloadResponse_Hosts { 44 | repeated .CClientMetrics_ContentDownloadResponse_HostCounts hosts = 1; 45 | } 46 | -------------------------------------------------------------------------------- /steam/content_manifest.proto: -------------------------------------------------------------------------------- 1 | option optimize_for = SPEED; 2 | option cc_generic_services = false; 3 | 4 | enum EContentDeltaChunkDataLocation { 5 | k_EContentDeltaChunkDataLocationInProtobuf = 0; 6 | k_EContentDeltaChunkDataLocationAfterProtobuf = 1; 7 | } 8 | 9 | message ContentManifestPayload { 10 | message FileMapping { 11 | message ChunkData { 12 | optional bytes sha = 1; 13 | optional fixed32 crc = 2; 14 | optional uint64 offset = 3; 15 | optional uint32 cb_original = 4; 16 | optional uint32 cb_compressed = 5; 17 | } 18 | 19 | optional string filename = 1; 20 | optional uint64 size = 2; 21 | optional uint32 flags = 3; 22 | optional bytes sha_filename = 4; 23 | optional bytes sha_content = 5; 24 | repeated .ContentManifestPayload.FileMapping.ChunkData chunks = 6; 25 | optional string linktarget = 7; 26 | } 27 | 28 | repeated .ContentManifestPayload.FileMapping mappings = 1; 29 | } 30 | 31 | message ContentManifestMetadata { 32 | optional uint32 depot_id = 1; 33 | optional uint64 gid_manifest = 2; 34 | optional uint32 creation_time = 3; 35 | optional bool filenames_encrypted = 4; 36 | optional uint64 cb_disk_original = 5; 37 | optional uint64 cb_disk_compressed = 6; 38 | optional uint32 unique_chunks = 7; 39 | optional uint32 crc_encrypted = 8; 40 | optional uint32 crc_clear = 9; 41 | } 42 | 43 | message ContentManifestSignature { 44 | optional bytes signature = 1; 45 | } 46 | 47 | message ContentDeltaChunks { 48 | message DeltaChunk { 49 | optional bytes sha_source = 1; 50 | optional bytes sha_target = 2; 51 | optional uint32 size_original = 3; 52 | optional uint32 patch_method = 4; 53 | optional bytes chunk = 5; 54 | optional uint32 size_delta = 6; 55 | } 56 | 57 | optional uint32 depot_id = 1; 58 | optional uint64 manifest_id_source = 2; 59 | optional uint64 manifest_id_target = 3; 60 | repeated .ContentDeltaChunks.DeltaChunk deltaChunks = 4; 61 | optional .EContentDeltaChunkDataLocation chunk_data_location = 5 [default = k_EContentDeltaChunkDataLocationInProtobuf]; 62 | } 63 | -------------------------------------------------------------------------------- /steam/contenthubs.proto: -------------------------------------------------------------------------------- 1 | option optimize_for = SPEED; 2 | 3 | enum EContentHubDiscountFilterType { 4 | k_EContentHubDiscountFilterType_None = 0; 5 | k_EContentHubDiscountFilterType_DiscountsOnly = 1; 6 | k_EContentHubDiscountFilterType_PrioritizeDiscounts = 2; 7 | } 8 | 9 | message CStorePageFilter { 10 | message SalePageFilter { 11 | optional uint32 sale_tagid = 1; 12 | } 13 | 14 | message ContentHubFilter { 15 | message OptInInfo { 16 | optional string name = 1; 17 | optional uint32 optin_tagid = 2; 18 | optional uint32 prune_tagid = 3; 19 | optional bool optin_only = 4; 20 | } 21 | 22 | optional string hub_type = 1; 23 | optional string hub_category = 2; 24 | optional uint32 hub_tagid = 3; 25 | optional .EContentHubDiscountFilterType discount_filter = 4 [default = k_EContentHubDiscountFilterType_None]; 26 | optional .CStorePageFilter.ContentHubFilter.OptInInfo optin = 5; 27 | } 28 | 29 | message StoreFilter { 30 | optional string filter_json = 1; 31 | optional string cache_key = 2; 32 | } 33 | 34 | optional .CStorePageFilter.SalePageFilter sale_filter = 1; 35 | optional .CStorePageFilter.ContentHubFilter content_hub_filter = 2; 36 | repeated .CStorePageFilter.StoreFilter store_filters = 3; 37 | } 38 | -------------------------------------------------------------------------------- /steam/encrypted_app_ticket.proto: -------------------------------------------------------------------------------- 1 | option optimize_for = SPEED; 2 | option cc_generic_services = false; 3 | 4 | message EncryptedAppTicket { 5 | optional uint32 ticket_version_no = 1; 6 | optional uint32 crc_encryptedticket = 2; 7 | optional uint32 cb_encrypteduserdata = 3; 8 | optional uint32 cb_encrypted_appownershipticket = 4; 9 | optional bytes encrypted_ticket = 5; 10 | } 11 | -------------------------------------------------------------------------------- /steam/enums_productinfo.proto: -------------------------------------------------------------------------------- 1 | option optimize_for = SPEED; 2 | 3 | enum EContentDescriptorID { 4 | k_EContentDescriptor_NudityOrSexualContent = 1; 5 | k_EContentDescriptor_FrequentViolenceOrGore = 2; 6 | k_EContentDescriptor_AdultOnlySexualContent = 3; 7 | k_EContentDescriptor_GratuitousSexualContent = 4; 8 | k_EContentDescriptor_AnyMatureContent = 5; 9 | k_EContentDescriptorMAX = 6; 10 | } 11 | -------------------------------------------------------------------------------- /steam/offline_ticket.proto: -------------------------------------------------------------------------------- 1 | message Offline_Ticket { 2 | optional bytes encrypted_ticket = 1; 3 | optional bytes signature = 2; 4 | optional int32 kdf1 = 3; 5 | optional bytes salt1 = 4; 6 | optional int32 kdf2 = 5; 7 | optional bytes salt2 = 6; 8 | } 9 | -------------------------------------------------------------------------------- /steam/steamdatagram_messages_auth.proto: -------------------------------------------------------------------------------- 1 | import "steamnetworkingsockets_messages_certs.proto"; 2 | 3 | option optimize_for = SPEED; 4 | option cc_generic_services = false; 5 | 6 | message CMsgSteamDatagramRelayAuthTicket { 7 | message ExtraField { 8 | optional string name = 1; 9 | optional string string_value = 2; 10 | optional sint64 int64_value = 3; 11 | optional fixed64 fixed64_value = 5; 12 | } 13 | 14 | optional fixed32 time_expiry = 1; 15 | optional string authorized_client_identity_string = 14; 16 | optional string gameserver_identity_string = 15; 17 | optional fixed32 authorized_public_ip = 3; 18 | optional bytes gameserver_address = 11; 19 | optional uint32 app_id = 7; 20 | optional uint32 virtual_port = 10; 21 | repeated .CMsgSteamDatagramRelayAuthTicket.ExtraField extra_fields = 8; 22 | optional fixed64 legacy_authorized_steam_id = 2; 23 | optional fixed64 legacy_gameserver_steam_id = 4; 24 | optional fixed32 legacy_gameserver_pop_id = 9; 25 | optional bytes legacy_authorized_client_identity_binary = 12; 26 | optional bytes legacy_gameserver_identity_binary = 13; 27 | } 28 | 29 | message CMsgSteamDatagramSignedRelayAuthTicket { 30 | optional fixed64 reserved_do_not_use = 1; 31 | optional bytes ticket = 3; 32 | optional bytes signature = 4; 33 | optional fixed64 key_id = 2; 34 | repeated .CMsgSteamDatagramCertificateSigned certs = 5; 35 | } 36 | 37 | message CMsgSteamDatagramCachedCredentialsForApp { 38 | optional bytes private_key = 1; 39 | optional bytes cert = 2; 40 | repeated bytes relay_tickets = 3; 41 | } 42 | 43 | message CMsgSteamDatagramGameCoordinatorServerLogin { 44 | optional uint32 time_generated = 1; 45 | optional uint32 appid = 2; 46 | optional bytes routing = 3; 47 | optional bytes appdata = 4; 48 | optional bytes legacy_identity_binary = 5; 49 | optional string identity_string = 6; 50 | optional fixed64 dummy_steam_id = 99; 51 | } 52 | 53 | message CMsgSteamDatagramSignedGameCoordinatorServerLogin { 54 | optional .CMsgSteamDatagramCertificateSigned cert = 1; 55 | optional bytes login = 2; 56 | optional bytes signature = 3; 57 | } 58 | 59 | message CMsgSteamDatagramHostedServerAddressPlaintext { 60 | optional fixed32 ipv4 = 1; 61 | optional bytes ipv6 = 2; 62 | optional uint32 port = 3; 63 | optional fixed64 routing_secret = 4; 64 | optional uint32 protocol_version = 5; 65 | } 66 | -------------------------------------------------------------------------------- /steam/steammessages_childprocessquery.proto: -------------------------------------------------------------------------------- 1 | import "enums.proto"; 2 | 3 | option optimize_for = SPEED; 4 | option cc_generic_services = false; 5 | 6 | message CMsgChildProcessQueryResponse { 7 | oneof response { 8 | .CMsgChildProcessQueryGpuTopology gpu_topology = 1; 9 | } 10 | } 11 | 12 | message CMsgChildProcessQueryGpuTopology { 13 | message GpuInfo { 14 | optional uint32 id = 1; 15 | optional string name = 2; 16 | optional uint64 vram_size_bytes = 3; 17 | optional .EGpuDriverId driver_id = 4 [default = k_EGpuDriverId_Invalid]; 18 | optional int32 driver_version_major = 5; 19 | optional int32 driver_version_minor = 6; 20 | optional int32 driver_version_patch = 7; 21 | } 22 | 23 | repeated .CMsgChildProcessQueryGpuTopology.GpuInfo gpus = 1; 24 | optional uint32 default_gpu_id = 2; 25 | } 26 | -------------------------------------------------------------------------------- /steam/steammessages_clientlanp2p.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_base.proto"; 2 | 3 | option optimize_for = SPEED; 4 | option cc_generic_services = false; 5 | 6 | message CMsgClientLANP2PRequestChunks { 7 | message ChunkKey { 8 | optional uint32 depot_id = 1; 9 | optional bytes sha = 2; 10 | } 11 | 12 | repeated .CMsgClientLANP2PRequestChunks.ChunkKey chunk_keys = 1; 13 | } 14 | 15 | message CMsgClientLANP2PRequestChunksResponse { 16 | message ChunkData { 17 | optional uint32 result = 1; 18 | optional uint32 depot_id = 2; 19 | optional bytes sha = 3; 20 | optional bytes chunk_data = 4; 21 | optional bool encrypted = 5; 22 | optional bool compressed = 6; 23 | } 24 | 25 | repeated .CMsgClientLANP2PRequestChunksResponse.ChunkData chunk_responses = 1; 26 | } 27 | 28 | message CMsgClientPeerChunkRequest { 29 | optional uint32 app_id = 1; 30 | optional uint32 depot_id = 2; 31 | optional bytes sha = 3; 32 | optional uint64 access_token = 4; 33 | } 34 | 35 | message CMsgClientPeerChunkResponse { 36 | optional uint32 result = 1; 37 | optional uint32 app_id = 2; 38 | optional uint32 depot_id = 3; 39 | optional bytes sha = 4; 40 | optional bool encrypted = 5; 41 | optional bool compressed = 6; 42 | optional bytes chunk_data = 7; 43 | } 44 | -------------------------------------------------------------------------------- /steam/steammessages_clientserver_lbs.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_base.proto"; 2 | 3 | option optimize_for = SPEED; 4 | option cc_generic_services = false; 5 | 6 | message CMsgClientLBSSetScore { 7 | optional uint32 app_id = 1; 8 | optional int32 leaderboard_id = 2; 9 | optional int32 score = 3; 10 | optional bytes details = 4; 11 | optional int32 upload_score_method = 5; 12 | } 13 | 14 | message CMsgClientLBSSetScoreResponse { 15 | optional int32 eresult = 1 [default = 2]; 16 | optional int32 leaderboard_entry_count = 2; 17 | optional bool score_changed = 3; 18 | optional int32 global_rank_previous = 4; 19 | optional int32 global_rank_new = 5; 20 | } 21 | 22 | message CMsgClientLBSSetUGC { 23 | optional uint32 app_id = 1; 24 | optional int32 leaderboard_id = 2; 25 | optional fixed64 ugc_id = 3; 26 | } 27 | 28 | message CMsgClientLBSSetUGCResponse { 29 | optional int32 eresult = 1 [default = 2]; 30 | } 31 | 32 | message CMsgClientLBSFindOrCreateLB { 33 | optional uint32 app_id = 1; 34 | optional int32 leaderboard_sort_method = 2; 35 | optional int32 leaderboard_display_type = 3; 36 | optional bool create_if_not_found = 4; 37 | optional string leaderboard_name = 5; 38 | } 39 | 40 | message CMsgClientLBSFindOrCreateLBResponse { 41 | optional int32 eresult = 1 [default = 2]; 42 | optional int32 leaderboard_id = 2; 43 | optional int32 leaderboard_entry_count = 3; 44 | optional int32 leaderboard_sort_method = 4 [default = 0]; 45 | optional int32 leaderboard_display_type = 5 [default = 0]; 46 | optional string leaderboard_name = 6; 47 | } 48 | 49 | message CMsgClientLBSGetLBEntries { 50 | optional int32 app_id = 1; 51 | optional int32 leaderboard_id = 2; 52 | optional int32 range_start = 3; 53 | optional int32 range_end = 4; 54 | optional int32 leaderboard_data_request = 5; 55 | repeated fixed64 steamids = 6; 56 | } 57 | 58 | message CMsgClientLBSGetLBEntriesResponse { 59 | message Entry { 60 | optional fixed64 steam_id_user = 1; 61 | optional int32 global_rank = 2; 62 | optional int32 score = 3; 63 | optional bytes details = 4; 64 | optional fixed64 ugc_id = 5; 65 | } 66 | 67 | optional int32 eresult = 1 [default = 2]; 68 | optional int32 leaderboard_entry_count = 2; 69 | repeated .CMsgClientLBSGetLBEntriesResponse.Entry entries = 3; 70 | } 71 | -------------------------------------------------------------------------------- /steam/steammessages_clientserver_ufs.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_base.proto"; 2 | 3 | option optimize_for = SPEED; 4 | option cc_generic_services = false; 5 | 6 | message CMsgClientUFSGetUGCDetails { 7 | optional fixed64 hcontent = 1 [default = 18446744073709551615]; 8 | } 9 | 10 | message CMsgClientUFSGetUGCDetailsResponse { 11 | optional int32 eresult = 1 [default = 2]; 12 | optional string url = 2; 13 | optional uint32 app_id = 3; 14 | optional string filename = 4; 15 | optional fixed64 steamid_creator = 5; 16 | optional uint32 file_size = 6; 17 | optional uint32 compressed_file_size = 7; 18 | optional string rangecheck_host = 8; 19 | optional string file_encoded_sha1 = 9; 20 | } 21 | 22 | message CMsgClientUFSGetSingleFileInfo { 23 | optional uint32 app_id = 1; 24 | optional string file_name = 2; 25 | } 26 | 27 | message CMsgClientUFSGetSingleFileInfoResponse { 28 | optional int32 eresult = 1 [default = 2]; 29 | optional uint32 app_id = 2; 30 | optional string file_name = 3; 31 | optional bytes sha_file = 4; 32 | optional uint64 time_stamp = 5; 33 | optional uint32 raw_file_size = 6; 34 | optional bool is_explicit_delete = 7; 35 | } 36 | 37 | message CMsgClientUFSShareFile { 38 | optional uint32 app_id = 1; 39 | optional string file_name = 2; 40 | } 41 | 42 | message CMsgClientUFSShareFileResponse { 43 | optional int32 eresult = 1 [default = 2]; 44 | optional fixed64 hcontent = 2 [default = 18446744073709551615]; 45 | } 46 | -------------------------------------------------------------------------------- /steam/steammessages_clientserver_video.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_base.proto"; 2 | 3 | option optimize_for = SPEED; 4 | option cc_generic_services = false; 5 | 6 | message CMsgVideoGameRecordingRepresentation { 7 | optional string representation_name = 2; 8 | optional uint32 horizontal_resolution = 3; 9 | optional uint32 vertical_resolution = 4; 10 | optional double frame_rate = 5; 11 | optional uint32 bandwidth = 6; 12 | optional uint32 audio_sample_rate = 7; 13 | optional string frame_rate_string = 8; 14 | optional string codec = 9; 15 | optional uint32 audio_channel_config = 10; 16 | repeated .CVideo_GameRecordingSegmentInfo segment_info = 11; 17 | } 18 | 19 | message CMsgVideoGameRecordingComponent { 20 | optional string component_name = 1; 21 | optional uint32 contents = 2; 22 | optional uint32 segment_size = 3; 23 | optional string file_type = 4; 24 | repeated .CMsgVideoGameRecordingRepresentation representations = 5; 25 | } 26 | 27 | message CMsgVideoGameRecordingDef { 28 | optional uint64 steamid = 1; 29 | optional uint32 app_id = 2; 30 | optional uint32 num_segments = 3; 31 | optional uint32 length_milliseconds = 4; 32 | optional uint32 segment_duration_timescale = 5; 33 | optional uint32 segment_duration = 6; 34 | repeated .CMsgVideoGameRecordingComponent components = 7; 35 | optional uint32 start_time_ms = 8; 36 | optional uint32 start_offset_in_timeline_ms = 9; 37 | } 38 | 39 | message CVideo_GameRecordingSegmentInfo { 40 | optional uint32 segment_number = 1; 41 | optional uint64 segment_size_bytes = 2; 42 | optional string component_name = 3; 43 | optional string representation_name = 4; 44 | } 45 | 46 | message CVideo_GameRecordingSegmentUploadInfo { 47 | message HTTPHeaders { 48 | optional string name = 1; 49 | optional string value = 2; 50 | } 51 | 52 | optional .CVideo_GameRecordingSegmentInfo segment_info = 1; 53 | optional string url_host = 2; 54 | optional string url_path = 3; 55 | optional bool use_https = 4; 56 | repeated .CVideo_GameRecordingSegmentUploadInfo.HTTPHeaders request_headers = 5; 57 | } 58 | -------------------------------------------------------------------------------- /steam/steammessages_gamenetworking.steamclient.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_base.proto"; 2 | import "steammessages_unified_base.steamclient.proto"; 3 | 4 | option cc_generic_services = true; 5 | 6 | message CGameNetworking_AllocateFakeIP_Request { 7 | optional uint32 app_id = 1; 8 | optional uint32 num_fake_ports = 2; 9 | } 10 | 11 | message CGameNetworking_AllocateFakeIP_Response { 12 | optional fixed32 fake_ip = 1; 13 | repeated uint32 fake_ports = 2; 14 | } 15 | 16 | message CGameNetworking_ReleaseFakeIP_Notification { 17 | optional uint32 app_id = 1; 18 | optional fixed32 fake_ip = 2; 19 | repeated uint32 fake_ports = 3; 20 | } 21 | 22 | service GameNetworking { 23 | rpc AllocateFakeIP (.CGameNetworking_AllocateFakeIP_Request) returns (.CGameNetworking_AllocateFakeIP_Response); 24 | rpc NotifyReleaseFakeIP (.CGameNetworking_ReleaseFakeIP_Notification) returns (.NoResponse); 25 | } 26 | -------------------------------------------------------------------------------- /steam/steammessages_gamerecording_objects.proto: -------------------------------------------------------------------------------- 1 | import "enums.proto"; 2 | 3 | option optimize_for = SPEED; 4 | option cc_generic_services = false; 5 | 6 | message CGameRecording_AudioSessionsChanged_Notification { 7 | message Session { 8 | optional string id = 1; 9 | optional string name = 2; 10 | optional bool is_system = 3; 11 | optional bool is_muted = 4; 12 | optional bool is_active = 5; 13 | optional bool is_captured = 6; 14 | optional float recent_peak = 7; 15 | optional bool is_game = 8; 16 | optional bool is_steam = 9; 17 | optional bool is_saved = 10; 18 | } 19 | 20 | repeated .CGameRecording_AudioSessionsChanged_Notification.Session sessions = 1; 21 | } 22 | -------------------------------------------------------------------------------- /steam/steammessages_linkfilter.steamclient.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_base.proto"; 2 | import "steammessages_unified_base.steamclient.proto"; 3 | 4 | option cc_generic_services = true; 5 | 6 | message CCommunity_GetLinkFilterHashPrefixes_Request { 7 | optional uint32 hit_type = 1; 8 | optional uint32 count = 2; 9 | optional uint64 start = 3; 10 | } 11 | 12 | message CCommunity_GetLinkFilterHashPrefixes_Response { 13 | repeated uint32 hash_prefixes = 1; 14 | } 15 | 16 | message CCommunity_GetLinkFilterHashes_Request { 17 | optional uint32 hit_type = 1; 18 | optional uint32 count = 2; 19 | optional uint64 start = 3; 20 | } 21 | 22 | message CCommunity_GetLinkFilterHashes_Response { 23 | repeated bytes hashes = 1; 24 | } 25 | 26 | message CCommunity_GetLinkFilterListVersion_Request { 27 | optional uint32 hit_type = 1; 28 | } 29 | 30 | message CCommunity_GetLinkFilterListVersion_Response { 31 | optional string version = 1; 32 | optional uint64 count = 2; 33 | } 34 | 35 | service CommunityLinkFilter { 36 | rpc GetLinkFilterHashPrefixes (.CCommunity_GetLinkFilterHashPrefixes_Request) returns (.CCommunity_GetLinkFilterHashPrefixes_Response); 37 | rpc GetLinkFilterHashes (.CCommunity_GetLinkFilterHashes_Request) returns (.CCommunity_GetLinkFilterHashes_Response); 38 | rpc GetLinkFilterListVersion (.CCommunity_GetLinkFilterListVersion_Request) returns (.CCommunity_GetLinkFilterListVersion_Response); 39 | } 40 | -------------------------------------------------------------------------------- /steam/steammessages_lobbymatchmaking.steamclient.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_base.proto"; 2 | import "steammessages_unified_base.steamclient.proto"; 3 | 4 | option cc_generic_services = true; 5 | 6 | enum ELobbyStatus { 7 | k_ELobbyStatusInvalid = 0; 8 | k_ELobbyStatusExists = 1; 9 | k_ELobbyStatusDoesNotExist = 2; 10 | k_ELobbyStatusNotAMember = 3; 11 | } 12 | 13 | message LobbyMatchmakingLegacy_GetLobbyStatus_Request { 14 | optional uint32 app_id = 1; 15 | optional fixed64 steamid_lobby = 2; 16 | optional bool claim_ownership = 3; 17 | optional bool claim_membership = 4; 18 | optional uint32 version_num = 5; 19 | } 20 | 21 | message LobbyMatchmakingLegacy_GetLobbyStatus_Response { 22 | optional uint32 app_id = 1; 23 | optional fixed64 steamid_lobby = 2; 24 | optional .ELobbyStatus lobby_status = 3 [default = k_ELobbyStatusInvalid]; 25 | } 26 | 27 | service LobbyMatchmakingLegacy { 28 | rpc GetLobbyStatus (.LobbyMatchmakingLegacy_GetLobbyStatus_Request) returns (.LobbyMatchmakingLegacy_GetLobbyStatus_Response); 29 | } 30 | -------------------------------------------------------------------------------- /steam/steammessages_market.steamclient.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_base.proto"; 2 | import "steammessages_unified_base.steamclient.proto"; 3 | 4 | option cc_generic_services = true; 5 | 6 | message CEconMarket_IsMarketplaceAllowed_Request { 7 | optional string webcookie = 1; 8 | } 9 | 10 | message CEconMarket_IsMarketplaceAllowed_Response { 11 | optional bool allowed = 1; 12 | optional uint32 reason = 2; 13 | optional uint32 allowed_at_time = 3; 14 | optional uint32 steamguard_required_days = 4; 15 | optional bool forms_requested = 7; 16 | optional bool forms_require_verification = 8; 17 | optional uint32 new_device_cooldown_days = 9; 18 | } 19 | 20 | service EconMarket { 21 | rpc IsMarketplaceAllowed (.CEconMarket_IsMarketplaceAllowed_Request) returns (.CEconMarket_IsMarketplaceAllowed_Response); 22 | } 23 | -------------------------------------------------------------------------------- /steam/steammessages_offline.steamclient.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_base.proto"; 2 | import "steammessages_unified_base.steamclient.proto"; 3 | import "offline_ticket.proto"; 4 | 5 | option cc_generic_services = true; 6 | 7 | message COffline_GetOfflineLogonTicket_Request { 8 | optional uint32 priority = 1; 9 | optional bool perform_encryption = 2; 10 | } 11 | 12 | message COffline_GetOfflineLogonTicket_Response { 13 | optional bytes serialized_ticket = 1; 14 | optional bytes signature = 2; 15 | optional .Offline_Ticket encrypted_ticket = 3; 16 | } 17 | 18 | message COffline_GetUnsignedOfflineLogonTicket_Request { 19 | } 20 | 21 | message COffline_OfflineLogonTicket { 22 | optional uint32 accountid = 1; 23 | optional fixed32 rtime32_creation_time = 2; 24 | } 25 | 26 | message COffline_GetUnsignedOfflineLogonTicket_Response { 27 | optional .COffline_OfflineLogonTicket ticket = 1; 28 | } 29 | 30 | service Offline { 31 | rpc GetOfflineLogonTicket (.COffline_GetOfflineLogonTicket_Request) returns (.COffline_GetOfflineLogonTicket_Response); 32 | rpc GetUnsignedOfflineLogonTicket (.COffline_GetUnsignedOfflineLogonTicket_Request) returns (.COffline_GetUnsignedOfflineLogonTicket_Response); 33 | } 34 | -------------------------------------------------------------------------------- /steam/steammessages_secrets.steamclient.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_base.proto"; 2 | import "steammessages_unified_base.steamclient.proto"; 3 | 4 | option cc_generic_services = true; 5 | 6 | enum EKeyEscrowUsage { 7 | k_EKeyEscrowUsageStreamingDevice = 0; 8 | } 9 | 10 | message CKeyEscrow_Request { 11 | optional bytes rsa_oaep_sha_ticket = 1; 12 | optional bytes password = 2; 13 | optional .EKeyEscrowUsage usage = 3 [default = k_EKeyEscrowUsageStreamingDevice]; 14 | optional string device_name = 4; 15 | } 16 | 17 | message CKeyEscrow_Ticket { 18 | optional bytes password = 1; 19 | optional uint64 identifier = 2; 20 | optional bytes payload = 3; 21 | optional uint32 timestamp = 4; 22 | optional .EKeyEscrowUsage usage = 5 [default = k_EKeyEscrowUsageStreamingDevice]; 23 | optional string device_name = 6; 24 | optional string device_model = 7; 25 | optional string device_serial = 8; 26 | optional uint32 device_provisioning_id = 9; 27 | } 28 | 29 | message CKeyEscrow_Response { 30 | optional .CKeyEscrow_Ticket ticket = 1; 31 | } 32 | 33 | service Secrets { 34 | rpc KeyEscrow (.CKeyEscrow_Request) returns (.CKeyEscrow_Response); 35 | } 36 | -------------------------------------------------------------------------------- /steam/steammessages_sitelicenseclient.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_base.proto"; 2 | 3 | option optimize_for = SPEED; 4 | option cc_generic_services = false; 5 | 6 | message CMsgClientSiteInfo { 7 | optional uint64 site_id = 1; 8 | optional string site_name = 2; 9 | optional bool allow_cached_credentials = 3; 10 | } 11 | 12 | message CMsgClientSiteLicenseCheckout { 13 | optional uint32 appid = 1; 14 | } 15 | 16 | message CMsgClientSiteLicenseCheckoutResponse { 17 | optional int32 eresult = 1 [default = 2]; 18 | } 19 | 20 | message CMsgClientSiteLicenseGetAvailableSeats { 21 | optional uint32 appid = 1; 22 | } 23 | 24 | message CMsgClientSiteLicenseGetAvailableSeatsResponse { 25 | optional int32 eresult = 1 [default = 2]; 26 | optional uint32 seats = 2; 27 | } 28 | 29 | message CMsgClientSiteLicenseGetContentCacheInfo { 30 | } 31 | 32 | message CMsgClientSiteLicenseGetContentCacheInfoResponse { 33 | optional bool use_cache = 1; 34 | optional uint32 ipv4_address = 2; 35 | optional uint32 port_number = 3; 36 | optional uint32 p2p_group = 4; 37 | optional string ip_address = 5; 38 | } 39 | -------------------------------------------------------------------------------- /steam/steammessages_timedtrial.steamclient.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_base.proto"; 2 | import "steammessages_unified_base.steamclient.proto"; 3 | 4 | option cc_generic_services = true; 5 | 6 | message CTimedTrial_GetTimeRemaining_Request { 7 | optional uint32 appid = 1; 8 | } 9 | 10 | message CTimedTrial_GetTimeRemaining_Response { 11 | optional uint32 seconds_played = 1; 12 | optional uint32 seconds_allowed = 2; 13 | optional uint32 packageid = 3; 14 | optional uint32 mastersub_appid = 4; 15 | } 16 | 17 | message CTimedTrial_RecordPlaytime_Request { 18 | optional uint32 appid = 1; 19 | optional uint32 seconds_played = 2; 20 | } 21 | 22 | message CTimedTrial_RecordPlaytime_Response { 23 | optional uint32 seconds_played = 1; 24 | optional uint32 seconds_allowed = 2; 25 | } 26 | 27 | message CTimedTrial_ResetPlaytime_Request { 28 | optional uint32 appid = 1; 29 | } 30 | 31 | message CTimedTrial_ResetPlaytime_Response { 32 | optional uint32 seconds_played = 1; 33 | optional uint32 seconds_allowed = 2; 34 | } 35 | 36 | service TimedTrial { 37 | rpc GetTimeRemaining (.CTimedTrial_GetTimeRemaining_Request) returns (.CTimedTrial_GetTimeRemaining_Response); 38 | rpc RecordPlaytime (.CTimedTrial_RecordPlaytime_Request) returns (.CTimedTrial_RecordPlaytime_Response); 39 | rpc ResetPlaytime (.CTimedTrial_ResetPlaytime_Request) returns (.CTimedTrial_ResetPlaytime_Response); 40 | } 41 | -------------------------------------------------------------------------------- /steam/steammessages_unified_base.steamclient.proto: -------------------------------------------------------------------------------- 1 | import "google/protobuf/descriptor.proto"; 2 | 3 | option optimize_for = SPEED; 4 | option cc_generic_services = false; 5 | 6 | extend .google.protobuf.MessageOptions { 7 | optional string message_description = 51000; 8 | optional bool force_emit_message = 50026 [default = false]; 9 | } 10 | 11 | extend .google.protobuf.FieldOptions { 12 | optional string description = 50000; 13 | } 14 | 15 | extend .google.protobuf.ServiceOptions { 16 | optional string service_description = 50000; 17 | optional .EProtoExecutionSite service_execution_site = 50008 [default = k_EProtoExecutionSiteUnknown]; 18 | optional .EProtoServiceType service_type = 50025 [default = k_EProtoServiceTypeSteamMessages]; 19 | optional bool force_emit_service = 50026 [default = false]; 20 | } 21 | 22 | extend .google.protobuf.MethodOptions { 23 | optional string method_description = 50000; 24 | } 25 | 26 | extend .google.protobuf.EnumOptions { 27 | optional string enum_description = 50000; 28 | } 29 | 30 | extend .google.protobuf.EnumValueOptions { 31 | optional string enum_value_description = 50000; 32 | } 33 | 34 | enum EProtoExecutionSite { 35 | k_EProtoExecutionSiteUnknown = 0; 36 | k_EProtoExecutionSiteSteamClient = 2; 37 | } 38 | 39 | enum EProtoServiceType { 40 | k_EProtoServiceTypeSteamMessages = 0; 41 | k_EProtoServiceTypeVRGamepadUIMessages = 1; 42 | } 43 | 44 | message NoResponse { 45 | } 46 | -------------------------------------------------------------------------------- /steam/steammessages_unified_test.steamclient.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_base.proto"; 2 | import "steammessages_unified_base.steamclient.proto"; 3 | 4 | option cc_generic_services = true; 5 | 6 | message CMsgTest_MessageToClient_Request { 7 | optional string some_text = 1; 8 | } 9 | 10 | message CMsgTest_MessageToClient_Response { 11 | optional string some_text = 1; 12 | } 13 | 14 | message CMsgTest_NotifyClient_Notification { 15 | optional string some_text = 1; 16 | } 17 | 18 | message CMsgTest_MessageToServer_Request { 19 | optional string some_text = 1; 20 | } 21 | 22 | message CMsgTest_MessageToServer_Response { 23 | optional string some_text = 1; 24 | } 25 | 26 | message CMsgTest_NotifyServer_Notification { 27 | optional string some_text = 1; 28 | } 29 | 30 | message CMsgTest_TestClientCall_Request { 31 | optional int32 param = 1; 32 | } 33 | 34 | message CMsgTest_TestClientCall_Response { 35 | optional int32 result = 1; 36 | } 37 | 38 | message CMsgTest_NoBody_Request { 39 | } 40 | 41 | message CMsgTest_CallClient_Response { 42 | optional int32 testvalue = 1; 43 | } 44 | 45 | service TestSteamClient { 46 | option (service_execution_site) = k_EProtoExecutionSiteSteamClient; 47 | 48 | rpc MessageToClient (.CMsgTest_MessageToClient_Request) returns (.CMsgTest_MessageToClient_Response); 49 | rpc NotifyClient (.CMsgTest_NotifyClient_Notification) returns (.NoResponse); 50 | } 51 | 52 | service TestServerFromClient { 53 | rpc MessageToServer (.CMsgTest_MessageToServer_Request) returns (.CMsgTest_MessageToServer_Response); 54 | rpc NotifyServer (.CMsgTest_NotifyServer_Notification) returns (.NoResponse); 55 | rpc ClientCallAuthed1 (.CMsgTest_TestClientCall_Request) returns (.CMsgTest_TestClientCall_Response); 56 | rpc ClientCallAuthed2 (.CMsgTest_TestClientCall_Request) returns (.CMsgTest_TestClientCall_Response); 57 | rpc ClientCallAuthed3 (.CMsgTest_TestClientCall_Request) returns (.CMsgTest_TestClientCall_Response); 58 | rpc ClientCallAuthed4 (.CMsgTest_TestClientCall_Request) returns (.CMsgTest_TestClientCall_Response); 59 | } 60 | 61 | service TestExternalPrivilege { 62 | rpc CallClient (.CMsgTest_NoBody_Request) returns (.CMsgTest_CallClient_Response); 63 | } 64 | -------------------------------------------------------------------------------- /steam/steammessages_vac.steamclient.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_base.proto"; 2 | import "steammessages_unified_base.steamclient.proto"; 3 | 4 | option cc_generic_services = true; 5 | 6 | message CFileVerification_SignatureCheck_Request { 7 | optional fixed64 steamid = 1; 8 | optional uint32 appid = 2; 9 | optional uint64 file_size = 3; 10 | optional uint32 file_timestamp = 4; 11 | optional uint32 file_timestamp2 = 5; 12 | optional uint32 signature_result = 6; 13 | optional string filename = 7; 14 | optional uint32 client_package_version = 8; 15 | optional bytes sha1hash = 9; 16 | } 17 | 18 | message CFileVerification_SignatureCheck_Response { 19 | optional bool deny_operation = 1; 20 | } 21 | 22 | message CFileVerification_SteamServiceCheck_Request { 23 | optional uint32 service_status = 2; 24 | optional uint32 client_package_version = 3; 25 | optional uint32 launcher_type = 4; 26 | optional uint32 os_type = 5; 27 | optional uint32 service_repair = 6; 28 | } 29 | 30 | message CFileVerification_SteamServiceCheck_Response { 31 | optional bool attempt_repair = 1; 32 | } 33 | 34 | service FileVerification { 35 | rpc SignatureCheck (.CFileVerification_SignatureCheck_Request) returns (.CFileVerification_SignatureCheck_Response); 36 | rpc SteamServiceCheck (.CFileVerification_SteamServiceCheck_Request) returns (.CFileVerification_SteamServiceCheck_Response); 37 | } 38 | -------------------------------------------------------------------------------- /steam/steammessages_video.steamclient.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_base.proto"; 2 | import "steammessages_unified_base.steamclient.proto"; 3 | 4 | option cc_generic_services = true; 5 | 6 | message CVideo_ClientGetVideoURL_Request { 7 | optional uint64 video_id = 1; 8 | optional uint32 client_cellid = 2; 9 | } 10 | 11 | message CVideo_ClientGetVideoURL_Response { 12 | optional uint64 video_id = 1; 13 | optional string video_url = 2; 14 | } 15 | 16 | message VideoBookmark { 17 | optional uint32 app_id = 1; 18 | optional uint32 playback_position_in_seconds = 2; 19 | optional uint64 video_track_id = 3; 20 | optional uint64 audio_track_id = 4; 21 | optional uint64 timedtext_track_id = 5; 22 | optional uint32 last_modified = 6; 23 | optional bool hide_from_watch_history = 7 [default = false]; 24 | optional bool hide_from_library = 8 [default = false]; 25 | } 26 | 27 | message CVideo_SetVideoBookmark_Notification { 28 | repeated .VideoBookmark bookmarks = 1; 29 | } 30 | 31 | message CVideo_GetVideoBookmarks_Request { 32 | repeated uint32 appids = 1; 33 | optional uint32 updated_since = 2; 34 | } 35 | 36 | message CVideo_GetVideoBookmarks_Response { 37 | repeated .VideoBookmark bookmarks = 1; 38 | } 39 | 40 | message CVideo_UnlockedH264_Notification { 41 | optional bytes encryption_key = 1; 42 | } 43 | 44 | message CFovasVideo_ClientGetOPFSettings_Request { 45 | optional uint32 app_id = 1; 46 | optional uint32 client_cellid = 2; 47 | } 48 | 49 | message CFovasVideo_ClientGetOPFSettings_Response { 50 | optional uint32 app_id = 1; 51 | optional string opf_settings = 2; 52 | } 53 | 54 | service Video { 55 | rpc ClientGetVideoURL (.CVideo_ClientGetVideoURL_Request) returns (.CVideo_ClientGetVideoURL_Response); 56 | rpc SetVideoBookmark (.CVideo_SetVideoBookmark_Notification) returns (.NoResponse); 57 | rpc GetVideoBookmarks (.CVideo_GetVideoBookmarks_Request) returns (.CVideo_GetVideoBookmarks_Response); 58 | } 59 | 60 | service VideoClient { 61 | option (service_execution_site) = k_EProtoExecutionSiteSteamClient; 62 | 63 | rpc NotifyUnlockedH264 (.CVideo_UnlockedH264_Notification) returns (.NoResponse); 64 | } 65 | 66 | service FovasVideo { 67 | rpc ClientGetOPFSettings (.CFovasVideo_ClientGetOPFSettings_Request) returns (.CFovasVideo_ClientGetOPFSettings_Response); 68 | } 69 | -------------------------------------------------------------------------------- /steam/steammessages_workshop.steamclient.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_base.proto"; 2 | import "steammessages_unified_base.steamclient.proto"; 3 | 4 | option cc_generic_services = true; 5 | 6 | message CWorkshop_GetEULAStatus_Request { 7 | optional uint32 appid = 1; 8 | } 9 | 10 | message CWorkshop_GetEULAStatus_Response { 11 | optional uint32 version = 1; 12 | optional uint32 timestamp_action = 2; 13 | optional bool accepted = 3; 14 | optional bool needs_action = 4; 15 | } 16 | 17 | service Workshop { 18 | rpc GetEULAStatus (.CWorkshop_GetEULAStatus_Request) returns (.CWorkshop_GetEULAStatus_Response); 19 | } 20 | -------------------------------------------------------------------------------- /steam/steamnetworkingsockets_messages_certs.proto: -------------------------------------------------------------------------------- 1 | option optimize_for = SPEED; 2 | option cc_generic_services = false; 3 | 4 | message CMsgSteamNetworkingIdentityLegacyBinary { 5 | optional fixed64 steam_id = 16; 6 | optional bytes generic_bytes = 2; 7 | optional string generic_string = 3; 8 | optional bytes ipv6_and_port = 4; 9 | } 10 | 11 | message CMsgSteamDatagramCertificate { 12 | enum EKeyType { 13 | INVALID = 0; 14 | ED25519 = 1; 15 | } 16 | 17 | optional .CMsgSteamDatagramCertificate.EKeyType key_type = 1 [default = INVALID]; 18 | optional bytes key_data = 2; 19 | optional fixed64 legacy_steam_id = 4; 20 | optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 11; 21 | optional string identity_string = 12; 22 | repeated fixed32 gameserver_datacenter_ids = 5; 23 | optional fixed32 time_created = 8; 24 | optional fixed32 time_expiry = 9; 25 | repeated uint32 app_ids = 10; 26 | repeated string ip_addresses = 13; 27 | } 28 | 29 | message CMsgSteamDatagramCertificateSigned { 30 | optional bytes cert = 4; 31 | optional fixed64 ca_key_id = 5; 32 | optional bytes ca_signature = 6; 33 | optional bytes private_key_data = 1; 34 | } 35 | 36 | message CMsgSteamDatagramCertificateRequest { 37 | optional .CMsgSteamDatagramCertificate cert = 1; 38 | } 39 | -------------------------------------------------------------------------------- /steam/webuimessages_achievements.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_base.proto"; 2 | import "webuimessages_base.proto"; 3 | 4 | option optimize_for = SPEED; 5 | option cc_generic_services = true; 6 | 7 | message CAchievements_GetInfo_Request { 8 | optional uint64 gameid = 1; 9 | } 10 | 11 | message CAchievements_GetInfo_Response { 12 | message Info { 13 | optional string id = 1; 14 | optional string name = 2; 15 | optional string desc = 3; 16 | optional string image_url_achieved = 4; 17 | optional string image_url_not_achieved = 5; 18 | optional bool achieved = 6; 19 | optional uint32 unlock_time = 7; 20 | } 21 | 22 | repeated .CAchievements_GetInfo_Response.Info achievements = 1; 23 | } 24 | 25 | service Achievements { 26 | option (webui_service_execution_site) = k_EClientExecutionSiteClientdll; 27 | 28 | rpc GetInfo (.CAchievements_GetInfo_Request) returns (.CAchievements_GetInfo_Response); 29 | } 30 | -------------------------------------------------------------------------------- /steam/webuimessages_base.proto: -------------------------------------------------------------------------------- 1 | import "enums.proto"; 2 | import "steammessages_base.proto"; 3 | import "google/protobuf/descriptor.proto"; 4 | 5 | option optimize_for = SPEED; 6 | option cc_generic_services = true; 7 | 8 | extend .google.protobuf.ServiceOptions { 9 | optional .EClientExecutionSite webui_service_execution_site = 70000 [default = k_EClientExecutionSiteSteamUI]; 10 | } 11 | 12 | extend .google.protobuf.MethodOptions { 13 | optional .EClientExecutionSite webui_method_execution_site = 70000 [default = k_EClientExecutionSiteInvalid]; 14 | } 15 | 16 | enum EClientExecutionSite { 17 | k_EClientExecutionSiteInvalid = 0; 18 | k_EClientExecutionSiteSteamUI = 1; 19 | k_EClientExecutionSiteClientdll = 2; 20 | k_EClientExecutionSiteAny = 3; 21 | } 22 | 23 | message WebUINoResponse { 24 | } 25 | -------------------------------------------------------------------------------- /steam/webuimessages_gamenotes.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_base.proto"; 2 | import "webuimessages_base.proto"; 3 | 4 | option optimize_for = SPEED; 5 | option cc_generic_services = true; 6 | 7 | message CGameNotes_UploadImage_Request { 8 | optional string file_prefix = 1; 9 | optional string mime_type = 2; 10 | optional bytes data = 3; 11 | } 12 | 13 | message CGameNotes_UploadImage_Response { 14 | optional string filename = 1; 15 | } 16 | 17 | service GameNotes { 18 | option (webui_service_execution_site) = k_EClientExecutionSiteSteamUI; 19 | 20 | rpc UploadImage (.CGameNotes_UploadImage_Request) returns (.CGameNotes_UploadImage_Response); 21 | } 22 | -------------------------------------------------------------------------------- /steam/webuimessages_gamescope.proto: -------------------------------------------------------------------------------- 1 | import "enums.proto"; 2 | import "steammessages_base.proto"; 3 | import "webuimessages_base.proto"; 4 | 5 | option optimize_for = SPEED; 6 | option cc_generic_services = true; 7 | 8 | message CMsgDisplayInfo { 9 | optional string make = 1; 10 | optional string model = 2; 11 | optional string connector_name = 3; 12 | repeated int32 supported_refresh_rates = 4; 13 | repeated int32 supported_frame_rates = 5; 14 | optional bool is_external = 6; 15 | optional bool is_hdr_capable = 7; 16 | optional bool is_vrr_capable = 8; 17 | } 18 | 19 | message CMsgGamescopeState { 20 | optional bool is_service_available = 1; 21 | optional bool is_reshade_supported = 2; 22 | optional bool is_app_hdr_enabled = 3; 23 | optional bool is_app_refresh_rate_supported = 4; 24 | optional .CMsgDisplayInfo active_display_info = 5; 25 | optional bool is_app_refresh_rate_capable = 6; 26 | optional bool is_refresh_rate_switching_supported = 7; 27 | optional bool is_refresh_rate_switching_restricted = 8; 28 | optional bool is_hdr_visualization_supported = 9; 29 | optional bool is_mura_correction_supported = 10; 30 | optional bool is_global_action_binding_supported = 11; 31 | } 32 | 33 | message CGamescope_GetState_Request { 34 | } 35 | 36 | message CGamescope_GetState_Response { 37 | optional .CMsgGamescopeState state = 1; 38 | } 39 | 40 | message CGamescope_StateChanged_Notification { 41 | } 42 | 43 | message CGamescope_SetBlurParams_Request { 44 | optional .EGamescopeBlurMode mode = 1 [default = k_EGamescopeBlurMode_Disabled]; 45 | optional int32 radius = 2; 46 | optional int32 fade_duration_ms = 3; 47 | } 48 | 49 | message CGamescope_SetBlurParams_Response { 50 | } 51 | 52 | message CGamescope_ReArmMuraCalibration_Request { 53 | } 54 | 55 | message CGamescope_ReArmMuraCalibration_Response { 56 | } 57 | 58 | service Gamescope { 59 | option (webui_service_execution_site) = k_EClientExecutionSiteSteamUI; 60 | 61 | rpc GetState (.CGamescope_GetState_Request) returns (.CGamescope_GetState_Response); 62 | rpc NotifyStateChanged (.CGamescope_StateChanged_Notification) returns (.WebUINoResponse); 63 | rpc SetBlurParams (.CGamescope_SetBlurParams_Request) returns (.CGamescope_SetBlurParams_Response); 64 | rpc ReArmMuraCalibration (.CGamescope_ReArmMuraCalibration_Request) returns (.CGamescope_ReArmMuraCalibration_Response); 65 | } 66 | -------------------------------------------------------------------------------- /steam/webuimessages_hardwareupdate.proto: -------------------------------------------------------------------------------- 1 | import "enums.proto"; 2 | import "steammessages_base.proto"; 3 | import "webuimessages_base.proto"; 4 | 5 | option optimize_for = SPEED; 6 | option cc_generic_services = true; 7 | 8 | message CHardwareUpdate_GetState_Request { 9 | } 10 | 11 | message CHardwareUpdate_GetState_Response { 12 | optional bool is_updater_supported = 1; 13 | optional bool has_seen_controllers = 2; 14 | } 15 | 16 | message CHardwareUpdate_StateChanged_Notification { 17 | } 18 | 19 | message CHardwareUpdate_CheckForUpdates_Request { 20 | } 21 | 22 | message CMsgAvailableHardwareUpdate { 23 | optional uint32 etype = 1; 24 | optional uint32 hardware_id = 2; 25 | optional string serial_number = 3; 26 | optional string current_ts = 4; 27 | optional string update_ts = 5; 28 | } 29 | 30 | message CHardwareUpdate_CheckForUpdates_Response { 31 | repeated .CMsgAvailableHardwareUpdate updates = 1; 32 | } 33 | 34 | message CHardwareUpdate_Update_Request { 35 | } 36 | 37 | message CHardwareUpdate_Update_Response { 38 | } 39 | 40 | message CHardwareUpdate_UpdateProgress_Notification { 41 | optional int32 progress = 1; 42 | } 43 | 44 | message CHardwareUpdate_UpdateStateChanged_Notification { 45 | } 46 | 47 | service HardwareUpdate { 48 | option (webui_service_execution_site) = k_EClientExecutionSiteSteamUI; 49 | 50 | rpc GetState (.CHardwareUpdate_GetState_Request) returns (.CHardwareUpdate_GetState_Response); 51 | rpc NotifyStateChanged (.CHardwareUpdate_StateChanged_Notification) returns (.WebUINoResponse); 52 | rpc CheckForUpdates (.CHardwareUpdate_CheckForUpdates_Request) returns (.CHardwareUpdate_CheckForUpdates_Response); 53 | rpc Update (.CHardwareUpdate_Update_Request) returns (.CHardwareUpdate_Update_Response); 54 | rpc NotifyUpdateProgress (.CHardwareUpdate_UpdateProgress_Notification) returns (.WebUINoResponse); 55 | rpc NotifyUpdateStateChanged (.CHardwareUpdate_UpdateStateChanged_Notification) returns (.WebUINoResponse); 56 | } 57 | -------------------------------------------------------------------------------- /steam/webuimessages_sharedjscontext.proto: -------------------------------------------------------------------------------- 1 | import "enums.proto"; 2 | import "steammessages_base.proto"; 3 | import "webuimessages_base.proto"; 4 | 5 | option optimize_for = SPEED; 6 | option cc_generic_services = true; 7 | 8 | message CSharedJSContext_GetDesiredSteamUIWindows_Request { 9 | } 10 | 11 | message CMsgSteamUIBrowserWindow { 12 | optional int32 id = 1; 13 | optional int32 pid = 2; 14 | optional int32 browser_id = 3; 15 | optional int32 window_type = 4; 16 | optional int32 x = 5; 17 | optional int32 y = 6; 18 | optional uint64 appid = 7; 19 | optional uint64 parent_window_handle = 8; 20 | optional string app_name = 9; 21 | optional bool gamepadui_via_gamescope = 10; 22 | } 23 | 24 | message CSharedJSContext_GetDesiredSteamUIWindows_Response { 25 | repeated .CMsgSteamUIBrowserWindow windows = 1; 26 | } 27 | 28 | service SharedJSContext { 29 | option (webui_service_execution_site) = k_EClientExecutionSiteSteamUI; 30 | 31 | rpc GetDesiredSteamUIWindows (.CSharedJSContext_GetDesiredSteamUIWindows_Request) returns (.CSharedJSContext_GetDesiredSteamUIWindows_Response); 32 | } 33 | -------------------------------------------------------------------------------- /steam/webuimessages_steamengine.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_base.proto"; 2 | import "webuimessages_base.proto"; 3 | 4 | option optimize_for = SPEED; 5 | option cc_generic_services = true; 6 | 7 | message CSteamEngine_UpdateTextFilterDictionary_Notification { 8 | required string language = 1; 9 | required string type = 2; 10 | } 11 | 12 | message CSteamEngine_GetTextFilterDictionary_Request { 13 | required string language = 1; 14 | required string type = 2; 15 | } 16 | 17 | message CSteamEngine_GetTextFilterDictionary_Response { 18 | optional string dictionary = 1; 19 | } 20 | 21 | message CSteamEngine_TextFilterDictionaryChanged_Notification { 22 | required string language = 1; 23 | required string type = 2; 24 | } 25 | 26 | message CSteamEngine_GetGameIDForPID_Request { 27 | optional uint32 pid = 1; 28 | } 29 | 30 | message CSteamEngine_GetGameIDForPID_Response { 31 | optional uint64 gameid = 1; 32 | } 33 | 34 | message CSteamEngine_SetOverlayEscapeKeyHandling_Notification { 35 | required uint64 gameid = 1; 36 | required bool should_handle = 2; 37 | } 38 | 39 | message CSteamEngine_SearchAppDataCacheByStoreKeywords_Request { 40 | optional string search_term = 1; 41 | optional uint32 max_results = 2; 42 | } 43 | 44 | message CSteamEngine_SearchAppDataCacheByStoreKeywords_Response { 45 | repeated uint32 appids = 1; 46 | } 47 | 48 | service SteamEngine { 49 | option (webui_service_execution_site) = k_EClientExecutionSiteClientdll; 50 | 51 | rpc UpdateTextFilterDictionary (.CSteamEngine_UpdateTextFilterDictionary_Notification) returns (.WebUINoResponse); 52 | rpc GetTextFilterDictionary (.CSteamEngine_GetTextFilterDictionary_Request) returns (.CSteamEngine_GetTextFilterDictionary_Response); 53 | rpc NotifyTextFilterDictionaryChanged (.CSteamEngine_TextFilterDictionaryChanged_Notification) returns (.WebUINoResponse); 54 | rpc GetGameIDForPID (.CSteamEngine_GetGameIDForPID_Request) returns (.CSteamEngine_GetGameIDForPID_Response); 55 | rpc SetOverlayEscapeKeyHandling (.CSteamEngine_SetOverlayEscapeKeyHandling_Notification) returns (.WebUINoResponse); 56 | rpc SearchAppDataCacheByStoreKeywords (.CSteamEngine_SearchAppDataCacheByStoreKeywords_Request) returns (.CSteamEngine_SearchAppDataCacheByStoreKeywords_Response); 57 | } 58 | -------------------------------------------------------------------------------- /steam/webuimessages_systemmanager.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_base.proto"; 2 | import "webuimessages_base.proto"; 3 | 4 | option optimize_for = SPEED; 5 | option cc_generic_services = true; 6 | 7 | message CSystemManager_Hibernate_Request { 8 | } 9 | 10 | message CSystemManager_Hibernate_Response { 11 | } 12 | 13 | message CSystemManager_WriteFile_Request { 14 | optional string path = 1; 15 | optional bytes data = 2; 16 | } 17 | 18 | message CSystemManager_WriteFile_Response { 19 | } 20 | 21 | service SystemManager { 22 | option (webui_service_execution_site) = k_EClientExecutionSiteClientdll; 23 | 24 | rpc Hibernate (.CSystemManager_Hibernate_Request) returns (.CSystemManager_Hibernate_Response); 25 | rpc WriteFile (.CSystemManager_WriteFile_Request) returns (.CSystemManager_WriteFile_Response); 26 | } 27 | -------------------------------------------------------------------------------- /steam/webuimessages_transport.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_base.proto"; 2 | import "webuimessages_base.proto"; 3 | 4 | option optimize_for = SPEED; 5 | option cc_generic_services = true; 6 | 7 | message CTransportAuth_Authenticate_Request { 8 | optional string auth_key = 1; 9 | } 10 | 11 | message CTransportAuth_Authenticate_Response { 12 | } 13 | 14 | message CTransportAuth_StartShutdown_Notification { 15 | } 16 | 17 | service TransportAuth { 18 | option (webui_service_execution_site) = k_EClientExecutionSiteAny; 19 | 20 | rpc Authenticate (.CTransportAuth_Authenticate_Request) returns (.CTransportAuth_Authenticate_Response); 21 | rpc NotifyStartShutdown (.CTransportAuth_StartShutdown_Notification) returns (.WebUINoResponse); 22 | } 23 | -------------------------------------------------------------------------------- /tf2/steamdatagram_auth_messages.proto: -------------------------------------------------------------------------------- 1 | option cc_generic_services = false; 2 | 3 | message CMsgSteamDatagramRelayAuthTicket { 4 | message ExtraField { 5 | optional string name = 1; 6 | optional string string_value = 2; 7 | optional sint64 int64_value = 3; 8 | optional fixed64 fixed64_value = 5; 9 | } 10 | 11 | optional fixed32 time_expiry = 1; 12 | optional fixed64 authorized_steam_id = 2; 13 | optional fixed32 authorized_public_ip = 3; 14 | optional fixed64 gameserver_steam_id = 4; 15 | optional fixed64 gameserver_net_id = 5; 16 | optional bytes legacy_signature = 6; 17 | optional uint32 app_id = 7; 18 | optional fixed32 gameserver_pop_id = 9; 19 | optional uint32 virtual_port = 10; 20 | repeated .CMsgSteamDatagramRelayAuthTicket.ExtraField extra_fields = 8; 21 | } 22 | 23 | message CMsgSteamDatagramSignedRelayAuthTicket { 24 | optional fixed64 reserved_do_not_use = 1; 25 | optional fixed64 key_id = 2; 26 | optional bytes ticket = 3; 27 | optional bytes signature = 4; 28 | } 29 | 30 | message CMsgSteamDatagramCertificate { 31 | enum EKeyType { 32 | INVALID = 0; 33 | ED25519 = 1; 34 | } 35 | 36 | optional .CMsgSteamDatagramCertificate.EKeyType key_type = 1 [default = INVALID]; 37 | optional bytes key_data = 2; 38 | optional fixed64 steam_id = 4; 39 | repeated fixed32 gameserver_datacenter_ids = 5; 40 | optional fixed32 time_created = 8; 41 | optional fixed32 time_expiry = 9; 42 | optional uint32 app_id = 10; 43 | } 44 | 45 | message CMsgSteamDatagramCertificateSigned { 46 | optional bytes cert = 4; 47 | optional fixed64 ca_key_id = 5; 48 | optional bytes ca_signature = 6; 49 | } 50 | 51 | -------------------------------------------------------------------------------- /tf2/steamdatagram_messages_auth.proto: -------------------------------------------------------------------------------- 1 | import "steamnetworkingsockets_messages_certs.proto"; 2 | 3 | option optimize_for = SPEED; 4 | option cc_generic_services = false; 5 | 6 | message CMsgSteamDatagramRelayAuthTicket { 7 | message ExtraField { 8 | optional string name = 1; 9 | optional string string_value = 2; 10 | optional sint64 int64_value = 3; 11 | optional fixed64 fixed64_value = 5; 12 | } 13 | 14 | optional fixed32 time_expiry = 1; 15 | optional string authorized_client_identity_string = 14; 16 | optional string gameserver_identity_string = 15; 17 | optional fixed32 authorized_public_ip = 3; 18 | optional bytes gameserver_address = 11; 19 | optional uint32 app_id = 7; 20 | optional uint32 virtual_port = 10; 21 | repeated .CMsgSteamDatagramRelayAuthTicket.ExtraField extra_fields = 8; 22 | optional fixed64 legacy_authorized_steam_id = 2; 23 | optional fixed64 legacy_gameserver_steam_id = 4; 24 | optional fixed32 legacy_gameserver_pop_id = 9; 25 | optional bytes legacy_authorized_client_identity_binary = 12; 26 | optional bytes legacy_gameserver_identity_binary = 13; 27 | } 28 | 29 | message CMsgSteamDatagramSignedRelayAuthTicket { 30 | optional fixed64 reserved_do_not_use = 1; 31 | optional bytes ticket = 3; 32 | optional bytes signature = 4; 33 | optional fixed64 key_id = 2; 34 | repeated .CMsgSteamDatagramCertificateSigned certs = 5; 35 | } 36 | 37 | message CMsgSteamDatagramCachedCredentialsForApp { 38 | optional bytes private_key = 1; 39 | optional bytes cert = 2; 40 | repeated bytes relay_tickets = 3; 41 | } 42 | 43 | message CMsgSteamDatagramGameCoordinatorServerLogin { 44 | optional uint32 time_generated = 1; 45 | optional uint32 appid = 2; 46 | optional bytes routing = 3; 47 | optional bytes appdata = 4; 48 | optional bytes legacy_identity_binary = 5; 49 | optional string identity_string = 6; 50 | optional fixed64 dummy_steam_id = 99; 51 | } 52 | 53 | message CMsgSteamDatagramSignedGameCoordinatorServerLogin { 54 | optional .CMsgSteamDatagramCertificateSigned cert = 1; 55 | optional bytes login = 2; 56 | optional bytes signature = 3; 57 | } 58 | 59 | message CMsgSteamDatagramHostedServerAddressPlaintext { 60 | optional fixed32 ipv4 = 1; 61 | optional bytes ipv6 = 2; 62 | optional uint32 port = 3; 63 | optional fixed64 routing_secret = 4; 64 | optional uint32 protocol_version = 5; 65 | } 66 | -------------------------------------------------------------------------------- /tf2/steammessages_gamenetworkingui.proto: -------------------------------------------------------------------------------- 1 | import "steamnetworkingsockets_messages.proto"; 2 | import "steamdatagram_messages_sdr.proto"; 3 | 4 | option optimize_for = SPEED; 5 | option cc_generic_services = true; 6 | 7 | message CGameNetworkingUI_GlobalState { 8 | } 9 | 10 | message CGameNetworkingUI_ConnectionState { 11 | optional string connection_key = 1; 12 | optional uint32 appid = 2; 13 | optional fixed32 connection_id_local = 3; 14 | optional string identity_local = 4; 15 | optional string identity_remote = 5; 16 | optional uint32 connection_state = 10; 17 | optional uint32 start_time = 12; 18 | optional uint32 close_time = 13; 19 | optional uint32 close_reason = 14; 20 | optional string close_message = 15; 21 | optional string status_loc_token = 16; 22 | optional uint32 transport_kind = 20; 23 | optional string sdrpopid_local = 21; 24 | optional string sdrpopid_remote = 22; 25 | optional string address_remote = 23; 26 | optional .CMsgSteamDatagramP2PRoutingSummary p2p_routing = 24; 27 | optional uint32 ping_interior = 25; 28 | optional uint32 ping_remote_front = 26; 29 | optional uint32 ping_default_internet_route = 27; 30 | optional .CMsgSteamDatagramConnectionQuality e2e_quality_local = 30; 31 | optional .CMsgSteamDatagramConnectionQuality e2e_quality_remote = 31; 32 | optional uint64 e2e_quality_remote_instantaneous_time = 32; 33 | optional uint64 e2e_quality_remote_lifetime_time = 33; 34 | optional .CMsgSteamDatagramConnectionQuality front_quality_local = 40; 35 | optional .CMsgSteamDatagramConnectionQuality front_quality_remote = 41; 36 | optional uint64 front_quality_remote_instantaneous_time = 42; 37 | optional uint64 front_quality_remote_lifetime_time = 43; 38 | } 39 | 40 | message CGameNetworkingUI_Message { 41 | repeated .CGameNetworkingUI_ConnectionState connection_state = 1; 42 | } 43 | -------------------------------------------------------------------------------- /tf2/steamnetworkingsockets_messages_certs.proto: -------------------------------------------------------------------------------- 1 | option optimize_for = SPEED; 2 | option cc_generic_services = false; 3 | 4 | message CMsgSteamNetworkingIdentityLegacyBinary { 5 | optional fixed64 steam_id = 16; 6 | optional string xbox_pairwise_id = 17; 7 | optional bytes generic_bytes = 2; 8 | optional string generic_string = 3; 9 | optional bytes ipv6_and_port = 4; 10 | } 11 | 12 | message CMsgSteamDatagramCertificate { 13 | enum EKeyType { 14 | INVALID = 0; 15 | ED25519 = 1; 16 | } 17 | 18 | optional .CMsgSteamDatagramCertificate.EKeyType key_type = 1 [default = INVALID]; 19 | optional bytes key_data = 2; 20 | optional fixed64 legacy_steam_id = 4; 21 | optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 11; 22 | optional string identity_string = 12; 23 | repeated fixed32 gameserver_datacenter_ids = 5; 24 | optional fixed32 time_created = 8; 25 | optional fixed32 time_expiry = 9; 26 | repeated uint32 app_ids = 10; 27 | } 28 | 29 | message CMsgSteamDatagramCertificateSigned { 30 | optional bytes cert = 4; 31 | optional fixed64 ca_key_id = 5; 32 | optional bytes ca_signature = 6; 33 | optional bytes private_key_data = 1; 34 | } 35 | 36 | message CMsgSteamDatagramCertificateRequest { 37 | optional .CMsgSteamDatagramCertificate cert = 1; 38 | } 39 | -------------------------------------------------------------------------------- /underlords/c_peer2peer_netmessages.proto: -------------------------------------------------------------------------------- 1 | import "netmessages.proto"; 2 | import "networkbasetypes.proto"; 3 | 4 | option cc_generic_services = false; 5 | 6 | enum P2P_Messages { 7 | p2p_TextMessage = 256; 8 | p2p_Voice = 257; 9 | p2p_Ping = 258; 10 | p2p_VRAvatarPosition = 259; 11 | p2p_WatchSynchronization = 260; 12 | } 13 | 14 | message CP2P_TextMessage { 15 | optional bytes text = 1; 16 | } 17 | 18 | message CSteam_Voice_Encoding { 19 | optional bytes voice_data = 1; 20 | } 21 | 22 | message CP2P_Voice { 23 | enum Handler_Flags { 24 | Played_Audio = 1; 25 | } 26 | 27 | optional .CMsgVoiceAudio audio = 1; 28 | optional uint32 broadcast_group = 2; 29 | } 30 | 31 | message CP2P_Ping { 32 | required uint64 send_time = 1; 33 | required bool is_reply = 2; 34 | } 35 | 36 | message CP2P_VRAvatarPosition { 37 | message COrientation { 38 | optional .CMsgVector pos = 1; 39 | optional .CMsgQAngle ang = 2; 40 | } 41 | 42 | repeated .CP2P_VRAvatarPosition.COrientation body_parts = 1; 43 | optional int32 hat_id = 2; 44 | optional int32 scene_id = 3; 45 | optional int32 world_scale = 4; 46 | } 47 | 48 | message CP2P_WatchSynchronization { 49 | optional int32 demo_tick = 1; 50 | optional bool paused = 2; 51 | optional int32 tv_listen_voice_indices = 3; 52 | optional int32 dota_spectator_mode = 4; 53 | optional int32 dota_spectator_watching_broadcaster = 5; 54 | optional int32 dota_spectator_hero_index = 6; 55 | optional int32 dota_spectator_autospeed = 7; 56 | optional int32 dota_replay_speed = 8; 57 | } 58 | -------------------------------------------------------------------------------- /underlords/clientmessages.proto: -------------------------------------------------------------------------------- 1 | option optimize_for = SPEED; 2 | option cc_generic_services = false; 3 | 4 | enum EBaseClientMessages { 5 | CM_CustomGameEvent = 280; 6 | CM_CustomGameEventBounce = 281; 7 | CM_ClientUIEvent = 282; 8 | CM_DevPaletteVisibilityChanged = 283; 9 | CM_WorldUIControllerHasPanelChanged = 284; 10 | CM_RotateAnchor = 285; 11 | CM_MAX_BASE = 300; 12 | } 13 | 14 | enum EClientUIEvent { 15 | EClientUIEvent_Invalid = 0; 16 | EClientUIEvent_DialogFinished = 1; 17 | EClientUIEvent_FireOutput = 2; 18 | } 19 | 20 | message CClientMsg_CustomGameEvent { 21 | optional string event_name = 1; 22 | optional bytes data = 2; 23 | } 24 | 25 | message CClientMsg_CustomGameEventBounce { 26 | optional string event_name = 1; 27 | optional bytes data = 2; 28 | optional int32 player_index = 3; 29 | } 30 | 31 | message CClientMsg_ClientUIEvent { 32 | optional .EClientUIEvent event = 1 [default = EClientUIEvent_Invalid]; 33 | optional uint32 ent_ehandle = 2; 34 | optional uint32 client_ehandle = 3; 35 | optional string data1 = 4; 36 | optional string data2 = 5; 37 | } 38 | 39 | message CClientMsg_DevPaletteVisibilityChangedEvent { 40 | optional bool visible = 1; 41 | } 42 | 43 | message CClientMsg_WorldUIControllerHasPanelChangedEvent { 44 | optional bool has_panel = 1; 45 | optional uint32 client_ehandle = 2; 46 | optional uint32 literal_hand_type = 3; 47 | } 48 | 49 | message CClientMsg_RotateAnchor { 50 | optional float angle = 1; 51 | } 52 | -------------------------------------------------------------------------------- /underlords/connectionless_netmessages.proto: -------------------------------------------------------------------------------- 1 | import "netmessages.proto"; 2 | 3 | option cc_generic_services = false; 4 | 5 | message C2S_CONNECT_Message { 6 | optional uint32 host_version = 1; 7 | optional uint32 auth_protocol = 2; 8 | optional uint32 challenge_number = 3; 9 | optional fixed64 reservation_cookie = 4; 10 | optional bool low_violence = 5; 11 | optional bytes encrypted_password = 6; 12 | repeated .CCLCMsg_SplitPlayerConnect splitplayers = 7; 13 | optional bytes auth_steam = 8; 14 | optional string challenge_context = 9; 15 | optional sint32 use_snp = 10; 16 | } 17 | 18 | message C2S_CONNECTION_Message { 19 | optional string addon_name = 1; 20 | optional bool use_snp = 2; 21 | } 22 | -------------------------------------------------------------------------------- /underlords/econ_shared_enums.proto: -------------------------------------------------------------------------------- 1 | option optimize_for = SPEED; 2 | option cc_generic_services = false; 3 | 4 | enum EGCEconBaseMsg { 5 | k_EMsgGCGenericResult = 2579; 6 | } 7 | 8 | enum EGCMsgResponse { 9 | k_EGCMsgResponseOK = 0; 10 | k_EGCMsgResponseDenied = 1; 11 | k_EGCMsgResponseServerError = 2; 12 | k_EGCMsgResponseTimeout = 3; 13 | k_EGCMsgResponseInvalid = 4; 14 | k_EGCMsgResponseNoMatch = 5; 15 | k_EGCMsgResponseUnknownError = 6; 16 | k_EGCMsgResponseNotLoggedOn = 7; 17 | k_EGCMsgFailedToCreate = 8; 18 | } 19 | 20 | enum EGCPartnerRequestResponse { 21 | k_EPartnerRequestOK = 1; 22 | k_EPartnerRequestBadAccount = 2; 23 | k_EPartnerRequestNotLinked = 3; 24 | k_EPartnerRequestUnsupportedPartnerType = 4; 25 | } 26 | 27 | enum EGCMsgUseItemResponse { 28 | k_EGCMsgUseItemResponse_ItemUsed = 0; 29 | k_EGCMsgUseItemResponse_GiftNoOtherPlayers = 1; 30 | k_EGCMsgUseItemResponse_ServerError = 2; 31 | k_EGCMsgUseItemResponse_MiniGameAlreadyStarted = 3; 32 | k_EGCMsgUseItemResponse_ItemUsed_ItemsGranted = 4; 33 | k_EGCMsgUseItemResponse_DropRateBonusAlreadyGranted = 5; 34 | k_EGCMsgUseItemResponse_NotInLowPriorityPool = 6; 35 | k_EGCMsgUseItemResponse_NotHighEnoughLevel = 7; 36 | k_EGCMsgUseItemResponse_EventNotActive = 8; 37 | k_EGCMsgUseItemResponse_ItemUsed_EventPointsGranted = 9; 38 | k_EGCMsgUseItemResponse_MissingRequirement = 10; 39 | k_EGCMsgUseItemResponse_EmoticonUnlock_NoNew = 11; 40 | k_EGCMsgUseItemResponse_EmoticonUnlock_Complete = 12; 41 | k_EGCMsgUseItemResponse_ItemUsed_Compendium = 13; 42 | } 43 | 44 | message CMsgGenericResult { 45 | optional uint32 eresult = 1 [default = 2]; 46 | optional string debug_message = 2; 47 | } 48 | -------------------------------------------------------------------------------- /underlords/gametoolevents.proto: -------------------------------------------------------------------------------- 1 | import "networkbasetypes.proto"; 2 | 3 | option cc_generic_services = false; 4 | 5 | message ChangeMapToolEvent { 6 | optional string mapname = 1; 7 | } 8 | 9 | message TraceRayServerToolEvent { 10 | optional .CMsgVector start = 1; 11 | optional .CMsgVector end = 2; 12 | } 13 | 14 | message ToolTraceRayResult { 15 | optional bool hit = 1; 16 | optional .CMsgVector impact = 2; 17 | optional .CMsgVector normal = 3; 18 | optional float distance = 4; 19 | optional float fraction = 5; 20 | optional int32 ehandle = 6; 21 | } 22 | 23 | message SpawnEntityToolEvent { 24 | optional bytes entity_keyvalues = 1; 25 | optional bool clientsideentity = 2; 26 | } 27 | 28 | message SpawnEntityToolEventResult { 29 | optional int32 ehandle = 1; 30 | } 31 | 32 | message DestroyEntityToolEvent { 33 | optional int32 ehandle = 1; 34 | } 35 | 36 | message DestroyAllEntitiesToolEvent { 37 | } 38 | 39 | message RestartMapToolEvent { 40 | } 41 | 42 | message ToolEvent_GetEntityInfo { 43 | optional int32 ehandle = 1; 44 | optional bool clientsideentity = 2; 45 | } 46 | 47 | message ToolEvent_GetEntityInfoResult { 48 | optional string cppclass = 1 [default = "shithead"]; 49 | optional string classname = 2; 50 | optional string name = 3; 51 | optional .CMsgVector origin = 4; 52 | optional .CMsgVector mins = 5; 53 | optional .CMsgVector maxs = 6; 54 | } 55 | 56 | message ToolEvent_GetEntityInputs { 57 | optional int32 ehandle = 1; 58 | optional bool clientsideentity = 2; 59 | } 60 | 61 | message ToolEvent_GetEntityInputsResult { 62 | repeated string input_list = 1; 63 | } 64 | 65 | message ToolEvent_FireEntityInput { 66 | optional int32 ehandle = 1; 67 | optional bool clientsideentity = 2; 68 | optional string input_name = 3; 69 | optional string input_param = 4; 70 | } 71 | 72 | message ToolEvent_SFMRecordingStateChanged { 73 | optional bool isrecording = 1; 74 | } 75 | 76 | message ToolEvent_SFMToolActiveStateChanged { 77 | optional bool isactive = 1; 78 | } 79 | -------------------------------------------------------------------------------- /underlords/gcsystemmsgs.proto: -------------------------------------------------------------------------------- 1 | option optimize_for = SPEED; 2 | option cc_generic_services = false; 3 | 4 | enum ESOMsg { 5 | k_ESOMsg_Create = 21; 6 | k_ESOMsg_Update = 22; 7 | k_ESOMsg_Destroy = 23; 8 | k_ESOMsg_CacheSubscribed = 24; 9 | k_ESOMsg_CacheUnsubscribed = 25; 10 | k_ESOMsg_UpdateMultiple = 26; 11 | k_ESOMsg_CacheSubscriptionRefresh = 28; 12 | k_ESOMsg_CacheSubscribedUpToDate = 29; 13 | } 14 | 15 | enum EGCBaseClientMsg { 16 | k_EMsgGCPingRequest = 3001; 17 | k_EMsgGCPingResponse = 3002; 18 | k_EMsgGCToClientPollConvarRequest = 3003; 19 | k_EMsgGCToClientPollConvarResponse = 3004; 20 | k_EMsgGCCompressedMsgToClient = 3005; 21 | k_EMsgGCCompressedMsgToClient_Legacy = 523; 22 | k_EMsgGCToClientRequestDropped = 3006; 23 | k_EMsgGCClientWelcome = 4004; 24 | k_EMsgGCServerWelcome = 4005; 25 | k_EMsgGCClientHello = 4006; 26 | k_EMsgGCServerHello = 4007; 27 | k_EMsgGCClientConnectionStatus = 4009; 28 | k_EMsgGCServerConnectionStatus = 4010; 29 | } 30 | -------------------------------------------------------------------------------- /underlords/networksystem_protomessages.proto: -------------------------------------------------------------------------------- 1 | option cc_generic_services = false; 2 | 3 | message NetMessageSplitscreenUserChanged { 4 | optional uint32 slot = 1; 5 | } 6 | 7 | message NetMessageConnectionClosed { 8 | optional uint32 reason = 1; 9 | } 10 | 11 | message NetMessageConnectionCrashed { 12 | optional uint32 reason = 1; 13 | } 14 | 15 | message NetMessagePacketStart { 16 | } 17 | 18 | message NetMessagePacketEnd { 19 | } 20 | -------------------------------------------------------------------------------- /underlords/steamdatagram_messages_auth.proto: -------------------------------------------------------------------------------- 1 | import "steamnetworkingsockets_messages_certs.proto"; 2 | 3 | option optimize_for = SPEED; 4 | option cc_generic_services = false; 5 | 6 | message CMsgSteamDatagramRelayAuthTicket { 7 | message ExtraField { 8 | optional string name = 1; 9 | optional string string_value = 2; 10 | optional sint64 int64_value = 3; 11 | optional fixed64 fixed64_value = 5; 12 | } 13 | 14 | optional fixed32 time_expiry = 1; 15 | optional string authorized_client_identity_string = 14; 16 | optional string gameserver_identity_string = 15; 17 | optional fixed32 authorized_public_ip = 3; 18 | optional bytes gameserver_address = 11; 19 | optional uint32 app_id = 7; 20 | optional uint32 virtual_port = 10; 21 | repeated .CMsgSteamDatagramRelayAuthTicket.ExtraField extra_fields = 8; 22 | optional fixed64 legacy_authorized_steam_id = 2; 23 | optional fixed64 legacy_gameserver_steam_id = 4; 24 | optional fixed64 legacy_gameserver_net_id = 5; 25 | optional fixed32 legacy_gameserver_pop_id = 9; 26 | optional bytes legacy_authorized_client_identity_binary = 12; 27 | optional bytes legacy_gameserver_identity_binary = 13; 28 | } 29 | 30 | message CMsgSteamDatagramSignedRelayAuthTicket { 31 | optional fixed64 reserved_do_not_use = 1; 32 | optional fixed64 key_id = 2; 33 | optional bytes ticket = 3; 34 | optional bytes signature = 4; 35 | } 36 | 37 | message CMsgSteamDatagramCachedCredentialsForApp { 38 | optional bytes private_key = 1; 39 | optional bytes cert = 2; 40 | repeated bytes relay_tickets = 3; 41 | } 42 | 43 | message CMsgSteamDatagramGameCoordinatorServerLogin { 44 | optional uint32 time_generated = 1; 45 | optional uint32 appid = 2; 46 | optional bytes routing = 3; 47 | optional bytes appdata = 4; 48 | optional bytes legacy_identity_binary = 5; 49 | optional string identity_string = 6; 50 | optional fixed64 dummy_steam_id = 99; 51 | } 52 | 53 | message CMsgSteamDatagramSignedGameCoordinatorServerLogin { 54 | optional .CMsgSteamDatagramCertificateSigned cert = 1; 55 | optional bytes login = 2; 56 | optional bytes signature = 3; 57 | } 58 | 59 | message CMsgSteamDatagramHostedServerAddressPlaintext { 60 | optional fixed32 ipv4 = 1; 61 | optional bytes ipv6 = 2; 62 | optional uint32 port = 3; 63 | optional fixed64 routing_secret = 4; 64 | } 65 | -------------------------------------------------------------------------------- /underlords/steammessages_helprequest.steamworkssdk.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_unified_base.steamworkssdk.proto"; 2 | 3 | option cc_generic_services = true; 4 | 5 | message CHelpRequestLogs_UploadUserApplicationLog_Request { 6 | optional uint32 appid = 1; 7 | optional string log_type = 2; 8 | optional string version_string = 3; 9 | optional string log_contents = 4; 10 | } 11 | 12 | message CHelpRequestLogs_UploadUserApplicationLog_Response { 13 | optional uint64 id = 1; 14 | } 15 | 16 | service HelpRequestLogs { 17 | option (service_description) = "Service for dealing with user-submitted logs"; 18 | 19 | rpc UploadUserApplicationLog (.CHelpRequestLogs_UploadUserApplicationLog_Request) returns (.CHelpRequestLogs_UploadUserApplicationLog_Response) { 20 | option (method_description) = "User uploading application logs"; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /underlords/steammessages_oauth.steamworkssdk.proto: -------------------------------------------------------------------------------- 1 | import "steammessages_unified_base.steamworkssdk.proto"; 2 | 3 | message COAuthToken_ImplicitGrantNoPrompt_Request { 4 | optional string clientid = 1 [(description) = "Client ID for which to count the number of issued tokens"]; 5 | } 6 | 7 | message COAuthToken_ImplicitGrantNoPrompt_Response { 8 | optional string access_token = 1 [(description) = "OAuth Token, granted on success"]; 9 | optional string redirect_uri = 2 [(description) = "Redirection URI provided during client registration."]; 10 | } 11 | 12 | service OAuthToken { 13 | option (service_description) = "Service containing methods to manage OAuth tokens"; 14 | 15 | rpc ImplicitGrantNoPrompt (.COAuthToken_ImplicitGrantNoPrompt_Request) returns (.COAuthToken_ImplicitGrantNoPrompt_Response) { 16 | option (method_description) = "Grants an implicit OAuth token (grant type 'token') for the specified client ID on behalf of a user without prompting"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /underlords/steammessages_unified_base.steamworkssdk.proto: -------------------------------------------------------------------------------- 1 | import "google/protobuf/descriptor.proto"; 2 | 3 | option optimize_for = SPEED; 4 | option cc_generic_services = false; 5 | 6 | extend .google.protobuf.FieldOptions { 7 | optional string description = 50000; 8 | } 9 | 10 | extend .google.protobuf.ServiceOptions { 11 | optional string service_description = 50000; 12 | optional .EProtoExecutionSite service_execution_site = 50008 [default = k_EProtoExecutionSiteUnknown]; 13 | } 14 | 15 | extend .google.protobuf.MethodOptions { 16 | optional string method_description = 50000; 17 | } 18 | 19 | extend .google.protobuf.EnumOptions { 20 | optional string enum_description = 50000; 21 | } 22 | 23 | extend .google.protobuf.EnumValueOptions { 24 | optional string enum_value_description = 50000; 25 | } 26 | 27 | enum EProtoExecutionSite { 28 | k_EProtoExecutionSiteUnknown = 0; 29 | k_EProtoExecutionSiteSteamClient = 3; 30 | } 31 | -------------------------------------------------------------------------------- /underlords/steamnetworkingsockets_messages_certs.proto: -------------------------------------------------------------------------------- 1 | option optimize_for = SPEED; 2 | option cc_generic_services = false; 3 | 4 | message CMsgSteamNetworkingIdentityLegacyBinary { 5 | optional fixed64 steam_id = 16; 6 | optional string xbox_pairwise_id = 17; 7 | optional bytes generic_bytes = 2; 8 | optional string generic_string = 3; 9 | optional bytes ipv6_and_port = 4; 10 | } 11 | 12 | message CMsgSteamDatagramCertificate { 13 | enum EKeyType { 14 | INVALID = 0; 15 | ED25519 = 1; 16 | } 17 | 18 | optional .CMsgSteamDatagramCertificate.EKeyType key_type = 1 [default = INVALID]; 19 | optional bytes key_data = 2; 20 | optional fixed64 legacy_steam_id = 4; 21 | optional .CMsgSteamNetworkingIdentityLegacyBinary legacy_identity_binary = 11; 22 | optional string identity_string = 12; 23 | repeated fixed32 gameserver_datacenter_ids = 5; 24 | optional fixed32 time_created = 8; 25 | optional fixed32 time_expiry = 9; 26 | repeated uint32 app_ids = 10; 27 | } 28 | 29 | message CMsgSteamDatagramCertificateSigned { 30 | optional bytes cert = 4; 31 | optional fixed64 ca_key_id = 5; 32 | optional bytes ca_signature = 6; 33 | optional bytes private_key_data = 1; 34 | } 35 | 36 | message CMsgSteamDatagramCertificateRequest { 37 | optional .CMsgSteamDatagramCertificate cert = 1; 38 | } 39 | -------------------------------------------------------------------------------- /underlords/uifontfile_format.proto: -------------------------------------------------------------------------------- 1 | option optimize_for = SPEED; 2 | option cc_generic_services = false; 3 | 4 | message CUIFontFilePB { 5 | optional string font_file_name = 1; 6 | optional bytes opentype_font_data = 2; 7 | } 8 | 9 | message CUIFontFilePackagePB { 10 | message CUIEncryptedFontFilePB { 11 | optional bytes encrypted_contents = 1; 12 | } 13 | 14 | required uint32 package_version = 1; 15 | repeated .CUIFontFilePackagePB.CUIEncryptedFontFilePB encrypted_font_files = 2; 16 | } 17 | -------------------------------------------------------------------------------- /underlords/valveextensions.proto: -------------------------------------------------------------------------------- 1 | import "google/protobuf/descriptor.proto"; 2 | 3 | option optimize_for = SPEED; 4 | option cc_generic_services = false; 5 | 6 | extend .google.protobuf.FieldOptions { 7 | optional bool map_field = 61000 [default = false]; 8 | optional bool map_key = 61001 [default = false]; 9 | optional int32 diff_encode_field = 61002 [default = 0]; 10 | optional bool delta_ignore = 61003 [default = false]; 11 | } 12 | -------------------------------------------------------------------------------- /update.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd "$(dirname "$0")" 4 | 5 | rsync -arhv --delete ../steamtrack/Protobufs/ ./steam/ 6 | rsync -arhv --delete ../backend/files/csgo/Protobufs/ ./csgo/ 7 | rsync -arhv --delete ../backend/files/dota/Protobufs/ ./dota2/ 8 | rsync -arhv --delete ../backend/files/deadlock/Protobufs/ ./deadlock/ 9 | rsync -arhv --delete ../backend/files/tf/Protobufs/ ./tf2/ 10 | cp -r ./steam/google ./ 11 | 12 | git add -A 13 | git commit -S -a -m "$(git status --porcelain | wc -l) files | $(git status --porcelain | sed '{:q;N;s/\n/, /g;t q}' | sed 's/^ *//g')" 14 | git push 15 | -------------------------------------------------------------------------------- /webui/common_base.proto: -------------------------------------------------------------------------------- 1 | import "google/protobuf/descriptor.proto"; 2 | 3 | extend .google.protobuf.FieldOptions { 4 | optional string description = 50000; 5 | } 6 | 7 | extend .google.protobuf.ServiceOptions { 8 | optional string service_description = 50000; 9 | } 10 | 11 | extend .google.protobuf.MethodOptions { 12 | optional string method_description = 50000; 13 | } 14 | 15 | extend .google.protobuf.EnumOptions { 16 | optional string enum_description = 50000; 17 | } 18 | 19 | extend .google.protobuf.EnumValueOptions { 20 | optional string enum_value_description = 50000; 21 | } 22 | 23 | message NoResponse { 24 | } 25 | 26 | message NotImplemented { 27 | } 28 | -------------------------------------------------------------------------------- /webui/service_accountlinking.proto: -------------------------------------------------------------------------------- 1 | import "common_base.proto"; 2 | 3 | message CAccountLinking_GetLinkedAccountInfo_Request { 4 | optional int32 account_type = 1 [(.description) = "enum"]; 5 | optional uint64 account_id = 2; 6 | optional int32 filter = 3 [(.description) = "enum"]; 7 | optional bool return_access_token = 4; 8 | } 9 | 10 | message CAccountLinking_GetLinkedAccountInfo_Response { 11 | repeated .CAccountLinking_GetLinkedAccountInfo_Response_CExternalAccountTuple_Response external_accounts = 1; 12 | } 13 | 14 | message CAccountLinking_GetLinkedAccountInfo_Response_CExternalAccountTuple_Response { 15 | optional int32 external_type = 1 [(.description) = "enum"]; 16 | optional string external_id = 2; 17 | optional string external_user_name = 3; 18 | optional string external_url = 4; 19 | optional string access_token = 5; 20 | optional string access_token_secret = 6; 21 | optional bool is_valid = 7; 22 | } 23 | 24 | service AccountLinking { 25 | // bConstMethod=true, ePrivilege=0, eWebAPIKeyRequirement=1 26 | rpc GetLinkedAccountInfo (.CAccountLinking_GetLinkedAccountInfo_Request) returns (.CAccountLinking_GetLinkedAccountInfo_Response); 27 | } 28 | 29 | -------------------------------------------------------------------------------- /webui/service_accountprivacy.proto: -------------------------------------------------------------------------------- 1 | import "common_base.proto"; 2 | 3 | message CAccountPrivacy_GetCookiePreferences_Request { 4 | } 5 | 6 | message CAccountPrivacy_GetCookiePreferences_Response { 7 | optional .CAccountPrivacyCookiePreferences preferences = 1; 8 | } 9 | 10 | message CAccountPrivacyCookiePreferences { 11 | optional int32 version = 1 [(.description) = "enum"]; 12 | optional int32 preference_state = 2 [(.description) = "enum"]; 13 | optional .CAccountPrivacyCookiePreferences_ContentCustomization content_customization = 3; 14 | optional .CAccountPrivacyCookiePreferences_ValveAnalytics valve_analytics = 4; 15 | optional .CAccountPrivacyCookiePreferences_ThirdPartyAnalytics third_party_analytics = 5; 16 | optional .CAccountPrivacyCookiePreferences_ThirdPartyContent third_party_content = 6; 17 | optional bool utm_enabled = 7 [default = true]; 18 | } 19 | 20 | message CAccountPrivacyCookiePreferences_ContentCustomization { 21 | optional bool recentapps = 1; 22 | } 23 | 24 | message CAccountPrivacyCookiePreferences_ThirdPartyAnalytics { 25 | optional bool google_analytics = 1; 26 | } 27 | 28 | message CAccountPrivacyCookiePreferences_ThirdPartyContent { 29 | optional bool youtube = 1; 30 | optional bool vimeo = 2; 31 | optional bool sketchfab = 3; 32 | optional bool twitter = 4; 33 | } 34 | 35 | message CAccountPrivacyCookiePreferences_ValveAnalytics { 36 | optional bool product_impressions_tracking = 1; 37 | } 38 | 39 | service AccountPrivacy { 40 | // ePrivilege=1 41 | rpc GetCookiePreferences (.CAccountPrivacy_GetCookiePreferences_Request) returns (.CAccountPrivacy_GetCookiePreferences_Response); 42 | } 43 | 44 | -------------------------------------------------------------------------------- /webui/service_accountprivateapps.proto: -------------------------------------------------------------------------------- 1 | import "common_base.proto"; 2 | 3 | message CAccountPrivateAppList { 4 | repeated int32 appids = 1; 5 | } 6 | 7 | message CAccountPrivateApps_GetPrivateAppList_Request { 8 | } 9 | 10 | message CAccountPrivateApps_GetPrivateAppList_Response { 11 | optional .CAccountPrivateAppList private_apps = 1; 12 | } 13 | 14 | message CAccountPrivateApps_ToggleAppPrivacy_Request { 15 | repeated int32 appids = 1; 16 | optional bool private = 2; 17 | } 18 | 19 | message CAccountPrivateApps_ToggleAppPrivacy_Response { 20 | } 21 | 22 | message CAccountPrivateApsClient_NotifyPrivateAppListChanged_Notification { 23 | optional .CAccountPrivateAppList private_apps = 1; 24 | } 25 | 26 | service AccountPrivateApps { 27 | // bConstMethod=true, ePrivilege=1 28 | rpc GetPrivateAppList (.CAccountPrivateApps_GetPrivateAppList_Request) returns (.CAccountPrivateApps_GetPrivateAppList_Response); 29 | // ePrivilege=1 30 | rpc ToggleAppPrivacy (.CAccountPrivateApps_ToggleAppPrivacy_Request) returns (.CAccountPrivateApps_ToggleAppPrivacy_Response); 31 | } 32 | 33 | service AccountPrivateAppsClient { 34 | rpc NotifyPrivateAppListChanged (.CAccountPrivateApsClient_NotifyPrivateAppListChanged_Notification) returns (.NoResponse); 35 | } 36 | 37 | -------------------------------------------------------------------------------- /webui/service_achievements.proto: -------------------------------------------------------------------------------- 1 | 2 | message CAchievements_GetInfo_Request { 3 | optional uint64 gameid = 1; 4 | } 5 | 6 | message CAchievements_GetInfo_Response { 7 | repeated .CAchievements_GetInfo_Response_Info achievements = 1; 8 | } 9 | 10 | message CAchievements_GetInfo_Response_Info { 11 | optional string id = 1; 12 | optional string name = 2; 13 | optional string desc = 3; 14 | optional string image_url_achieved = 4; 15 | optional string image_url_not_achieved = 5; 16 | optional bool achieved = 6; 17 | optional uint32 unlock_time = 7; 18 | } 19 | 20 | service Achievements { 21 | // ePrivilege=1, eClientExecutionSite=2 22 | rpc GetInfo (.CAchievements_GetInfo_Request) returns (.CAchievements_GetInfo_Response); 23 | } 24 | 25 | -------------------------------------------------------------------------------- /webui/service_chat.proto: -------------------------------------------------------------------------------- 1 | 2 | message CChat_RequestFriendPersonaStates_Request { 3 | } 4 | 5 | message CChat_RequestFriendPersonaStates_Response { 6 | } 7 | 8 | service Chat { 9 | // ePrivilege=1 10 | rpc RequestFriendPersonaStates (.CChat_RequestFriendPersonaStates_Request) returns (.CChat_RequestFriendPersonaStates_Response); 11 | } 12 | 13 | -------------------------------------------------------------------------------- /webui/service_clanchatrooms.proto: -------------------------------------------------------------------------------- 1 | import "common.proto"; 2 | 3 | message CClanChatRooms_GetClanChatRoomInfo_Request { 4 | optional fixed64 steamid = 1; 5 | optional bool autocreate = 2 [default = true]; 6 | } 7 | 8 | message CClanChatRooms_GetClanChatRoomInfo_Response { 9 | optional .CChatRoom_GetChatRoomGroupSummary_Response chat_group_summary = 1; 10 | } 11 | 12 | message CClanChatRooms_SetClanChatRoomPrivate_Request { 13 | optional fixed64 steamid = 1; 14 | optional bool chat_room_private = 2; 15 | } 16 | 17 | message CClanChatRooms_SetClanChatRoomPrivate_Response { 18 | optional bool chat_room_private = 1; 19 | } 20 | 21 | service ClanChatRooms { 22 | // ePrivilege=2 23 | rpc GetClanChatRoomInfo (.CClanChatRooms_GetClanChatRoomInfo_Request) returns (.CClanChatRooms_GetClanChatRoomInfo_Response); 24 | // ePrivilege=3 25 | rpc SetClanChatRoomPrivate (.CClanChatRooms_SetClanChatRoomPrivate_Request) returns (.CClanChatRooms_SetClanChatRoomPrivate_Response); 26 | } 27 | 28 | -------------------------------------------------------------------------------- /webui/service_cloudconfigstore.proto: -------------------------------------------------------------------------------- 1 | import "common_base.proto"; 2 | 3 | message CCloudConfigStore_Change_Notification { 4 | repeated .CCloudConfigStore_NamespaceVersion versions = 2; 5 | } 6 | 7 | message CCloudConfigStore_Download_Request { 8 | repeated .CCloudConfigStore_NamespaceVersion versions = 1; 9 | } 10 | 11 | message CCloudConfigStore_Download_Response { 12 | repeated .CCloudConfigStore_NamespaceData data = 1; 13 | } 14 | 15 | message CCloudConfigStore_Entry { 16 | optional string key = 1; 17 | optional bool is_deleted = 2; 18 | optional string value = 3; 19 | optional fixed32 timestamp = 4; 20 | optional uint64 version = 5; 21 | } 22 | 23 | message CCloudConfigStore_NamespaceData { 24 | optional uint32 enamespace = 1; 25 | optional uint64 version = 2; 26 | repeated .CCloudConfigStore_Entry entries = 3; 27 | optional uint64 horizon = 4; 28 | } 29 | 30 | message CCloudConfigStore_NamespaceVersion { 31 | optional uint32 enamespace = 1; 32 | optional uint64 version = 2; 33 | } 34 | 35 | message CCloudConfigStore_Upload_Request { 36 | repeated .CCloudConfigStore_NamespaceData data = 1; 37 | } 38 | 39 | message CCloudConfigStore_Upload_Response { 40 | repeated .CCloudConfigStore_NamespaceVersion versions = 1; 41 | } 42 | 43 | service CloudConfigStore { 44 | // bConstMethod=true, ePrivilege=1 45 | rpc Download (.CCloudConfigStore_Download_Request) returns (.CCloudConfigStore_Download_Response); 46 | // ePrivilege=1 47 | rpc Upload (.CCloudConfigStore_Upload_Request) returns (.CCloudConfigStore_Upload_Response); 48 | } 49 | 50 | service CloudConfigStoreClient { 51 | rpc NotifyChange (.CCloudConfigStore_Change_Notification) returns (.NoResponse); 52 | } 53 | 54 | -------------------------------------------------------------------------------- /webui/service_cloudgaming.proto: -------------------------------------------------------------------------------- 1 | 2 | message CCloudGaming_CreateNonce_Request { 3 | optional string platform = 1; 4 | optional uint32 appid = 2; 5 | } 6 | 7 | message CCloudGaming_CreateNonce_Response { 8 | optional string nonce = 1; 9 | optional uint32 expiry = 2; 10 | } 11 | 12 | message CCloudGaming_GetTimeRemaining_Request { 13 | optional string platform = 1; 14 | repeated uint32 appid_list = 2; 15 | } 16 | 17 | message CCloudGaming_GetTimeRemaining_Response { 18 | repeated .CCloudGaming_TimeRemaining entries = 2; 19 | } 20 | 21 | message CCloudGaming_TimeRemaining { 22 | optional uint32 appid = 1; 23 | optional uint32 minutes_remaining = 2; 24 | } 25 | 26 | service CloudGaming { 27 | // bConstMethod=true, ePrivilege=1 28 | rpc CreateNonce (.CCloudGaming_CreateNonce_Request) returns (.CCloudGaming_CreateNonce_Response); 29 | // bConstMethod=true, ePrivilege=1 30 | rpc GetTimeRemaining (.CCloudGaming_GetTimeRemaining_Request) returns (.CCloudGaming_GetTimeRemaining_Response); 31 | } 32 | 33 | -------------------------------------------------------------------------------- /webui/service_embedded.proto: -------------------------------------------------------------------------------- 1 | 2 | message CEmbeddedClient_AuthorizeCurrentDevice_Request { 3 | optional fixed64 steamid = 1; 4 | optional uint32 appid = 2; 5 | optional string device_info = 3; 6 | optional uint32 deviceid = 4; 7 | } 8 | 9 | message CEmbeddedClient_AuthorizeDevice_Response { 10 | optional uint32 result = 1; 11 | optional .CEmbeddedClient_Token token = 2; 12 | } 13 | 14 | message CEmbeddedClient_Token { 15 | optional fixed64 steamid = 1; 16 | optional bytes client_token = 2; 17 | optional uint32 expiry = 3; 18 | optional uint32 deviceid = 4; 19 | } 20 | 21 | service EmbeddedClient { 22 | // ePrivilege=1 23 | rpc AuthorizeCurrentDevice (.CEmbeddedClient_AuthorizeCurrentDevice_Request) returns (.CEmbeddedClient_AuthorizeDevice_Response); 24 | } 25 | 26 | -------------------------------------------------------------------------------- /webui/service_experimentservice.proto: -------------------------------------------------------------------------------- 1 | import "common_base.proto"; 2 | 3 | service ExperimentService { 4 | // ePrivilege=1 5 | rpc ReportProductImpressionsFromClient (.NotImplemented) returns (.NoResponse); 6 | } 7 | 8 | -------------------------------------------------------------------------------- /webui/service_fovasvideo.proto: -------------------------------------------------------------------------------- 1 | 2 | message CFovasVideo_ClientGetOPFSettings_Request { 3 | optional uint32 app_id = 1; 4 | optional uint32 client_cellid = 2; 5 | } 6 | 7 | message CFovasVideo_ClientGetOPFSettings_Response { 8 | optional uint32 app_id = 1; 9 | optional string opf_settings = 2; 10 | } 11 | 12 | service FovasVideo { 13 | // ePrivilege=1 14 | rpc ClientGetOPFSettings (.CFovasVideo_ClientGetOPFSettings_Request) returns (.CFovasVideo_ClientGetOPFSettings_Response); 15 | } 16 | 17 | -------------------------------------------------------------------------------- /webui/service_friendslist.proto: -------------------------------------------------------------------------------- 1 | import "common_base.proto"; 2 | 3 | message CFriendsList_FavoritesChanged_Notification { 4 | repeated .CFriendsListFavoriteEntry favorites = 1; 5 | } 6 | 7 | message CFriendsList_GetCategories_Request { 8 | } 9 | 10 | message CFriendsList_GetCategories_Response { 11 | repeated .CFriendsListCategory categories = 1; 12 | } 13 | 14 | message CFriendsList_GetFavorites_Request { 15 | } 16 | 17 | message CFriendsList_GetFavorites_Response { 18 | repeated .CFriendsListFavoriteEntry favorites = 1; 19 | } 20 | 21 | message CFriendsList_GetFriendsList_Request { 22 | } 23 | 24 | message CFriendsList_GetFriendsList_Response { 25 | optional .CMsgClientFriendsList friendslist = 1; 26 | } 27 | 28 | message CFriendsList_SetFavorites_Request { 29 | repeated .CFriendsListFavoriteEntry favorites = 1; 30 | } 31 | 32 | message CFriendsList_SetFavorites_Response { 33 | } 34 | 35 | message CFriendsListCategory { 36 | optional uint32 groupid = 1; 37 | optional string name = 2; 38 | repeated uint32 accountid_members = 3; 39 | } 40 | 41 | message CFriendsListFavoriteEntry { 42 | optional uint32 accountid = 1; 43 | optional uint32 clanid = 2; 44 | optional uint64 chat_group_id = 3; 45 | } 46 | 47 | message CMsgClientFriendsList { 48 | optional bool bincremental = 1; 49 | repeated .CMsgClientFriendsList_Friend friends = 2; 50 | optional uint32 max_friend_count = 3; 51 | optional uint32 active_friend_count = 4; 52 | optional bool friends_limit_hit = 5; 53 | } 54 | 55 | message CMsgClientFriendsList_Friend { 56 | optional fixed64 ulfriendid = 1; 57 | optional uint32 efriendrelationship = 2; 58 | } 59 | 60 | service FriendsList { 61 | // bConstMethod=true, ePrivilege=1 62 | rpc GetCategories (.CFriendsList_GetCategories_Request) returns (.CFriendsList_GetCategories_Response); 63 | // bConstMethod=true, ePrivilege=1 64 | rpc GetFavorites (.CFriendsList_GetFavorites_Request) returns (.CFriendsList_GetFavorites_Response); 65 | // bConstMethod=true, ePrivilege=1 66 | rpc GetFriendsList (.CFriendsList_GetFriendsList_Request) returns (.CFriendsList_GetFriendsList_Response); 67 | // ePrivilege=1 68 | rpc SetFavorites (.CFriendsList_SetFavorites_Request) returns (.CFriendsList_SetFavorites_Response); 69 | } 70 | 71 | service FriendsListClient { 72 | rpc FavoritesChanged (.CFriendsList_FavoritesChanged_Notification) returns (.NoResponse); 73 | } 74 | 75 | -------------------------------------------------------------------------------- /webui/service_gamenotes.proto: -------------------------------------------------------------------------------- 1 | 2 | message CGameNotes_UploadImage_Request { 3 | optional string file_prefix = 1; 4 | optional string mime_type = 2; 5 | optional bytes data = 3; 6 | } 7 | 8 | message CGameNotes_UploadImage_Response { 9 | optional string filename = 1; 10 | } 11 | 12 | service GameNotes { 13 | // ePrivilege=1, eClientExecutionSite=1 14 | rpc UploadImage (.CGameNotes_UploadImage_Request) returns (.CGameNotes_UploadImage_Response); 15 | } 16 | 17 | -------------------------------------------------------------------------------- /webui/service_gamerecordingdebug.proto: -------------------------------------------------------------------------------- 1 | 2 | message CGameRecordingDebug_AddTimelineHighlightMarker_Request { 3 | optional uint32 appid = 1; 4 | optional string icon = 2; 5 | optional string title = 3; 6 | optional string desc = 4; 7 | } 8 | 9 | message CGameRecordingDebug_AddTimelineHighlightMarker_Response { 10 | } 11 | 12 | message CGameRecordingDebug_AddTimelineRangeEnd_Request { 13 | optional uint32 appid = 1; 14 | optional string id = 2; 15 | } 16 | 17 | message CGameRecordingDebug_AddTimelineRangeEnd_Response { 18 | } 19 | 20 | message CGameRecordingDebug_AddTimelineRangeStart_Request { 21 | optional uint32 appid = 1; 22 | optional string id = 2; 23 | optional string title = 3; 24 | } 25 | 26 | message CGameRecordingDebug_AddTimelineRangeStart_Response { 27 | } 28 | 29 | message CGameRecordingDebug_AddTimelineTimestamp_Request { 30 | optional uint32 appid = 1; 31 | optional string title = 2; 32 | } 33 | 34 | message CGameRecordingDebug_AddTimelineTimestamp_Response { 35 | } 36 | 37 | message CGameRecordingDebug_SetTimelineGameMode_Request { 38 | optional uint32 appid = 1; 39 | optional uint32 mode = 2; 40 | } 41 | 42 | message CGameRecordingDebug_SetTimelineGameMode_Response { 43 | } 44 | 45 | service GameRecordingDebug { 46 | rpc AddTimelineHighlightMarker (.CGameRecordingDebug_AddTimelineHighlightMarker_Request) returns (.CGameRecordingDebug_AddTimelineHighlightMarker_Response); 47 | rpc AddTimelineRangeEnd (.CGameRecordingDebug_AddTimelineRangeEnd_Request) returns (.CGameRecordingDebug_AddTimelineRangeEnd_Response); 48 | rpc AddTimelineRangeStart (.CGameRecordingDebug_AddTimelineRangeStart_Request) returns (.CGameRecordingDebug_AddTimelineRangeStart_Response); 49 | rpc AddTimelineTimestamp (.CGameRecordingDebug_AddTimelineTimestamp_Request) returns (.CGameRecordingDebug_AddTimelineTimestamp_Response); 50 | rpc SetTimelineGameMode (.CGameRecordingDebug_SetTimelineGameMode_Request) returns (.CGameRecordingDebug_SetTimelineGameMode_Response); 51 | } 52 | 53 | -------------------------------------------------------------------------------- /webui/service_gamescope.proto: -------------------------------------------------------------------------------- 1 | import "common_base.proto"; 2 | 3 | message CGamescope_GetState_Request { 4 | } 5 | 6 | message CGamescope_GetState_Response { 7 | optional .CMsgGamescopeState state = 1; 8 | } 9 | 10 | message CGamescope_ReArmMuraCalibration_Request { 11 | } 12 | 13 | message CGamescope_ReArmMuraCalibration_Response { 14 | } 15 | 16 | message CGamescope_SetBlurParams_Request { 17 | optional int32 mode = 1 [(.description) = "enum"]; 18 | optional int32 radius = 2; 19 | optional int32 fade_duration_ms = 3; 20 | } 21 | 22 | message CGamescope_SetBlurParams_Response { 23 | } 24 | 25 | message CGamescope_StateChanged_Notification { 26 | } 27 | 28 | message CMsgDisplayInfo { 29 | optional string make = 1; 30 | optional string model = 2; 31 | optional string connector_name = 3; 32 | repeated int32 supported_refresh_rates = 4; 33 | repeated int32 supported_frame_rates = 5; 34 | optional bool is_external = 6; 35 | optional bool is_hdr_capable = 7; 36 | optional bool is_vrr_capable = 8; 37 | } 38 | 39 | message CMsgGamescopeState { 40 | optional bool is_service_available = 1; 41 | optional bool is_reshade_supported = 2; 42 | optional bool is_app_hdr_enabled = 3; 43 | optional bool is_app_refresh_rate_supported = 4; 44 | optional .CMsgDisplayInfo active_display_info = 5; 45 | optional bool is_app_refresh_rate_capable = 6; 46 | optional bool is_refresh_rate_switching_supported = 7; 47 | optional bool is_refresh_rate_switching_restricted = 8; 48 | optional bool is_hdr_visualization_supported = 9; 49 | optional bool is_mura_correction_supported = 10; 50 | optional bool is_global_action_binding_supported = 11; 51 | } 52 | 53 | service Gamescope { 54 | // ePrivilege=1, eClientExecutionSite=1 55 | rpc GetState (.CGamescope_GetState_Request) returns (.CGamescope_GetState_Response); 56 | // ePrivilege=1, eClientExecutionSite=1 57 | rpc NotifyStateChanged (.CGamescope_StateChanged_Notification) returns (.NoResponse); 58 | // ePrivilege=1, eClientExecutionSite=1 59 | rpc ReArmMuraCalibration (.CGamescope_ReArmMuraCalibration_Request) returns (.CGamescope_ReArmMuraCalibration_Response); 60 | // ePrivilege=1, eClientExecutionSite=1 61 | rpc SetBlurParams (.CGamescope_SetBlurParams_Request) returns (.CGamescope_SetBlurParams_Response); 62 | } 63 | 64 | -------------------------------------------------------------------------------- /webui/service_hardwareupdate.proto: -------------------------------------------------------------------------------- 1 | import "common_base.proto"; 2 | 3 | message CHardwareUpdate_CheckForUpdates_Request { 4 | } 5 | 6 | message CHardwareUpdate_CheckForUpdates_Response { 7 | repeated .CMsgAvailableHardwareUpdate updates = 1; 8 | } 9 | 10 | message CHardwareUpdate_GetState_Request { 11 | } 12 | 13 | message CHardwareUpdate_GetState_Response { 14 | optional bool is_updater_supported = 1; 15 | optional bool has_seen_controllers = 2; 16 | } 17 | 18 | message CHardwareUpdate_StateChanged_Notification { 19 | } 20 | 21 | message CHardwareUpdate_Update_Request { 22 | } 23 | 24 | message CHardwareUpdate_Update_Response { 25 | } 26 | 27 | message CHardwareUpdate_UpdateProgress_Notification { 28 | optional int32 progress = 1; 29 | } 30 | 31 | message CHardwareUpdate_UpdateStateChanged_Notification { 32 | } 33 | 34 | message CMsgAvailableHardwareUpdate { 35 | optional uint32 etype = 1; 36 | optional uint32 hardware_id = 2; 37 | optional string serial_number = 3; 38 | optional string current_ts = 4; 39 | optional string update_ts = 5; 40 | } 41 | 42 | service HardwareUpdate { 43 | // ePrivilege=1, eClientExecutionSite=1 44 | rpc CheckForUpdates (.CHardwareUpdate_CheckForUpdates_Request) returns (.CHardwareUpdate_CheckForUpdates_Response); 45 | // ePrivilege=1, eClientExecutionSite=1 46 | rpc GetState (.CHardwareUpdate_GetState_Request) returns (.CHardwareUpdate_GetState_Response); 47 | // ePrivilege=1, eClientExecutionSite=1 48 | rpc NotifyStateChanged (.CHardwareUpdate_StateChanged_Notification) returns (.NoResponse); 49 | // ePrivilege=1, eClientExecutionSite=1 50 | rpc NotifyUpdateProgress (.CHardwareUpdate_UpdateProgress_Notification) returns (.NoResponse); 51 | // ePrivilege=1, eClientExecutionSite=1 52 | rpc NotifyUpdateStateChanged (.CHardwareUpdate_UpdateStateChanged_Notification) returns (.NoResponse); 53 | // ePrivilege=1, eClientExecutionSite=1 54 | rpc Update (.CHardwareUpdate_Update_Request) returns (.CHardwareUpdate_Update_Response); 55 | } 56 | 57 | -------------------------------------------------------------------------------- /webui/service_helprequestlogs.proto: -------------------------------------------------------------------------------- 1 | 2 | message CHelpRequestLogs_UploadUserApplicationLog_Request { 3 | optional uint32 appid = 1; 4 | optional string log_type = 2; 5 | optional string version_string = 3; 6 | optional string log_contents = 4; 7 | } 8 | 9 | message CHelpRequestLogs_UploadUserApplicationLog_Response { 10 | optional uint64 id = 1; 11 | } 12 | 13 | service HelpRequestLogs { 14 | // ePrivilege=1 15 | rpc UploadUserApplicationLog (.CHelpRequestLogs_UploadUserApplicationLog_Request) returns (.CHelpRequestLogs_UploadUserApplicationLog_Response); 16 | } 17 | 18 | -------------------------------------------------------------------------------- /webui/service_mobileapp.proto: -------------------------------------------------------------------------------- 1 | 2 | message CMobileApp_GetMobileSummary_Request { 3 | optional fixed64 authenticator_gid = 1; 4 | } 5 | 6 | message CMobileApp_GetMobileSummary_Response { 7 | optional uint32 stale_time_seconds = 1; 8 | optional bool is_authenticator_valid = 2; 9 | optional uint32 owned_games = 3; 10 | optional uint32 friend_count = 4; 11 | optional string wallet_balance = 5; 12 | optional string language = 6; 13 | } 14 | 15 | service MobileApp { 16 | // ePrivilege=1 17 | rpc GetMobileSummary (.CMobileApp_GetMobileSummary_Request) returns (.CMobileApp_GetMobileSummary_Response); 18 | } 19 | 20 | -------------------------------------------------------------------------------- /webui/service_mobileauth.proto: -------------------------------------------------------------------------------- 1 | 2 | message CMobileAuth_MigrateMobileSession_Request { 3 | optional fixed64 steamid = 1; 4 | optional string token = 2; 5 | optional bytes signature = 3; 6 | optional .CMobileAuth_MigrateMobileSession_Request_DeviceDetails device_details = 4; 7 | } 8 | 9 | message CMobileAuth_MigrateMobileSession_Request_DeviceDetails { 10 | optional string device_friendly_name = 1; 11 | optional uint32 platform_type = 2; 12 | optional int32 os_type = 3; 13 | optional uint32 gaming_device_type = 4; 14 | } 15 | 16 | message CMobileAuth_MigrateMobileSession_Response { 17 | optional string refresh_token = 1; 18 | optional string access_token = 2; 19 | } 20 | 21 | service MobileAuth { 22 | // ePrivilege=0, eWebAPIKeyRequirement=1 23 | rpc MigrateMobileSession (.CMobileAuth_MigrateMobileSession_Request) returns (.CMobileAuth_MigrateMobileSession_Response); 24 | } 25 | 26 | -------------------------------------------------------------------------------- /webui/service_mobiledevice.proto: -------------------------------------------------------------------------------- 1 | import "common_base.proto"; 2 | 3 | message CMobileDevice_DeregisterMobileDevice_Notification { 4 | optional string deviceid = 1; 5 | } 6 | 7 | message CMobileDevice_HasMobileDevice_Request { 8 | optional int32 app_type = 1 [(.description) = "enum"]; 9 | optional bool push_enabled_only = 2; 10 | optional string minimum_version = 3; 11 | optional string twofactor_device_identifier = 4; 12 | } 13 | 14 | message CMobileDevice_HasMobileDevice_Response { 15 | optional bool found_device = 1; 16 | optional bool up_to_date = 2; 17 | optional string max_version = 3; 18 | } 19 | 20 | message CMobileDevice_RegisterMobileDevice_Request { 21 | optional string deviceid = 1; 22 | optional string language = 2; 23 | optional bool push_enabled = 3; 24 | optional string app_version = 4; 25 | optional string os_version = 5; 26 | optional string device_model = 6; 27 | optional string twofactor_device_identifier = 7; 28 | optional int32 mobile_app = 8 [(.description) = "enum"]; 29 | } 30 | 31 | message CMobileDevice_RegisterMobileDevice_Response { 32 | optional uint32 unique_deviceid = 2; 33 | } 34 | 35 | service MobileDevice { 36 | // ePrivilege=1, eWebAPIKeyRequirement=2 37 | rpc DeregisterMobileDevice (.CMobileDevice_DeregisterMobileDevice_Notification) returns (.NoResponse); 38 | // bConstMethod=true, ePrivilege=1 39 | rpc HasMobileDevice (.CMobileDevice_HasMobileDevice_Request) returns (.CMobileDevice_HasMobileDevice_Response); 40 | // ePrivilege=1, eWebAPIKeyRequirement=2 41 | rpc RegisterMobileDevice (.CMobileDevice_RegisterMobileDevice_Request) returns (.CMobileDevice_RegisterMobileDevice_Response); 42 | } 43 | 44 | -------------------------------------------------------------------------------- /webui/service_mobileperaccount.proto: -------------------------------------------------------------------------------- 1 | 2 | message CMobilePerAccount_GetSettings_Request { 3 | } 4 | 5 | message CMobilePerAccount_GetSettings_Response { 6 | optional bool allow_sale_push = 2; 7 | optional bool allow_wishlist_push = 3; 8 | optional bool has_settings = 4; 9 | optional uint32 chat_notification_level = 5; 10 | optional bool notify_direct_chat = 6; 11 | optional bool notify_group_chat = 7; 12 | optional bool allow_event_push = 8 [default = true]; 13 | } 14 | 15 | message CMobilePerAccount_SetSettings_Request { 16 | optional bool allow_sale_push = 2; 17 | optional bool allow_wishlist_push = 3; 18 | optional uint32 chat_notification_level = 4; 19 | optional bool notify_direct_chat = 5; 20 | optional bool notify_group_chat = 6; 21 | optional bool allow_event_push = 7 [default = true]; 22 | } 23 | 24 | message CMobilePerAccount_SetSettings_Response { 25 | } 26 | 27 | service MobilePerAccount { 28 | // ePrivilege=1 29 | rpc GetSettings (.CMobilePerAccount_GetSettings_Request) returns (.CMobilePerAccount_GetSettings_Response); 30 | // ePrivilege=1 31 | rpc SetSettings (.CMobilePerAccount_SetSettings_Request) returns (.CMobilePerAccount_SetSettings_Response); 32 | } 33 | 34 | -------------------------------------------------------------------------------- /webui/service_partnerappnotes.proto: -------------------------------------------------------------------------------- 1 | 2 | message CPartnerAppNotes_CreateNotes_Request { 3 | optional uint32 appid = 1; 4 | optional string partner_notes = 2; 5 | optional string admin_notes = 3; 6 | optional string partner_readonly_notes = 4; 7 | } 8 | 9 | message CPartnerAppNotes_CreateNotes_Response { 10 | } 11 | 12 | message CPartnerAppNotes_GetMultipleNotes_Request { 13 | repeated uint32 appids = 1; 14 | } 15 | 16 | message CPartnerAppNotes_GetMultipleNotes_Response { 17 | repeated .CPartnerAppNotes_GetMultipleNotes_Response_Container notes = 1; 18 | } 19 | 20 | message CPartnerAppNotes_GetMultipleNotes_Response_Container { 21 | optional uint32 appid = 1; 22 | optional string partner_notes = 2; 23 | optional string admin_notes = 3; 24 | optional string partner_readonly_notes = 4; 25 | } 26 | 27 | message CPartnerAppNotes_GetNotes_Request { 28 | optional uint32 appid = 1; 29 | } 30 | 31 | message CPartnerAppNotes_GetNotes_Response { 32 | optional string partner_notes = 2; 33 | optional string admin_notes = 3; 34 | optional string partner_readonly_notes = 4; 35 | } 36 | 37 | message CPartnerAppNotes_UpdateNotes_Request { 38 | optional uint32 appid = 1; 39 | optional string partner_notes = 2; 40 | optional string admin_notes = 3; 41 | optional string partner_readonly_notes = 4; 42 | } 43 | 44 | message CPartnerAppNotes_UpdateNotes_Response { 45 | } 46 | 47 | service PartnerAppNotes { 48 | rpc CreateNotes (.CPartnerAppNotes_CreateNotes_Request) returns (.CPartnerAppNotes_CreateNotes_Response); 49 | rpc GetMultipleNotes (.CPartnerAppNotes_GetMultipleNotes_Request) returns (.CPartnerAppNotes_GetMultipleNotes_Response); 50 | rpc GetNotes (.CPartnerAppNotes_GetNotes_Request) returns (.CPartnerAppNotes_GetNotes_Response); 51 | rpc UpdateNotes (.CPartnerAppNotes_UpdateNotes_Request) returns (.CPartnerAppNotes_UpdateNotes_Response); 52 | } 53 | 54 | -------------------------------------------------------------------------------- /webui/service_partnerdismiss.proto: -------------------------------------------------------------------------------- 1 | import "common_base.proto"; 2 | 3 | message CDismissPinData { 4 | optional int32 state = 1 [(.description) = "enum"]; 5 | optional uint32 accountid = 2; 6 | optional string key_json = 3; 7 | optional uint32 partnerid = 4; 8 | optional uint32 rtime_create = 5; 9 | optional uint32 rtime_validity = 6; 10 | optional fixed64 dismiss_id = 7; 11 | } 12 | 13 | message CPartnerDismiss_CreateDismiss_Request { 14 | repeated .CDismissPinData dismiss_list = 1; 15 | } 16 | 17 | message CPartnerDismiss_CreateDismiss_Response { 18 | repeated .CDismissPinData dismiss_list = 1; 19 | } 20 | 21 | message CPartnerDismiss_DeleteDismiss_Request { 22 | optional fixed64 dismiss_id = 7; 23 | } 24 | 25 | message CPartnerDismiss_DeleteDismiss_Response { 26 | } 27 | 28 | message CPartnerDismiss_GetDismissTimeRange_Request { 29 | optional uint32 partnerid = 1; 30 | optional uint32 accountid = 2; 31 | optional uint32 rtime_after = 3; 32 | } 33 | 34 | message CPartnerDismiss_GetDismissTimeRange_Response { 35 | repeated .CDismissPinData dismiss_list = 1; 36 | } 37 | 38 | service PartnerDismiss { 39 | // ePrivilege=1 40 | rpc CreateDismiss (.CPartnerDismiss_CreateDismiss_Request) returns (.CPartnerDismiss_CreateDismiss_Response); 41 | // ePrivilege=1 42 | rpc DeleteDismiss (.CPartnerDismiss_DeleteDismiss_Request) returns (.CPartnerDismiss_DeleteDismiss_Response); 43 | // bConstMethod=true, ePrivilege=1 44 | rpc GetDismissTimeRange (.CPartnerDismiss_GetDismissTimeRange_Request) returns (.CPartnerDismiss_GetDismissTimeRange_Response); 45 | } 46 | 47 | -------------------------------------------------------------------------------- /webui/service_partnermembershipinvite.proto: -------------------------------------------------------------------------------- 1 | import "common_base.proto"; 2 | 3 | message CPartnerMembershipInvite_GetInvites_Request { 4 | optional uint32 partnerid = 1; 5 | repeated int32 filter_states = 2 [(.description) = "enum"]; 6 | } 7 | 8 | message CPartnerMembershipInvite_GetInvites_Response { 9 | repeated .MembershipInvite invites = 1; 10 | } 11 | 12 | message MembershipInvite { 13 | optional uint64 inviteid = 1; 14 | optional uint32 accountid_sender = 2; 15 | optional string email = 3; 16 | optional string real_name = 4; 17 | optional string note = 5; 18 | optional uint32 time_sent = 6; 19 | optional int32 current_state = 7 [(.description) = "enum"]; 20 | optional uint64 pub_rights = 8; 21 | optional uint64 app_rights = 9; 22 | optional uint32 time_receiver_responded = 10; 23 | optional uint32 accountid = 11; 24 | optional uint32 time_partner_responded = 12; 25 | optional uint32 accountid_partner = 13; 26 | optional uint32 partnerid = 14; 27 | optional uint32 time_last_updated = 15; 28 | optional string sender_ip = 16; 29 | } 30 | 31 | service PartnerMembershipInvite { 32 | // bConstMethod=true, ePrivilege=11 33 | rpc GetInvites (.CPartnerMembershipInvite_GetInvites_Request) returns (.CPartnerMembershipInvite_GetInvites_Response); 34 | } 35 | 36 | -------------------------------------------------------------------------------- /webui/service_partnerstorebrowse.proto: -------------------------------------------------------------------------------- 1 | import "common.proto"; 2 | 3 | message CPartnerStoreBrowse_GetCountryRestrictions_Request { 4 | repeated .StoreItemID ids = 1; 5 | } 6 | 7 | message CPartnerStoreBrowse_GetCountryRestrictions_Response { 8 | repeated .CPartnerStoreBrowse_GetCountryRestrictions_Response_CCountryRestrictions results = 1; 9 | repeated .StoreItemID no_info = 2; 10 | } 11 | 12 | message CPartnerStoreBrowse_GetCountryRestrictions_Response_CCountryRestrictions { 13 | optional .StoreItemID id = 1; 14 | optional bool no_restrictions = 2; 15 | repeated string allowed_countries = 3; 16 | repeated string restricted_countries = 4; 17 | } 18 | 19 | message CPartnerStoreBrowse_GetItems_Request { 20 | optional .CStoreBrowse_GetItems_Request request = 1; 21 | optional bool include_unpublished = 2; 22 | } 23 | 24 | service PartnerStoreBrowse { 25 | // bConstMethod=true, ePrivilege=1 26 | rpc GetCountryRestrictions (.CPartnerStoreBrowse_GetCountryRestrictions_Request) returns (.CPartnerStoreBrowse_GetCountryRestrictions_Response); 27 | // bConstMethod=true, ePrivilege=1 28 | rpc GetItems (.CPartnerStoreBrowse_GetItems_Request) returns (.CStoreBrowse_GetItems_Response); 29 | } 30 | 31 | -------------------------------------------------------------------------------- /webui/service_phone.proto: -------------------------------------------------------------------------------- 1 | 2 | message CPhone_AddPhoneToAccount_Response { 3 | optional bool success = 1; 4 | optional int32 phone_number_type = 2; 5 | } 6 | 7 | message CPhone_ConfirmAddPhoneToAccount_Request { 8 | optional fixed64 steamid = 1; 9 | optional string stoken = 2; 10 | } 11 | 12 | message CPhone_IsAccountWaitingForEmailConfirmation_Request { 13 | } 14 | 15 | message CPhone_IsAccountWaitingForEmailConfirmation_Response { 16 | optional bool awaiting_email_confirmation = 1; 17 | optional uint32 seconds_to_wait = 2; 18 | } 19 | 20 | message CPhone_SendPhoneVerificationCode_Request { 21 | optional uint32 language = 1; 22 | } 23 | 24 | message CPhone_SendPhoneVerificationCode_Response { 25 | } 26 | 27 | message CPhone_SetAccountPhoneNumber_Request { 28 | optional string phone_number = 1; 29 | optional string phone_country_code = 2; 30 | } 31 | 32 | message CPhone_SetAccountPhoneNumber_Response { 33 | optional string confirmation_email_address = 1; 34 | optional string phone_number_formatted = 2; 35 | } 36 | 37 | message CPhone_VerifyAccountPhoneWithCode_Request { 38 | optional string code = 1; 39 | } 40 | 41 | message CPhone_VerifyAccountPhoneWithCode_Response { 42 | } 43 | 44 | service Phone { 45 | rpc ConfirmAddPhoneToAccount (.CPhone_ConfirmAddPhoneToAccount_Request) returns (.CPhone_AddPhoneToAccount_Response); 46 | rpc IsAccountWaitingForEmailConfirmation (.CPhone_IsAccountWaitingForEmailConfirmation_Request) returns (.CPhone_IsAccountWaitingForEmailConfirmation_Response); 47 | rpc SendPhoneVerificationCode (.CPhone_SendPhoneVerificationCode_Request) returns (.CPhone_SendPhoneVerificationCode_Response); 48 | rpc SetAccountPhoneNumber (.CPhone_SetAccountPhoneNumber_Request) returns (.CPhone_SetAccountPhoneNumber_Response); 49 | rpc VerifyAccountPhoneWithCode (.CPhone_VerifyAccountPhoneWithCode_Request) returns (.CPhone_VerifyAccountPhoneWithCode_Response); 50 | } 51 | 52 | -------------------------------------------------------------------------------- /webui/service_physicalgoods.proto: -------------------------------------------------------------------------------- 1 | 2 | message CPhysicalGoods_CheckInventoryAvailableByPackage_Request { 3 | optional int32 packageid = 1; 4 | optional string country_code = 2; 5 | } 6 | 7 | message CPhysicalGoods_CheckInventoryAvailableByPackage_Response { 8 | optional bool inventory_available = 1; 9 | optional bool high_pending_orders = 2; 10 | } 11 | 12 | service PhysicalGoods { 13 | // bConstMethod=true, ePrivilege=0, eWebAPIKeyRequirement=1 14 | rpc CheckInventoryAvailableByPackage (.CPhysicalGoods_CheckInventoryAvailableByPackage_Request) returns (.CPhysicalGoods_CheckInventoryAvailableByPackage_Response); 15 | } 16 | 17 | -------------------------------------------------------------------------------- /webui/service_promotionstats.proto: -------------------------------------------------------------------------------- 1 | 2 | message CPromotionStats_GetOptInDemoStats_Request { 3 | optional string opt_in_name = 1; 4 | optional uint32 partner_id = 2; 5 | } 6 | 7 | message CPromotionStats_GetOptInDemoStats_Response { 8 | repeated .CPromotionStats_GetOptInDemoStats_Response_PerAppStats stats = 1; 9 | repeated uint32 appid_without_permissions = 2; 10 | } 11 | 12 | message CPromotionStats_GetOptInDemoStats_Response_PerAppStats { 13 | optional uint32 appid = 1; 14 | optional uint32 demo_appid = 2; 15 | optional uint32 rt_start_time = 3; 16 | optional uint32 rt_end_time = 4; 17 | optional uint32 demo_player_count = 5; 18 | optional uint32 wishlist_count = 6; 19 | optional uint32 player_wishlist_count = 7; 20 | optional uint32 rt_last_update_time = 9; 21 | } 22 | 23 | service PromotionStats { 24 | // bConstMethod=true, ePrivilege=1 25 | rpc GetOptInDemoStats (.CPromotionStats_GetOptInDemoStats_Request) returns (.CPromotionStats_GetOptInDemoStats_Response); 26 | } 27 | 28 | -------------------------------------------------------------------------------- /webui/service_sharedjscontext.proto: -------------------------------------------------------------------------------- 1 | 2 | message CMsgSteamUIBrowserWindow { 3 | optional int32 id = 1; 4 | optional int32 pid = 2; 5 | optional int32 browser_id = 3; 6 | optional int32 window_type = 4; 7 | optional int32 x = 5; 8 | optional int32 y = 6; 9 | optional uint64 appid = 7; 10 | optional uint64 parent_window_handle = 8; 11 | optional string app_name = 9; 12 | optional bool gamepadui_via_gamescope = 10; 13 | } 14 | 15 | message CSharedJSContext_GetDesiredSteamUIWindows_Request { 16 | } 17 | 18 | message CSharedJSContext_GetDesiredSteamUIWindows_Response { 19 | repeated .CMsgSteamUIBrowserWindow windows = 1; 20 | } 21 | 22 | service SharedJSContext { 23 | // ePrivilege=1, eClientExecutionSite=1 24 | rpc GetDesiredSteamUIWindows (.CSharedJSContext_GetDesiredSteamUIWindows_Request) returns (.CSharedJSContext_GetDesiredSteamUIWindows_Response); 25 | } 26 | 27 | -------------------------------------------------------------------------------- /webui/service_steamengine.proto: -------------------------------------------------------------------------------- 1 | import "common_base.proto"; 2 | 3 | message CSteamEngine_GetGameIDForPID_Request { 4 | optional uint32 pid = 1; 5 | } 6 | 7 | message CSteamEngine_GetGameIDForPID_Response { 8 | optional uint64 gameid = 1; 9 | } 10 | 11 | message CSteamEngine_GetTextFilterDictionary_Request { 12 | optional string language = 1; 13 | optional string type = 2; 14 | } 15 | 16 | message CSteamEngine_GetTextFilterDictionary_Response { 17 | optional string dictionary = 1; 18 | } 19 | 20 | message CSteamEngine_SearchAppDataCacheByStoreKeywords_Request { 21 | optional string search_term = 1; 22 | optional uint32 max_results = 2; 23 | } 24 | 25 | message CSteamEngine_SearchAppDataCacheByStoreKeywords_Response { 26 | repeated uint32 appids = 1; 27 | } 28 | 29 | message CSteamEngine_SetOverlayEscapeKeyHandling_Notification { 30 | optional uint64 gameid = 1; 31 | optional bool should_handle = 2; 32 | } 33 | 34 | message CSteamEngine_TextFilterDictionaryChanged_Notification { 35 | optional string language = 1; 36 | optional string type = 2; 37 | } 38 | 39 | message CSteamEngine_UpdateTextFilterDictionary_Notification { 40 | optional string language = 1; 41 | optional string type = 2; 42 | } 43 | 44 | service SteamEngine { 45 | // ePrivilege=1, eClientExecutionSite=2 46 | rpc GetGameIDForPID (.CSteamEngine_GetGameIDForPID_Request) returns (.CSteamEngine_GetGameIDForPID_Response); 47 | // ePrivilege=1, eClientExecutionSite=2 48 | rpc GetTextFilterDictionary (.CSteamEngine_GetTextFilterDictionary_Request) returns (.CSteamEngine_GetTextFilterDictionary_Response); 49 | // ePrivilege=1, eClientExecutionSite=2 50 | rpc NotifyTextFilterDictionaryChanged (.CSteamEngine_TextFilterDictionaryChanged_Notification) returns (.NoResponse); 51 | // ePrivilege=1, eClientExecutionSite=2 52 | rpc SearchAppDataCacheByStoreKeywords (.CSteamEngine_SearchAppDataCacheByStoreKeywords_Request) returns (.CSteamEngine_SearchAppDataCacheByStoreKeywords_Response); 53 | // ePrivilege=1, eClientExecutionSite=2 54 | rpc SetOverlayEscapeKeyHandling (.CSteamEngine_SetOverlayEscapeKeyHandling_Notification) returns (.NoResponse); 55 | // ePrivilege=1, eClientExecutionSite=2 56 | rpc UpdateTextFilterDictionary (.CSteamEngine_UpdateTextFilterDictionary_Notification) returns (.NoResponse); 57 | } 58 | 59 | -------------------------------------------------------------------------------- /webui/service_steamossls.proto: -------------------------------------------------------------------------------- 1 | import "common_base.proto"; 2 | 3 | message CSteamOSSLS_GetState_Request { 4 | } 5 | 6 | message CSteamOSSLS_GetState_Response { 7 | optional .CSteamOSSLSState state = 1; 8 | } 9 | 10 | message CSteamOSSLS_SetEnabled_Request { 11 | optional bool enabled = 1; 12 | } 13 | 14 | message CSteamOSSLS_SetEnabled_Response { 15 | } 16 | 17 | message CSteamOSSLS_SetPluginEnabled_Request { 18 | optional int32 etype = 1 [(.description) = "enum"]; 19 | optional bool enabled = 2; 20 | } 21 | 22 | message CSteamOSSLS_SetPluginEnabled_Response { 23 | } 24 | 25 | message CSteamOSSLS_StateChanged_Notification { 26 | } 27 | 28 | message CSteamOSSLSPlugin { 29 | optional int32 etype = 1 [(.description) = "enum"]; 30 | optional bool is_available = 2; 31 | optional bool is_enabled = 3; 32 | } 33 | 34 | message CSteamOSSLSState { 35 | optional bool is_available = 1; 36 | optional bool is_enabled = 2; 37 | repeated .CSteamOSSLSPlugin plugins = 3; 38 | } 39 | 40 | service SteamOSSLS { 41 | // ePrivilege=1, eClientExecutionSite=1 42 | rpc GetState (.CSteamOSSLS_GetState_Request) returns (.CSteamOSSLS_GetState_Response); 43 | // ePrivilege=1, eClientExecutionSite=1 44 | rpc NotifyStateChanged (.CSteamOSSLS_StateChanged_Notification) returns (.NoResponse); 45 | // ePrivilege=1, eClientExecutionSite=1 46 | rpc SetEnabled (.CSteamOSSLS_SetEnabled_Request) returns (.CSteamOSSLS_SetEnabled_Response); 47 | // ePrivilege=1, eClientExecutionSite=1 48 | rpc SetPluginEnabled (.CSteamOSSLS_SetPluginEnabled_Request) returns (.CSteamOSSLS_SetPluginEnabled_Response); 49 | } 50 | 51 | -------------------------------------------------------------------------------- /webui/service_steamvrwebrtc.proto: -------------------------------------------------------------------------------- 1 | import "common_base.proto"; 2 | 3 | message CSteamVR_Header { 4 | optional int32 type = 1 [(.description) = "enum"]; 5 | optional uint32 id = 2; 6 | } 7 | 8 | message CSteamVR_WebRTC_Active_Notification { 9 | } 10 | 11 | message CSteamVR_WebRTC_DataChannel_Close_Notification { 12 | optional uint32 channel_id = 1; 13 | } 14 | 15 | message CSteamVR_WebRTC_DataChannel_Error_Notification { 16 | optional uint32 channel_id = 1; 17 | optional string reason = 2; 18 | } 19 | 20 | message CSteamVR_WebRTC_DataChannel_Message_Notification { 21 | optional uint32 channel_id = 1; 22 | optional bytes data = 2; 23 | } 24 | 25 | message CSteamVR_WebRTC_DataChannel_Open_Notification { 26 | optional uint32 channel_id = 1; 27 | } 28 | 29 | message CSteamVR_WebRTC_Inactive_Notification { 30 | } 31 | 32 | message CSteamVR_WebRTC_OnDataChannel_Notification { 33 | optional fixed64 source_steamid = 1; 34 | optional uint32 channel_id = 2; 35 | optional string label = 3; 36 | } 37 | 38 | service SteamVRWebRTC { 39 | rpc Active (.CSteamVR_WebRTC_Active_Notification) returns (.NoResponse); 40 | rpc Header (.CSteamVR_Header) returns (.NoResponse); 41 | rpc Inactive (.CSteamVR_WebRTC_Inactive_Notification) returns (.NoResponse); 42 | rpc Notify_DataChannelClose (.CSteamVR_WebRTC_DataChannel_Close_Notification) returns (.NoResponse); 43 | rpc Notify_DataChannelError (.CSteamVR_WebRTC_DataChannel_Error_Notification) returns (.NoResponse); 44 | rpc Notify_DataChannelMessage (.CSteamVR_WebRTC_DataChannel_Message_Notification) returns (.NoResponse); 45 | rpc Notify_DataChannelOpen (.CSteamVR_WebRTC_DataChannel_Open_Notification) returns (.NoResponse); 46 | rpc Notify_OnDataChannel (.CSteamVR_WebRTC_OnDataChannel_Notification) returns (.NoResponse); 47 | } 48 | 49 | -------------------------------------------------------------------------------- /webui/service_storetopsellers.proto: -------------------------------------------------------------------------------- 1 | import "common.proto"; 2 | 3 | message CStoreTopSellers_GetCountryList_Request { 4 | optional string language = 1; 5 | } 6 | 7 | message CStoreTopSellers_GetCountryList_Response { 8 | repeated .CStoreTopSellers_GetCountryList_Response_Country countries = 1; 9 | } 10 | 11 | message CStoreTopSellers_GetCountryList_Response_Country { 12 | optional string country_code = 1; 13 | optional string name = 2; 14 | } 15 | 16 | message CStoreTopSellers_GetWeeklyTopSellers_Request { 17 | optional string country_code = 1; 18 | optional .StoreBrowseContext context = 2; 19 | optional .StoreBrowseItemDataRequest data_request = 3; 20 | optional uint32 start_date = 4; 21 | optional int32 page_start = 5; 22 | optional int32 page_count = 6 [default = 20]; 23 | } 24 | 25 | message CStoreTopSellers_GetWeeklyTopSellers_Response { 26 | optional uint32 start_date = 1; 27 | repeated .CStoreTopSellers_GetWeeklyTopSellers_Response_TopSellersRank ranks = 2; 28 | optional int32 next_page_start = 3; 29 | } 30 | 31 | message CStoreTopSellers_GetWeeklyTopSellers_Response_TopSellersRank { 32 | optional int32 rank = 1; 33 | optional int32 appid = 2; 34 | optional .StoreItem item = 3; 35 | optional int32 last_week_rank = 4; 36 | optional int32 consecutive_weeks = 5; 37 | optional bool first_top100 = 6; 38 | } 39 | 40 | service StoreTopSellers { 41 | // bConstMethod=true, ePrivilege=0, eWebAPIKeyRequirement=1 42 | rpc GetCountryList (.CStoreTopSellers_GetCountryList_Request) returns (.CStoreTopSellers_GetCountryList_Response); 43 | // bConstMethod=true, ePrivilege=2, eWebAPIKeyRequirement=1 44 | rpc GetWeeklyTopSellers (.CStoreTopSellers_GetWeeklyTopSellers_Request) returns (.CStoreTopSellers_GetWeeklyTopSellers_Response); 45 | } 46 | 47 | -------------------------------------------------------------------------------- /webui/service_systemmanager.proto: -------------------------------------------------------------------------------- 1 | 2 | message CSystemManager_Hibernate_Request { 3 | } 4 | 5 | message CSystemManager_Hibernate_Response { 6 | } 7 | 8 | message CSystemManager_WriteFile_Request { 9 | optional string path = 1; 10 | optional bytes data = 2; 11 | } 12 | 13 | message CSystemManager_WriteFile_Response { 14 | } 15 | 16 | service SystemManager { 17 | // ePrivilege=1, eClientExecutionSite=2 18 | rpc Hibernate (.CSystemManager_Hibernate_Request) returns (.CSystemManager_Hibernate_Response); 19 | // ePrivilege=1, eClientExecutionSite=2 20 | rpc WriteFile (.CSystemManager_WriteFile_Request) returns (.CSystemManager_WriteFile_Response); 21 | } 22 | 23 | -------------------------------------------------------------------------------- /webui/service_test_transporterror.proto: -------------------------------------------------------------------------------- 1 | import "common.proto"; 2 | 3 | service Test_TransportError { 4 | // ePrivilege=1, eClientExecutionSite=1 5 | rpc InvalidService (.CTransportValidation_AppendToString_Request) returns (.CTransportValidation_AppendToString_Response); 6 | } 7 | 8 | -------------------------------------------------------------------------------- /webui/service_transportauth.proto: -------------------------------------------------------------------------------- 1 | import "common_base.proto"; 2 | 3 | message CTransportAuth_Authenticate_Request { 4 | optional string auth_key = 1; 5 | } 6 | 7 | message CTransportAuth_Authenticate_Response { 8 | } 9 | 10 | message CTransportAuth_StartShutdown_Notification { 11 | } 12 | 13 | service TransportAuth { 14 | // ePrivilege=1, eClientExecutionSite=3 15 | rpc Authenticate (.CTransportAuth_Authenticate_Request) returns (.CTransportAuth_Authenticate_Response); 16 | // ePrivilege=1, eClientExecutionSite=3 17 | rpc NotifyStartShutdown (.CTransportAuth_StartShutdown_Notification) returns (.NoResponse); 18 | } 19 | 20 | -------------------------------------------------------------------------------- /webui/service_usergameactivity.proto: -------------------------------------------------------------------------------- 1 | import "common_base.proto"; 2 | 3 | message CUserGameActivity_Event { 4 | optional uint32 timestamp = 2; 5 | optional int32 event_type = 3 [(.description) = "enum"]; 6 | optional uint32 event_sub_type = 4; 7 | optional int64 data1 = 5; 8 | optional int64 data2 = 6; 9 | optional int64 data3 = 7; 10 | optional int64 data4 = 8; 11 | optional uint32 item_appid = 10; 12 | optional uint64 item_contextid = 11; 13 | optional uint64 item_assetid = 12; 14 | optional bytes proto_data = 13; 15 | } 16 | 17 | message CUserGameActivity_GetActivity_Request { 18 | optional fixed64 steamid = 1; 19 | optional uint32 appid = 2; 20 | optional int32 count = 3; 21 | optional uint32 starttime = 4; 22 | optional uint32 endtime = 5; 23 | } 24 | 25 | message CUserGameActivity_GetActivity_Response { 26 | optional fixed64 steamid = 1; 27 | optional uint32 appid = 2; 28 | repeated .CUserGameActivity_Event events = 3; 29 | } 30 | 31 | service UserGameActivity { 32 | // ePrivilege=1 33 | rpc GetActivity (.CUserGameActivity_GetActivity_Request) returns (.CUserGameActivity_GetActivity_Response); 34 | } 35 | 36 | -------------------------------------------------------------------------------- /webui/service_usergamenotes.proto: -------------------------------------------------------------------------------- 1 | 2 | message CUserGameNote { 3 | optional string id = 1; 4 | optional uint32 appid = 2; 5 | optional string shortcut_name = 3; 6 | optional uint32 shortcutid = 4; 7 | optional uint32 ordinal = 5; 8 | optional uint32 time_created = 6; 9 | optional uint32 time_modified = 7; 10 | optional string title = 8; 11 | optional string content = 9; 12 | } 13 | 14 | message CUserGameNotes_DeleteNote_Request { 15 | optional uint32 appid = 1; 16 | optional string shortcut_name = 2; 17 | optional uint32 shortcutid = 3; 18 | optional string note_id = 4; 19 | } 20 | 21 | message CUserGameNotes_DeleteNote_Response { 22 | } 23 | 24 | message CUserGameNotes_GetGamesWithNotes_Request { 25 | } 26 | 27 | message CUserGameNotes_GetGamesWithNotes_Response { 28 | repeated .CUserGameNotes_GetGamesWithNotes_Response_GameWithNotes games_with_notes = 1; 29 | } 30 | 31 | message CUserGameNotes_GetGamesWithNotes_Response_GameWithNotes { 32 | optional uint32 appid = 1; 33 | optional uint32 shortcutid = 2; 34 | optional string shortcut_name = 3; 35 | optional uint32 last_modified = 4; 36 | optional uint32 note_count = 5; 37 | } 38 | 39 | message CUserGameNotes_GetNotesForGame_Request { 40 | optional uint32 appid = 1; 41 | optional string shortcut_name = 2; 42 | optional uint32 shortcutid = 3; 43 | optional bool include_content = 4; 44 | } 45 | 46 | message CUserGameNotes_GetNotesForGame_Response { 47 | repeated .CUserGameNote notes = 1; 48 | } 49 | 50 | message CUserGameNotes_SaveNote_Request { 51 | optional uint32 appid = 1; 52 | optional string shortcut_name = 2; 53 | optional uint32 shortcutid = 3; 54 | optional string note_id = 4; 55 | optional bool create_new = 5; 56 | optional string title = 6; 57 | optional string content = 7; 58 | } 59 | 60 | message CUserGameNotes_SaveNote_Response { 61 | optional string note_id = 1; 62 | } 63 | 64 | service UserGameNotes { 65 | rpc DeleteNote (.CUserGameNotes_DeleteNote_Request) returns (.CUserGameNotes_DeleteNote_Response); 66 | rpc GetGamesWithNotes (.CUserGameNotes_GetGamesWithNotes_Request) returns (.CUserGameNotes_GetGamesWithNotes_Response); 67 | rpc GetNotesForGame (.CUserGameNotes_GetNotesForGame_Request) returns (.CUserGameNotes_GetNotesForGame_Response); 68 | rpc SaveNote (.CUserGameNotes_SaveNote_Request) returns (.CUserGameNotes_SaveNote_Response); 69 | } 70 | 71 | -------------------------------------------------------------------------------- /webui/service_usernews.proto: -------------------------------------------------------------------------------- 1 | 2 | message CUserNews_Event { 3 | optional uint32 eventtype = 1; 4 | optional uint32 eventtime = 2; 5 | optional fixed64 steamid_actor = 3; 6 | optional fixed64 steamid_target = 4; 7 | optional fixed64 gameid = 5; 8 | optional uint32 packageid = 6; 9 | optional uint32 shortcutid = 7; 10 | repeated string achievement_names = 8; 11 | optional fixed64 clan_eventid = 9; 12 | optional fixed64 clan_announcementid = 10; 13 | optional fixed64 publishedfileid = 11; 14 | optional uint32 event_last_mod_time = 12; 15 | repeated uint32 appids = 13; 16 | optional uint32 event_post_time = 14; 17 | } 18 | 19 | message CUserNews_GetAppDetailsSpotlight_Request { 20 | optional uint32 appid = 1; 21 | optional bool include_already_seen = 2; 22 | } 23 | 24 | message CUserNews_GetAppDetailsSpotlight_Response { 25 | repeated .CUserNews_GetAppDetailsSpotlight_Response_FeaturedEvent events = 1; 26 | } 27 | 28 | message CUserNews_GetAppDetailsSpotlight_Response_FeaturedEvent { 29 | optional uint32 event_type = 1; 30 | optional uint32 event_time = 2; 31 | optional fixed64 clan_id = 3; 32 | optional fixed64 clan_announcementid = 4; 33 | optional uint32 appid = 5; 34 | optional uint32 rtime32_last_modified = 6; 35 | } 36 | 37 | message CUserNews_GetUserNews_Request { 38 | optional uint32 count = 1; 39 | optional uint32 starttime = 2; 40 | optional uint32 endtime = 3; 41 | optional string language = 4; 42 | optional uint32 filterflags = 5; 43 | optional uint32 filterappid = 6; 44 | } 45 | 46 | message CUserNews_GetUserNews_Response { 47 | repeated .CUserNews_Event news = 1; 48 | repeated .CUserNewsAchievementDisplayData achievement_display_data = 2; 49 | } 50 | 51 | message CUserNewsAchievementDisplayData { 52 | optional uint32 appid = 1; 53 | repeated .CUserNewsAchievementDisplayData_CAchievement achievements = 2; 54 | } 55 | 56 | message CUserNewsAchievementDisplayData_CAchievement { 57 | optional string name = 1; 58 | optional string display_name = 2; 59 | optional string display_description = 3; 60 | optional string icon = 4; 61 | optional float unlocked_pct = 5; 62 | optional bool hidden = 6; 63 | } 64 | 65 | service UserNews { 66 | // ePrivilege=1 67 | rpc GetAppDetailsSpotlight (.CUserNews_GetAppDetailsSpotlight_Request) returns (.CUserNews_GetAppDetailsSpotlight_Response); 68 | // ePrivilege=1 69 | rpc GetUserNews (.CUserNews_GetUserNews_Request) returns (.CUserNews_GetUserNews_Response); 70 | } 71 | 72 | -------------------------------------------------------------------------------- /webui/service_userstorevisit.proto: -------------------------------------------------------------------------------- 1 | import "common.proto"; 2 | 3 | message CUserStoreVisit_GetFrequentlyVisitedPages_Request { 4 | } 5 | 6 | message CUserStoreVisit_GetFrequentlyVisitedPages_Response { 7 | optional .CUserStoreVisitData visit_data = 1; 8 | repeated .CUserStoreVisit_GetFrequentlyVisitedPages_Response_FrequentHubs frequent_hubs = 2; 9 | } 10 | 11 | message CUserStoreVisit_GetFrequentlyVisitedPages_Response_FrequentHubs { 12 | optional .StoreItemID item_id = 1; 13 | optional uint32 time_visit = 2; 14 | optional uint32 visit_count = 3; 15 | } 16 | 17 | message CUserStoreVisit_GetMostVisitedItemsOnStore_Request { 18 | optional .StoreBrowseContext context = 1; 19 | optional .StoreBrowseItemDataRequest data_request = 2; 20 | optional uint32 count = 3 [default = 10]; 21 | } 22 | 23 | message CUserStoreVisit_GetMostVisitedItemsOnStore_Response { 24 | repeated .StoreItemID item_ids = 1; 25 | repeated .StoreItem items = 2; 26 | } 27 | 28 | message CUserStoreVisitData { 29 | repeated .CUserStoreVisitData_RecentApps recent_apps = 1; 30 | } 31 | 32 | message CUserStoreVisitData_RecentApps { 33 | optional .StoreItemID item_id = 1; 34 | optional fixed32 time_visit = 2; 35 | } 36 | 37 | service UserStoreVisit { 38 | // bConstMethod=true, ePrivilege=1 39 | rpc GetFrequentlyVisitedPages (.CUserStoreVisit_GetFrequentlyVisitedPages_Request) returns (.CUserStoreVisit_GetFrequentlyVisitedPages_Response); 40 | // bConstMethod=true, ePrivilege=0, eWebAPIKeyRequirement=1 41 | rpc GetMostVisitedItemsOnStore (.CUserStoreVisit_GetMostVisitedItemsOnStore_Request) returns (.CUserStoreVisit_GetMostVisitedItemsOnStore_Response); 42 | } 43 | 44 | -------------------------------------------------------------------------------- /webui/service_video.proto: -------------------------------------------------------------------------------- 1 | import "common_base.proto"; 2 | 3 | message CVideo_ClientGetVideoURL_Request { 4 | optional uint64 video_id = 1; 5 | optional uint32 client_cellid = 2; 6 | } 7 | 8 | message CVideo_ClientGetVideoURL_Response { 9 | optional uint64 video_id = 1; 10 | optional string video_url = 2; 11 | } 12 | 13 | message CVideo_GetVideoBookmarks_Request { 14 | repeated uint32 appids = 1; 15 | optional uint32 updated_since = 2; 16 | } 17 | 18 | message CVideo_GetVideoBookmarks_Response { 19 | repeated .VideoBookmark bookmarks = 1; 20 | } 21 | 22 | message CVideo_SetVideoBookmark_Notification { 23 | repeated .VideoBookmark bookmarks = 1; 24 | } 25 | 26 | message CVideo_UnlockedH264_Notification { 27 | optional bytes encryption_key = 1; 28 | } 29 | 30 | message VideoBookmark { 31 | optional uint32 app_id = 1; 32 | optional uint32 playback_position_in_seconds = 2; 33 | optional uint64 video_track_id = 3; 34 | optional uint64 audio_track_id = 4; 35 | optional uint64 timedtext_track_id = 5; 36 | optional uint32 last_modified = 6; 37 | optional bool hide_from_watch_history = 7 [default = false]; 38 | optional bool hide_from_library = 8 [default = false]; 39 | } 40 | 41 | service Video { 42 | // ePrivilege=1 43 | rpc ClientGetVideoURL (.CVideo_ClientGetVideoURL_Request) returns (.CVideo_ClientGetVideoURL_Response); 44 | // ePrivilege=1 45 | rpc GetVideoBookmarks (.CVideo_GetVideoBookmarks_Request) returns (.CVideo_GetVideoBookmarks_Response); 46 | // ePrivilege=1 47 | rpc SetVideoBookmark (.CVideo_SetVideoBookmark_Notification) returns (.NoResponse); 48 | } 49 | 50 | service VideoClient { 51 | rpc NotifyUnlockedH264 (.CVideo_UnlockedH264_Notification) returns (.NoResponse); 52 | } 53 | 54 | --------------------------------------------------------------------------------